diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a64b6918c499..7dc14a61cbae 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -65,6 +65,7 @@
/nixos/doc/manual/development/writing-modules.xml @nbp
/nixos/doc/manual/man-nixos-option.xml @nbp
/nixos/modules/installer/tools/nixos-option.sh @nbp
+/nixos/modules/system @dasJ
# NixOS integration test driver
/nixos/lib/test-driver @tfc
@@ -96,9 +97,9 @@
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn @expipiplus1
# Perl
-/pkgs/development/interpreters/perl @volth @stigtsp
-/pkgs/top-level/perl-packages.nix @volth @stigtsp
-/pkgs/development/perl-modules @volth @stigtsp
+/pkgs/development/interpreters/perl @volth @stigtsp @zakame
+/pkgs/top-level/perl-packages.nix @volth @stigtsp @zakame
+/pkgs/development/perl-modules @volth @stigtsp @zakame
# R
/pkgs/applications/science/math/R @jbedo @bcdarwin
@@ -231,3 +232,8 @@
# Cinnamon
/pkgs/desktops/cinnamon @mkg20001
+
+#nim
+/pkgs/development/compilers/nim @ehmry
+/pkgs/development/nim-packages @ehmry
+/pkgs/top-level/nim-packages.nix @ehmry
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index bfc07096aa95..168d40f16a91 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -21,9 +21,13 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
- [ ] x86_64-darwin
- [ ] aarch64-darwin
- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/#sec-conf-file))
-- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
+- [ ] Tested, as applicable:
+ - [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
+ - and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
+ - or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
+ - made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review wip"`
-- [ ] Tested execution of all binary files (usually in `./result/bin/`)
+- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [21.11 Release Notes (or backporting 21.05 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2111-release-notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
diff --git a/.github/labeler.yml b/.github/labeler.yml
index ff831042461c..780843a2a553 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -72,6 +72,12 @@
- nixos/**/*
- pkgs/os-specific/linux/nixos-rebuild/**/*
+"6.topic: nim":
+ - doc/languages-frameworks/nim.section.md
+ - pkgs/development/compilers/nim/*
+ - pkgs/development/nim-packages/**/*
+ - pkgs/top-level/nim-packages.nix
+
"6.topic: ocaml":
- doc/languages-frameworks/ocaml.section.md
- pkgs/development/compilers/ocaml/**/*
diff --git a/.github/workflows/periodic-merge-24h.yml b/.github/workflows/periodic-merge-24h.yml
index 81c5694f43d8..9032b3d7d910 100644
--- a/.github/workflows/periodic-merge-24h.yml
+++ b/.github/workflows/periodic-merge-24h.yml
@@ -28,6 +28,10 @@ jobs:
pairs:
- from: master
into: haskell-updates
+ - from: release-21.05
+ into: staging-next-21.05
+ - from: staging-next-21.05
+ into: staging-21.05
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v2
diff --git a/.github/workflows/periodic-merge-6h.yml b/.github/workflows/periodic-merge-6h.yml
index 68fde857f888..daa9b6d3c844 100644
--- a/.github/workflows/periodic-merge-6h.yml
+++ b/.github/workflows/periodic-merge-6h.yml
@@ -30,10 +30,6 @@ jobs:
into: staging-next
- from: staging-next
into: staging
- - from: release-21.05
- into: staging-next-21.05
- - from: staging-next-21.05
- into: staging-21.05
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v2
diff --git a/README.md b/README.md
index 0b76b4bcdcae..a09b7d92e3e5 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over
-60,000 software packages that can be installed with the
+80,000 software packages that can be installed with the
[Nix](https://nixos.org/nix/) package manager. It also implements
[NixOS](https://nixos.org/nixos/), a purely-functional Linux distribution.
@@ -53,7 +53,7 @@ system, [Hydra](https://hydra.nixos.org/).
Artifacts successfully built with Hydra are published to cache at
https://cache.nixos.org/. When successful build and test criteria are
met, the Nixpkgs expressions are distributed via [Nix
-channels](https://nixos.org/nix/manual/#sec-channels).
+channels](https://nixos.org/manual/nix/stable/package-management/channels.html).
# Contributing
diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md
index 30d065344852..e36724f295f9 100644
--- a/doc/builders/fetchers.chapter.md
+++ b/doc/builders/fetchers.chapter.md
@@ -1,8 +1,16 @@
# Fetchers {#chap-pkgs-fetchers}
-When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way.
+When using Nix, you will frequently need to download source code and other files from the internet. For this purpose, Nix provides the [_fixed output derivation_](https://nixos.org/manual/nix/stable/#fixed-output-drvs) feature and Nixpkgs provides various functions that implement the actual fetching from various protocols and services.
-The two fetcher primitives are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
+## Caveats
+
+Because fixed output derivations are _identified_ by their hash, a common mistake is to update a fetcher's URL or a version parameter, without updating the hash. **This will cause the old contents to be used.** So remember to always invalidate the hash argument.
+
+For those who develop and maintain fetchers, a similar problem arises with changes to the implementation of a fetcher. These may cause a fixed output derivation to fail, but won't normally be caught by tests because the supposed output is already in the store or cache. For the purpose of testing, you can use a trick that is embodied by the [`invalidateFetcherByDrvHash`](#sec-pkgs-invalidateFetcherByDrvHash) function. It uses the derivation `name` to create a unique output path per fetcher implementation, defeating the caching precisely where it would be harmful.
+
+## `fetchurl` and `fetchzip` {#fetchurl}
+
+Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
```nix
{ stdenv, fetchurl }:
@@ -20,7 +28,7 @@ The main difference between `fetchurl` and `fetchzip` is in how they store the c
`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
-Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward nambes based on the name of the command used with the VCS system. Because they give you a working repository, they act most like `fetchzip`.
+Most other fetchers return a directory rather than a single file.
## `fetchsvn` {#fetchsvn}
diff --git a/doc/builders/packages/etc-files.section.md b/doc/builders/packages/etc-files.section.md
new file mode 100644
index 000000000000..2405a54634d8
--- /dev/null
+++ b/doc/builders/packages/etc-files.section.md
@@ -0,0 +1,18 @@
+# /etc files {#etc}
+
+Certain calls in glibc require access to runtime files found in /etc such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.
+
+On non-NixOS distributions these files are typically provided by packages (i.e. [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.
+
+If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your _buildInputs_ then it will set the environment varaibles `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a _setup-hook_.
+
+
+```bash
+> nix-shell -p iana-etc
+
+[nix-shell:~]$ env | grep NIX_ETC
+NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services
+NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols
+```
+
+Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variable are *not set*, then it will attempt to find the files at the default location within _/etc_.
diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml
index f5b05b0bbccf..206e1e49f1f8 100644
--- a/doc/builders/packages/index.xml
+++ b/doc/builders/packages/index.xml
@@ -17,6 +17,7 @@
+
diff --git a/doc/builders/special.xml b/doc/builders/special.xml
index 8902ce5c8132..2f84599cdd4f 100644
--- a/doc/builders/special.xml
+++ b/doc/builders/special.xml
@@ -7,4 +7,5 @@
+
diff --git a/doc/builders/special/invalidateFetcherByDrvHash.section.md b/doc/builders/special/invalidateFetcherByDrvHash.section.md
new file mode 100644
index 000000000000..7c2f03a64b7b
--- /dev/null
+++ b/doc/builders/special/invalidateFetcherByDrvHash.section.md
@@ -0,0 +1,31 @@
+
+## `invalidateFetcherByDrvHash` {#sec-pkgs-invalidateFetcherByDrvHash}
+
+Use the derivation hash to invalidate the output via name, for testing.
+
+Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
+
+Normally, fixed output derivations can and should be cached by their output
+hash only, but for testing we want to re-fetch everytime the fetcher changes.
+
+Changes to the fetcher become apparent in the drvPath, which is a hash of
+how to fetch, rather than a fixed store path.
+By inserting this hash into the name, we can make sure to re-run the fetcher
+every time the fetcher changes.
+
+This relies on the assumption that Nix isn't clever enough to reuse its
+database of local store contents to optimize fetching.
+
+You might notice that the "salted" name derives from the normal invocation,
+not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
+function twice: once to get a derivation hash, and again to produce the final
+fixed output derivation.
+
+Example:
+
+ tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
+ name = "nix-source";
+ url = "https://github.com/NixOS/nix";
+ rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
+ sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
+ };
diff --git a/doc/builders/trivial-builders.chapter.md b/doc/builders/trivial-builders.chapter.md
index 46620e1b459c..c3a3572cd9f4 100644
--- a/doc/builders/trivial-builders.chapter.md
+++ b/doc/builders/trivial-builders.chapter.md
@@ -47,6 +47,28 @@ These functions write `text` to the Nix store. This is useful for creating scrip
Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
+## `writeShellApplication` {#trivial-builder-writeShellApplication}
+
+This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck).
+
+For example, look at the following code:
+
+```nix
+writeShellApplication {
+ name = "show-nixos-org";
+
+ runtimeInputs = [ curl w3m ];
+
+ text = ''
+ curl -s 'https://nixos.org' | w3m -dump -T text/html
+ '';
+}
+```
+
+Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH
+was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict
+validation.
+
## `symlinkJoin` {#trivial-builder-symlinkJoin}
This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md
index 85c8626bd99c..79d90c23a40f 100644
--- a/doc/contributing/coding-conventions.chapter.md
+++ b/doc/contributing/coding-conventions.chapter.md
@@ -181,6 +181,21 @@
rev = "${version}";
```
+- Building lists conditionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
+
+ ```nix
+ buildInputs = lib.optional stdenv.isDarwin iconv;
+ ```
+
+ instead of
+
+ ```nix
+ buildInputs = if stdenv.isDarwin then [ iconv ] else null;
+ ```
+
+ As an exception, an explicit conditional expression with null can be used when fixing a important bug without triggering a mass rebuild.
+ If this is done a follow up pull request _should_ be created to change the code to `lib.optional(s)`.
+
- Arguments should be listed in the order they are used, with the exception of `lib`, which always goes first.
## Package naming {#sec-package-naming}
diff --git a/doc/languages-frameworks/agda.section.md b/doc/languages-frameworks/agda.section.md
index 2b7c35f68d3b..775a7a1a6429 100644
--- a/doc/languages-frameworks/agda.section.md
+++ b/doc/languages-frameworks/agda.section.md
@@ -158,7 +158,23 @@ This can be overridden.
By default, Agda sources are files ending on `.agda`, or literate Agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised Agda source extensions can be extended by setting the `extraExtensions` config variable.
-## Adding Agda packages to Nixpkgs {#adding-agda-packages-to-nixpkgs}
+## Maintaining the Agda package set on Nixpkgs {#maintaining-the-agda-package-set-on-nixpkgs}
+
+We are aiming at providing all common Agda libraries as packages on `nixpkgs`,
+and keeping them up to date.
+Contributions and maintenance help is always appreciated,
+but the maintenance effort is typically low since the Agda ecosystem is quite small.
+
+The `nixpkgs` Agda package set tries to take up a role similar to that of [Stackage](https://www.stackage.org/) in the Haskell world.
+It is a curated set of libraries that:
+
+1. Always work together.
+2. Are as up-to-date as possible.
+
+While the Haskell ecosystem is huge, and Stackage is highly automatised,
+the Agda package set is small and can (still) be maintained by hand.
+
+### Adding Agda packages to Nixpkgs {#adding-agda-packages-to-nixpkgs}
To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
@@ -192,3 +208,49 @@ mkDerivation {
This library has a file called `.agda-lib`, and so we give an empty string to `libraryFile` as nothing precedes `.agda-lib` in the filename. This file contains `name: IAL-1.3`, and so we let `libraryName = "IAL-1.3"`. This library does not use an `Everything.agda` file and instead has a Makefile, so there is no need to set `everythingFile` and we set a custom `buildPhase`.
When writing an Agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes Agda to think that the nix store is a Agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).
+
+In the pull request adding this library,
+you can test whether it builds correctly by writing in a comment:
+
+```
+@ofborg build agdaPackages.iowa-stdlib
+```
+
+### Maintaining Agda packages
+
+As mentioned before, the aim is to have a compatible, and up-to-date package set.
+These two conditions sometimes exclude each other:
+For example, if we update `agdaPackages.standard-library` because there was an upstream release,
+this will typically break many reverse dependencies,
+i.e. downstream Agda libraries that depend on the standard library.
+In `nixpkgs` we are typically among the first to notice this,
+since we have build tests in place to check this.
+
+In a pull request updating e.g. the standard library, you should write the following comment:
+
+```
+@ofborg build agdaPackages.standard-library.passthru.tests
+```
+
+This will build all reverse dependencies of the standard library,
+for example `agdaPackages.agda-categories`, or `agdaPackages.generic`.
+
+In some cases it is useful to build _all_ Agda packages.
+This can be done with the following Github comment:
+
+```
+@ofborg build agda.passthru.tests.allPackages
+```
+
+Sometimes, the builds of the reverse dependencies fail because they have not yet been updated and released.
+You should drop the maintainers a quick issue notifying them of the breakage,
+citing the build error (which you can get from the ofborg logs).
+If you are motivated, you might even send a pull request that fixes it.
+Usually, the maintainers will answer within a week or two with a new release.
+Bumping the version of that reverse dependency should be a further commit on your PR.
+
+In the rare case that a new release is not to be expected within an acceptable time,
+simply mark the broken package as broken by setting `meta.broken = true;`.
+This will exclude it from the build test.
+It can be added later when it is fixed,
+and does not hinder the advancement of the whole package set in the meantime.
diff --git a/doc/languages-frameworks/crystal.section.md b/doc/languages-frameworks/crystal.section.md
index cbe31f9f0b2f..cbabba24f0c1 100644
--- a/doc/languages-frameworks/crystal.section.md
+++ b/doc/languages-frameworks/crystal.section.md
@@ -4,12 +4,12 @@
This section uses [Mint](https://github.com/mint-lang/mint) as an example for how to build a Crystal package.
-If the Crystal project has any dependencies, the first step is to get a `shards.nix` file encoding those. Get a copy of the project and go to its root directory such that its `shard.lock` file is in the current directory, then run `crystal2nix` in it
-
+If the Crystal project has any dependencies, the first step is to get a `shards.nix` file encoding those. Get a copy of the project and go to its root directory such that its `shard.lock` file is in the current directory. Executable projects should usually commit the `shard.lock` file, but sometimes that's not the case, which means you need to generate it yourself. With an existing `shard.lock` file, `crystal2nix` can be run.
```bash
$ git clone https://github.com/mint-lang/mint
$ cd mint
$ git checkout 0.5.0
+$ if [ ! -f shard.lock ]; then nix-shell -p shards --run "shards lock"; fi
$ nix-shell -p crystal2nix --run crystal2nix
```
diff --git a/doc/languages-frameworks/dhall.section.md b/doc/languages-frameworks/dhall.section.md
index d1adcbf736bf..4b49908b0b0c 100644
--- a/doc/languages-frameworks/dhall.section.md
+++ b/doc/languages-frameworks/dhall.section.md
@@ -50,7 +50,7 @@ expression does not protect the Prelude import with a semantic integrity
check, so the first step is to freeze the expression using `dhall freeze`,
like this:
-```bash
+```ShellSession
$ dhall freeze --inplace ./true.dhall
```
@@ -113,7 +113,7 @@ in
… which we can then build using this command:
-```bash
+```ShellSession
$ nix build --file ./example.nix dhallPackages.true
```
@@ -121,7 +121,7 @@ $ nix build --file ./example.nix dhallPackages.true
The above package produces the following directory tree:
-```bash
+```ShellSession
$ tree -a ./result
result
├── .cache
@@ -135,7 +135,7 @@ result
* `source.dhall` contains the result of interpreting our Dhall package:
- ```bash
+ ```ShellSession
$ cat ./result/source.dhall
True
```
@@ -143,7 +143,7 @@ result
* The `.cache` subdirectory contains one binary cache product encoding the
same result as `source.dhall`:
- ```bash
+ ```ShellSession
$ dhall decode < ./result/.cache/dhall/122027abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
True
```
@@ -151,7 +151,7 @@ result
* `binary.dhall` contains a Dhall expression which handles fetching and decoding
the same cache product:
- ```bash
+ ```ShellSession
$ cat ./result/binary.dhall
missing sha256:27abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
$ cp -r ./result/.cache .cache
@@ -168,7 +168,7 @@ to conserve disk space when they are used exclusively as dependencies. For
example, if we build the Prelude package it will only contain the binary
encoding of the expression:
-```bash
+```ShellSession
$ nix build --file ./example.nix dhallPackages.Prelude
$ tree -a result
@@ -199,7 +199,7 @@ Dhall overlay like this:
… and now the Prelude will contain the fully decoded result of interpreting
the Prelude:
-```bash
+```ShellSession
$ nix build --file ./example.nix dhallPackages.Prelude
$ tree -a result
@@ -302,7 +302,7 @@ Additionally, `buildDhallGitHubPackage` accepts the same arguments as
You can use the `dhall-to-nixpkgs` command-line utility to automate
packaging Dhall code. For example:
-```bash
+```ShellSession
$ nix-env --install --attr haskellPackages.dhall-nixpkgs
$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs
@@ -329,12 +329,12 @@ The utility takes care of automatically detecting remote imports and converting
them to package dependencies. You can also use the utility on local
Dhall directories, too:
-```bash
+```ShellSession
$ dhall-to-nixpkgs directory ~/proj/dhall-semver
{ buildDhallDirectoryPackage, Prelude }:
buildDhallDirectoryPackage {
name = "proj";
- src = /Users/gabriel/proj/dhall-semver;
+ src = ~/proj/dhall-semver;
file = "package.dhall";
source = false;
document = false;
@@ -342,6 +342,37 @@ $ dhall-to-nixpkgs directory ~/proj/dhall-semver
}
```
+### Remote imports as fixed-output derivations {#ssec-dhall-remote-imports-as-fod}
+
+`dhall-to-nixpkgs` has the ability to fetch and build remote imports as
+fixed-output derivations by using their Dhall integrity check. This is
+sometimes easier than manually packaging all remote imports.
+
+This can be used like the following:
+
+```ShellSession
+$ dhall-to-nixpkgs directory --fixed-output-derivations ~/proj/dhall-semver
+{ buildDhallDirectoryPackage, buildDhallUrl }:
+ buildDhallDirectoryPackage {
+ name = "proj";
+ src = ~/proj/dhall-semver;
+ file = "package.dhall";
+ source = false;
+ document = false;
+ dependencies = [
+ (buildDhallUrl {
+ url = "https://prelude.dhall-lang.org/v17.0.0/package.dhall";
+ hash = "sha256-ENs8kZwl6QRoM9+Jeo/+JwHcOQ+giT2VjDQwUkvlpD4=";
+ dhallHash = "sha256:10db3c919c25e9046833df897a8ffe2701dc390fa0893d958c3430524be5a43e";
+ })
+ ];
+ }
+```
+
+Here, `dhall-semver`'s `Prelude` dependency is fetched and built with the
+`buildDhallUrl` helper function, instead of being passed in as a function
+argument.
+
## Overriding dependency versions {#ssec-dhall-overriding-dependency-versions}
Suppose that we change our `true.dhall` example expression to depend on an older
@@ -359,7 +390,7 @@ in Prelude.Bool.not False
If we try to rebuild that expression the build will fail:
-```
+```ShellSession
$ nix build --file ./example.nix dhallPackages.true
builder for '/nix/store/0f1hla7ff1wiaqyk1r2ky4wnhnw114fi-true.drv' failed with exit code 1; last 10 log lines:
@@ -385,7 +416,7 @@ importing the URL.
However, we can override the default Prelude version by using `dhall-to-nixpkgs`
to create a Dhall package for our desired Prelude:
-```bash
+```ShellSession
$ dhall-to-nixpkgs github https://github.com/dhall-lang/dhall-lang.git \
--name Prelude \
--directory Prelude \
@@ -396,7 +427,7 @@ $ dhall-to-nixpkgs github https://github.com/dhall-lang/dhall-lang.git \
… and then referencing that package in our Dhall overlay, by either overriding
the Prelude globally for all packages, like this:
-```bash
+```nix
dhallOverrides = self: super: {
true = self.callPackage ./true.nix { };
@@ -407,7 +438,7 @@ the Prelude globally for all packages, like this:
… or selectively overriding the Prelude dependency for just the `true` package,
like this:
-```bash
+```nix
dhallOverrides = self: super: {
true = self.callPackage ./true.nix {
Prelude = self.callPackage ./Prelude.nix { };
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index 1bcb6e45210e..f2a5efd05db6 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -28,8 +28,7 @@ mkShell {
packages = [
(with dotnetCorePackages; combinePackages [
sdk_3_1
- sdk_3_0
- sdk_2_1
+ sdk_5_0
])
];
}
@@ -64,12 +63,50 @@ $ dotnet --info
The `dotnetCorePackages.sdk_X_Y` is preferred over the old dotnet-sdk as both major and minor version are very important for a dotnet environment. If a given minor version isn't present (or was changed), then this will likely break your ability to build a project.
-## dotnetCorePackages.sdk vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore {#dotnetcorepackages.sdk-vs-dotnetcorepackages.net-vs-dotnetcorepackages.netcore-vs-dotnetcorepackages.aspnetcore}
+## dotnetCorePackages.sdk vs dotnetCorePackages.runtime vs dotnetCorePackages.aspnetcore {#dotnetcorepackages.sdk-vs-dotnetcorepackages.runtime-vs-dotnetcorepackages.aspnetcore}
-The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `net`, `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications. For runtime versions >= .NET 5 `net` is used while `netcore` is used for older .NET Core runtime version.
+The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `runtime` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications.
## Packaging a Dotnet Application {#packaging-a-dotnet-application}
-Ideally, we would like to build against the sdk, then only have the dotnet runtime available in the runtime closure.
+To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
-TODO: Create closure-friendly way to package dotnet applications
+* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions.
+* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. This file should be generated using `nuget-to-nix` tool, which is available in nixpkgs.
+* `executables` is used to specify which executables get wrapped to `$out/bin`, relative to `$out/lib/$pname`. If this is unset, all executables generated will get installed. If you do not want to install any, set this to `[]`.
+* `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies.
+* `buildType` is used to change the type of build. Possible values are `Release`, `Debug`, etc. By default, this is set to `Release`.
+* `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used.
+* `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used. This can be either a regular dotnet runtime, or an aspnetcore.
+* `dotnet-test-sdk` is useful in cases where unit tests expect a different dotnet SDK. By default, this is set to the `dotnet-sdk` attribute.
+* `testProjectFile` is useful in cases where the regular project file does not contain the unit tests. By default, this is set to the `projectFile` attribute.
+* `disabledTests` is used to disable running specific unit tests. This gets passed as: `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all unit test frameworks.
+* `dotnetRestoreFlags` can be used to pass flags to `dotnet restore`.
+* `dotnetBuildFlags` can be used to pass flags to `dotnet build`.
+* `dotnetTestFlags` can be used to pass flags to `dotnet test`.
+* `dotnetInstallFlags` can be used to pass flags to `dotnet install`.
+* `dotnetFlags` can be used to pass flags to all of the above phases.
+
+Here is an example `default.nix`, using some of the previously discussed arguments:
+```nix
+{ lib, buildDotnetModule, dotnetCorePackages, ffmpeg }:
+
+buildDotnetModule rec {
+ pname = "someDotnetApplication";
+ version = "0.1";
+
+ src = ./.;
+
+ projectFile = "src/project.sln";
+ nugetDeps = ./deps.nix; # File generated with `nuget-to-nix path/to/src > deps.nix`.
+
+ dotnet-sdk = dotnetCorePackages.sdk_3_1;
+ dotnet-runtime = dotnetCorePackages.net_5_0;
+ dotnetFlags = [ "--runtime linux-x64" ];
+
+ executables = [ "foo" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`.
+ executables = []; # Don't install any executables.
+
+ runtimeDeps = [ ffmpeg ]; # This will wrap ffmpeg's library path into `LD_LIBRARY_PATH`.
+}
+```
diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml
index 29a1e089692f..f221693e764c 100644
--- a/doc/languages-frameworks/index.xml
+++ b/doc/languages-frameworks/index.xml
@@ -12,6 +12,7 @@
+
@@ -23,6 +24,7 @@
+
diff --git a/doc/languages-frameworks/java.section.md b/doc/languages-frameworks/java.section.md
index 77919d43f748..371bdf6323fb 100644
--- a/doc/languages-frameworks/java.section.md
+++ b/doc/languages-frameworks/java.section.md
@@ -72,6 +72,15 @@ in
...
```
+You can also specify what JDK your JRE should be based on, for example
+selecting a 'headless' build to avoid including a link to GTK+:
+
+```nix
+my_jre = pkgs.jre_minimal.override {
+ jdk = jdk11_headless;
+};
+```
+
Note all JDKs passthru `home`, so if your application requires
environment variables like `JAVA_HOME` being set, that can be done in a
generic fashion with the `--set` argument of `makeWrapper`:
diff --git a/doc/languages-frameworks/nim.section.md b/doc/languages-frameworks/nim.section.md
new file mode 100644
index 000000000000..16dce61d71c9
--- /dev/null
+++ b/doc/languages-frameworks/nim.section.md
@@ -0,0 +1,91 @@
+# Nim {#nim}
+
+## Overview {#nim-overview}
+
+The Nim compiler, a builder function, and some packaged libraries are available
+in Nixpkgs. Until now each compiler release has been effectively backwards
+compatible so only the latest version is available.
+
+## Nim program packages in Nixpkgs {#nim-program-packages-in-nixpkgs}
+
+Nim programs can be built using `nimPackages.buildNimPackage`. In the
+case of packages not containing exported library code the attribute
+`nimBinOnly` should be set to `true`.
+
+The following example shows a Nim program that depends only on Nim libraries:
+
+```nix
+{ lib, nimPackages, fetchurl }:
+
+nimPackages.buildNimPackage rec {
+ pname = "hottext";
+ version = "1.4";
+
+ nimBinOnly = true;
+
+ src = fetchurl {
+ url = "https://git.sr.ht/~ehmry/hottext/archive/v${version}.tar.gz";
+ sha256 = "sha256-hIUofi81zowSMbt1lUsxCnVzfJGN3FEiTtN8CEFpwzY=";
+ };
+
+ buildInputs = with nimPackages; [
+ bumpy
+ chroma
+ flatty
+ nimsimd
+ pixie
+ sdl2
+ typography
+ vmath
+ zippy
+ ];
+}
+
+```
+
+## Nim library packages in Nixpkgs {#nim-library-packages-in-nixpkgs}
+
+
+Nim libraries can also be built using `nimPackages.buildNimPackage`, but
+often the product of a fetcher is sufficient to satisfy a dependency.
+The `fetchgit`, `fetchFromGitHub`, and `fetchNimble` functions yield an
+output that can be discovered during the `configurePhase` of `buildNimPackage`.
+
+Nim library packages are listed in
+[pkgs/top-level/nim-packages.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/nim-packages.nix) and implemented at
+[pkgs/development/nim-packages](https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/nim-packages).
+
+The following example shows a Nim library that propagates a dependency on a
+non-Nim package:
+```nix
+{ lib, buildNimPackage, fetchNimble, SDL2 }:
+
+buildNimPackage rec {
+ pname = "sdl2";
+ version = "2.0.4";
+ src = fetchNimble {
+ inherit pname version;
+ hash = "sha256-Vtcj8goI4zZPQs2TbFoBFlcR5UqDtOldaXSH/+/xULk=";
+ };
+ propagatedBuildInputs = [ SDL2 ];
+}
+```
+
+## `buildNimPackage` parameters {#buildnimpackage-parameters}
+
+All parameters from `stdenv.mkDerivation` function are still supported. The
+following are specific to `buildNimPackage`:
+
+* `nimBinOnly ? false`: If `true` then build only the programs listed in
+ the Nimble file in the packages sources.
+* `nimbleFile`: Specify the Nimble file location of the package being built
+ rather than discover the file at build-time.
+* `nimRelease ? true`: Build the package in *release* mode.
+* `nimDefines ? []`: A list of Nim defines. Key-value tuples are not supported.
+* `nimFlags ? []`: A list of command line arguments to pass to the Nim compiler.
+ Use this to specify defines with arguments in the form of `-d:${name}=${value}`.
+* `nimDoc` ? false`: Build and install HTML documentation.
+
+* `buildInputs` ? []: The packages listed here will be searched for `*.nimble`
+ files which are used to populate the Nim library path. Otherwise the standard
+ behavior is in effect.
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index cc1a7083dc25..53466921887c 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -765,7 +765,7 @@ and in this case the `python38` interpreter is automatically used.
### Interpreters {#interpreters}
Versions 2.7, 3.6, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
-respectively `python27`, `python36`, `python37`, `python38` and `python39`. The
+respectively `python27`, `python37`, `python38` and `python39`. The
aliases `python2` and `python3` correspond to respectively `python27` and
`python39`. The attribute `python` maps to `python2`. The PyPy interpreters
compatible with Python 2.7 and 3 are available as `pypy27` and `pypy3`, with
@@ -830,10 +830,10 @@ attribute set is created for each available Python interpreter. The available
sets are
* `pkgs.python27Packages`
-* `pkgs.python36Packages`
* `pkgs.python37Packages`
* `pkgs.python38Packages`
* `pkgs.python39Packages`
+* `pkgs.python310Packages`
* `pkgs.pypyPackages`
and the aliases
diff --git a/doc/languages-frameworks/r.section.md b/doc/languages-frameworks/r.section.md
index 56e3da64df2a..ad0fb10987c9 100644
--- a/doc/languages-frameworks/r.section.md
+++ b/doc/languages-frameworks/r.section.md
@@ -96,6 +96,11 @@ re-enter the shell.
## Updating the package set {#updating-the-package-set}
+There is a script and associated environment for regenerating the package
+sets and synchronising the rPackages tree to the current CRAN and matching
+BIOC release. These scripts are found in the `pkgs/development/r-modules`
+directory and executed as follows:
+
```bash
nix-shell generate-shell.nix
@@ -112,12 +117,11 @@ Rscript generate-r-packages.R bioc-experiment > bioc-experiment-packages.nix.new
mv bioc-experiment-packages.nix.new bioc-experiment-packages.nix
```
-`generate-r-packages.R ` reads `-packages.nix`, therefor the renaming.
+`generate-r-packages.R ` reads `-packages.nix`, therefore
+the renaming.
-## Testing if the Nix-expression could be evaluated {#testing-if-the-nix-expression-could-be-evaluated}
-
-```bash
-nix-build test-evaluation.nix --dry-run
-```
-
-If this exits fine, the expression is ok. If not, you have to edit `default.nix`
+Some packages require overrides to specify external dependencies or other
+patches and special requirements. These overrides are specified in the
+`pkgs/development/r-modules/default.nix` file. As the `*-packages.nix`
+contents are automatically generated it should not be edited and broken
+builds should be addressed using overrides.
diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md
index 36b794458cba..5e2f72ed61ec 100644
--- a/doc/languages-frameworks/ruby.section.md
+++ b/doc/languages-frameworks/ruby.section.md
@@ -8,7 +8,7 @@ In the Nixpkgs tree, Ruby packages can be found throughout, depending on what th
There are two main approaches for using Ruby with gems. One is to use a specifically locked `Gemfile` for an application that has very strict dependencies. The other is to depend on the common gems, which we'll explain further down, and rely on them being updated regularly.
-The interpreters have common attributes, namely `gems`, and `withPackages`. So you can refer to `ruby.gems.nokogiri`, or `ruby_2_6.gems.nokogiri` to get the Nokogiri gem already compiled and ready to use.
+The interpreters have common attributes, namely `gems`, and `withPackages`. So you can refer to `ruby.gems.nokogiri`, or `ruby_2_7.gems.nokogiri` to get the Nokogiri gem already compiled and ready to use.
Since not all gems have executables like `nokogiri`, it's usually more convenient to use the `withPackages` function like this: `ruby.withPackages (p: with p; [ nokogiri ])`. This will also make sure that the Ruby in your environment will be able to find the gem and it can be used in your Ruby code (for example via `ruby` or `irb` executables) via `require "nokogiri"` as usual.
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 71f197af53da..e7e804b99634 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -13,7 +13,7 @@ into your `configuration.nix` or bring them into scope with `nix-shell -p rustc
For other versions such as daily builds (beta and nightly),
use either `rustup` from nixpkgs (which will manage the rust installation in your home directory),
-or use Mozilla's [Rust nightlies overlay](#using-the-rust-nightlies-overlay).
+or use a community maintained [Rust overlay](#using-community-rust-overlays).
## Compiling Rust applications with Cargo {#compiling-rust-applications-with-cargo}
@@ -116,22 +116,44 @@ is updated after every change to `Cargo.lock`. Therefore,
a `Cargo.lock` file using the `cargoLock` argument. For example:
```nix
-rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage {
pname = "myproject";
version = "1.0.0";
cargoLock = {
lockFile = ./Cargo.lock;
- }
+ };
# ...
}
```
This will retrieve the dependencies using fixed-output derivations from
-the specified lockfile. Note that setting `cargoLock.lockFile` doesn't
-add a `Cargo.lock` to your `src`, and a `Cargo.lock` is still required
-to build a rust package. A simple fix is to use:
+the specified lockfile.
+
+One caveat is that `Cargo.lock` cannot be patched in the `patchPhase`
+because it runs after the dependencies have already been fetched. If
+you need to patch or generate the lockfile you can alternatively set
+`cargoLock.lockFileContents` to a string of its contents:
+
+```nix
+rustPlatform.buildRustPackage {
+ pname = "myproject";
+ version = "1.0.0";
+
+ cargoLock = let
+ fixupLockFile = path: f (builtins.readFile path);
+ in {
+ lockFileContents = fixupLockFile ./Cargo.lock;
+ };
+
+ # ...
+}
+```
+
+Note that setting `cargoLock.lockFile` or `cargoLock.lockFileContents`
+doesn't add a `Cargo.lock` to your `src`, and a `Cargo.lock` is still
+required to build a rust package. A simple fix is to use:
```nix
postPatch = ''
@@ -215,22 +237,6 @@ where they are known to differ. But there are ways to customize the argument:
--target /nix/store/asdfasdfsadf-thumb-crazy.json # contains {"foo":"","bar":""}
```
-Finally, as an ad-hoc escape hatch, a computed target (string or JSON file
-path) can be passed directly to `buildRustPackage`:
-
-```nix
-pkgs.rustPlatform.buildRustPackage {
- /* ... */
- target = "x86_64-fortanix-unknown-sgx";
-}
-```
-
-This is useful to avoid rebuilding Rust tools, since they are actually target
-agnostic and don't need to be rebuilt. But in the future, we should always
-build the Rust tools and standard library crates separately so there is no
-reason not to take the `stdenv.hostPlatform.rustc`-modifying approach, and the
-ad-hoc escape hatch to `buildRustPackage` can be removed.
-
Note that currently custom targets aren't compiled with `std`, so `cargo test`
will fail. This can be ignored by adding `doCheck = false;` to your derivation.
@@ -405,7 +411,7 @@ you of the correct hash.
`rustPlatform` provides the following hooks to automate Cargo builds:
-* `cargoSetupHook`: configure Cargo to use depenencies vendored
+* `cargoSetupHook`: configure Cargo to use dependencies vendored
through `fetchCargoTarball`. This hook uses the `cargoDeps`
environment variable to find the vendored dependencies. If a project
already vendors its dependencies, the variable `cargoVendorDir` can
@@ -420,7 +426,7 @@ you of the correct hash.
* `maturinBuildHook`: use [Maturin](https://github.com/PyO3/maturin)
to build a Python wheel. Similar to `cargoBuildHook`, the optional
variable `buildAndTestSubdir` can be used to build a crate in a
- Cargo workspace. Additional maturin flags can be passed through
+ Cargo workspace. Additional Maturin flags can be passed through
`maturinBuildFlags`.
* `cargoCheckHook`: run tests using Cargo. The build type for checks
can be set using `cargoCheckType`. Additional flags can be passed to
@@ -441,7 +447,7 @@ dependencies. The build itself is then performed by
The following example outlines how the `tokenizers` Python package is
built. Since the Python package is in the `source/bindings/python`
-directory of the *tokenizers* project's source archive, we use
+directory of the `tokenizers` project's source archive, we use
`sourceRoot` to point the tooling to this directory:
```nix
@@ -666,7 +672,7 @@ Some crates require external libraries. For crates from
`defaultCrateOverrides` package in nixpkgs itself.
Starting from that file, one can add more overrides, to add features
-or build inputs by overriding the hello crate in a seperate file.
+or build inputs by overriding the hello crate in a separate file.
```nix
with import {};
@@ -723,7 +729,7 @@ with import {};
Actually, the overrides introduced in the previous section are more
general. A number of other parameters can be overridden:
-- The version of rustc used to compile the crate:
+- The version of `rustc` used to compile the crate:
```nix
(hello {}).override { rust = pkgs.rust; };
@@ -736,7 +742,7 @@ general. A number of other parameters can be overridden:
(hello {}).override { release = false; };
```
-- Whether to print the commands sent to rustc when building
+- Whether to print the commands sent to `rustc` when building
(equivalent to `--verbose` in cargo:
```nix
@@ -865,11 +871,87 @@ rustc 1.26.0-nightly (188e693b3 2018-03-26)
To see that you are using nightly.
-## Using the Rust nightlies overlay {#using-the-rust-nightlies-overlay}
+## Using community Rust overlays {#using-community-rust-overlays}
-Mozilla provides an overlay for nixpkgs to bring a nightly version of Rust into scope.
-This overlay can _also_ be used to install recent unstable or stable versions
-of Rust, if desired.
+There are two community maintained approaches to Rust toolchain management:
+- [oxalica's Rust overlay](https://github.com/oxalica/rust-overlay)
+- [fenix](https://github.com/nix-community/fenix)
+
+Oxalica's overlay allows you to select a particular Rust version and components.
+See [their documentation](https://github.com/oxalica/rust-overlay#rust-overlay) for more
+detailed usage.
+
+Fenix is an alternative to `rustup` and can also be used as an overlay.
+
+Both oxalica's overlay and fenix better integrate with nix and cache optimizations.
+Because of this and ergonomics, either of those community projects
+should be preferred to the Mozilla's Rust overlay (`nixpkgs-mozilla`).
+
+### How to select a specific `rustc` and toolchain version {#how-to-select-a-specific-rustc-and-toolchain-version}
+
+You can consume the oxalica overlay and use it to grab a specific Rust toolchain version.
+Here is an example `shell.nix` showing how to grab the current stable toolchain:
+```nix
+{ pkgs ? import {
+ overlays = [
+ (import (fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
+ ];
+ }
+}:
+pkgs.mkShell {
+ nativeBuildInputs = with pkgs; [
+ pkg-config
+ rust-bin.stable.latest.minimal
+ ];
+}
+```
+
+You can try this out by:
+1. Saving that to `shell.nix`
+2. Executing `nix-shell --pure --command 'rustc --version'`
+
+As of writing, this prints out `rustc 1.56.0 (09c42c458 2021-10-18)`.
+
+### How to use an overlay toolchain in a derivation {#how-to-use-an-overlay-toolchain-in-a-derivation}
+
+You can also use an overlay's Rust toolchain with `buildRustPackage`.
+The below snippet demonstrates invoking `buildRustPackage` with an oxalica overlay selected Rust toolchain:
+```nix
+with import {
+ overlays = [
+ (import (fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
+ ];
+};
+
+rustPlatform.buildRustPackage rec {
+ pname = "ripgrep";
+ version = "12.1.1";
+ nativeBuildInputs = [
+ rust-bin.stable.latest.minimal
+ ];
+
+ src = fetchFromGitHub {
+ owner = "BurntSushi";
+ repo = "ripgrep";
+ rev = version;
+ sha256 = "1hqps7l5qrjh9f914r5i6kmcz6f1yb951nv4lby0cjnp5l253kps";
+ };
+
+ cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
+
+ meta = with lib; {
+ description = "A fast line-oriented regex search tool, similar to ag and ack";
+ homepage = "https://github.com/BurntSushi/ripgrep";
+ license = licenses.unlicense;
+ maintainers = [ maintainers.tailhook ];
+ };
+}
+```
+
+Follow the below steps to try that snippet.
+1. create a new directory
+1. save the above snippet as `default.nix` in that directory
+1. cd into that directory and run `nix-build`
### Rust overlay installation {#rust-overlay-installation}
@@ -877,27 +959,15 @@ You can use this overlay by either changing your local nixpkgs configuration,
or by adding the overlay declaratively in a nix expression, e.g. in `configuration.nix`.
For more information see [the manual on installing overlays](#sec-overlays-install).
-#### Imperative rust overlay installation {#imperative-rust-overlay-installation}
-
-Clone [nixpkgs-mozilla](https://github.com/mozilla/nixpkgs-mozilla),
-and create a symbolic link to the file
-[rust-overlay.nix](https://github.com/mozilla/nixpkgs-mozilla/blob/master/rust-overlay.nix)
-in the `~/.config/nixpkgs/overlays` directory.
-
-```ShellSession
-$ git clone https://github.com/mozilla/nixpkgs-mozilla.git
-$ mkdir -p ~/.config/nixpkgs/overlays
-$ ln -s $(pwd)/nixpkgs-mozilla/rust-overlay.nix ~/.config/nixpkgs/overlays/rust-overlay.nix
-```
-
-### Declarative rust overlay installation {#declarative-rust-overlay-installation}
+### Declarative Rust overlay installation {#declarative-rust-overlay-installation}
+This snippet shows how to use oxalica's Rust overlay.
Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
```nix
{ pkgs ? import {
overlays = [
- (import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
+ (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
# Further overlays go here
];
};
@@ -905,36 +975,3 @@ Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.
```
Note that this will fetch the latest overlay version when rebuilding your system.
-
-### Rust overlay usage {#rust-overlay-usage}
-
-The overlay contains attribute sets corresponding to different versions of the rust toolchain, such as:
-
-* `latest.rustChannels.stable`
-* `latest.rustChannels.nightly`
-* a function `rustChannelOf`, called as `(rustChannelOf { date = "2018-04-11"; channel = "nightly"; })`, or...
-* `(nixpkgs.rustChannelOf { rustToolchain = ./rust-toolchain; })` if you have a local `rust-toolchain` file (see https://github.com/mozilla/nixpkgs-mozilla#using-in-nix-expressions for an example)
-
-Each of these contain packages such as `rust`, which contains your usual rust development tools with the respective toolchain chosen.
-For example, you might want to add `latest.rustChannels.stable.rust` to the list of packages in your configuration.
-
-Imperatively, the latest stable version can be installed with the following command:
-
-```ShellSession
-$ nix-env -Ai nixpkgs.latest.rustChannels.stable.rust
-```
-
-Or using the attribute with nix-shell:
-
-```ShellSession
-$ nix-shell -p nixpkgs.latest.rustChannels.stable.rust
-```
-
-Substitute the `nixpkgs` prefix with `nixos` on NixOS.
-To install the beta or nightly channel, "stable" should be substituted by
-"nightly" or "beta", or
-use the function provided by this overlay to pull a version based on a
-build date.
-
-The overlay automatically updates itself as it uses the same source as
-[rustup](https://www.rustup.rs/).
diff --git a/doc/stdenv/cross-compilation.chapter.md b/doc/stdenv/cross-compilation.chapter.md
index 53522962a5c9..f6e61a1af196 100644
--- a/doc/stdenv/cross-compilation.chapter.md
+++ b/doc/stdenv/cross-compilation.chapter.md
@@ -158,9 +158,9 @@ One would think that `localSystem` and `crossSystem` overlap horribly with the t
### Implementation of dependencies {#ssec-cross-dependency-implementation}
-The categories of dependencies developed in [](#ssec-cross-dependency-categorization) are specified as lists of derivations given to `mkDerivation`, as documented in [](#ssec-stdenv-dependencies). In short, each list of dependencies for "host → target" of "foo → bar" is called `depsFooBar`, with exceptions for backwards compatibility that `depsBuildHost` is instead called `nativeBuildInputs` and `depsHostTarget` is instead called `buildInputs`. Nixpkgs is now structured so that each `depsFooBar` is automatically taken from `pkgsFooBar`. (These `pkgsFooBar`s are quite new, so there is no special case for `nativeBuildInputs` and `buildInputs`.) For example, `pkgsBuildHost.gcc` should be used at build-time, while `pkgsHostTarget.gcc` should be used at run-time.
+The categories of dependencies developed in [](#ssec-cross-dependency-categorization) are specified as lists of derivations given to `mkDerivation`, as documented in [](#ssec-stdenv-dependencies). In short, each list of dependencies for "host → target" is called `deps` (where `host`, and `target` values are either `build`, `host`, or `target`), with exceptions for backwards compatibility that `depsBuildHost` is instead called `nativeBuildInputs` and `depsHostTarget` is instead called `buildInputs`. Nixpkgs is now structured so that each `deps` is automatically taken from `pkgs`. (These `pkgs`s are quite new, so there is no special case for `nativeBuildInputs` and `buildInputs`.) For example, `pkgsBuildHost.gcc` should be used at build-time, while `pkgsHostTarget.gcc` should be used at run-time.
-Now, for most of Nixpkgs's history, there were no `pkgsFooBar` attributes, and most packages have not been refactored to use it explicitly. Prior to those, there were just `buildPackages`, `pkgs`, and `targetPackages`. Those are now redefined as aliases to `pkgsBuildHost`, `pkgsHostTarget`, and `pkgsTargetTarget`. It is acceptable, even recommended, to use them for libraries to show that the host platform is irrelevant.
+Now, for most of Nixpkgs's history, there were no `pkgs` attributes, and most packages have not been refactored to use it explicitly. Prior to those, there were just `buildPackages`, `pkgs`, and `targetPackages`. Those are now redefined as aliases to `pkgsBuildHost`, `pkgsHostTarget`, and `pkgsTargetTarget`. It is acceptable, even recommended, to use them for libraries to show that the host platform is irrelevant.
But before that, there was just `pkgs`, even though both `buildInputs` and `nativeBuildInputs` existed. \[Cross barely worked, and those were implemented with some hacks on `mkDerivation` to override dependencies.\] What this means is the vast majority of packages do not use any explicit package set to populate their dependencies, just using whatever `callPackage` gives them even if they do correctly sort their dependencies into the multiple lists described above. And indeed, asking that users both sort their dependencies, _and_ take them from the right attribute set, is both too onerous and redundant, so the recommended approach (for now) is to continue just categorizing by list and not using an explicit package set.
diff --git a/doc/stdenv/multiple-output.chapter.md b/doc/stdenv/multiple-output.chapter.md
index d04f83302ac4..62bf543e51e5 100644
--- a/doc/stdenv/multiple-output.chapter.md
+++ b/doc/stdenv/multiple-output.chapter.md
@@ -79,7 +79,7 @@ A commonly adopted convention in `nixpkgs` is that executables provided by the p
The `glibc` package is a deliberate single exception to the “binaries first” convention. The `glibc` has `libs` as its first output allowing the libraries provided by `glibc` to be referenced directly (e.g. `${stdenv.glibc}/lib/ld-linux-x86-64.so.2`). The executables provided by `glibc` can be accessed via its `bin` attribute (e.g. `${stdenv.glibc.bin}/bin/ldd`).
-The reason for why `glibc` deviates from the convention is because referencing a library provided by `glibc` is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of `glibc` libraries from Nix packages (please see the documentation on [patchelf](https://github.com/NixOS/patchelf/blob/master/README) for more details).
+The reason for why `glibc` deviates from the convention is because referencing a library provided by `glibc` is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of `glibc` libraries from Nix packages (please see the documentation on [patchelf](https://github.com/NixOS/patchelf) for more details).
### File type groups {#multiple-output-file-type-groups}
diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md
index 9befcaa51a9a..c108fffd1b01 100644
--- a/doc/stdenv/stdenv.chapter.md
+++ b/doc/stdenv/stdenv.chapter.md
@@ -116,15 +116,27 @@ On Linux, `stdenv` also includes the `patchelf` utility.
## Specifying dependencies {#ssec-stdenv-dependencies}
-As described in the Nix manual, almost any `*.drv` store path in a derivation’s attribute set will induce a dependency on that derivation. `mkDerivation`, however, takes a few attributes intended to, between them, include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the `PATH`. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See [](#ssec-setup-hooks) for details.
+As described in the Nix manual, almost any `*.drv` store path in a derivation’s attribute set will induce a dependency on that derivation. `mkDerivation`, however, takes a few attributes intended to include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the `PATH`. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See [](#ssec-setup-hooks) for details.
Dependencies can be broken down along three axes: their host and target platforms relative to the new derivation’s, and whether they are propagated. The platform distinctions are motivated by cross compilation; see [](#chap-cross) for exactly what each platform means. [^footnote-stdenv-ignored-build-platform] But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with `strictDeps` set it is mostly enforced even in the native case.
The extension of `PATH` with dependencies, alluded to above, proceeds according to the relative platforms alone. The process is carried out only for dependencies whose host platform matches the new derivation’s build platform i.e. dependencies which run on the platform where the new derivation will be built. [^footnote-stdenv-native-dependencies-in-path] For each dependency \ of those dependencies, `dep/bin`, if present, is added to the `PATH` environment variable.
-The dependency is propagated when it forces some of its other-transitive (non-immediate) downstream dependencies to also take it on as an immediate dependency. Nix itself already takes a package’s transitive dependencies into account, but this propagation ensures nixpkgs-specific infrastructure like setup hooks (mentioned above) also are run as if the propagated dependency.
+A dependency is said to be **propagated** when some of its other-transitive (non-immediate) downstream dependencies also need it as an immediate dependency.
+[^footnote-stdenv-propagated-dependencies]
-It is important to note that dependencies are not necessarily propagated as the same sort of dependency that they were before, but rather as the corresponding sort so that the platform rules still line up. The exact rules for dependency propagation can be given by assigning to each dependency two integers based one how its host and target platforms are offset from the depending derivation’s platforms. Those offsets are given below in the descriptions of each dependency list attribute. Algorithmically, we traverse propagated inputs, accumulating every propagated dependency’s propagated dependencies and adjusting them to account for the “shift in perspective” described by the current dependency’s platform offsets. This results in sort a transitive closure of the dependency relation, with the offsets being approximately summed when two dependency links are combined. We also prune transitive dependencies whose combined offsets go out-of-bounds, which can be viewed as a filter over that transitive closure removing dependencies that are blatantly absurd.
+It is important to note that dependencies are not necessarily propagated as the same sort of dependency that they were before, but rather as the corresponding sort so that the platform rules still line up. To determine the exact rules for dependency propagation, we start by assigning to each dependency a couple of ternary numbers (`-1` for `build`, `0` for `host`, and `1` for `target`), representing how respectively its host and target platforms are "offset" from the depending derivation’s platforms. The following table summarize the different combinations that can be obtained:
+
+| `host → target` | attribute name | offset |
+| ------------------- | ------------------- | -------- |
+| `build --> build` | `depsBuildBuild` | `-1, -1` |
+| `build --> host` | `nativeBuildInputs` | `-1, 0` |
+| `build --> target` | `depsBuildTarget` | `-1, 1` |
+| `host --> host` | `depsHostHost` | `0, 0` |
+| `host --> target` | `buildInputs` | `0, 1` |
+| `target --> target` | `depsTargetTarget` | `1, 1` |
+
+Algorithmically, we traverse propagated inputs, accumulating every propagated dependency’s propagated dependencies and adjusting them to account for the “shift in perspective” described by the current dependency’s platform offsets. This results is sort of a transitive closure of the dependency relation, with the offsets being approximately summed when two dependency links are combined. We also prune transitive dependencies whose combined offsets go out-of-bounds, which can be viewed as a filter over that transitive closure removing dependencies that are blatantly absurd.
We can define the process precisely with [Natural Deduction](https://en.wikipedia.org/wiki/Natural_deduction) using the inference rules. This probably seems a bit obtuse, but so is the bash code that actually implements it! [^footnote-stdenv-find-inputs-location] They’re confusing in very different ways so… hopefully if something doesn’t make sense in one presentation, it will in the other!
@@ -179,37 +191,37 @@ Overall, the unifying theme here is that propagation shouldn’t be introducing
#### `depsBuildBuild` {#var-stdenv-depsBuildBuild}
-A list of dependencies whose host and target platforms are the new derivation’s build platform. This means a `-1` host and `-1` target offset from the new derivation’s platforms. These are programs and libraries used at build time that produce programs and libraries also used at build time. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it in `nativeBuildInputs` instead. The most common use of this `buildPackages.stdenv.cc`, the default C compiler for this role. That example crops up more than one might think in old commonly used C libraries.
+A list of dependencies whose host and target platforms are the new derivation’s build platform. These are programs and libraries used at build time that produce programs and libraries also used at build time. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it in `nativeBuildInputs` instead. The most common use of this `buildPackages.stdenv.cc`, the default C compiler for this role. That example crops up more than one might think in old commonly used C libraries.
Since these packages are able to be run at build-time, they are always added to the `PATH`, as described above. But since these packages are only guaranteed to be able to run then, they shouldn’t persist as run-time dependencies. This isn’t currently enforced, but could be in the future.
#### `nativeBuildInputs` {#var-stdenv-nativeBuildInputs}
-A list of dependencies whose host platform is the new derivation’s build platform, and target platform is the new derivation’s host platform. This means a `-1` host offset and `0` target offset from the new derivation’s platforms. These are programs and libraries used at build-time that, if they are a compiler or similar tool, produce code to run at run-time—i.e. tools used to build the new derivation. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it here, rather than in `depsBuildBuild` or `depsBuildTarget`. This could be called `depsBuildHost` but `nativeBuildInputs` is used for historical continuity.
+A list of dependencies whose host platform is the new derivation’s build platform, and target platform is the new derivation’s host platform. These are programs and libraries used at build-time that, if they are a compiler or similar tool, produce code to run at run-time—i.e. tools used to build the new derivation. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it here, rather than in `depsBuildBuild` or `depsBuildTarget`. This could be called `depsBuildHost` but `nativeBuildInputs` is used for historical continuity.
Since these packages are able to be run at build-time, they are added to the `PATH`, as described above. But since these packages are only guaranteed to be able to run then, they shouldn’t persist as run-time dependencies. This isn’t currently enforced, but could be in the future.
#### `depsBuildTarget` {#var-stdenv-depsBuildTarget}
-A list of dependencies whose host platform is the new derivation’s build platform, and target platform is the new derivation’s target platform. This means a `-1` host offset and `1` target offset from the new derivation’s platforms. These are programs used at build time that produce code to run with code produced by the depending package. Most commonly, these are tools used to build the runtime or standard library that the currently-being-built compiler will inject into any code it compiles. In many cases, the currently-being-built-compiler is itself employed for that task, but when that compiler won’t run (i.e. its build and host platform differ) this is not possible. Other times, the compiler relies on some other tool, like binutils, that is always built separately so that the dependency is unconditional.
+A list of dependencies whose host platform is the new derivation’s build platform, and target platform is the new derivation’s target platform. These are programs used at build time that produce code to run with code produced by the depending package. Most commonly, these are tools used to build the runtime or standard library that the currently-being-built compiler will inject into any code it compiles. In many cases, the currently-being-built-compiler is itself employed for that task, but when that compiler won’t run (i.e. its build and host platform differ) this is not possible. Other times, the compiler relies on some other tool, like binutils, that is always built separately so that the dependency is unconditional.
-This is a somewhat confusing concept to wrap one’s head around, and for good reason. As the only dependency type where the platform offsets are not adjacent integers, it requires thinking of a bootstrapping stage *two* away from the current one. It and its use-case go hand in hand and are both considered poor form: try to not need this sort of dependency, and try to avoid building standard libraries and runtimes in the same derivation as the compiler produces code using them. Instead strive to build those like a normal library, using the newly-built compiler just as a normal library would. In short, do not use this attribute unless you are packaging a compiler and are sure it is needed.
+This is a somewhat confusing concept to wrap one’s head around, and for good reason. As the only dependency type where the platform offsets, `-1` and `1`, are not adjacent integers, it requires thinking of a bootstrapping stage *two* away from the current one. It and its use-case go hand in hand and are both considered poor form: try to not need this sort of dependency, and try to avoid building standard libraries and runtimes in the same derivation as the compiler produces code using them. Instead strive to build those like a normal library, using the newly-built compiler just as a normal library would. In short, do not use this attribute unless you are packaging a compiler and are sure it is needed.
Since these packages are able to run at build time, they are added to the `PATH`, as described above. But since these packages are only guaranteed to be able to run then, they shouldn’t persist as run-time dependencies. This isn’t currently enforced, but could be in the future.
#### `depsHostHost` {#var-stdenv-depsHostHost}
-A list of dependencies whose host and target platforms match the new derivation’s host platform. This means a `0` host offset and `0` target offset from the new derivation’s host platform. These are packages used at run-time to generate code also used at run-time. In practice, this would usually be tools used by compilers for macros or a metaprogramming system, or libraries used by the macros or metaprogramming code itself. It’s always preferable to use a `depsBuildBuild` dependency in the derivation being built over a `depsHostHost` on the tool doing the building for this purpose.
+A list of dependencies whose host and target platforms match the new derivation’s host platform. In practice, this would usually be tools used by compilers for macros or a metaprogramming system, or libraries used by the macros or metaprogramming code itself. It’s always preferable to use a `depsBuildBuild` dependency in the derivation being built over a `depsHostHost` on the tool doing the building for this purpose.
#### `buildInputs` {#var-stdenv-buildInputs}
-A list of dependencies whose host platform and target platform match the new derivation’s. This means a `0` host offset and a `1` target offset from the new derivation’s host platform. This would be called `depsHostTarget` but for historical continuity. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it here, rather than in `depsBuildBuild`.
+A list of dependencies whose host platform and target platform match the new derivation’s. This would be called `depsHostTarget` but for historical continuity. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it here, rather than in `depsBuildBuild`.
These are often programs and libraries used by the new derivation at *run*-time, but that isn’t always the case. For example, the machine code in a statically-linked library is only used at run-time, but the derivation containing the library is only needed at build-time. Even in the dynamic case, the library may also be needed at build-time to appease the linker.
#### `depsTargetTarget` {#var-stdenv-depsTargetTarget}
-A list of dependencies whose host platform matches the new derivation’s target platform. This means a `1` offset from the new derivation’s platforms. These are packages that run on the target platform, e.g. the standard library or run-time deps of standard library that a compiler insists on knowing about. It’s poor form in almost all cases for a package to depend on another from a future stage \[future stage corresponding to positive offset\]. Do not use this attribute unless you are packaging a compiler and are sure it is needed.
+A list of dependencies whose host platform matches the new derivation’s target platform. These are packages that run on the target platform, e.g. the standard library or run-time deps of standard library that a compiler insists on knowing about. It’s poor form in almost all cases for a package to depend on another from a future stage \[future stage corresponding to positive offset\]. Do not use this attribute unless you are packaging a compiler and are sure it is needed.
#### `depsBuildBuildPropagated` {#var-stdenv-depsBuildBuildPropagated}
@@ -373,11 +385,11 @@ Additional file types can be supported by setting the `unpackCmd` variable (see
##### `srcs` / `src` {#var-stdenv-src}
-The list of source files or directories to be unpacked or copied. One of these must be set.
+The list of source files or directories to be unpacked or copied. One of these must be set. Note that if you use `srcs`, you should also set `sourceRoot` or `setSourceRoot`.
##### `sourceRoot` {#var-stdenv-sourceRoot}
-After running `unpackPhase`, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set `sourceRoot` to the name of the intended directory.
+After running `unpackPhase`, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set `sourceRoot` to the name of the intended directory. Set `sourceRoot = ".";` if you use `srcs` and control the unpack phase yourself.
##### `setSourceRoot` {#var-stdenv-setSourceRoot}
@@ -1228,6 +1240,7 @@ If the libraries lack `-fPIE`, you will get the error `recompile with -fPIE`.
[^footnote-stdenv-ignored-build-platform]: The build platform is ignored because it is a mere implementation detail of the package satisfying the dependency: As a general programming principle, dependencies are always *specified* as interfaces, not concrete implementation.
[^footnote-stdenv-native-dependencies-in-path]: Currently, this means for native builds all dependencies are put on the `PATH`. But in the future that may not be the case for sake of matching cross: the platforms would be assumed to be unique for native and cross builds alike, so only the `depsBuild*` and `nativeBuildInputs` would be added to the `PATH`.
+[^footnote-stdenv-propagated-dependencies]: Nix itself already takes a package’s transitive dependencies into account, but this propagation ensures nixpkgs-specific infrastructure like setup hooks (mentioned above) also are run as if the propagated dependency.
[^footnote-stdenv-find-inputs-location]: The `findInputs` function, currently residing in `pkgs/stdenv/generic/setup.sh`, implements the propagation logic.
[^footnote-stdenv-sys-lib-search-path]: It clears the `sys_lib_*search_path` variables in the Libtool script to prevent Libtool from using libraries in `/usr/lib` and such.
[^footnote-stdenv-build-time-guessing-impurity]: Eventually these will be passed building natively as well, to improve determinism: build-time guessing, as is done today, is a risk of impurity.
diff --git a/doc/using/overlays.chapter.md b/doc/using/overlays.chapter.md
index d2e3b49a6aa9..df152bc14e7b 100644
--- a/doc/using/overlays.chapter.md
+++ b/doc/using/overlays.chapter.md
@@ -112,7 +112,7 @@ self: super:
This overlay uses Intel's MKL library for both BLAS and LAPACK interfaces. Note that the same can be accomplished at runtime using `LD_LIBRARY_PATH` of `libblas.so.3` and `liblapack.so.3`. For instance:
```ShellSession
-$ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
+$ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH nix-shell -p octave --run octave
```
Intel MKL requires an `openmp` implementation when running with multiple processors. By default, `mkl` will use Intel's `iomp` implementation if no other is specified, but this is a runtime-only dependency and binary compatible with the LLVM implementation. To use that one instead, Intel recommends users set it with `LD_PRELOAD`. Note that `mkl` is only available on `x86_64-linux` and `x86_64-darwin`. Moreover, Hydra is not building and distributing pre-compiled binaries using it.
diff --git a/flake.nix b/flake.nix
index ececd26c153c..1e20fcd40ebe 100644
--- a/flake.nix
+++ b/flake.nix
@@ -11,15 +11,7 @@
lib = import ./lib;
- systems = [
- "x86_64-linux"
- "i686-linux"
- "x86_64-darwin"
- "aarch64-linux"
- "armv6l-linux"
- "armv7l-linux"
- "aarch64-darwin"
- ];
+ systems = lib.systems.supported.hydra;
forAllSystems = f: lib.genAttrs systems (system: f system);
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index 31fddc59e20e..812521ce6d1c 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -487,7 +487,7 @@ rec {
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
*/
getOutput = output: pkg:
- if pkg.outputUnspecified or false
+ if ! pkg ? outputSpecified || ! pkg.outputSpecified
then pkg.${output} or pkg.out or pkg
else pkg;
diff --git a/lib/customisation.nix b/lib/customisation.nix
index c17cb0d0f8e5..234a528527d3 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -152,6 +152,7 @@ rec {
{ name = outputName;
value = commonAttrs // {
inherit (drv.${outputName}) type outputName;
+ outputSpecified = true;
drvPath = assert condition; drv.${outputName}.drvPath;
outPath = assert condition; drv.${outputName}.outPath;
};
@@ -159,7 +160,6 @@ rec {
outputsList = map outputToAttrListElement outputs;
in commonAttrs // {
- outputUnspecified = true;
drvPath = assert condition; drv.drvPath;
outPath = assert condition; drv.outPath;
};
diff --git a/lib/default.nix b/lib/default.nix
index bb99a1be8a8c..5a85c5421172 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -91,7 +91,7 @@ let
concatImapStringsSep makeSearchPath makeSearchPathOutput
makeLibraryPath makeBinPath optionalString
hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
- escapeShellArg escapeShellArgs escapeRegex replaceChars lowerChars
+ escapeShellArg escapeShellArgs escapeRegex escapeXML replaceChars lowerChars
upperChars toLower toUpper addContextFrom splitString
removePrefix removeSuffix versionOlder versionAtLeast
getName getVersion
@@ -123,8 +123,8 @@ let
inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions
mergeDefaultOption mergeOneOption mergeEqualOption getValues
getFiles optionAttrSetToDocList optionAttrSetToDocList'
- scrubOptionValue literalExample showOption showFiles
- unknownModule mkOption;
+ scrubOptionValue literalExpression literalExample literalDocBook
+ showOption showFiles unknownModule mkOption;
inherit (self.types) isType setType defaultTypeMerge defaultFunctor
isOptionType mkOptionType;
inherit (self.asserts)
diff --git a/lib/generators.nix b/lib/generators.nix
index 0cec4d2dd620..79ae9055ce3d 100644
--- a/lib/generators.nix
+++ b/lib/generators.nix
@@ -197,6 +197,30 @@ rec {
*/
toYAML = {}@args: toJSON args;
+ withRecursion =
+ args@{
+ /* If this option is not null, the given value will stop evaluating at a certain depth */
+ depthLimit
+ /* If this option is true, an error will be thrown, if a certain given depth is exceeded */
+ , throwOnDepthLimit ? true
+ }:
+ assert builtins.isInt depthLimit;
+ let
+ transform = depth:
+ if depthLimit != null && depth > depthLimit then
+ if throwOnDepthLimit
+ then throw "Exceeded maximum eval-depth limit of ${toString depthLimit} while trying to evaluate with `generators.withRecursion'!"
+ else const ""
+ else id;
+ mapAny = with builtins; depth: v:
+ let
+ evalNext = x: mapAny (depth + 1) (transform (depth + 1) x);
+ in
+ if isAttrs v then mapAttrs (const evalNext) v
+ else if isList v then map evalNext v
+ else transform (depth + 1) v;
+ in
+ mapAny 0;
/* Pretty print a value, akin to `builtins.trace`.
* Should probably be a builtin as well.
@@ -208,7 +232,8 @@ rec {
allowPrettyValues ? false,
/* If this option is true, the output is indented with newlines for attribute sets and lists */
multiline ? true
- }@args: let
+ }@args:
+ let
go = indent: v: with builtins;
let isPath = v: typeOf v == "path";
introSpace = if multiline then "\n${indent} " else " ";
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 772985f9509d..d305001a5c19 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -153,6 +153,11 @@ in mkLicense lset) ({
free = false;
};
+ capec = {
+ fullName = "Common Attack Pattern Enumeration and Classification";
+ url = "https://capec.mitre.org/about/termsofuse.html";
+ };
+
clArtistic = {
spdxId = "ClArtistic";
fullName = "Clarified Artistic License";
@@ -240,6 +245,11 @@ in mkLicense lset) ({
fullName = "CeCILL Free Software License Agreement v2.0";
};
+ cecill21 = {
+ spdxId = "CECILL-2.1";
+ fullName = "CeCILL Free Software License Agreement v2.1";
+ };
+
cecill-b = {
spdxId = "CECILL-B";
fullName = "CeCILL-B Free Software License Agreement";
diff --git a/lib/lists.nix b/lib/lists.nix
index e469f3ef2652..1dbff7668d75 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -642,7 +642,7 @@ rec {
unique [ 3 2 3 4 ]
=> [ 3 2 4 ]
*/
- unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];
+ unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];
/* Intersects list 'e' and another list. O(nm) complexity.
@@ -663,9 +663,6 @@ rec {
/* Test if two lists have no common element.
It should be slightly more efficient than (intersectLists a b == [])
*/
- mutuallyExclusive = a: b:
- (builtins.length a) == 0 ||
- (!(builtins.elem (builtins.head a) b) &&
- mutuallyExclusive (builtins.tail a) b);
+ mutuallyExclusive = a: b: length a == 0 || !(any (x: elem x a) b);
}
diff --git a/lib/modules.nix b/lib/modules.nix
index b124ea000a2e..d9b4000e56bd 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -52,15 +52,39 @@ in
rec {
- /* Evaluate a set of modules. The result is a set of two
- attributes: ‘options’: the nested set of all option declarations,
- and ‘config’: the nested set of all option values.
+ /*
+ Evaluate a set of modules. The result is a set with the attributes:
+
+ ‘options’: The nested set of all option declarations,
+
+ ‘config’: The nested set of all option values.
+
+ ‘type’: A module system type representing the module set as a submodule,
+ to be extended by configuration from the containing module set.
+
+ ‘extendModules’: A function similar to ‘evalModules’ but building on top
+ of the module set. Its arguments, ‘modules’ and ‘specialArgs’ are
+ added to the existing values.
+
+ Using ‘extendModules’ a few times has no performance impact as long
+ as you only reference the final ‘options’ and ‘config’.
+ If you do reference multiple ‘config’ (or ‘options’) from before and
+ after ‘extendModules’, performance is the same as with multiple
+ ‘evalModules’ invocations, because the new modules' ability to
+ override existing configuration fundamentally requires a new
+ fixpoint to be constructed.
+
+ ‘_module’: A portion of the configuration tree which is elided from
+ ‘config’. It contains some values that are mostly internal to the
+ module system implementation.
+
!!! Please think twice before adding to this argument list! The more
that is specified here instead of in the modules themselves the harder
it is to transparently move a set of modules to be a submodule of another
config (as the proper arguments need to be replicated at each call to
evalModules) and the less declarative the module set is. */
- evalModules = { modules
+ evalModules = evalModulesArgs@
+ { modules
, prefix ? []
, # This should only be used for special arguments that need to be evaluated
# when resolving module structure (like in imports). For everything else,
@@ -120,7 +144,9 @@ rec {
};
config = {
- _module.args = args;
+ _module.args = {
+ inherit extendModules;
+ } // args;
};
};
@@ -162,20 +188,49 @@ rec {
baseMsg = "The option `${showOption (prefix ++ firstDef.prefix)}' does not exist. Definition values:${showDefs [ firstDef ]}";
in
if attrNames options == [ "_module" ]
- then throw ''
- ${baseMsg}
+ then
+ let
+ optionName = showOption prefix;
+ in
+ if optionName == ""
+ then throw ''
+ ${baseMsg}
- However there are no options defined in `${showOption prefix}'. Are you sure you've
- declared your options properly? This can happen if you e.g. declared your options in `types.submodule'
- under `config' rather than `options'.
- ''
+ It seems as if you're trying to declare an option by placing it into `config' rather than `options'!
+ ''
+ else
+ throw ''
+ ${baseMsg}
+
+ However there are no options defined in `${showOption prefix}'. Are you sure you've
+ declared your options properly? This can happen if you e.g. declared your options in `types.submodule'
+ under `config' rather than `options'.
+ ''
else throw baseMsg
else null;
- result = builtins.seq checkUnmatched {
- inherit options;
- config = removeAttrs config [ "_module" ];
- inherit (config) _module;
+ checked = builtins.seq checkUnmatched;
+
+ extendModules = extendArgs@{
+ modules ? [],
+ specialArgs ? {},
+ prefix ? [],
+ }:
+ evalModules (evalModulesArgs // {
+ modules = evalModulesArgs.modules ++ modules;
+ specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
+ prefix = extendArgs.prefix or evalModulesArgs.prefix;
+ });
+
+ type = lib.types.submoduleWith {
+ inherit modules specialArgs;
+ };
+
+ result = {
+ options = checked options;
+ config = checked (removeAttrs config [ "_module" ]);
+ _module = checked (config._module);
+ inherit extendModules type;
};
in result;
diff --git a/lib/options.nix b/lib/options.nix
index 204c86df9f51..5d52f065af08 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -54,7 +54,7 @@ rec {
Example:
mkOption { } // => { _type = "option"; }
- mkOption { defaultText = "foo"; } // => { _type = "option"; defaultText = "foo"; }
+ mkOption { default = "foo"; } // => { _type = "option"; default = "foo"; }
*/
mkOption =
{
@@ -74,7 +74,7 @@ rec {
apply ? null,
# Whether the option is for NixOS developers only.
internal ? null,
- # Whether the option shows up in the manual.
+ # Whether the option shows up in the manual. Default: true. Use false to hide the option and any sub-options from submodules. Use "shallow" to hide only sub-options.
visible ? null,
# Whether the option can be set only once
readOnly ? null,
@@ -180,7 +180,10 @@ rec {
description = opt.description or (lib.warn "Option `${name}' has no description." "This option has no description.");
declarations = filter (x: x != unknownModule) opt.declarations;
internal = opt.internal or false;
- visible = opt.visible or true;
+ visible =
+ if (opt?visible && opt.visible == "shallow")
+ then true
+ else opt.visible or true;
readOnly = opt.readOnly or false;
type = opt.type.description or null;
}
@@ -192,8 +195,9 @@ rec {
subOptions =
let ss = opt.type.getSubOptions opt.loc;
in if ss != {} then optionAttrSetToDocList' opt.loc ss else [];
+ subOptionsVisible = docOption.visible && opt.visible or null != "shallow";
in
- [ docOption ] ++ optionals docOption.visible subOptions) (collect isOption options);
+ [ docOption ] ++ optionals subOptionsVisible subOptions) (collect isOption options);
/* This function recursively removes all derivation attributes from
@@ -212,11 +216,25 @@ rec {
else x;
- /* For use in the `example` option attribute. It causes the given
- text to be included verbatim in documentation. This is necessary
- for example values that are not simple values, e.g., functions.
+ /* For use in the `defaultText` and `example` option attributes. Causes the
+ given string to be rendered verbatim in the documentation as Nix code. This
+ is necessary for complex values, e.g. functions, or values that depend on
+ other values or packages.
*/
- literalExample = text: { _type = "literalExample"; inherit text; };
+ literalExpression = text:
+ if ! isString text then throw "literalExpression expects a string."
+ else { _type = "literalExpression"; inherit text; };
+
+ literalExample = lib.warn "literalExample is deprecated, use literalExpression instead, or use literalDocBook for a non-Nix description." literalExpression;
+
+
+ /* For use in the `defaultText` and `example` option attributes. Causes the
+ given DocBook text to be inserted verbatim in the documentation, for when
+ a `literalExpression` would be too hard to read.
+ */
+ literalDocBook = text:
+ if ! isString text then throw "literalDocBook expects a string."
+ else { _type = "literalDocBook"; inherit text; };
# Helper functions.
@@ -247,7 +265,9 @@ rec {
showDefs = defs: concatMapStrings (def:
let
# Pretty print the value for display, if successful
- prettyEval = builtins.tryEval (lib.generators.toPretty {} def.value);
+ prettyEval = builtins.tryEval
+ (lib.generators.toPretty { }
+ (lib.generators.withRecursion { depthLimit = 10; throwOnDepthLimit = false; } def.value));
# Split it into its lines
lines = filter (v: ! isList v) (builtins.split "\n" prettyEval.value);
# Only display the first 5 lines, and indent them for better visibility
diff --git a/lib/strings.nix b/lib/strings.nix
index a111e1e2597b..b2fd495e4c84 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -362,6 +362,19 @@ rec {
if match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null
then s else escapeNixString s;
+ /* Escapes a string such that it is safe to include verbatim in an XML
+ document.
+
+ Type: string -> string
+
+ Example:
+ escapeXML ''"test" 'test' < & >''
+ => ""test" 'test' < & >"
+ */
+ escapeXML = builtins.replaceStrings
+ ["\"" "'" "<" ">" "&"]
+ [""" "'" "<" ">" "&"];
+
# Obsolete - use replaceStrings instead.
replaceChars = builtins.replaceStrings or (
del: new: s:
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index ef609859abbf..529eeb6514b9 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -8,6 +8,7 @@ rec {
platforms = import ./platforms.nix { inherit lib; };
examples = import ./examples.nix { inherit lib; };
architectures = import ./architectures.nix { inherit lib; };
+ supported = import ./supported.nix { inherit lib; };
# Elaborate a `localSystem` or `crossSystem` so that it contains everything
# necessary.
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 8dfa22ac787e..f2469f9bf7ff 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -258,6 +258,12 @@ rec {
platform = {};
};
+ x86_64-darwin = {
+ config = "x86_64-apple-darwin";
+ xcodePlatform = "MacOSX";
+ platform = {};
+ };
+
#
# Windows
#
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index 2a5f630c3de9..b2a8dbedef4f 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -20,15 +20,17 @@ rec {
name = "PowerNV";
baseConfig = "powernv_defconfig";
- target = "zImage";
- installTarget = "install";
- file = "vmlinux";
+ target = "vmlinux";
autoModules = true;
# avoid driver/FS trouble arising from unusual page size
extraConfig = ''
PPC_64K_PAGES n
PPC_4K_PAGES y
IPV6 y
+
+ ATA_BMDMA y
+ ATA_SFF y
+ VIRTIO_MENU y
'';
};
};
diff --git a/lib/systems/supported.nix b/lib/systems/supported.nix
new file mode 100644
index 000000000000..ef429454f046
--- /dev/null
+++ b/lib/systems/supported.nix
@@ -0,0 +1,25 @@
+# Supported systems according to RFC0046's definition.
+#
+# https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md
+{ lib }:
+rec {
+ # List of systems that are built by Hydra.
+ hydra = tier1 ++ tier2 ++ tier3;
+
+ tier1 = [
+ "x86_64-linux"
+ ];
+
+ tier2 = [
+ "aarch64-linux"
+ "x86_64-darwin"
+ ];
+
+ tier3 = [
+ "aarch64-darwin"
+ "armv6l-linux"
+ "armv7l-linux"
+ "i686-linux"
+ "mipsel-linux"
+ ];
+}
diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix
index 2408a20af4b7..3cbfba569481 100644
--- a/lib/tests/maintainers.nix
+++ b/lib/tests/maintainers.nix
@@ -16,6 +16,10 @@ let
email = lib.mkOption {
type = types.str;
};
+ matrix = lib.mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ };
github = lib.mkOption {
type = types.nullOr types.str;
default = null;
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 4b2e5afc1d60..7b3a6b4e60b8 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -246,6 +246,11 @@ runTests {
};
};
+ testEscapeXML = {
+ expr = escapeXML ''"test" 'test' < & >'';
+ expected = ""test" 'test' < & >";
+ };
+
# LISTS
testFilter = {
@@ -529,6 +534,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 = \"\";\n c = {\n b = \"\";\n c = \"\";\n };\n };\n}";
+ };
+
+ testToPrettyLimitThrow =
+ let
+ a.b = 1;
+ a.c = a;
+ in {
+ expr = (builtins.tryEval
+ (generators.toPretty { } (generators.withRecursion { depthLimit = 2; } a))).success;
+ expected = false;
+ };
+
testToPrettyMultiline = {
expr = mapAttrs (const (generators.toPretty { })) rec {
list = [ 3 4 [ false ] ];
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 2e57c2f8e2a1..aba3f08122f5 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -62,17 +62,17 @@ checkConfigError() {
# Check boolean option.
checkConfigOutput "false" config.enable ./declare-enable.nix
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./define-enable.nix
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./define-enable.nix
# Check integer types.
# unsigned
checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
-checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
+checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
# positive
-checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
+checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n\s*- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
# between
checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
-checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
+checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
# Check either types
# types.either
@@ -125,7 +125,7 @@ checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable
set -- config.enable ./define-enable.nix ./declare-enable.nix
checkConfigOutput "true" "$@"
checkConfigOutput "false" "$@" ./disable-define-enable.nix
-checkConfigError "The option .*enable.* does not exist. Definition values:\n- In .*: true" "$@" ./disable-declare-enable.nix
+checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
@@ -142,18 +142,18 @@ checkConfigError 'infinite recursion encountered' "$@"
# Check _module.check.
set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*' "$@"
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' "$@"
checkConfigOutput "true" "$@" ./define-module-check.nix
# Check coerced value.
checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
-checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
+checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
# Check coerced value with unsound coercion
checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
-checkConfigError 'A definition for option .* is not of type .*. Definition values:\n- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
-checkConfigError 'unrecognised JSON value' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
+checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
+checkConfigError 'json.exception.parse_error' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
# Check mkAliasOptionModule.
checkConfigOutput "true" config.enable ./alias-with-priority.nix
@@ -169,7 +169,7 @@ checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
## shorthandOnlyDefines config behaves as expected
checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
-checkConfigError "You're trying to declare a value of type \`bool'\nrather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
+checkConfigError "You're trying to declare a value of type \`bool'\n\s*rather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
## submoduleWith should merge all modules in one swoop
@@ -179,6 +179,13 @@ checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules.
# which evaluates all the modules defined by the type)
checkConfigOutput "submodule" options.submodule.type.description ./declare-submoduleWith-modules.nix
+## submodules can be declared using (evalModules {...}).type
+checkConfigOutput "true" config.submodule.inner ./declare-submodule-via-evalModules.nix
+checkConfigOutput "true" config.submodule.outer ./declare-submodule-via-evalModules.nix
+# Should also be able to evaluate the type name (which evaluates freeformType,
+# which evaluates all the modules defined by the type)
+checkConfigOutput "submodule" options.submodule.type.description ./declare-submodule-via-evalModules.nix
+
## Paths should be allowed as values and work as expected
checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix
@@ -186,7 +193,7 @@ checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.ni
checkConfigOutput "true" config.enable ./disable-recursive/main.nix
checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.nix}
checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
# Check that imports can depend on derivations
checkConfigOutput "true" config.enable ./import-from-store.nix
@@ -254,8 +261,10 @@ checkConfigOutput / config.value.path ./types-anything/equal-atoms.nix
checkConfigOutput null config.value.null ./types-anything/equal-atoms.nix
checkConfigOutput 0.1 config.value.float ./types-anything/equal-atoms.nix
# Functions can't be merged together
-checkConfigError "The option .* has conflicting definition values" config.value.multiple-lambdas ./types-anything/functions.nix
+checkConfigError "The option .value.multiple-lambdas.. has conflicting option types" config.applied.multiple-lambdas ./types-anything/functions.nix
checkConfigOutput '' config.value.single-lambda ./types-anything/functions.nix
+checkConfigOutput 'null' config.applied.merging-lambdas.x ./types-anything/functions.nix
+checkConfigOutput 'null' config.applied.merging-lambdas.y ./types-anything/functions.nix
# Check that all mk* modifiers are applied
checkConfigError 'attribute .* not found' config.value.mkiffalse ./types-anything/mk-mods.nix
checkConfigOutput '{ }' config.value.mkiftrue ./types-anything/mk-mods.nix
@@ -268,7 +277,7 @@ checkConfigOutput baz config.value.nested.bar.baz ./types-anything/mk-mods.nix
## types.functionTo
checkConfigOutput "input is input" config.result ./functionTo/trivial.nix
checkConfigOutput "a b" config.result ./functionTo/merging-list.nix
-checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
+checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
checkConfigOutput "b a" config.result ./functionTo/list-order.nix
checkConfigOutput "a c" config.result ./functionTo/merging-attrs.nix
diff --git a/lib/tests/modules/declare-submodule-via-evalModules.nix b/lib/tests/modules/declare-submodule-via-evalModules.nix
new file mode 100644
index 000000000000..2841c64a073d
--- /dev/null
+++ b/lib/tests/modules/declare-submodule-via-evalModules.nix
@@ -0,0 +1,28 @@
+{ lib, ... }: {
+ options.submodule = lib.mkOption {
+ inherit (lib.evalModules {
+ modules = [
+ {
+ options.inner = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ };
+ }
+ ];
+ }) type;
+ default = {};
+ };
+
+ config.submodule = lib.mkMerge [
+ ({ lib, ... }: {
+ options.outer = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ };
+ })
+ {
+ inner = true;
+ outer = true;
+ }
+ ];
+}
diff --git a/lib/tests/modules/types-anything/functions.nix b/lib/tests/modules/types-anything/functions.nix
index 079518913918..21edd4aff9c4 100644
--- a/lib/tests/modules/types-anything/functions.nix
+++ b/lib/tests/modules/types-anything/functions.nix
@@ -1,16 +1,22 @@
-{ lib, ... }: {
+{ lib, config, ... }: {
options.value = lib.mkOption {
type = lib.types.anything;
};
+ options.applied = lib.mkOption {
+ default = lib.mapAttrs (name: fun: fun null) config.value;
+ };
+
config = lib.mkMerge [
{
value.single-lambda = x: x;
- value.multiple-lambdas = x: x;
+ value.multiple-lambdas = x: { inherit x; };
+ value.merging-lambdas = x: { inherit x; };
}
{
- value.multiple-lambdas = x: x;
+ value.multiple-lambdas = x: [ x ];
+ value.merging-lambdas = y: { inherit y; };
}
];
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index 77e0e1af7555..815841e0a8f3 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -23,6 +23,10 @@ pkgs.runCommand "nixpkgs-lib-tests" {
export NIX_STORE_DIR=$TEST_ROOT/store
export PAGER=cat
cacheDir=$TEST_ROOT/binary-cache
+
+ mkdir -p $NIX_CONF_DIR
+ echo "experimental-features = nix-command" >> $NIX_CONF_DIR/nix.conf
+
nix-store --init
cp -r ${../.} lib
diff --git a/lib/tests/sources.sh b/lib/tests/sources.sh
index 71fee719cb21..1f63cac5005a 100755
--- a/lib/tests/sources.sh
+++ b/lib/tests/sources.sh
@@ -26,7 +26,7 @@ touch {README.md,module.o,foo.bar}
# nix-instantiate doesn't write out the source, only computing the hash, so
# this uses the experimental nix command instead.
-dir="$(nix eval --raw '(with import ; "${
+dir="$(nix eval --impure --raw --expr '(with import ; "${
cleanSource ./.
}")')"
(cd $dir; find) | sort -f | diff -U10 - <(cat <; "${
+dir="$(nix eval --impure --raw --expr '(with import ; "${
cleanSourceWith { src = '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
}")')"
(cd $dir; find) | sort -f | diff -U10 - <(cat <; "${
+dir="$(nix eval --impure --raw --expr '(with import ; "${
cleanSourceWith { src = cleanSource '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
}")')"
(cd $dir; find) | sort -f | diff -U10 - <(cat < a -> a
+ */
+ warn =
+ if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") ["1" "true" "yes"]
+ then msg: builtins.trace "[1;31mwarning: ${msg}[0m" (abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.")
+ else msg: builtins.trace "[1;31mwarning: ${msg}[0m";
+
+ /*
+ Like warn, but only warn when the first argument is `true`.
+
+ Type: bool -> string -> a -> a
+ */
warnIf = cond: msg: if cond then warn msg else id;
info = msg: builtins.trace "INFO: ${msg}";
diff --git a/lib/types.nix b/lib/types.nix
index a0be2ff3a452..244cbb6b5354 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -192,6 +192,12 @@ rec {
else (listOf anything).merge;
# This is the type of packages, only accept a single definition
stringCoercibleSet = mergeOneOption;
+ lambda = loc: defs: arg: anything.merge
+ (loc ++ [ "" ])
+ (map (def: {
+ file = def.file;
+ value = def.value arg;
+ }) defs);
# Otherwise fall back to only allowing all equal definitions
}.${commonType} or mergeEqualOption;
in mergeFunction loc defs;
@@ -499,17 +505,36 @@ rec {
then setFunctionArgs (args: unify (value args)) (functionArgs value)
else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);
- allModules = defs: modules ++ imap1 (n: { value, file }:
+ allModules = defs: imap1 (n: { value, file }:
if isAttrs value || isFunction value then
# Annotate the value with the location of its definition for better error messages
coerce (lib.modules.unifyModuleSyntax file "${toString file}-${toString n}") value
else value
) defs;
- freeformType = (evalModules {
- inherit modules specialArgs;
- args.name = "‹name›";
- })._module.freeformType;
+ base = evalModules {
+ inherit specialArgs;
+ modules = [{
+ # This is a work-around for the fact that some sub-modules,
+ # such as the one included in an attribute set, expects an "args"
+ # attribute to be given to the sub-module. As the option
+ # evaluation does not have any specific attribute name yet, we
+ # provide a default for the documentation and the freeform type.
+ #
+ # This is necessary as some option declaration might use the
+ # "name" attribute given as argument of the submodule and use it
+ # as the default of option declarations.
+ #
+ # We use lookalike unicode single angle quotation marks because
+ # of the docbook transformation the options receive. In all uses
+ # > and < wouldn't be encoded correctly so the encoded values
+ # would be used, and use of `<` and `>` would break the XML document.
+ # It shouldn't cause an issue since this is cosmetic for the manual.
+ _module.args.name = lib.mkOptionDefault "‹name›";
+ }] ++ modules;
+ };
+
+ freeformType = base._module.freeformType;
in
mkOptionType rec {
@@ -517,32 +542,13 @@ rec {
description = freeformType.description or name;
check = x: isAttrs x || isFunction x || path.check x;
merge = loc: defs:
- (evalModules {
- modules = allModules defs;
- inherit specialArgs;
- args.name = last loc;
+ (base.extendModules {
+ modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
prefix = loc;
}).config;
emptyValue = { value = {}; };
- getSubOptions = prefix: (evalModules
- { inherit modules prefix specialArgs;
- # This is a work-around due to the fact that some sub-modules,
- # such as the one included in an attribute set, expects a "args"
- # attribute to be given to the sub-module. As the option
- # evaluation does not have any specific attribute name, we
- # provide a default one for the documentation.
- #
- # This is mandatory as some option declaration might use the
- # "name" attribute given as argument of the submodule and use it
- # as the default of option declarations.
- #
- # Using lookalike unicode single angle quotation marks because
- # of the docbook transformation the options receive. In all uses
- # > and < wouldn't be encoded correctly so the encoded values
- # would be used, and use of `<` and `>` would break the XML document.
- # It shouldn't cause an issue since this is cosmetic for the manual.
- args.name = "‹name›";
- }).options // optionalAttrs (freeformType != null) {
+ getSubOptions = prefix: (base.extendModules
+ { inherit prefix; }).options // optionalAttrs (freeformType != null) {
# Expose the sub options of the freeform type. Note that the option
# discovery doesn't care about the attribute name used here, so this
# is just to avoid conflicts with potential options from the submodule
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 3410637c6916..7de5fc1ad45c 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -6,6 +6,7 @@
email = "address@example.org";
# Optional
+ matrix = "@user:example.org";
github = "GithubUsername";
githubId = your-github-id;
keys = [{
@@ -19,7 +20,8 @@
- `handle` is the handle you are going to use in nixpkgs expressions,
- `name` is your, preferably real, name,
- - `email` is your maintainer email address, and
+ - `email` is your maintainer email address,
+ - `matrix` is your Matrix user ID,
- `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/`),
- `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/`,
- `keys` is a list of your PGP/GPG key IDs and fingerprints.
@@ -56,6 +58,7 @@
};
_0x4A6F = {
email = "mail-maintainer@0x4A6F.dev";
+ matrix = "@0x4a6f:matrix.org";
name = "Joachim Ernst";
github = "0x4A6F";
githubId = 9675338;
@@ -118,12 +121,14 @@
};
aanderse = {
email = "aaron@fosslib.net";
+ matrix = "@aanderse:nixos.dev";
github = "aanderse";
githubId = 7755101;
name = "Aaron Andersen";
};
aaronjanse = {
email = "aaron@ajanse.me";
+ matrix = "@aaronjanse:matrix.org";
github = "aaronjanse";
githubId = 16829510;
name = "Aaron Janse";
@@ -154,6 +159,7 @@
};
abbe = {
email = "ashish.is@lostca.se";
+ matrix = "@abbe:badti.me";
github = "wahjava";
githubId = 2255192;
name = "Ashish SHUKLA";
@@ -242,12 +248,14 @@
};
addict3d = {
email = "nickbathum@gmail.com";
+ matrix = "@nbathum:matrix.org";
github = "addict3d";
githubId = 49227;
name = "Nick Bathum";
};
adisbladis = {
email = "adisbladis@gmail.com";
+ matrix = "@adis:blad.is";
github = "adisbladis";
githubId = 63286;
name = "Adam Hose";
@@ -362,6 +370,7 @@
};
ajs124 = {
email = "nix@ajs124.de";
+ matrix = "@andreas.schraegle:helsinki-systems.de";
github = "ajs124";
githubId = 1229027;
name = "Andreas Schrägle";
@@ -432,6 +441,12 @@
githubId = 173595;
name = "Caleb Maclennan";
};
+ ALEX11BR = {
+ email = "alexioanpopa11@gmail.com";
+ github = "ALEX11BR";
+ githubId = 49609151;
+ name = "Popa Ioan Alexandru";
+ };
alexarice = {
email = "alexrice999@hotmail.co.uk";
github = "alexarice";
@@ -578,6 +593,16 @@
githubId = 2626481;
name = "Ambroz Bizjak";
};
+ ametrine = {
+ name = "Matilde Ametrine";
+ email = "matilde@diffyq.xyz";
+ github = "matilde-ametrine";
+ githubId = 90799677;
+ keys = [{
+ longkeyid = "rsa3072/0x07EE1FFCA58A11C5";
+ fingerprint = "7931 EB4E 4712 D7BE 04F8 6D34 07EE 1FFC A58A 11C5";
+ }];
+ };
amiddelk = {
email = "amiddelk@gmail.com";
github = "amiddelk";
@@ -717,6 +742,7 @@
angustrau = {
name = "Angus Trau";
email = "nix@angus.ws";
+ matrix = "@angustrau:matrix.org";
github = "angustrau";
githubId = 13267947;
};
@@ -736,6 +762,12 @@
githubId = 1771266;
name = "Vo Anh Duy";
};
+ anirrudh = {
+ email = "anik597@gmail.com";
+ github = "anirrudh";
+ githubId = 6091755;
+ name = "Anirrudh Krishnan";
+ };
ankhers = {
email = "me@ankhers.dev";
github = "ankhers";
@@ -872,6 +904,12 @@
githubId = 1296771;
name = "Anders Riutta";
};
+ arkivm = {
+ email = "vikram186@gmail.com";
+ github = "arkivm";
+ githubId = 1118815;
+ name = "Vikram Narayanan";
+ };
armijnhemel = {
email = "armijn@tjaldur.nl";
github = "armijnhemel";
@@ -932,6 +970,7 @@
};
asbachb = {
email = "asbachb-nixpkgs-5c2a@impl.it";
+ matrix = "@asbachb:matrix.org";
github = "asbachb";
githubId = 1482768;
name = "Benjamin Asbach";
@@ -1042,6 +1081,12 @@
githubId = 354741;
name = "Austin Butler";
};
+ autophagy = {
+ email = "mail@autophagy.io";
+ github = "autophagy";
+ githubId = 12958979;
+ name = "Mika Naylor";
+ };
avaq = {
email = "nixpkgs@account.avaq.it";
github = "avaq";
@@ -1102,10 +1147,17 @@
};
artturin = {
email = "artturin@artturin.com";
+ matrix = "@artturin:matrix.org";
github = "artturin";
githubId = 56650223;
name = "Artturi N";
};
+ ayazhafiz = {
+ email = "ayaz.hafiz.1@gmail.com";
+ github = "ayazhafiz";
+ githubId = 262763;
+ name = "Ayaz Hafiz";
+ };
b4dm4n = {
email = "fabianm88@gmail.com";
github = "B4dM4n";
@@ -1138,6 +1190,7 @@
};
bachp = {
email = "pascal.bach@nextrem.ch";
+ matrix = "@bachp:matrix.org";
github = "bachp";
githubId = 333807;
name = "Pascal Bach";
@@ -1158,6 +1211,12 @@
email = "sivaraman.balaji@gmail.com";
name = "Balaji Sivaraman";
};
+ balodja = {
+ email = "balodja@gmail.com";
+ github = "balodja";
+ githubId = 294444;
+ name = "Vladimir Korolev";
+ };
baloo = {
email = "nixpkgs@superbaloo.net";
github = "baloo";
@@ -1212,6 +1271,7 @@
};
bb010g = {
email = "me@bb010g.com";
+ matrix = "@bb010g:matrix.org";
github = "bb010g";
githubId = 340132;
name = "Brayden Banks";
@@ -1272,6 +1332,7 @@
};
bendlas = {
email = "herwig@bendlas.net";
+ matrix = "@bendlas:matrix.org";
github = "bendlas";
githubId = 214787;
name = "Herwig Hochleitner";
@@ -1318,6 +1379,7 @@
};
berberman = {
email = "berberman@yandex.com";
+ matrix = "@berberman:mozilla.org";
github = "berberman";
githubId = 26041945;
name = "Potato Hatsue";
@@ -1424,6 +1486,7 @@
};
blitz = {
email = "js@alien8.de";
+ matrix = "@js:ukvly.org";
github = "blitz";
githubId = 37907;
name = "Julian Stecklina";
@@ -1461,6 +1524,7 @@
bobby285271 = {
name = "Bobby Rong";
email = "rjl931189261@126.com";
+ matrix = "@bobby285271:matrix.org";
github = "bobby285271";
githubId = 20080233;
};
@@ -1600,6 +1664,7 @@
};
bryanasdev000 = {
email = "bryanasdev000@gmail.com";
+ matrix = "@bryanasdev000:matrix.org";
github = "bryanasdev000";
githubId = 53131727;
name = "Bryan Albuquerque";
@@ -1612,6 +1677,7 @@
};
buckley310 = {
email = "sean.bck@gmail.com";
+ matrix = "@buckley310:matrix.org";
github = "buckley310";
githubId = 2379774;
name = "Sean Buckley";
@@ -1791,6 +1857,7 @@
};
cdepillabout = {
email = "cdep.illabout@gmail.com";
+ matrix = "@cdepillabout:matrix.org";
github = "cdepillabout";
githubId = 64804;
name = "Dennis Gosnell";
@@ -1875,6 +1942,12 @@
email = "me@philscotted.com";
name = "Phil Scott";
};
+ chekoopa = {
+ email = "chekoopa@mail.ru";
+ github = "chekoopa";
+ githubId = 1689801;
+ name = "Mikhail Chekan";
+ };
ChengCat = {
email = "yu@cheng.cat";
github = "ChengCat";
@@ -2005,6 +2078,7 @@
};
chvp = {
email = "nixpkgs@cvpetegem.be";
+ matrix = "@charlotte:vanpetegem.me";
github = "chvp";
githubId = 42220376;
name = "Charlotte Van Petegem";
@@ -2043,6 +2117,16 @@
githubId = 25088352;
name = "Christian Kögler";
};
+ ckie = {
+ email = "nixpkgs-0efe364@ckie.dev";
+ github = "ckiee";
+ githubId = 2526321;
+ keys = [{
+ longkeyid = "rsa4096/0x13E79449C0525215";
+ fingerprint = "539F 0655 4D35 38A5 429A E253 13E7 9449 C052 5215";
+ }];
+ name = "ckie";
+ };
clkamp = {
email = "c@lkamp.de";
github = "clkamp";
@@ -2067,8 +2151,15 @@
githubId = 199180;
name = "Claes Wallin";
};
+ cleeyv = {
+ email = "cleeyv@riseup.net";
+ github = "cleeyv";
+ githubId = 71959829;
+ name = "Cleeyv";
+ };
cleverca22 = {
email = "cleverca22@gmail.com";
+ matrix = "@cleverca22:matrix.org";
github = "cleverca22";
githubId = 848609;
name = "Michael Bishop";
@@ -2139,6 +2230,7 @@
};
colemickens = {
email = "cole.mickens@gmail.com";
+ matrix = "@colemickens:matrix.org";
github = "colemickens";
githubId = 327028;
name = "Cole Mickens";
@@ -2152,6 +2244,7 @@
cole-h = {
name = "Cole Helbling";
email = "cole.e.helbling@outlook.com";
+ matrix = "@cole-h:matrix.org";
github = "cole-h";
githubId = 28582702;
keys = [{
@@ -2255,6 +2348,7 @@
};
CRTified = {
email = "carl.schneider+nixos@rub.de";
+ matrix = "@schnecfk:ruhr-uni-bochum.de";
github = "CRTified";
githubId = 2440581;
name = "Carl Richard Theodor Schneider";
@@ -2333,6 +2427,7 @@
};
cyplo = {
email = "nixos@cyplo.dev";
+ matrix = "@cyplo:cyplo.dev";
github = "cyplo";
githubId = 217899;
name = "Cyryl Płotnicki";
@@ -2369,6 +2464,12 @@
githubId = 4331004;
name = "Naoya Hatta";
};
+ dalpd = {
+ email = "denizalpd@ogr.iu.edu.tr";
+ github = "dalpd";
+ githubId = 16895361;
+ name = "Deniz Alp Durmaz";
+ };
DamienCassou = {
email = "damien@cassou.me";
github = "DamienCassou";
@@ -2395,6 +2496,7 @@
};
dandellion = {
email = "daniel@dodsorf.as";
+ matrix = "@dandellion:dodsorf.as";
github = "dali99";
githubId = 990767;
name = "Daniel Olsen";
@@ -2443,6 +2545,7 @@
};
das_j = {
email = "janne@hess.ooo";
+ matrix = "@janne.hess:helsinki-systems.de";
github = "dasJ";
githubId = 4971975;
name = "Janne Heß";
@@ -2487,10 +2590,17 @@
};
davidak = {
email = "post@davidak.de";
+ matrix = "@davidak:matrix.org";
github = "davidak";
githubId = 91113;
name = "David Kleuker";
};
+ davidarmstronglewis = {
+ email = "davidlewis@mac.com";
+ github = "davidarmstronglewis";
+ githubId = 6754950;
+ name = "David Armstrong Lewis";
+ };
davidrusu = {
email = "davidrusu.me@gmail.com";
github = "davidrusu";
@@ -2593,6 +2703,10 @@
githubId = 202798;
name = "Pierre Bourdon";
};
+ delta = {
+ email = "d4delta@outlook.fr";
+ name = "Delta";
+ };
deltaevo = {
email = "deltaduartedavid@gmail.com";
github = "DeltaEvo";
@@ -2743,6 +2857,12 @@
githubId = 40633781;
name = "Sergei S.";
};
+ dit7ya = {
+ email = "7rat13@gmail.com";
+ github = "dit7ya";
+ githubId = 14034137;
+ name = "Mostly Void";
+ };
dizfer = {
email = "david@izquierdofernandez.com";
github = "dizfer";
@@ -2779,6 +2899,12 @@
githubId = 28980797;
name = "David Leslie";
};
+ dlip = {
+ email = "dane@lipscombe.com.au";
+ github = "dlip";
+ githubId = 283316;
+ name = "Dane Lipscombe";
+ };
dmalikov = {
email = "malikov.d.y@gmail.com";
github = "dmalikov";
@@ -2841,6 +2967,7 @@
};
dotlambda = {
email = "rschuetz17@gmail.com";
+ matrix = "@robert:funklause.de";
github = "dotlambda";
githubId = 6806011;
name = "Robert Schütz";
@@ -2914,6 +3041,7 @@
drupol = {
name = "Pol Dellaiera";
email = "pol.dellaiera@protonmail.com";
+ matrix = "@drupol:matrix.org";
github = "drupol";
githubId = 252042;
keys = [{
@@ -2977,6 +3105,7 @@
};
dywedir = {
email = "dywedir@gra.red";
+ matrix = "@dywedir:matrix.org";
github = "dywedir";
githubId = 399312;
name = "Vladyslav M.";
@@ -3019,10 +3148,21 @@
};
earvstedt = {
email = "erik.arvstedt@gmail.com";
+ matrix = "@erikarvstedt:matrix.org";
github = "erikarvstedt";
githubId = 36110478;
name = "Erik Arvstedt";
};
+ ebbertd = {
+ email = "daniel@ebbert.nrw";
+ github = "ebbertd";
+ githubId = 20522234;
+ name = "Daniel Ebbert";
+ keys = [{
+ longkeyid = "rsa2048/0x47BC155927CBB9C7";
+ fingerprint = "E765 FCA3 D9BF 7FDB 856E AD73 47BC 1559 27CB B9C7";
+ }];
+ };
ebzzry = {
email = "ebzzry@ebzzry.io";
github = "ebzzry";
@@ -3053,6 +3193,12 @@
githubId = 50854;
name = "edef";
};
+ edlimerkaj = {
+ name = "Edli Merkaj";
+ email = "edli.merkaj@identinet.io";
+ github = "edlimerkaj";
+ githubId = 71988351;
+ };
edibopp = {
email = "eduard.bopp@aepsil0n.de";
github = "edibopp";
@@ -3095,12 +3241,6 @@
githubId = 119483;
name = "Matthew Brown";
};
- eduardosm = {
- email = "esm@eduardosm.net";
- github = "eduardosm";
- githubId = 761151;
- name = "Eduardo Sánchez Muñoz";
- };
eduarrrd = {
email = "e.bachmakov@gmail.com";
github = "eduarrrd";
@@ -3145,6 +3285,7 @@
};
ekleog = {
email = "leo@gaspard.io";
+ matrix = "@leo:gaspard.ninja";
github = "ekleog";
githubId = 411447;
name = "Leo Gaspard";
@@ -3175,6 +3316,7 @@
};
eliasp = {
email = "mail@eliasprobst.eu";
+ matrix = "@eliasp:kde.org";
github = "eliasp";
githubId = 48491;
name = "Elias Probst";
@@ -3235,10 +3377,17 @@
};
emmanuelrosa = {
email = "emmanuel_rosa@aol.com";
+ matrix = "@emmanuelrosa:matrix.org";
github = "emmanuelrosa";
githubId = 13485450;
name = "Emmanuel Rosa";
};
+ emptyflask = {
+ email = "jon@emptyflask.dev";
+ github = "emptyflask";
+ githubId = 28287;
+ name = "Jon Roberts";
+ };
endgame = {
email = "jack@jackkelly.name";
github = "endgame";
@@ -3309,6 +3458,7 @@
};
ereslibre = {
email = "ereslibre@ereslibre.es";
+ matrix = "@ereslibre:matrix.org";
github = "ereslibre";
githubId = 8706;
name = "Rafael Fernández López";
@@ -3333,6 +3483,7 @@
};
ericson2314 = {
email = "John.Ericson@Obsidian.Systems";
+ matrix = "@ericson2314:matrix.org";
github = "ericson2314";
githubId = 1055245;
name = "John Ericson";
@@ -3417,6 +3568,7 @@
};
etu = {
email = "elis@hirwing.se";
+ matrix = "@etu:semi.social";
github = "etu";
githubId = 461970;
name = "Elis Hirwing";
@@ -3434,6 +3586,7 @@
evalexpr = {
name = "Jonathan Wilkins";
email = "nixos@wilkins.tech";
+ matrix = "@evalexpr:matrix.org";
github = "evalexpr";
githubId = 23485511;
keys = [{
@@ -3503,9 +3656,14 @@
};
expipiplus1 = {
email = "nix@monoid.al";
+ matrix = "@ellie:monoid.al";
github = "expipiplus1";
githubId = 857308;
- name = "Joe Hermaszewski";
+ name = "Ellie Hermaszewska";
+ keys = [{
+ longkeyid = "rsa4096/0xC8116E3A0C1CA76A";
+ fingerprint = "FC1D 3E4F CBCA 80DF E870 6397 C811 6E3A 0C1C A76A";
+ }];
};
extends = {
email = "sharosari@gmail.com";
@@ -3515,6 +3673,7 @@
};
eyjhb = {
email = "eyjhbb@gmail.com";
+ matrix = "@eyjhb:eyjhb.dk";
github = "eyJhb";
githubId = 25955146;
name = "eyJhb";
@@ -3533,6 +3692,7 @@
};
fab = {
email = "mail@fabian-affolter.ch";
+ matrix = "@fabaff:matrix.org";
name = "Fabian Affolter";
github = "fabaff";
githubId = 116184;
@@ -3599,6 +3759,13 @@
githubId = 541748;
name = "Felipe Espinoza";
};
+ fedx-sudo = {
+ email = "fedx-sudo@pm.me";
+ github = "Fedx-sudo";
+ githubId = 66258975;
+ name = "Fedx sudo";
+ matrix = "fedx:matrix.org";
+ };
fehnomenal = {
email = "fehnomenal@fehn.systems";
github = "fehnomenal";
@@ -3619,6 +3786,7 @@
};
felschr = {
email = "dev@felschr.com";
+ matrix = "@felschr:matrix.org";
github = "felschr";
githubId = 3314323;
name = "Felix Tenley";
@@ -3635,12 +3803,14 @@
};
fgaz = {
email = "fgaz@fgaz.me";
+ matrix = "@fgaz:matrix.org";
github = "fgaz";
githubId = 8182846;
name = "Francesco Gazzetta";
};
figsoda = {
email = "figsoda@pm.me";
+ matrix = "@figsoda:matrix.org";
github = "figsoda";
githubId = 40620903;
name = "figsoda";
@@ -3759,6 +3929,7 @@
};
fortuneteller2k = {
email = "lythe1107@gmail.com";
+ matrix = "@fortuneteller2k:matrix.org";
github = "fortuneteller2k";
githubId = 20619776;
name = "fortuneteller2k";
@@ -3945,6 +4116,12 @@
githubId = 20208;
name = "Rok Garbas";
};
+ gardspirito = {
+ name = "gardspirito";
+ email = "nyxoroso@gmail.com";
+ github = "gardspirito";
+ githubId = 29687558;
+ };
garrison = {
email = "jim@garrison.cc";
github = "garrison";
@@ -3963,6 +4140,12 @@
githubId = 16470252;
name = "Gemini Lasswell";
};
+ gbtb = {
+ email = "goodbetterthebeast3@gmail.com";
+ github = "gbtb";
+ githubId = 37017396;
+ name = "gbtb";
+ };
gebner = {
email = "gebner@gebner.org";
github = "gebner";
@@ -3999,6 +4182,7 @@
};
ggpeti = {
email = "ggpeti@gmail.com";
+ matrix = "@ggpeti:ggpeti.com";
github = "ggpeti";
githubId = 3217744;
name = "Peter Ferenczy";
@@ -4027,6 +4211,12 @@
githubId = 1713676;
name = "Luis G. Torres";
};
+ GKasparov = {
+ email = "mizozahr@gmail.com";
+ github = "GKasparov";
+ githubId = 60962839;
+ name = "Mazen Zahr";
+ };
gleber = {
email = "gleber.p@gmail.com";
github = "gleber";
@@ -4232,6 +4422,7 @@
gytis-ivaskevicius = {
name = "Gytis Ivaskevicius";
email = "me@gytis.io";
+ matrix = "@gytis-ivaskevicius:matrix.org";
github = "gytis-ivaskevicius";
githubId = 23264966;
};
@@ -4277,6 +4468,7 @@
};
happysalada = {
email = "raphael@megzari.com";
+ matrix = "@happysalada:matrix.org";
github = "happysalada";
githubId = 5317234;
name = "Raphael Megzari";
@@ -4287,6 +4479,16 @@
githubId = 54728477;
name = "Happy River";
};
+ hardselius = {
+ email = "martin@hardselius.dev";
+ github = "hardselius";
+ githubId = 1422583;
+ name = "Martin Hardselius";
+ keys = [{
+ longkeyid = "rsa4096/0x03A6E6F786936619";
+ fingerprint = "3F35 E4CA CBF4 2DE1 2E90 53E5 03A6 E6F7 8693 6619";
+ }];
+ };
haslersn = {
email = "haslersn@fius.informatik.uni-stuttgart.de";
github = "haslersn";
@@ -4307,6 +4509,7 @@
};
hax404 = {
email = "hax404foogit@hax404.de";
+ matrix = "@hax404:hax404.de";
github = "hax404";
githubId = 1379411;
name = "Georg Haas";
@@ -4357,6 +4560,13 @@
githubId = 2405974;
name = "Sébastian Méric de Bellefon";
};
+ henkkalkwater = {
+ email = "chris+nixpkgs@netsoj.nl";
+ github = "HenkKalkwater";
+ githubId = 4262067;
+ matrix = "@chris:netsoj.nl";
+ name = "Chris Josten";
+ };
henrikolsson = {
email = "henrik@fixme.se";
github = "henrikolsson";
@@ -4383,6 +4593,7 @@
};
hexa = {
email = "hexa@darmstadt.ccc.de";
+ matrix = "@hexa:lossy.network";
github = "mweinelt";
githubId = 131599;
name = "Martin Weinelt";
@@ -4447,6 +4658,12 @@
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
}];
};
+ hleboulanger = {
+ email = "hleboulanger@protonmail.com";
+ name = "Harold Leboulanger";
+ github = "thbkrhsw";
+ githubId = 33122;
+ };
hlolli = {
email = "hlolli@gmail.com";
github = "hlolli";
@@ -4495,6 +4712,7 @@
};
hoverbear = {
email = "operator+nix@hoverbear.org";
+ matrix = "@hoverbear:matrix.org";
github = "hoverbear";
githubId = 130903;
name = "Ana Hobden";
@@ -4583,6 +4801,7 @@
};
iammrinal0 = {
email = "nixpkgs@mrinalpurohit.in";
+ matrix = "@iammrinal0:nixos.dev";
github = "iammrinal0";
githubId = 890062;
name = "Mrinal";
@@ -4614,6 +4833,7 @@
icy-thought = {
name = "Icy-Thought";
email = "gilganyx@pm.me";
+ matrix = "@gilganix:matrix.org";
github = "Icy-Thought";
githubId = 53710398;
};
@@ -4653,6 +4873,13 @@
githubId = 36193715;
name = "Lassi Haasio";
};
+ ilkecan = {
+ email = "ilkecan@protonmail.com";
+ matrix = "@ilkecan:matrix.org";
+ github = "ilkecan";
+ githubId = 40234257;
+ name = "ilkecan bozdogan";
+ };
illegalprime = {
email = "themichaeleden@gmail.com";
github = "illegalprime";
@@ -4715,6 +4942,7 @@
};
immae = {
email = "ismael@bouya.org";
+ matrix = "@immae:immae.eu";
github = "immae";
githubId = 510202;
name = "Ismaël Bouya";
@@ -4727,6 +4955,7 @@
};
infinisil = {
email = "contact@infinisil.com";
+ matrix = "@infinisil:matrix.org";
github = "infinisil";
githubId = 20525370;
name = "Silvan Mosberger";
@@ -4744,6 +4973,7 @@
irenes = {
name = "Irene Knapp";
email = "ireneista@gmail.com";
+ matrix = "@irenes:matrix.org";
github = "IreneKnapp";
githubId = 157678;
keys = [{
@@ -4973,6 +5203,7 @@
};
jbedo = {
email = "cu@cua0.org";
+ matrix = "@jb:vk3.wtf";
github = "jbedo";
githubId = 372912;
name = "Justin Bedő";
@@ -5029,6 +5260,12 @@
githubId = 117874;
name = "Jeroen de Haas";
};
+ jdreaver = {
+ email = "johndreaver@gmail.com";
+ github = "jdreaver";
+ githubId = 1253071;
+ name = "David Reaver";
+ };
jduan = {
name = "Jingjing Duan";
email = "duanjingjing@gmail.com";
@@ -5104,6 +5341,7 @@
jfroche = {
name = "Jean-François Roche";
email = "jfroche@pyxel.be";
+ matrix = "@jfroche:matrix.pyxel.cloud";
github = "jfroche";
githubId = 207369;
keys = [{
@@ -5179,10 +5417,17 @@
};
jk = {
email = "hello+nixpkgs@j-k.io";
+ matrix = "@j-k:matrix.org";
github = "06kellyjac";
githubId = 9866621;
name = "Jack";
};
+ jkarlson = {
+ email = "jekarlson@gmail.com";
+ github = "jkarlson";
+ githubId = 1204734;
+ name = "Emil Karlson";
+ };
jlesquembre = {
email = "jl@lafuente.me";
github = "jlesquembre";
@@ -5273,6 +5518,7 @@
};
joepie91 = {
email = "admin@cryto.net";
+ matrix = "@joepie91:pixie.town";
name = "Sven Slootweg";
github = "joepie91";
githubId = 1663259;
@@ -5319,6 +5565,12 @@
githubId = 8735102;
name = "John Ramsden";
};
+ johnrichardrinehart = {
+ email = "johnrichardrinehart@gmail.com";
+ github = "johnrichardrinehart";
+ githubId = 6321578;
+ name = "John Rinehart";
+ };
johntitor = {
email = "huyuumi.dev@gmail.com";
github = "JohnTitor";
@@ -5328,6 +5580,7 @@
jojosch = {
name = "Johannes Schleifenbaum";
email = "johannes@js-webcoding.de";
+ matrix = "@jojosch:jswc.de";
github = "jojosch";
githubId = 327488;
keys = [{
@@ -5366,6 +5619,7 @@
};
jonringer = {
email = "jonringer117@gmail.com";
+ matrix = "@jonringer:matrix.org";
github = "jonringer";
githubId = 7673602;
name = "Jonathan Ringer";
@@ -5438,6 +5692,7 @@
};
jschievink = {
email = "jonasschievink@gmail.com";
+ matrix = "@jschievink:matrix.org";
github = "jonas-schievink";
githubId = 1786438;
name = "Jonas Schievink";
@@ -5472,6 +5727,7 @@
};
jtojnar = {
email = "jtojnar@gmail.com";
+ matrix = "@jtojnar:matrix.org";
github = "jtojnar";
githubId = 705123;
name = "Jan Tojnar";
@@ -5558,6 +5814,16 @@
githubId = 20658981;
name = "Jarosław Wygoda";
};
+ jyooru = {
+ email = "joel@joel.tokyo";
+ github = "jyooru";
+ githubId = 63786778;
+ name = "Joel";
+ keys = [{
+ longkeyid = "rsa4096/18550BD205E9EF64";
+ fingerprint = "9148 DC9E F4D5 3EB6 A30E 8EF0 1855 0BD2 05E9 EF64";
+ }];
+ };
jyp = {
email = "jeanphilippe.bernardy@gmail.com";
github = "jyp";
@@ -5594,6 +5860,7 @@
};
kalbasit = {
email = "wael.nasreddine@gmail.com";
+ matrix = "@kalbasit:matrix.org";
github = "kalbasit";
githubId = 87115;
name = "Wael Nasreddine";
@@ -5684,6 +5951,7 @@
};
kevincox = {
email = "kevincox@kevincox.ca";
+ matrix = "@kevincox:matrix.org";
github = "kevincox";
githubId = 494012;
name = "Kevin Cox";
@@ -5784,6 +6052,7 @@
};
kirelagin = {
email = "kirelagin@gmail.com";
+ matrix = "@kirelagin:matrix.org";
github = "kirelagin";
githubId = 451835;
name = "Kirill Elagin";
@@ -5826,6 +6095,12 @@
githubId = 8260207;
name = "Karthik Iyengar";
};
+ kjeremy = {
+ email = "kjeremy@gmail.com";
+ name = "Jeremy Kolb";
+ github = "kjeremy";
+ githubId = 4325700;
+ };
kkallio = {
email = "tierpluspluslists@gmail.com";
name = "Karn Kallio";
@@ -5838,6 +6113,7 @@
};
kloenk = {
email = "me@kloenk.de";
+ matrix = "@kloenk:petabyte.dev";
name = "Finn Behrens";
github = "kloenk";
githubId = 12898828;
@@ -6009,6 +6285,12 @@
githubId = 278013;
name = "Tomasz Kontusz";
};
+ kubukoz = {
+ email = "kubukoz@gmail.com";
+ github = "kubukoz";
+ githubId = 894884;
+ name = "Jakub Kozłowski";
+ };
kurnevsky = {
email = "kurnevsky@gmail.com";
github = "kurnevsky";
@@ -6051,6 +6333,7 @@
};
l-as = {
email = "las@protonmail.ch";
+ matrix = "@Las:matrix.org";
github = "L-as";
githubId = 22075344;
keys = [{
@@ -6061,6 +6344,7 @@
};
l3af = {
email = "L3afMeAlon3@gmail.com";
+ matrix = "@L3afMe:matrix.org";
github = "L3afMe";
githubId = 72546287;
name = "L3af";
@@ -6101,6 +6385,7 @@
};
lassulus = {
email = "lassulus@gmail.com";
+ matrix = "@lassulus:nixos.dev";
github = "Lassulus";
githubId = 621759;
name = "Lassulus";
@@ -6142,6 +6427,12 @@
githubId = 1104419;
name = "Lucas Hoffmann";
};
+ lucasew = {
+ email = "lucas59356@gmail.com";
+ github = "lucasew";
+ githubId = 15693688;
+ name = "Lucas Eduardo Wendt";
+ };
lde = {
email = "lilian.deloche@puck.fr";
github = "lde";
@@ -6162,6 +6453,7 @@
};
ldesgoui = {
email = "ldesgoui@gmail.com";
+ matrix = "@ldesgoui:matrix.org";
github = "ldesgoui";
githubId = 2472678;
name = "Lucas Desgouilles";
@@ -6204,6 +6496,7 @@
};
legendofmiracles = {
email = "legendofmiracles@protonmail.com";
+ matrix = "@legendofmiracles:matrix.org";
github = "legendofmiracles";
githubId = 30902201;
name = "legendofmiracles";
@@ -6252,6 +6545,7 @@
};
lewo = {
email = "lewo@abesis.fr";
+ matrix = "@lewo:matrix.org";
github = "nlewo";
githubId = 3425311;
name = "Antoine Eiche";
@@ -6350,6 +6644,12 @@
githubId = 791115;
name = "Linquize";
};
+ linsui = {
+ email = "linsui555@gmail.com";
+ github = "linsui";
+ githubId = 36977733;
+ name = "linsui";
+ };
linus = {
email = "linusarver@gmail.com";
github = "listx";
@@ -6376,6 +6676,12 @@
fingerprint = "5B93 9CFA E8FC 4D8F E07A 3AEA DFE1 D4A0 1733 7E2A";
}];
};
+ lorenzleutgeb = {
+ email = "lorenz@leutgeb.xyz";
+ github = "lorenzleutgeb";
+ githubId = 542154;
+ name = "Lorenz Leutgeb";
+ };
luis = {
email = "luis.nixos@gmail.com";
github = "Luis-Hebendanz";
@@ -6450,6 +6756,7 @@
};
lovesegfault = {
email = "meurerbernardo@gmail.com";
+ matrix = "@lovesegfault:matrix.org";
github = "lovesegfault";
githubId = 7243783;
name = "Bernardo Meurer";
@@ -6464,6 +6771,12 @@
githubId = 10626;
name = "Andreas Wagner";
};
+ lrewega = {
+ email = "lrewega@c32.ca";
+ github = "lrewega";
+ githubId = 639066;
+ name = "Luke Rewega";
+ };
lromor = {
email = "leonardo.romor@gmail.com";
github = "lromor";
@@ -6476,6 +6789,7 @@
};
lschuermann = {
email = "leon.git@is.currently.online";
+ matrix = "@leons:is.currently.online";
github = "lschuermann";
githubId = 5341193;
name = "Leon Schuermann";
@@ -6552,6 +6866,7 @@
};
lukegb = {
email = "nix@lukegb.com";
+ matrix = "@lukegb:zxcvbnm.ninja";
github = "lukegb";
githubId = 246745;
name = "Luke Granger-Brown";
@@ -6570,6 +6885,7 @@
};
lunik1 = {
email = "ch.nixpkgs@themaw.xyz";
+ matrix = "@lunik1:lunik.one";
github = "lunik1";
githubId = 13547699;
name = "Corin Hoad";
@@ -6618,6 +6934,7 @@
};
ma27 = {
email = "maximilian@mbosch.me";
+ matrix = "@ma27:nicht-so.sexy";
github = "ma27";
githubId = 6025220;
name = "Maximilian Bosch";
@@ -6708,12 +7025,14 @@
};
manveru = {
email = "m.fellinger@gmail.com";
+ matrix = "@manveru:matrix.org";
github = "manveru";
githubId = 3507;
name = "Michael Fellinger";
};
maralorn = {
email = "malte.brandy@maralorn.de";
+ matrix = "@maralorn:maralorn.de";
github = "maralorn";
githubId = 1651325;
name = "Malte Brandy";
@@ -6782,6 +7101,12 @@
githubId = 458783;
name = "Martin Gammelsæter";
};
+ martfont = {
+ name = "Martino Fontana";
+ email = "tinozzo123@tutanota.com";
+ github = "SuperSamus";
+ githubId = 40663462;
+ };
marzipankaiser = {
email = "nixos@gaisseml.de";
github = "marzipankaiser";
@@ -6852,6 +7177,7 @@
};
matthiasbeyer = {
email = "mail@beyermatthias.de";
+ matrix = "@musicmatze:beyermatthi.as";
github = "matthiasbeyer";
githubId = 427866;
name = "Matthias Beyer";
@@ -6958,6 +7284,12 @@
githubId = 51356;
name = "Mathieu Boespflug";
};
+ mbprtpmnr = {
+ name = "mbprtpmnr";
+ email = "mbprtpmnr@pm.me";
+ github = "mbprtpmnr";
+ githubId = 88109321;
+ };
mbrgm = {
email = "marius@yeai.de";
github = "mbrgm";
@@ -7134,6 +7466,7 @@
};
mic92 = {
email = "joerg@thalheim.io";
+ matrix = "@mic92:nixos.dev";
github = "mic92";
githubId = 96200;
name = "Jörg Thalheim";
@@ -7181,6 +7514,7 @@
};
midchildan = {
email = "git@midchildan.org";
+ matrix = "@midchildan:matrix.org";
github = "midchildan";
githubId = 7343721;
name = "midchildan";
@@ -7229,6 +7563,12 @@
githubId = 7610974;
name = "Jason Miller";
};
+ milogert = {
+ email = "milo@milogert.com";
+ github = "milogert";
+ githubId = 5378535;
+ name = "Milo Gertjejansen";
+ };
miltador = {
email = "miltador@yandex.ua";
name = "Vasiliy Solovey";
@@ -7287,6 +7627,7 @@
};
mjlbach = {
email = "m.j.lbach@gmail.com";
+ matrix = "@atrius:matrix.org";
github = "mjlbach";
githubId = 13316262;
name = "Michael Lingelbach";
@@ -7327,6 +7668,7 @@
};
mkg20001 = {
email = "mkg20001+nix@gmail.com";
+ matrix = "@mkg20001:matrix.org";
github = "mkg20001";
githubId = 7735145;
name = "Maciej Krüger";
@@ -7410,6 +7752,7 @@
mohe2015 = {
name = "Moritz Hedtke";
email = "Moritz.Hedtke@t-online.de";
+ matrix = "@moritz.hedtke:matrix.org";
github = "mohe2015";
githubId = 13287984;
keys = [{
@@ -7657,10 +8000,17 @@
};
mvnetbiz = {
email = "mvnetbiz@gmail.com";
+ matrix = "@mvtva:matrix.org";
github = "mvnetbiz";
githubId = 6455574;
name = "Matt Votava";
};
+ mvs = {
+ email = "mvs@nya.yt";
+ github = "illdefined";
+ githubId = 772914;
+ name = "Mikael Voss";
+ };
maxwilson = {
email = "nixpkgs@maxwilson.dev";
github = "mwilsoncoding";
@@ -7737,6 +8087,7 @@
};
ncfavier = {
email = "n@monade.li";
+ matrix = "@ncfavier:matrix.org";
github = "ncfavier";
githubId = 4323933;
name = "Naïm Favier";
@@ -7828,6 +8179,7 @@
};
nh2 = {
email = "mail@nh2.me";
+ matrix = "@nh2:matrix.org";
github = "nh2";
githubId = 399535;
name = "Niklas Hambüchen";
@@ -7914,6 +8266,7 @@
};
ninjatrappeur = {
email = "felix@alternativebit.fr";
+ matrix = "@ninjatrappeur:matrix.org";
github = "ninjatrappeur";
githubId = 1219785;
name = "Félix Baylac-Jacqué";
@@ -7968,6 +8321,7 @@
};
nixinator = {
email = "33lockdown33@protonmail.com";
+ matrix = "@nixinator:nixos.dev";
github = "nixinator";
githubId = 66913205;
name = "Rick Sanchez";
@@ -8002,6 +8356,12 @@
githubId = 810877;
name = "Tom Doggett";
};
+ noisersup = {
+ email = "patryk@kwiatek.xyz";
+ github = "noisersup";
+ githubId = 42322511;
+ name = "Patryk Kwiatek";
+ };
nomeata = {
email = "mail@joachim-breitner.de";
github = "nomeata";
@@ -8016,6 +8376,7 @@
};
noneucat = {
email = "andy@lolc.at";
+ matrix = "@noneucat:lolc.at";
github = "noneucat";
githubId = 40049608;
name = "Andy Chun";
@@ -8058,6 +8419,7 @@
};
nrdxp = {
email = "tim.deh@pm.me";
+ matrix = "@timdeh:matrix.org";
github = "nrdxp";
githubId = 34083928;
name = "Tim DeHerrera";
@@ -8099,6 +8461,7 @@
numkem = {
name = "Sebastien Bariteau";
email = "numkem@numkem.org";
+ matrix = "@numkem:matrix.org";
github = "numkem";
githubId = 332423;
};
@@ -8120,6 +8483,17 @@
githubId = 127548;
name = "Judson Lester";
};
+ nzbr = {
+ email = "nixos@nzbr.de";
+ github = "nzbr";
+ githubId = 7851175;
+ name = "nzbr";
+ matrix = "@nzbr:nzbr.de";
+ keys = [{
+ longkeyid = "rsa2048/0x6C78B50B97A42F8A";
+ fingerprint = "BF3A 3EE6 3144 2C5F C9FB 39A7 6C78 B50B 97A4 2F8A";
+ }];
+ };
nzhang-zh = {
email = "n.zhang.hp.au@gmail.com";
github = "nzhang-zh";
@@ -8140,6 +8514,7 @@
};
obfusk = {
email = "flx@obfusk.net";
+ matrix = "@obfusk:matrix.org";
github = "obfusk";
githubId = 1260687;
name = "Felix C. Stegerman";
@@ -8334,6 +8709,7 @@
};
pacman99 = {
email = "pachum99@gmail.com";
+ matrix = "@pachumicchu:myrdd.info";
github = "Pacman99";
githubId = 16345849;
name = "Parthiv Seetharaman";
@@ -8364,6 +8740,7 @@
};
pamplemousse = {
email = "xav.maso@gmail.com";
+ matrix = "@pamplemouss_:matrix.org";
github = "Pamplemousse";
githubId = 2647236;
name = "Xavier Maso";
@@ -8480,6 +8857,12 @@
githubId = 13225611;
name = "Nicolas Martin";
};
+ pennae = {
+ name = "pennae";
+ email = "github@quasiparticle.net";
+ github = "pennae";
+ githubId = 82953136;
+ };
p3psi = {
name = "Elliot Boo";
email = "p3psi.boo@gmail.com";
@@ -8494,6 +8877,7 @@
};
petabyteboy = {
email = "milan@petabyte.dev";
+ matrix = "@milan:petabyte.dev";
github = "petabyteboy";
githubId = 3250809;
name = "Milan Pässler";
@@ -8506,6 +8890,7 @@
};
peterhoeg = {
email = "peter@hoeg.com";
+ matrix = "@peter:hoeg.com";
github = "peterhoeg";
githubId = 722550;
name = "Peter Hoeg";
@@ -8570,6 +8955,12 @@
githubId = 421510;
name = "Noé Rubinstein";
};
+ photex = {
+ email = "photex@gmail.com";
+ github = "photex";
+ githubId = 301903;
+ name = "Chip Collier";
+ };
phreedom = {
email = "phreedom@yandex.ru";
github = "phreedom";
@@ -8591,6 +8982,7 @@
piegames = {
name = "piegames";
email = "nix@piegames.de";
+ matrix = "@piegames:matrix.org";
github = "piegamesde";
githubId = 14054505;
};
@@ -8752,6 +9144,12 @@
githubId = 11365056;
name = "Kevin Liu";
};
+ pnmadelaine = {
+ name = "Paul-Nicolas Madelaine";
+ email = "pnm@pnm.tf";
+ github = "pnmadelaine";
+ githubId = 21977014;
+ };
pnotequalnp = {
email = "kevin@pnotequalnp.com";
github = "pnotequalnp";
@@ -8838,6 +9236,7 @@
};
primeos = {
email = "dev.primeos@gmail.com";
+ matrix = "@primeos:matrix.org";
github = "primeos";
githubId = 7537109;
name = "Michael Weiss";
@@ -8906,12 +9305,15 @@
};
psibi = {
email = "sibi@psibi.in";
+ matrix = "@psibi:matrix.org";
github = "psibi";
githubId = 737477;
name = "Sibi Prabakaran";
};
pstn = {
email = "philipp@xndr.de";
+ github = "pstn";
+ githubId = 1329940;
name = "Philipp Steinpaß";
};
pSub = {
@@ -8958,6 +9360,7 @@
};
putchar = {
email = "slim.cadoux@gmail.com";
+ matrix = "@putch4r:matrix.org";
github = "putchar";
githubId = 8208767;
name = "Slim Cadoux";
@@ -9026,8 +9429,15 @@
githubId = 52847440;
name = "Ryan Burns";
};
+ r3dl3g = {
+ email = "redleg@rothfuss-web.de";
+ github = "r3dl3g";
+ githubId = 35229674;
+ name = "Armin Rothfuss";
+ };
raboof = {
email = "arnout@bzzt.net";
+ matrix = "@raboof:matrix.org";
github = "raboof";
githubId = 131856;
name = "Arnout Engelen";
@@ -9058,6 +9468,7 @@
};
ralith = {
email = "ben.e.saunders@gmail.com";
+ matrix = "@ralith:ralith.com";
github = "ralith";
githubId = 104558;
name = "Benjamin Saunders";
@@ -9222,6 +9633,12 @@
githubId = 165283;
name = "Alexey Kutepov";
};
+ rewine = {
+ email = "lhongxu@outlook.com";
+ github = "wineee";
+ githubId = 22803888;
+ name = "Lu Hongxu";
+ };
rgrunbla = {
email = "remy@grunblatt.org";
github = "rgrunbla";
@@ -9297,6 +9714,7 @@
risson = {
name = "Marc Schmitt";
email = "marc.schmitt@risson.space";
+ matrix = "@risson:lama-corp.space";
github = "rissson";
githubId = 18313093;
keys = [
@@ -9354,12 +9772,14 @@
};
rmcgibbo = {
email = "rmcgibbo@gmail.com";
+ matrix = "@rmcgibbo:matrix.org";
github = "rmcgibbo";
githubId = 641278;
name = "Robert T. McGibbon";
};
rnhmjoj = {
email = "rnhmjoj@inventati.org";
+ matrix = "@rnhmjoj:maxwell.ydns.eu";
github = "rnhmjoj";
githubId = 2817565;
name = "Michele Guerini Rocco";
@@ -9400,6 +9820,7 @@
};
roberth = {
email = "nixpkgs@roberthensing.nl";
+ matrix = "@roberthensing:matrix.org";
github = "roberth";
githubId = 496447;
name = "Robert Hensing";
@@ -9458,18 +9879,9 @@
githubId = 1312525;
name = "Rongcui Dong";
};
- ronthecookie = {
- name = "Ron B";
- email = "me@ronthecookie.me";
- github = "ronthecookie";
- githubId = 2526321;
- keys = [{
- longkeyid = "rsa2048/0x6F5B32DE5E5FA80C";
- fingerprint = "4B2C DDA5 FA35 642D 956D 7294 6F5B 32DE 5E5F A80C";
- }];
- };
roosemberth = {
email = "roosembert.palacios+nixpkgs@posteo.ch";
+ matrix = "@roosemberth:orbstheorem.ch";
github = "roosemberth";
githubId = 3621083;
name = "Roosembert (Roosemberth) Palacios";
@@ -9524,6 +9936,12 @@
githubId = 373566;
name = "Ronuk Raval";
};
+ rski = {
+ name = "rski";
+ email = "rom.skiad+nix@gmail.com";
+ github = "rski";
+ githubId = 2960312;
+ };
rszibele = {
email = "richard@szibele.com";
github = "rszibele";
@@ -9610,6 +10028,7 @@
};
ryantm = {
email = "ryan@ryantm.com";
+ matrix = "@ryantm:matrix.org";
github = "ryantm";
githubId = 4804;
name = "Ryan Mulligan";
@@ -9660,10 +10079,22 @@
};
s1341 = {
email = "s1341@shmarya.net";
+ matrix = "@s1341:matrix.org";
name = "Shmarya Rubenstein";
github = "s1341";
githubId = 5682183;
};
+ sagikazarmark = {
+ name = "Mark Sagi-Kazar";
+ email = "mark.sagikazar@gmail.com";
+ matrix = "@mark.sagikazar:matrix.org";
+ github = "sagikazarmark";
+ githubId = 1226384;
+ keys = [{
+ longkeyid = "rsa4096/0xF251ADDC9D041C7E";
+ fingerprint = "E628 C811 6FB8 1657 F706 4EA4 F251 ADDC 9D04 1C7E";
+ }];
+ };
samalws = {
email = "sam@samalws.com";
name = "Sam Alws";
@@ -9712,6 +10143,7 @@
};
samueldr = {
email = "samuel@dionne-riel.com";
+ matrix = "@samueldr:matrix.org";
github = "samueldr";
githubId = 132835;
name = "Samuel Dionne-Riel";
@@ -9780,6 +10212,12 @@
githubId = 720864;
name = "Sébastien Bourdeauducq";
};
+ sbellem = {
+ email = "sbellem@gmail.com";
+ github = "sbellem";
+ githubId = 125458;
+ name = "Sylvain Bellemare";
+ };
sbond75 = {
name = "sbond75";
email = "43617712+sbond75@users.noreply.github.com";
@@ -9852,6 +10290,7 @@
};
Scriptkiddi = {
email = "nixos@scriptkiddi.de";
+ matrix = "@fritz.otlinghaus:helsinki-systems.de";
github = "scriptkiddi";
githubId = 3598650;
name = "Fritz Otlinghaus";
@@ -9864,6 +10303,7 @@
};
sdier = {
email = "scott@dier.name";
+ matrix = "@sdier:matrix.org";
github = "sdier";
githubId = 11613056;
name = "Scott Dier";
@@ -9934,6 +10374,12 @@
githubId = 307899;
name = "Gurkan Gur";
};
+ sersorrel = {
+ email = "ash@sorrel.sh";
+ github = "sersorrel";
+ githubId = 9433472;
+ name = "ash";
+ };
servalcatty = {
email = "servalcat@pm.me";
github = "servalcatty";
@@ -10112,6 +10558,12 @@
fingerprint = "ADF4 C13D 0E36 1240 BD01 9B51 D1DE 6D7F 6936 63A5";
}];
};
+ simarra = {
+ name = "simarra";
+ email = "loic.martel@protonmail.com";
+ github = "simarra";
+ githubId = 14372987;
+ };
simonchatts = {
email = "code@chatts.net";
github = "simonchatts";
@@ -10132,6 +10584,7 @@
};
siraben = {
email = "bensiraphob@gmail.com";
+ matrix = "@siraben:matrix.org";
github = "siraben";
githubId = 8219659;
name = "Siraphob Phipathananunth";
@@ -10146,6 +10599,12 @@
fingerprint = "B234 EFD4 2B42 FE81 EE4D 7627 F72C 4A88 7F9A 24CA";
}];
};
+ sirseruju = {
+ email = "sir.seruju@yandex.ru";
+ github = "sirseruju";
+ githubId = 74881555;
+ name = "Fofanov Sergey";
+ };
sivteck = {
email = "sivaram1992@gmail.com";
github = "sivteck";
@@ -10204,6 +10663,7 @@
};
SlothOfAnarchy = {
email = "slothofanarchy1@gmail.com";
+ matrix = "@michel.weitbrecht:helsinki-systems.de";
github = "SlothOfAnarchy";
githubId = 12828415;
name = "Michel Weitbrecht";
@@ -10240,6 +10700,13 @@
githubId = 4477729;
name = "Sergey Mironov";
};
+ smitop = {
+ name = "Smitty van Bodegom";
+ email = "me@smitop.com";
+ matrix = "@smitop:kde.org";
+ github = "Smittyvb";
+ githubId = 10530973;
+ };
sna = {
email = "abouzahra.9@wright.edu";
github = "s-na";
@@ -10278,6 +10745,7 @@
};
solson = {
email = "scott@solson.me";
+ matrix = "@solson:matrix.org";
github = "solson";
githubId = 26806;
name = "Scott Olson";
@@ -10330,6 +10798,7 @@
};
spencerjanssen = {
email = "spencerjanssen@gmail.com";
+ matrix = "@sjanssen:matrix.org";
github = "spencerjanssen";
githubId = 2600039;
name = "Spencer Janssen";
@@ -10378,6 +10847,7 @@
};
srhb = {
email = "sbrofeldt@gmail.com";
+ matrix = "@srhb:matrix.org";
github = "srhb";
githubId = 219362;
name = "Sarah Brofeldt";
@@ -10400,6 +10870,12 @@
github = "staccato";
githubId = 86573128;
};
+ stackshadow = {
+ email = "stackshadow@evilbrain.de";
+ github = "stackshadow";
+ githubId = 7512804;
+ name = "Martin Langlotz";
+ };
steell = {
email = "steve@steellworks.com";
github = "Steell";
@@ -10414,6 +10890,7 @@
};
stephank = {
email = "nix@stephank.nl";
+ matrix = "@skochen:matrix.org";
github = "stephank";
githubId = 89950;
name = "Stéphan Kochen";
@@ -10476,6 +10953,12 @@
githubId = 1181362;
name = "Stefan Junker";
};
+ stevenroose = {
+ email = "github@stevenroose.org";
+ github = "stevenroose";
+ githubId = 853468;
+ name = "Steven Roose";
+ };
stianlagstad = {
email = "stianlagstad@gmail.com";
github = "stianlagstad";
@@ -10542,14 +11025,9 @@
githubId = 2666479;
name = "Y Nguyen";
};
- superherointj = {
- name = "Sérgio G.";
- email = "5861043+superherointj@users.noreply.github.com";
- github = "superherointj";
- githubId = 5861043;
- };
SuperSandro2000 = {
email = "sandro.jaeckel@gmail.com";
+ matrix = "@sandro:supersandro.de";
github = "SuperSandro2000";
githubId = 7258858;
name = "Sandro Jäckel";
@@ -10634,6 +11112,7 @@
};
symphorien = {
email = "symphorien_nixpkgs@xlumurb.eu";
+ matrix = "@symphorien:xlumurb.eu";
github = "symphorien";
githubId = 12595971;
name = "Guillaume Girol";
@@ -10722,6 +11201,7 @@
};
taktoa = {
email = "taktoa@gmail.com";
+ matrix = "@taktoa:matrix.org";
github = "taktoa";
githubId = 553443;
name = "Remy Goldschmidt";
@@ -10740,6 +11220,7 @@
};
talyz = {
email = "kim.lindberger@gmail.com";
+ matrix = "@talyz:matrix.org";
github = "talyz";
githubId = 63433;
name = "Kim Lindberger";
@@ -10848,6 +11329,7 @@
};
tfc = {
email = "jacek@galowicz.de";
+ matrix = "@jonge:ukvly.org";
github = "tfc";
githubId = 29044;
name = "Jacek Galowicz";
@@ -10882,6 +11364,17 @@
githubId = 1141680;
name = "Thane Gill";
};
+ thblt = {
+ name = "Thibault Polge";
+ email = "thibault@thb.lt";
+ matrix = "@thbltp:matrix.org";
+ github = "thblt";
+ githubId = 2453136;
+ keys = [{
+ longkeyid = "rsa4096/0x63A44817A52EAB7B";
+ fingerprint = "D2A2 F0A1 E7A8 5E6F B711 DEE5 63A4 4817 A52E AB7B";
+ }];
+ };
TheBrainScrambler = {
email = "esthromeris@riseup.net";
github = "TheBrainScrambler";
@@ -10942,6 +11435,7 @@
};
thibautmarty = {
email = "github@thibautmarty.fr";
+ matrix = "@thibaut:thibautmarty.fr";
github = "ThibautMarty";
githubId = 3268082;
name = "Thibaut Marty";
@@ -11082,6 +11576,7 @@
};
tnias = {
email = "phil@grmr.de";
+ matrix = "@tnias:stratum0.org";
github = "tnias";
githubId = 9853194;
name = "Philipp Bartsch";
@@ -11128,6 +11623,7 @@
};
tomberek = {
email = "tomberek@gmail.com";
+ matrix = "@tomberek:matrix.org";
github = "tomberek";
githubId = 178444;
name = "Thomas Bereknyei";
@@ -11146,6 +11642,7 @@
};
toonn = {
email = "nixpkgs@toonn.io";
+ matrix = "@toonn:matrix.org";
github = "toonn";
githubId = 1486805;
name = "Toon Nolten";
@@ -11234,6 +11731,12 @@
githubId = 1568873;
name = "Torsten Scholak";
};
+ tshaynik = {
+ email = "tshaynik@protonmail.com";
+ github = "tshaynik";
+ githubId = 15064765;
+ name = "tshaynik";
+ };
tstrobel = {
email = "4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains";
name = "Thomas Strobel";
@@ -11346,8 +11849,16 @@
fingerprint = "EE59 5E29 BB5B F2B3 5ED2 3F1C D276 FF74 6700 7335";
}];
};
+ uniquepointer = {
+ email = "uniquepointer@mailbox.org";
+ matrix = "@uniquepointer:matrix.org";
+ github = "uniquepointer";
+ githubId = 71751817;
+ name = "uniquepointer";
+ };
unode = {
email = "alves.rjc@gmail.com";
+ matrix = "@renato_alves:matrix.org";
github = "unode";
githubId = 122319;
name = "Renato Alves";
@@ -11408,6 +11919,7 @@
};
vaibhavsagar = {
email = "vaibhavsagar@gmail.com";
+ matrix = "@vaibhavsagar:matrix.org";
github = "vaibhavsagar";
githubId = 1525767;
name = "Vaibhav Sagar";
@@ -11426,6 +11938,7 @@
};
valodim = {
email = "look@my.amazin.horse";
+ matrix = "@Valodim:stratum0.org";
github = "valodim";
githubId = 27813;
name = "Vincent Breitmoser";
@@ -11442,8 +11955,8 @@
githubId = 25173827;
name = "Vanilla";
keys = [{
- longkeyid = "rsa4096/0x4DFA2BDD7305E739";
- fingerprint = "5C16 5178 7DE2 EE5A AF98 3EA3 4DFA 2BDD 7305 E739";
+ longkeyid = "rsa4096/0x3750028ED04FA42E";
+ fingerprint = "2649 340C C909 F821 D251 6714 3750 028E D04F A42E";
}];
};
vanschelven = {
@@ -11486,6 +11999,7 @@
name = "Vladimír Čunát";
# vcunat@gmail.com predominated in commits before 2019/03
email = "v@cunat.cz";
+ matrix = "@vcunat:matrix.org";
github = "vcunat";
githubId = 1785925;
keys = [{
@@ -11728,6 +12242,22 @@
githubId = 9002575;
name = "Weihua Lu";
};
+ welteki = {
+ email = "welteki@pm.me";
+ github = "welteki";
+ githubId = 16267532;
+ name = "Han Verstraete";
+ keys = [{
+ longkeyid = "rsa4096/0x11F7BAEA856743FF";
+ fingerprint = "2145 955E 3F5E 0C95 3458 41B5 11F7 BAEA 8567 43FF";
+ }];
+ };
+ wentasah = {
+ name = "Michal Sojka";
+ email = "wsh@2x.cz";
+ github = "wentasah";
+ githubId = 140542;
+ };
wheelsandmetal = {
email = "jakob@schmutz.co.uk";
github = "wheelsandmetal";
@@ -11922,6 +12452,7 @@
};
xe = {
email = "me@christine.website";
+ matrix = "@withoutwithin:matrix.org";
github = "Xe";
githubId = 529003;
name = "Christine Dodrill";
@@ -11940,6 +12471,7 @@
};
xfix = {
email = "konrad@borowski.pw";
+ matrix = "@xfix:matrix.org";
github = "xfix";
githubId = 1297598;
name = "Konrad Borowski";
@@ -12012,6 +12544,7 @@
};
yayayayaka = {
email = "nixpkgs@uwu.is";
+ matrix = "@lara:uwu.is";
github = "yayayayaka";
githubId = 73759599;
name = "Lara A.";
@@ -12028,6 +12561,12 @@
githubId = 4113027;
name = "Jesper Geertsen Jonsson";
};
+ yinfeng = {
+ email = "lin.yinfeng@outlook.com";
+ github = "linyinfeng";
+ githubId = 11229748;
+ name = "Lin Yinfeng";
+ };
ylwghst = {
email = "ylwghst@onionmail.info";
github = "ylwghst";
@@ -12054,6 +12593,7 @@
};
yorickvp = {
email = "yorickvanpelt@gmail.com";
+ matrix = "@yorickvp:matrix.org";
github = "yorickvp";
githubId = 647076;
name = "Yorick van Pelt";
@@ -12064,6 +12604,12 @@
githubId = 452;
name = "Yurii Rashkovskii";
};
+ yrd = {
+ name = "Yannik Rödel";
+ email = "nix@yannik.info";
+ github = "yrd";
+ githubId = 1820447;
+ };
ysndr = {
email = "me@ysndr.de";
github = "ysndr";
@@ -12094,12 +12640,14 @@
};
yuka = {
email = "yuka@yuka.dev";
+ matrix = "@yuka:yuka.dev";
github = "yu-re-ka";
githubId = 86169957;
name = "Yureka";
};
yusdacra = {
email = "y.bera003.06@protonmail.com";
+ matrix = "@yusdacra:nixos.dev";
github = "yusdacra";
githubId = 19897088;
name = "Yusuf Bera Ertan";
@@ -12108,6 +12656,16 @@
fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2";
}];
};
+ yuu = {
+ email = "yuuyin@protonmail.com";
+ github = "yuuyins";
+ githubId = 86538850;
+ name = "Yuu Yin";
+ keys = [{
+ longkeyid = "rsa4096/0x416F303B43C20AC3";
+ fingerprint = "9F19 3AE8 AA25 647F FC31 46B5 416F 303B 43C2 0AC3";
+ }];
+ };
yvesf = {
email = "yvesf+nix@xapek.org";
github = "yvesf";
@@ -12202,6 +12760,7 @@
};
zhaofengli = {
email = "hello@zhaofeng.li";
+ matrix = "@zhaofeng:zhaofeng.li";
github = "zhaofengli";
githubId = 2189609;
name = "Zhaofeng Li";
@@ -12417,6 +12976,7 @@
fzakaria = {
name = "Farid Zakaria";
email = "farid.m.zakaria@gmail.com";
+ matrix = "@fzakaria:matrix.org";
github = "fzakaria";
githubId = 605070;
};
@@ -12435,6 +12995,7 @@
hmenke = {
name = "Henri Menke";
email = "henri@henrimenke.de";
+ matrix = "@hmenke:matrix.org";
github = "hmenke";
githubId = 1903556;
keys = [{
@@ -12501,6 +13062,7 @@
princemachiavelli = {
name = "Josh Hoffer";
email = "jhoffer@sansorgan.es";
+ matrix = "@princemachiavelli:matrix.org";
github = "princemachiavelli";
githubId = 2730968;
keys = [{
@@ -12528,6 +13090,12 @@
fingerprint = "61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5";
}];
};
+ zbioe = {
+ name = "Iury Fukuda";
+ email = "zbioe@protonmail.com";
+ github = "zbioe";
+ githubId = 7332055;
+ };
zenithal = {
name = "zenithal";
email = "i@zenithal.me";
@@ -12541,6 +13109,7 @@
zeri = {
name = "zeri";
email = "68825133+zeri42@users.noreply.github.com";
+ matrix = "@zeri:matrix.org";
github = "zeri42";
githubId = 68825133;
};
@@ -12560,17 +13129,4 @@
github = "zupo";
githubId = 311580;
};
- rski = {
- name = "rski";
- email = "rom.skiad+nix@gmail.com";
- github = "rski";
- githubId = 2960312;
- };
- mbprtpmnr = {
- name = "mbprtpmnr";
- email = "mbprtpmnr@pm.me";
- github = "mbprtpmnr";
- githubId = 88109321;
- };
-
}
diff --git a/maintainers/scripts/find-tarballs.nix b/maintainers/scripts/find-tarballs.nix
index 52cce9099183..990185bbb3bc 100644
--- a/maintainers/scripts/find-tarballs.nix
+++ b/maintainers/scripts/find-tarballs.nix
@@ -37,7 +37,7 @@ let
keyDrv = drv: if canEval drv.drvPath then { key = drv.drvPath; value = drv; } else { };
immediateDependenciesOf = drv:
- concatLists (mapAttrsToList (n: v: derivationsIn v) (removeAttrs drv ["meta" "passthru"]));
+ concatLists (mapAttrsToList (n: v: derivationsIn v) (removeAttrs drv (["meta" "passthru"] ++ optionals (drv?passthru) (attrNames drv.passthru))));
derivationsIn = x:
if !canEval x then []
diff --git a/maintainers/scripts/haskell/hydra-report.hs b/maintainers/scripts/haskell/hydra-report.hs
index 0d22a670366d..360b9f2058de 100755
--- a/maintainers/scripts/haskell/hydra-report.hs
+++ b/maintainers/scripts/haskell/hydra-report.hs
@@ -437,7 +437,7 @@ printBuildSummary
<> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
<> "*"
]
- brokenLine (name, rdeps) = "[" <> name <> "](https://search.nixos.org/packages?channel=unstable&show=haskellPackages." <> name <> "&query=haskellPackages." <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps)
+ brokenLine (name, rdeps) = "[" <> name <> "](https://packdeps.haskellers.com/reverse/" <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps) <> " "
numSummary = statusToNumSummary summary
jobsByState predicate = Map.filter (predicate . worstState) summary
worstState = foldl' min Success . fmap state . summaryBuilds
@@ -464,8 +464,8 @@ printBuildSummary
if' (isNothing mergeableJob) "No `mergeable` job found." <>
if' (isNothing maintainedJob) "No `maintained` job found." <>
if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <>
- if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too much outstanding jobs on x86_64-linux." <>
- if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too much outstanding jobs on aarch64-linux."
+ if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too many outstanding jobs on x86_64-linux." <>
+ if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too many outstanding jobs on aarch64-linux."
if' p e = if p then [e] else mempty
outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m
maintainedJob = Map.lookup "maintained" summary
diff --git a/maintainers/scripts/haskell/merge-and-open-pr.sh b/maintainers/scripts/haskell/merge-and-open-pr.sh
index d73c09122350..18db1da0f2a5 100755
--- a/maintainers/scripts/haskell/merge-and-open-pr.sh
+++ b/maintainers/scripts/haskell/merge-and-open-pr.sh
@@ -75,6 +75,10 @@ fi
echo "Merging https://github.com/NixOS/nixpkgs/pull/${curr_haskell_updates_pr_num}..."
gh pr merge --repo NixOS/nixpkgs --merge "$curr_haskell_updates_pr_num"
+# Update the list of Haskell package versions in NixOS on Hackage.
+echo "Updating list of Haskell package versions in NixOS on Hackage..."
+./maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh
+
# Update stackage, Hackage hashes, and regenerate Haskell package set
echo "Updating Stackage..."
./maintainers/scripts/haskell/update-stackage.sh --do-commit
@@ -84,7 +88,7 @@ echo "Regenerating Hackage packages..."
./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
# Push these new commits to the haskell-updates branch
-echo "Pushing commits just created to the haskell-updates branch"
+echo "Pushing commits just created to the remote haskell-updates branch..."
git push
# Open new PR
@@ -93,7 +97,7 @@ new_pr_body=$(cat < "$expr"
+ local expr="$($MKTEMP)"
+ toRemove+=("$expr")
+ nixexpr "${!i}" > "$expr"
- nix-env -f "$expr" -qaP --no-name --out-path --show-trace $3 \
- | sort > "${list[$i]}" &
+ nix-env -f "$expr" -qaP --no-name --out-path --show-trace $3 \
+ | sort > "${list[$i]}" &
- if [ "$parallel" != "true" ]; then
- wait
- fi
- done
+ if [ "$parallel" != "true" ]; then
+ wait
+ fi
+ done
- wait
- comm -13 "${list[@]}"
+ wait
+ comm -13 "${list[@]}"
}
# Prepare nixpkgs trees.
declare -a tree
for i in 1 2; do
- if [ -n "${!i}" ]; then # use the given commit
- dir="$($MKTEMP -d)"
- tree[$i]="$dir"
- toRemove+=("$dir")
+ if [ -n "${!i}" ]; then # use the given commit
+ dir="$($MKTEMP -d)"
+ tree[$i]="$dir"
+ toRemove+=("$dir")
- git clone --shared --no-checkout --quiet . "${tree[$i]}"
- (cd "${tree[$i]}" && git checkout --quiet "${!i}")
- else #use the current tree
- tree[$i]="$(pwd)"
- fi
+ git clone --shared --no-checkout --quiet . "${tree[$i]}"
+ (cd "${tree[$i]}" && git checkout --quiet "${!i}")
+ else #use the current tree
+ tree[$i]="$(pwd)"
+ fi
done
newlist="$($MKTEMP)"
toRemove+=("$newlist")
# Notes:
-# - the evaluation is done on x86_64-linux, like on Hydra.
-# - using $newlist file so that newPkgs() isn't in a sub-shell (because of toRemove)
+# - the evaluation is done on x86_64-linux, like on Hydra.
+# - using $newlist file so that newPkgs() isn't in a sub-shell (because of toRemove)
newPkgs "${tree[1]}" "${tree[2]}" '--argstr system "x86_64-linux"' > "$newlist"
# Hacky: keep only the last word of each attribute path and sort.
sed -n 's/\([^. ]*\.\)*\([^. ]*\) .*$/\2/p' < "$newlist" \
- | sort | uniq -c
+ | sort | uniq -c
if [ -n "$optPrint" ]; then
- echo
- cat "$newlist"
+ echo
+ cat "$newlist"
fi
diff --git a/maintainers/scripts/update-luarocks-packages b/maintainers/scripts/update-luarocks-packages
index a465031b9112..c559d5699dff 100755
--- a/maintainers/scripts/update-luarocks-packages
+++ b/maintainers/scripts/update-luarocks-packages
@@ -33,8 +33,7 @@ TMP_FILE="$(mktemp)"
GENERATED_NIXFILE="pkgs/development/lua-modules/generated-packages.nix"
LUAROCKS_CONFIG="$NIXPKGS_PATH/maintainers/scripts/luarocks-config.lua"
-HEADER = """
-/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT!
+HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT!
Regenerate it with:
nixpkgs$ ./maintainers/scripts/update-luarocks-packages
@@ -99,9 +98,8 @@ class LuaEditor(Editor):
header2 = textwrap.dedent(
# header2 = inspect.cleandoc(
"""
- { self, stdenv, lib, fetchurl, fetchgit, ... } @ args:
- self: super:
- with self;
+ { self, stdenv, lib, fetchurl, fetchgit, callPackage, ... } @ args:
+ final: prev:
{
""")
f.write(header2)
@@ -199,6 +197,7 @@ def generate_pkg_nix(plug: LuaPlugin):
log.debug("running %s", ' '.join(cmd))
output = subprocess.check_output(cmd, text=True)
+ output = "callPackage(" + output.strip() + ") {};\n\n"
return (plug, output)
def main():
diff --git a/maintainers/scripts/update.py b/maintainers/scripts/update.py
index eb26a472e926..06b12a0ee04e 100644
--- a/maintainers/scripts/update.py
+++ b/maintainers/scripts/update.py
@@ -114,7 +114,7 @@ async def check_changes(package: Dict, worktree: str, update_info: str):
changes[0]['newVersion'] = json.loads((await obtain_new_version_process.stdout.read()).decode('utf-8'))
if 'files' not in changes[0]:
- changed_files_process = await check_subprocess('git', 'diff', '--name-only', stdout=asyncio.subprocess.PIPE, cwd=worktree)
+ changed_files_process = await check_subprocess('git', 'diff', '--name-only', 'HEAD', stdout=asyncio.subprocess.PIPE, cwd=worktree)
changed_files = (await changed_files_process.stdout.read()).splitlines()
changes[0]['files'] = changed_files
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index df0c9ce7cf61..fecea9e41483 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -137,7 +137,7 @@ with lib.maintainers; {
cleverca22
disassembler
jonringer
- maveru
+ manveru
nrdxp
];
scope = "Input-Output Global employees, which maintain critical software";
@@ -145,6 +145,7 @@ with lib.maintainers; {
jitsi = {
members = [
+ cleeyv
petabyteboy
ryantm
yuka
@@ -164,6 +165,24 @@ with lib.maintainers; {
scope = "Maintain Kodi and related packages.";
};
+ linux-kernel = {
+ members = [
+ TredwellGit
+ ma27
+ nequissimus
+ qyliss
+ ];
+ scope = "Maintain the Linux kernel.";
+ };
+
+ mate = {
+ members = [
+ j03
+ romildo
+ ];
+ scope = "Maintain Mate desktop environment and related packages.";
+ };
+
matrix = {
members = [
ma27
@@ -181,7 +200,6 @@ with lib.maintainers; {
openstack = {
members = [
angustrau
- superherointj
SuperSandro2000
];
scope = "Maintain the ecosystem around OpenStack";
diff --git a/nixos/doc/manual/administration/cleaning-store.chapter.md b/nixos/doc/manual/administration/cleaning-store.chapter.md
index fb2090b31d84..c9140d0869c7 100644
--- a/nixos/doc/manual/administration/cleaning-store.chapter.md
+++ b/nixos/doc/manual/administration/cleaning-store.chapter.md
@@ -58,5 +58,5 @@ a while to finish.
## NixOS Boot Entries {#sect-nixos-gc-boot-entries}
If your `/boot` partition runs out of space, after clearing old profiles
-you must rebuild your system with `nixos-rebuild` to update the `/boot`
-partition and clear space.
+you must rebuild your system with `nixos-rebuild boot` or `nixos-rebuild
+switch` to update the `/boot` partition and clear space.
diff --git a/nixos/doc/manual/development/option-declarations.section.md b/nixos/doc/manual/development/option-declarations.section.md
index 819c23684cdf..be56529992ab 100644
--- a/nixos/doc/manual/development/option-declarations.section.md
+++ b/nixos/doc/manual/development/option-declarations.section.md
@@ -38,9 +38,19 @@ The function `mkOption` accepts the following arguments.
of the module will have to define the value of the option, otherwise
an error will be thrown.
+`defaultText`
+
+: A textual representation of the default value to be rendered verbatim in
+ the manual. Useful if the default value is a complex expression or depends
+ on other values or packages.
+ Use `lib.literalExpression` for a Nix expression, `lib.literalDocBook` for
+ a plain English description in DocBook format.
+
`example`
: An example value that will be shown in the NixOS manual.
+ You can use `lib.literalExpression` and `lib.literalDocBook` in the same way
+ as in `defaultText`.
`description`
diff --git a/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixos/doc/manual/development/writing-nixos-tests.section.md
index 8471e7608af9..d9749d37da79 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/nixos/doc/manual/development/writing-nixos-tests.section.md
@@ -159,6 +159,17 @@ The following methods are available on machine objects:
`execute`
: Execute a shell command, returning a list `(status, stdout)`.
+ If the command detaches, it must close stdout, as `execute` will wait
+ for this to consume all output reliably. This can be achieved by
+ redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
+ a file. Examples of detaching commands are `sleep 365d &`, where the
+ shell forks a new process that can write to stdout and `xclip -i`, where
+ the `xclip` command itself forks without closing stdout.
+ Takes an optional parameter `check_return` that defaults to `True`.
+ Setting this parameter to `False` will not check for the return code
+ and return -1 instead. This can be used for commands that shut down
+ the VM and would therefore break the pipe that would be used for
+ retrieving the return code.
`succeed`
@@ -174,6 +185,9 @@ The following methods are available on machine objects:
- Dereferencing unset variables fail the command.
+ - It will wait for stdout to be closed. See `execute` for the
+ implications.
+
`fail`
: Like `succeed`, but raising an exception if the command returns a zero
diff --git a/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml b/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
index 0ca98dd6e510..4243d2bf53f9 100644
--- a/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
+++ b/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
@@ -64,7 +64,8 @@ $ nix-store --optimise
If your /boot partition runs out of space,
after clearing old profiles you must rebuild your system with
- nixos-rebuild to update the
+ nixos-rebuild boot or
+ nixos-rebuild switch to update the
/boot partition and clear space.
diff --git a/nixos/doc/manual/from_md/development/option-declarations.section.xml b/nixos/doc/manual/from_md/development/option-declarations.section.xml
index 85a59a543d14..2845e37659b1 100644
--- a/nixos/doc/manual/from_md/development/option-declarations.section.xml
+++ b/nixos/doc/manual/from_md/development/option-declarations.section.xml
@@ -57,13 +57,31 @@ options = {
+
+
+ defaultText
+
+
+
+ A textual representation of the default value to be rendered
+ verbatim in the manual. Useful if the default value is a
+ complex expression or depends on other values or packages. Use
+ lib.literalExpression for a Nix expression,
+ lib.literalDocBook for a plain English
+ description in DocBook format.
+
+
+
example
- An example value that will be shown in the NixOS manual.
+ An example value that will be shown in the NixOS manual. You
+ can use lib.literalExpression and
+ lib.literalDocBook in the same way as in
+ defaultText.
diff --git a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
index 83a96d5bb224..0d523681b639 100644
--- a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
+++ b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
@@ -266,7 +266,23 @@ start_all()
Execute a shell command, returning a list
- (status, stdout).
+ (status, stdout). If the command detaches,
+ it must close stdout, as execute will wait
+ for this to consume all output reliably. This can be achieved
+ by redirecting stdout to stderr >&2,
+ to /dev/console,
+ /dev/null or a file. Examples of detaching
+ commands are sleep 365d &, where the
+ shell forks a new process that can write to stdout and
+ xclip -i, where the
+ xclip command itself forks without closing
+ stdout. Takes an optional parameter
+ check_return that defaults to
+ True. Setting this parameter to
+ False will not check for the return code
+ and return -1 instead. This can be used for commands that shut
+ down the VM and would therefore break the pipe that would be
+ used for retrieving the return code.
@@ -300,6 +316,12 @@ start_all()
Dereferencing unset variables fail the command.
+
+
+ It will wait for stdout to be closed. See
+ execute for the implications.
+
+
diff --git a/nixos/doc/manual/from_md/installation/installing.chapter.xml b/nixos/doc/manual/from_md/installation/installing.chapter.xml
index 91ab71682977..db073fa83965 100644
--- a/nixos/doc/manual/from_md/installation/installing.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/installing.chapter.xml
@@ -25,8 +25,11 @@
You are logged-in automatically as nixos. The
nixos user account has an empty password so you
- can use sudo without a password.
+ can use sudo without a password:
+
+$ sudo -i
+
If you downloaded the graphical ISO image, you can run
systemctl start display-manager to start the
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 07af72ea8d9e..b5a3e27ab91e 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -1,5 +1,5 @@
- Release 21.11 (“?”, 2021.11/??)
+ Release 21.11 (“Porcupine”, 2021.11/??)
In addition to numerous new and upgraded packages, this release has
the following highlights:
@@ -15,6 +15,21 @@
Highlights
+
+
+ Nix has been updated to version 2.4, reference its
+ release
+ notes for more information on what has changed. The
+ previous version of Nix, 2.3.16, remains available for the
+ time being in the nix_2_3 package.
+
+
+
+
+ iptables now uses
+ nf_tables backend.
+
+
PHP now defaults to PHP 8.0, updated from 7.4.
@@ -44,6 +59,29 @@
guide is available.
+
+
+ Improvements have been made to the Hadoop module and package:
+
+
+
+
+ HDFS and YARN now support production-ready highly
+ available deployments with automatic failover.
+
+
+
+
+ Hadoop now defaults to Hadoop 3, updated from 2.
+
+
+
+
+ JournalNode, ZKFS and HTTPFS services have been added.
+
+
+
+
Activation scripts can now opt int to be run when running
@@ -55,6 +93,21 @@
actions.
+
+
+ KDE Plasma now finally works on Wayland.
+
+
+
+
+ bash now defaults to major version 5.
+
+
+
+
+ Systemd was updated to version 249 (from 247).
+
+
Pantheon desktop has been updated to version 6. Due to changes
@@ -62,6 +115,63 @@
gsettings set org.gnome.desktop.lockdown disable-lock-screen false.
+
+
+ kubernetes-helm now defaults to 3.7.0,
+ which introduced some breaking changes to the experimental OCI
+ manifest format. See
+ HIP
+ 6 for more details. helmfile also
+ defaults to 0.141.0, which is the minimum compatible version.
+
+
+
+
+ GNOME has been upgraded to 41. Please take a look at their
+ Release
+ Notes for details.
+
+
+
+
+ LXD support was greatly improved:
+
+
+
+
+ building LXD images from configurations is now directly
+ possible with just nixpkgs
+
+
+
+
+ hydra is now building nixOS LXD images that can be used
+ standalone with full nixos-rebuild support
+
+
+
+
+
+
+ OpenSSH was updated to version 8.8p1
+
+
+
+
+ This breaks connections to old SSH daemons as ssh-rsa host
+ keys and ssh-rsa public keys that were signed with SHA-1
+ are disabled by default now
+
+
+
+
+ These can be re-enabled, see the
+ OpenSSH
+ changelog for details
+
+
+
+
@@ -80,7 +190,15 @@
clipcat,
an X11 clipboard manager written in Rust. Available at
- [services.clipcat](options.html#o pt-services.clipcat.enable).
+ services.clipcat.
+
+
+
+
+ dex,
+ an OpenID Connect (OIDC) identity and OAuth 2.0 provider.
+ Available at
+ services.dex.
@@ -90,6 +208,14 @@
services.geoipupdate.
+
+
+ Jibri,
+ a service for recording or streaming a Jitsi Meet conference.
+ Available as
+ services.jibri.
+
+
Kea, ISCs
@@ -97,6 +223,21 @@
services.kea.
+
+
+ owncast,
+ self-hosted video live streaming solution. Available at
+ services.owncast.
+
+
+
+
+ PeerTube,
+ developed by Framasoft, is the free and decentralized
+ alternative to video platforms. Available at
+ services.peertube.
+
+
sourcehut, a
@@ -235,6 +376,14 @@
postfixadmin.
+
+
+ prowlarr,
+ an indexer manager/proxy built on the popular arr .net/reactjs
+ base stack
+ services.prowlarr.
+
+
soju, a
@@ -287,11 +436,89 @@
programs.pantheon-tweaks.
+
+
+ joycond,
+ a service that uses hid-nintendo to provide
+ nintendo joycond pairing and better nintendo switch pro
+ controller support.
+
+
+
+
+ multipath,
+ the device mapper multipath (DM-MP) daemon. Available as
+ services.multipath.
+
+
+
+
+ seafile,
+ an open source file syncing & sharing software. Available
+ as
+ services.seafile.
+
+
+
+
+ rasdaemon,
+ a hardware error logging daemon. Available as
+ hardware.rasdaemon.
+
+
+
+
+ code-server-module now available
+
+
+
+
+ xmrig,
+ a high performance, open source, cross platform RandomX,
+ KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and
+ RandomX benchmark.
+
+
+
+
+ Auto nice daemons
+ ananicy
+ and
+ ananicy-cpp.
+ Available as
+ services.ananicy.
+
+
Backward Incompatibilities
+
+
+ The NixOS VM test framework,
+ pkgs.nixosTest/make-test-python.nix,
+ now requires detaching commands such as
+ succeed("foo &") and
+ succeed("foo | xclip -i") to
+ close stdout. This can be done with a redirect such as
+ succeed("foo >&2 &").
+ This breaking change was necessitated by a race condition
+ causing tests to fail or hang. It applies to all methods that
+ invoke commands on the nodes, including
+ execute, succeed,
+ fail,
+ wait_until_succeeds,
+ wait_until_fails.
+
+
+
+
+ The services.wakeonlan option was removed,
+ and replaced with
+ networking.interfaces.<name>.wakeOnLan.
+
+
The security.wrappers option now requires
@@ -302,6 +529,14 @@
nobody/nogroup, which is unsafe.
+
+
+ Since iptables now uses
+ nf_tables backend and
+ ipset doesn’t support it, some applications
+ (ferm, shorewall, firehol) may have limited functionality.
+
+
The paperless module and package have been
@@ -389,7 +624,7 @@ Superuser created successfully.
The staticjinja package has been upgraded
- from 1.0.4 to 4.1.0
+ from 1.0.4 to 4.1.1
@@ -448,6 +683,17 @@ Superuser created successfully.
services.geoipupdate.
+
+
+ ihatemoney has been updated to version
+ 5.1.1
+ (release
+ notes). If you serve ihatemoney by HTTP rather than
+ HTTPS, you must set
+ services.ihatemoney.secureCookie
+ to false.
+
+
PHP 7.3 is no longer supported due to upstream not supporting
@@ -968,8 +1214,8 @@ Superuser created successfully.
The varnish package was upgraded from 6.3.x
- to 6.5.x. varnish60 for the last LTS
- release is also still available.
+ to 7.x. varnish60 for the last LTS release
+ is also still available.
@@ -1025,6 +1271,70 @@ Superuser created successfully.
changelog.
+
+
+ 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.
+
+
+
+
+ services.xserver.displayManager.defaultSession = "plasma5"
+ does not work anymore, instead use either
+ "plasma" for the Plasma X11
+ session or "plasmawayland" for
+ the Plasma Wayland sesison.
+
+
+
+
+ boot.kernelParams now only accepts one
+ command line parameter per string. This change is aimed to
+ reduce common mistakes like param = 12
, which
+ would be parsed as 3 parameters.
+
+
+
+
+ The coursier package’s binary was renamed
+ from coursier to cs.
+ Completions which haven’t worked for a while should now work
+ with the renamed binary. To keep using
+ coursier, you can create a shell alias.
+
+
+
+
+ The services.mosquitto module has been
+ rewritten to support multiple listeners and per-listener
+ configuration. Module configurations from previous releases
+ will no longer work and must be updated.
+
+
+
+
+ Nextcloud 20 (pkgs.nextcloud20) has been
+ dropped because it was EOLed by upstream in 2021-10.
+
+
+
+
+ The virtualisation.pathsInNixDB option was
+ renamed
+ virtualisation.additionalPaths.
+
+
+
+
+ The services.ddclient.password option was
+ removed, and replaced with
+ services.ddclient.passwordFile.
+
+
@@ -1044,6 +1354,46 @@ Superuser created successfully.
linuxPackages_latest) remain untouched.
+
+
+ In NixOS virtual machines (QEMU), the
+ virtualisation module has been updated with
+ new options:
+
+
+
+
+ forwardPorts
+ to configure IPv4 port forwarding,
+
+
+
+
+ sharedDirectories
+ to set up shared host directories,
+
+
+
+
+ resolution
+ to set the screen resolution,
+
+
+
+
+ useNixStoreImage
+ to use a disk image for the Nix store instead of 9P.
+
+
+
+
+ In addition, the default
+ msize
+ parameter in 9P filesystems (including /nix/store and all
+ shared directories) has been increased to 16K for improved
+ performance.
+
+
The setting
@@ -1209,6 +1559,73 @@ Superuser created successfully.
+
+
+ The
+ networking.wireless
+ 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,
+ #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
+ 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
+ option has been added to facilitate fast roaming between
+ access points (enabled by default).
+
+
+
+
+ A new
+ networks.<name>.authProtocols
+ option has been added to change the authentication
+ protocols used when connecting to a network.
+
+
+
+
The
@@ -1218,6 +1635,23 @@ Superuser created successfully.
option.
+
+
+ The
+ services.smokeping.host
+ option was added and defaulted to
+ localhost. Before,
+ smokeping listened to all interfaces by
+ default. NixOS defaults generally aim to provide
+ non-Internet-exposed defaults for databases and internal
+ monitoring tools, see e.g.
+ #100192.
+ Further, the systemd service for smokeping
+ got reworked defaults for increased operational stability, see
+ PR
+ #144127 for details.
+
+
The
@@ -1324,6 +1758,184 @@ Superuser created successfully.
/etc/xdg/mimeapps.list.
+
+
+ Kopia was upgraded from 0.8.x to 0.9.x. Please read the
+ upstream
+ release notes for changes and upgrade instructions.
+
+
+
+
+ The systemd.network module has gained
+ support for the FooOverUDP link type.
+
+
+
+
+ The networking module has a new
+ networking.fooOverUDP option to configure
+ Foo-over-UDP encapsulations.
+
+
+
+
+ networking.sits now supports Foo-over-UDP
+ encapsulation.
+
+
+
+
+ Changing systemd .socket units now restarts
+ them and stops the service that is activated by them.
+ Additionally, services with
+ stopOnChange = false don’t break anymore
+ when they are socket-activated.
+
+
+
+
+ The virtualisation.libvirtd module has been
+ refactored and updated with new options:
+
+
+
+
+ virtualisation.libvirtd.qemu* options
+ (e.g.:
+ virtualisation.libvirtd.qemuRunAsRoot)
+ were moved to
+ virtualisation.libvirtd.qemu
+ submodule,
+
+
+
+
+ software TPM1/TPM2 support (e.g.: Windows 11 guests)
+ (virtualisation.libvirtd.qemu.swtpm),
+
+
+
+
+ custom OVMF package (e.g.:
+ pkgs.OVMFFull with HTTP, CSM and Secure
+ Boot support)
+ (virtualisation.libvirtd.qemu.ovmf.package).
+
+
+
+
+
+
+ The cawbird Twitter client now uses its own
+ API keys to count as different application than upstream
+ builds. This is done to evade application-level rate limiting.
+ While existing accounts continue to work, users may want to
+ remove and re-register their account in the client to enjoy a
+ better user experience and benefit from this change.
+
+
+
+
+ A new option
+ services.prometheus.enableReload has been
+ added which can be enabled to reload the prometheus service
+ when its config file changes instead of restarting.
+
+
+
+
+ The option
+ services.prometheus.environmentFile has
+ been removed since it was causing
+ issues
+ and Prometheus now has native support for secret files, i.e.
+ basic_auth.password_file and
+ authorization.credentials_file.
+
+
+
+
+ Dokuwiki now supports caddy! However
+
+
+
+
+ the nginx option has been removed, in the new
+ configuration, please use the
+ dokuwiki.webserver = "nginx"
+ instead.
+
+
+
+
+ The ${hostname}
option has been deprecated,
+ please use
+ dokuwiki.sites = [ "${hostname}" ]
+ instead
+
+
+
+
+
+
+ The
+ services.unifi
+ module has been reworked, solving a number of issues. This
+ leads to several user facing changes:
+
+
+
+
+ The services.unifi.dataDir option is
+ removed and the data is now always located under
+ /var/lib/unifi/data. This is done to
+ make better use of systemd state direcotiry and thus
+ making the service restart more reliable.
+
+
+
+
+ The unifi logs can now be found under:
+ /var/log/unifi instead of
+ /var/lib/unifi/logs.
+
+
+
+
+ The unifi run directory can now be found under:
+ /run/unifi instead of
+ /var/lib/unifi/run.
+
+
+
+
+
+
+ security.pam.services.<name>.makeHomeDir
+ now uses umask=0077 instead of
+ umask=0022 when creating the home
+ directory.
+
+
+
+
+ Loki has had another release. Some default values have been
+ changed for the configuration and some configuration options
+ have been renamed. For more details, please check
+ the
+ upgrade guide.
+
+
+
+
+ julia now refers to
+ julia-stable instead of
+ julia-lts. In practice this means it has
+ been upgraded from 1.0.4 to
+ 1.5.4.
+
+
diff --git a/nixos/doc/manual/installation/installing.chapter.md b/nixos/doc/manual/installation/installing.chapter.md
index a0823b51e9cb..def4f37fbcaa 100644
--- a/nixos/doc/manual/installation/installing.chapter.md
+++ b/nixos/doc/manual/installation/installing.chapter.md
@@ -15,7 +15,10 @@ finished booting, it should have detected most of your hardware.
The NixOS manual is available by running `nixos-help`.
You are logged-in automatically as `nixos`. The `nixos` user account has
-an empty password so you can use `sudo` without a password.
+an empty password so you can use `sudo` without a password:
+```ShellSession
+$ sudo -i
+```
If you downloaded the graphical ISO image, you can run `systemctl
start display-manager` to start the desktop environment. If you want
diff --git a/nixos/doc/manual/md-to-db.sh b/nixos/doc/manual/md-to-db.sh
index 6dd4b8c6e419..e0274f5619c7 100755
--- a/nixos/doc/manual/md-to-db.sh
+++ b/nixos/doc/manual/md-to-db.sh
@@ -6,7 +6,7 @@
# into DocBook files in the from_md folder.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-pushd $DIR
+pushd "$DIR"
# NOTE: Keep in sync with Nixpkgs manual (/doc/Makefile).
# TODO: Remove raw-attribute when we can get rid of DocBook altogether.
@@ -29,7 +29,7 @@ mapfile -t MD_FILES < <(find . -type f -regex '.*\.md$')
for mf in ${MD_FILES[*]}; do
if [ "${mf: -11}" == ".section.md" ]; then
- mkdir -p $(dirname "$OUT/$mf")
+ mkdir -p "$(dirname "$OUT/$mf")"
OUTFILE="$OUT/${mf%".section.md"}.section.xml"
pandoc "$mf" "${pandoc_flags[@]}" \
-o "$OUTFILE"
@@ -37,7 +37,7 @@ for mf in ${MD_FILES[*]}; do
fi
if [ "${mf: -11}" == ".chapter.md" ]; then
- mkdir -p $(dirname "$OUT/$mf")
+ mkdir -p "$(dirname "$OUT/$mf")"
OUTFILE="$OUT/${mf%".chapter.md"}.chapter.xml"
pandoc "$mf" "${pandoc_flags[@]}" \
--top-level-division=chapter \
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 586955057bdc..d4ff576fecf0 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -1,4 +1,4 @@
-# Release 21.11 (“?”, 2021.11/??) {#sec-release-21.11}
+# Release 21.11 (“Porcupine”, 2021.11/??) {#sec-release-21.11}
In addition to numerous new and upgraded packages, this release has the following highlights:
@@ -6,6 +6,10 @@ In addition to numerous new and upgraded packages, this release has the followin
## Highlights {#sec-release-21.11-highlights}
+- Nix has been updated to version 2.4, reference its [release notes](https://discourse.nixos.org/t/nix-2-4-released/15822) for more information on what has changed. The previous version of Nix, 2.3.16, remains available for the time being in the `nix_2_3` package.
+
+- `iptables` now uses `nf_tables` backend.
+
- PHP now defaults to PHP 8.0, updated from 7.4.
- kOps now defaults to 1.21.1, which uses containerd as the default runtime.
@@ -16,23 +20,54 @@ In addition to numerous new and upgraded packages, this release has the followin
- spark now defaults to spark 3, updated from 2. A [migration guide](https://spark.apache.org/docs/latest/core-migration-guide.html#upgrading-from-core-24-to-30) is available.
+- Improvements have been made to the Hadoop module and package:
+ - HDFS and YARN now support production-ready highly available deployments with automatic failover.
+ - Hadoop now defaults to Hadoop 3, updated from 2.
+ - JournalNode, ZKFS and HTTPFS services have been added.
+
- Activation scripts can now opt int to be run when running `nixos-rebuild dry-activate` and detect the dry activation by reading `$NIXOS_ACTION`.
This allows activation scripts to output what they would change if the activation was really run.
The users/modules activation script supports this and outputs some of is actions.
+- KDE Plasma now finally works on Wayland.
+
+- bash now defaults to major version 5.
+
+- Systemd was updated to version 249 (from 247).
+
- Pantheon desktop has been updated to version 6. Due to changes of screen locker, if locking doesn't work for you, please try `gsettings set org.gnome.desktop.lockdown disable-lock-screen false`.
+- `kubernetes-helm` now defaults to 3.7.0, which introduced some breaking changes to the experimental OCI manifest format. See [HIP 6](https://github.com/helm/community/blob/main/hips/hip-0006.md) for more details.
+ `helmfile` also defaults to 0.141.0, which is the minimum compatible version.
+
+- GNOME has been upgraded to 41. Please take a look at their [Release Notes](https://help.gnome.org/misc/release-notes/41.0/) for details.
+
+- LXD support was greatly improved:
+ - building LXD images from configurations is now directly possible with just nixpkgs
+ - hydra is now building nixOS LXD images that can be used standalone with full nixos-rebuild support
+
+- OpenSSH was updated to version 8.8p1
+ - This breaks connections to old SSH daemons as ssh-rsa host keys and ssh-rsa public keys that were signed with SHA-1 are disabled by default now
+ - These can be re-enabled, see the [OpenSSH changelog](https://www.openssh.com/txt/release-8.8) for details
+
## New Services {#sec-release-21.11-new-services}
- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
-- [clipcat](https://github.com/xrelkd/clipcat/), an X11 clipboard manager written in Rust. Available at [services.clipcat](options.html#o
-pt-services.clipcat.enable).
+- [clipcat](https://github.com/xrelkd/clipcat/), an X11 clipboard manager written in Rust. Available at [services.clipcat](options.html#opt-services.clipcat.enable).
+
+- [dex](https://github.com/dexidp/dex), an OpenID Connect (OIDC) identity and OAuth 2.0 provider. Available at [services.dex](options.html#opt-services.dex.enable).
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
+- [Jibri](https://github.com/jitsi/jibri), a service for recording or streaming a Jitsi Meet conference. Available as [services.jibri](options.html#opt-services.jibri.enable).
+
- [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea).
+- [owncast](https://owncast.online/), self-hosted video live streaming solution. Available at [services.owncast](options.html#opt-services.owncast).
+
+- [PeerTube](https://joinpeertube.org/), developed by Framasoft, is the free and decentralized alternative to video platforms. Available at [services.peertube](options.html#opt-services.peertube).
+
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
- [ucarp](https://download.pureftpd.org/pub/ucarp/README), an userspace implementation of the Common Address Redundancy Protocol (CARP). Available as [networking.ucarp](options.html#opt-networking.ucarp.enable).
@@ -65,7 +100,7 @@ pt-services.clipcat.enable).
Available as [isso](#opt-services.isso.enable)
- [navidrome](https://www.navidrome.org/), a personal music streaming server with
-subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable).
+ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable).
- [fluidd](https://docs.fluidd.xyz/), a Klipper web interface for managing 3d printers using moonraker. Available as [fluidd](#opt-services.fluidd.enable).
@@ -73,6 +108,8 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
- [postfixadmin](https://postfixadmin.sourceforge.io/), a web based virtual user administration interface for Postfix mail servers. Available as [postfixadmin](#opt-services.postfixadmin.enable).
+- [prowlarr](https://wiki.servarr.com/prowlarr), an indexer manager/proxy built on the popular arr .net/reactjs base stack [services.prowlarr](#opt-services.prowlarr.enable).
+
- [soju](https://sr.ht/~emersion/soju), a user-friendly IRC bouncer. Available as [services.soju](options.html#opt-services.soju.enable).
- [nats](https://nats.io/), a high performance cloud and edge messaging system. Available as [services.nats](#opt-services.nats.enable).
@@ -90,59 +127,84 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as [programs.pantheon-tweaks](#opt-programs.pantheon-tweaks.enable).
+- [joycond](https://github.com/DanielOgorchock/joycond), a service that uses `hid-nintendo` to provide nintendo joycond pairing and better nintendo switch pro controller support.
+
+- [multipath](https://github.com/opensvc/multipath-tools), the device mapper multipath (DM-MP) daemon. Available as [services.multipath](#opt-services.multipath.enable).
+
+- [seafile](https://www.seafile.com/en/home/), an open source file syncing & sharing software. Available as [services.seafile](options.html#opt-services.seafile.enable).
+
+- [rasdaemon](https://github.com/mchehab/rasdaemon), a hardware error logging daemon. Available as [hardware.rasdaemon](#opt-hardware.rasdaemon.enable).
+
+- `code-server`-module now available
+
+- [xmrig](https://github.com/xmrig/xmrig), a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and RandomX benchmark.
+
+- Auto nice daemons [ananicy](https://github.com/Nefelim4ag/Ananicy) and [ananicy-cpp](https://gitlab.com/ananicy-cpp/ananicy-cpp/). Available as [services.ananicy](#opt-services.ananicy.enable).
+
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
+- The NixOS VM test framework, `pkgs.nixosTest`/`make-test-python.nix`, now requires detaching commands such as `succeed("foo &")` and `succeed("foo | xclip -i")` to close stdout.
+ This can be done with a redirect such as `succeed("foo >&2 &")`. This breaking change was necessitated by a race condition causing tests to fail or hang.
+ It applies to all methods that invoke commands on the nodes, including `execute`, `succeed`, `fail`, `wait_until_succeeds`, `wait_until_fails`.
+
+- The `services.wakeonlan` option was removed, and replaced with `networking.interfaces..wakeOnLan`.
+
- The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set.
This is motivated by the fact that before NixOS 21.11, specifying either setuid or setgid but not owner/group resulted in wrappers owned by nobody/nogroup, which is unsafe.
+- Since `iptables` now uses `nf_tables` backend and `ipset` doesn't support it, some applications (ferm, shorewall, firehol) may have limited functionality.
+
- The `paperless` module and package have been removed. All users should migrate to the
successor `paperless-ng` instead. The Paperless project [has been
archived](https://github.com/the-paperless-project/paperless/commit/9b0063c9731f7c5f65b1852cb8caff97f5e40ba4)
and advises all users to use `paperless-ng` instead.
Users can use the `services.paperless-ng` module as a replacement while noting the following incompatibilities:
- - `services.paperless.ocrLanguages` has no replacement. Users should migrate to [`services.paperless-ng.extraConfig`](options.html#opt-services.paperless-ng.extraConfig) instead:
- ```nix
- {
- services.paperless-ng.extraConfig = {
- # Provide languages as ISO 639-2 codes
- # separated by a plus (+) sign.
- # https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
- PAPERLESS_OCR_LANGUAGE = "deu+eng+jpn"; # German & English & Japanse
- };
- }
- ```
- - If you previously specified `PAPERLESS_CONSUME_MAIL_*` settings in
- `services.paperless.extraConfig` you should remove those options now. You
- now *must* define those settings in the admin interface of paperless-ng.
+ - `services.paperless.ocrLanguages` has no replacement. Users should migrate to [`services.paperless-ng.extraConfig`](options.html#opt-services.paperless-ng.extraConfig) instead:
- - Option `services.paperless.manage` no longer exists.
- Use the script at `${services.paperless-ng.dataDir}/paperless-ng-manage` instead.
- Note that this script only exists after the `paperless-ng` service has been
- started at least once.
+ ```nix
+ {
+ services.paperless-ng.extraConfig = {
+ # Provide languages as ISO 639-2 codes
+ # separated by a plus (+) sign.
+ # https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
+ PAPERLESS_OCR_LANGUAGE = "deu+eng+jpn"; # German & English & Japanse
+ };
+ }
+ ```
- - After switching to the new system configuration you should run the Django
- management command to reindex your documents and optionally create a user,
- if you don't have one already.
+ - If you previously specified `PAPERLESS_CONSUME_MAIL_*` settings in
+ `services.paperless.extraConfig` you should remove those options now. You
+ now _must_ define those settings in the admin interface of paperless-ng.
- To do so, enter the data directory (the value of
- `services.paperless-ng.dataDir`, `/var/lib/paperless` by default), switch
- to the paperless user and execute the management command like below:
- ```
- $ cd /var/lib/paperless
- $ su paperless -s /bin/sh
- $ ./paperless-ng-manage document_index reindex
- # if not already done create a user account, paperless-ng requires a login
- $ ./paperless-ng-manage createsuperuser
- Username (leave blank to use 'paperless'): my-user-name
- Email address: me@example.com
- Password: **********
- Password (again): **********
- Superuser created successfully.
- ```
+ - Option `services.paperless.manage` no longer exists.
+ Use the script at `${services.paperless-ng.dataDir}/paperless-ng-manage` instead.
+ Note that this script only exists after the `paperless-ng` service has been
+ started at least once.
-- The `staticjinja` package has been upgraded from 1.0.4 to 4.1.0
+ - After switching to the new system configuration you should run the Django
+ management command to reindex your documents and optionally create a user,
+ if you don't have one already.
+
+ To do so, enter the data directory (the value of
+ `services.paperless-ng.dataDir`, `/var/lib/paperless` by default), switch
+ to the paperless user and execute the management command like below:
+
+ ```
+ $ cd /var/lib/paperless
+ $ su paperless -s /bin/sh
+ $ ./paperless-ng-manage document_index reindex
+ # if not already done create a user account, paperless-ng requires a login
+ $ ./paperless-ng-manage createsuperuser
+ Username (leave blank to use 'paperless'): my-user-name
+ Email address: me@example.com
+ Password: **********
+ Password (again): **********
+ Superuser created successfully.
+ ```
+
+- The `staticjinja` package has been upgraded from 1.0.4 to 4.1.1
- Firefox v91 does not support addons with invalid signature anymore. Firefox ESR needs to be used for nix addon support.
@@ -171,6 +233,8 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
+- `ihatemoney` has been updated to version 5.1.1 ([release notes](https://github.com/spiral-project/ihatemoney/blob/5.1.1/CHANGELOG.rst)). If you serve ihatemoney by HTTP rather than HTTPS, you must set [services.ihatemoney.secureCookie](options.html#opt-services.ihatemoney.secureCookie) to `false`.
+
- PHP 7.3 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 21.11 release.
- Those making use of `buildBazelPackage` will need to regenerate the fetch hashes (preferred), or set `fetchConfigured = false;`.
@@ -237,28 +301,32 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
* The `bitwarden_rs` packages and modules were renamed to `vaultwarden`
[following upstream](https://github.com/dani-garcia/vaultwarden/discussions/1642). More specifically,
- * `pkgs.bitwarden_rs`, `pkgs.bitwarden_rs-sqlite`, `pkgs.bitwarden_rs-mysql` and
+ - `pkgs.bitwarden_rs`, `pkgs.bitwarden_rs-sqlite`, `pkgs.bitwarden_rs-mysql` and
`pkgs.bitwarden_rs-postgresql` were renamed to `pkgs.vaultwarden`, `pkgs.vaultwarden-sqlite`,
`pkgs.vaultwarden-mysql` and `pkgs.vaultwarden-postgresql`, respectively.
- * Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
- * The `bitwarden_rs` executable was also renamed to `vaultwarden` in all packages.
- * `pkgs.bitwarden_rs-vault` was renamed to `pkgs.vaultwarden-vault`.
- * `pkgs.bitwarden_rs-vault` is preserved as an alias for backwards compatibility, but may be removed in the future.
- * The static files were moved from `/usr/share/bitwarden_rs` to `/usr/share/vaultwarden`.
+ - Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
+ - The `bitwarden_rs` executable was also renamed to `vaultwarden` in all packages.
- * The `services.bitwarden_rs` config module was renamed to `services.vaultwarden`.
- * `services.bitwarden_rs` is preserved as an alias for backwards compatibility, but may be removed in the future.
+ - `pkgs.bitwarden_rs-vault` was renamed to `pkgs.vaultwarden-vault`.
- * `systemd.services.bitwarden_rs`, `systemd.services.backup-bitwarden_rs` and `systemd.timers.backup-bitwarden_rs`
+ - `pkgs.bitwarden_rs-vault` is preserved as an alias for backwards compatibility, but may be removed in the future.
+ - The static files were moved from `/usr/share/bitwarden_rs` to `/usr/share/vaultwarden`.
+
+ - The `services.bitwarden_rs` config module was renamed to `services.vaultwarden`.
+
+ - `services.bitwarden_rs` is preserved as an alias for backwards compatibility, but may be removed in the future.
+
+ - `systemd.services.bitwarden_rs`, `systemd.services.backup-bitwarden_rs` and `systemd.timers.backup-bitwarden_rs`
were renamed to `systemd.services.vaultwarden`, `systemd.services.backup-vaultwarden` and
`systemd.timers.backup-vaultwarden`, respectively.
- * Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
- * `users.users.bitwarden_rs` and `users.groups.bitwarden_rs` were renamed to `users.users.vaultwarden` and
+ - Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
+
+ - `users.users.bitwarden_rs` and `users.groups.bitwarden_rs` were renamed to `users.users.vaultwarden` and
`users.groups.vaultwarden`, respectively.
- * The data directory remains located at `/var/lib/bitwarden_rs`, for backwards compatibility.
+ - The data directory remains located at `/var/lib/bitwarden_rs`, for backwards compatibility.
- `yggdrasil` was upgraded to a new major release with breaking changes, see [upstream changelog](https://github.com/yggdrasil-network/yggdrasil-go/releases/tag/v0.4.0).
@@ -271,6 +339,7 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
- `tt-rss` was upgraded to the commit on 2021-06-21, which has breaking changes. If you use `services.tt-rss.extraConfig` you should migrate to the `putenv`-style configuration. See [this Discourse post](https://community.tt-rss.org/t/rip-config-php-hello-classes-config-php/4337) in the tt-rss forums for more details.
- The following Visual Studio Code extensions were renamed to keep the naming convention uniform.
+
- `bbenoist.Nix` -> `bbenoist.nix`
- `CoenraadS.bracket-pair-colorizer` -> `coenraads.bracket-pair-colorizer`
- `golang.Go` -> `golang.go`
@@ -290,12 +359,12 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
- The `yambar` package has been split into `yambar` and `yambar-wayland`, corresponding to the xorg and wayland backend respectively. Please switch to `yambar-wayland` if you are on wayland.
- The `services.minio` module gained an additional option `consoleAddress`, that
-configures the address and port the web UI is listening, it defaults to `:9001`.
-To be able to access the web UI this port needs to be opened in the firewall.
+ configures the address and port the web UI is listening, it defaults to `:9001`.
+ To be able to access the web UI this port needs to be opened in the firewall.
-- The `varnish` package was upgraded from 6.3.x to 6.5.x. `varnish60` for the last LTS release is also still available.
+- The `varnish` package was upgraded from 6.3.x to 7.x. `varnish60` for the last LTS release is also still available.
-- The `kubernetes` package was upgraded to 1.22. The `kubernetes.apiserver.kubeletHttps` option was removed and HTTPS is always used.
+- The `kubernetes` package was upgraded to 1.22. The `kubernetes.apiserver.kubeletHttps` option was removed and HTTPS is always used.
- The attribute `linuxPackages_latest_hardened` was dropped because the hardened patches
lag behind the upstream kernel which made version bumps harder. If you want to use
@@ -314,11 +383,37 @@ To be able to access the web UI this port needs to be opened in the firewall.
respectively. As a result `services.datadog-agent` has had breaking changes to the
configuration file. For details, see the [upstream changelog](https://github.com/DataDog/datadog-agent/blob/main/CHANGELOG.rst).
+- `opencv2` no longer includes the non-free libraries by default, and consequently `pfstools` no longer includes OpenCV support by default. Both packages now support an `enableUnfree` option to re-enable this functionality.
+- `services.xserver.displayManager.defaultSession = "plasma5"` does not work anymore, instead use either `"plasma"` for the Plasma X11 session or `"plasmawayland"` for the Plasma Wayland sesison.
+
+- `boot.kernelParams` now only accepts one command line parameter per string. This change is aimed to reduce common mistakes like "param = 12", which would be parsed as 3 parameters.
+
+- The `coursier` package's binary was renamed from `coursier` to `cs`. Completions which haven't worked for a while should now work with the renamed binary. To keep using `coursier`, you can create a shell alias.
+
+- The `services.mosquitto` module has been rewritten to support multiple listeners and per-listener configuration.
+ Module configurations from previous releases will no longer work and must be updated.
+
+- Nextcloud 20 (`pkgs.nextcloud20`) has been dropped because it was EOLed by upstream in 2021-10.
+
+- The `virtualisation.pathsInNixDB` option was renamed
+ [`virtualisation.additionalPaths`](options.html#opt-virtualisation.additionalPaths).
+
+- The `services.ddclient.password` option was removed, and replaced with `services.ddclient.passwordFile`.
+
## Other Notable Changes {#sec-release-21.11-notable-changes}
+
- The linux kernel package infrastructure was moved out of `all-packages.nix`, and restructured. Linux related functions and attributes now live under the `pkgs.linuxKernel` attribute set.
In particular the versioned `linuxPackages_*` package sets (such as `linuxPackages_5_4`) and kernels from `pkgs` were moved there and now live under `pkgs.linuxKernel.packages.*`. The unversioned ones (such as `linuxPackages_latest`) remain untouched.
+- In NixOS virtual machines (QEMU), the `virtualisation` module has been updated with new options:
+ - [`forwardPorts`](options.html#opt-virtualisation.forwardPorts) to configure IPv4 port forwarding,
+ - [`sharedDirectories`](options.html#opt-virtualisation.sharedDirectories) to set up shared host directories,
+ - [`resolution`](options.html#opt-virtualisation.resolution) to set the screen resolution,
+ - [`useNixStoreImage`](options.html#opt-virtualisation.useNixStoreImage) to use a disk image for the Nix store instead of 9P.
+
+ In addition, the default [`msize`](options.html#opt-virtualisation.msize) parameter in 9P filesystems (including /nix/store and all shared directories) has been increased to 16K for improved performance.
+
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
However, if [`services.fail2ban.enable`](options.html#opt-services.fail2ban.enable) is `true`, the `fail2ban` will override the verbosity to `"VERBOSE"`, so that `fail2ban` can observe the failed login attempts from the SSH logs.
@@ -365,8 +460,20 @@ To be able to access the web UI this port needs to be opened in the firewall.
`myhostname`, but before `dns` should use the default priority
- NSS modules which should come after `dns` should use mkAfter.
+- The [networking.wireless](options.html#opt-networking.wireless.enable) module (based on wpa_supplicant) has been heavily reworked, solving a number of issues and adding useful features:
+ - The automatic discovery of wireless interfaces at boot has been made reliable again (issues [#101963](https://github.com/NixOS/nixpkgs/issues/101963), [#23196](https://github.com/NixOS/nixpkgs/issues/23196)).
+ - WPA3 and Fast BSS Transition (802.11r) are now enabled by default for all networks.
+ - Secrets like pre-shared keys and passwords can now be handled safely, meaning without including them in a world-readable file (`wpa_supplicant.conf` under /nix/store).
+ This is achieved by storing the secrets in a secured [environmentFile](options.html#opt-networking.wireless.environmentFile) and referring to them though environment variables that are expanded inside the configuration.
+ - With multiple interfaces declared, independent wpa_supplicant daemons are started, one for each interface (the services are named `wpa_supplicant-wlan0`, `wpa_supplicant-wlan1`, etc.).
+ - The generated `wpa_supplicant.conf` file is now formatted for easier reading.
+ - A new [scanOnLowSignal](options.html#opt-networking.wireless.scanOnLowSignal) option has been added to facilitate fast roaming between access points (enabled by default).
+ - A new [networks.<name>.authProtocols](options.html#opt-networking.wireless.networks._name_.authProtocols) option has been added to change the authentication protocols used when connecting to a network.
+
- The [networking.wireless.iwd](options.html#opt-networking.wireless.iwd.enable) module has a new [networking.wireless.iwd.settings](options.html#opt-networking.wireless.iwd.settings) option.
+- The [services.smokeping.host](options.html#opt-services.smokeping.host) option was added and defaulted to `localhost`. Before, `smokeping` listened to all interfaces by default. NixOS defaults generally aim to provide non-Internet-exposed defaults for databases and internal monitoring tools, see e.g. [#100192](https://github.com/NixOS/nixpkgs/issues/100192). Further, the systemd service for `smokeping` got reworked defaults for increased operational stability, see [PR #144127](https://github.com/NixOS/nixpkgs/pull/144127) for details.
+
- 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.
- Zfs: `latestCompatibleLinuxPackages` is now exported on the zfs package. One can use `boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;` to always track the latest compatible kernel with a given version of zfs.
@@ -389,3 +496,39 @@ To be able to access the web UI this port needs to be opened in the firewall.
directories, thus increasing the purity of the build.
- Three new options, [xdg.mime.addedAssociations](#opt-xdg.mime.addedAssociations), [xdg.mime.defaultApplications](#opt-xdg.mime.defaultApplications), and [xdg.mime.removedAssociations](#opt-xdg.mime.removedAssociations) have been added to the [xdg.mime](#opt-xdg.mime.enable) module to allow the configuration of `/etc/xdg/mimeapps.list`.
+
+- Kopia was upgraded from 0.8.x to 0.9.x. Please read the [upstream release notes](https://github.com/kopia/kopia/releases/tag/v0.9.0) for changes and upgrade instructions.
+
+- The `systemd.network` module has gained support for the FooOverUDP link type.
+
+- The `networking` module has a new `networking.fooOverUDP` option to configure Foo-over-UDP encapsulations.
+
+- `networking.sits` now supports Foo-over-UDP encapsulation.
+
+- Changing systemd `.socket` units now restarts them and stops the service that is activated by them. Additionally, services with `stopOnChange = false` don't break anymore when they are socket-activated.
+
+- The `virtualisation.libvirtd` module has been refactored and updated with new options:
+ - `virtualisation.libvirtd.qemu*` options (e.g.: `virtualisation.libvirtd.qemuRunAsRoot`) were moved to [`virtualisation.libvirtd.qemu`](options.html#opt-virtualisation.libvirtd.qemu) submodule,
+ - software TPM1/TPM2 support (e.g.: Windows 11 guests) ([`virtualisation.libvirtd.qemu.swtpm`](options.html#opt-virtualisation.libvirtd.qemu.swtpm)),
+ - custom OVMF package (e.g.: `pkgs.OVMFFull` with HTTP, CSM and Secure Boot support) ([`virtualisation.libvirtd.qemu.ovmf.package`](options.html#opt-virtualisation.libvirtd.qemu.ovmf.package)).
+
+- The `cawbird` Twitter client now uses its own API keys to count as different application than upstream builds. This is done to evade application-level rate limiting. While existing accounts continue to work, users may want to remove and re-register their account in the client to enjoy a better user experience and benefit from this change.
+
+- A new option `services.prometheus.enableReload` has been added which can be enabled to reload the prometheus service when its config file changes instead of restarting.
+
+- The option `services.prometheus.environmentFile` has been removed since it was causing [issues](https://github.com/NixOS/nixpkgs/issues/126083) and Prometheus now has native support for secret files, i.e. `basic_auth.password_file` and `authorization.credentials_file`.
+
+- Dokuwiki now supports caddy! However
+ - the nginx option has been removed, in the new configuration, please use the `dokuwiki.webserver = "nginx"` instead.
+ - The "${hostname}" option has been deprecated, please use `dokuwiki.sites = [ "${hostname}" ]` instead
+
+- The [services.unifi](options.html#opt-services.unifi.enable) module has been reworked, solving a number of issues. This leads to several user facing changes:
+ - The `services.unifi.dataDir` option is removed and the data is now always located under `/var/lib/unifi/data`. This is done to make better use of systemd state direcotiry and thus making the service restart more reliable.
+ - The unifi logs can now be found under: `/var/log/unifi` instead of `/var/lib/unifi/logs`.
+ - The unifi run directory can now be found under: `/run/unifi` instead of `/var/lib/unifi/run`.
+
+- `security.pam.services..makeHomeDir` now uses `umask=0077` instead of `umask=0022` when creating the home directory.
+
+- Loki has had another release. Some default values have been changed for the configuration and some configuration options have been renamed. For more details, please check [the upgrade guide](https://grafana.com/docs/loki/latest/upgrading/#240).
+
+- `julia` now refers to `julia-stable` instead of `julia-lts`. In practice this means it has been upgraded from `1.0.4` to `1.5.4`.
diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix
index f0a58628c68a..05d9ce89dbdc 100644
--- a/nixos/lib/build-vms.nix
+++ b/nixos/lib/build-vms.nix
@@ -4,15 +4,14 @@
, # Ignored
config ? null
, # Nixpkgs, for qemu, lib and more
- pkgs
+ pkgs, lib
, # !!! See comment about args in lib/modules.nix
specialArgs ? {}
, # NixOS configuration to add to the VMs
extraConfigurations ? []
}:
-with pkgs.lib;
-with import ../lib/qemu-flags.nix { inherit pkgs; };
+with lib;
rec {
@@ -69,9 +68,8 @@ rec {
prefixLength = 24;
} ];
});
- in
- { key = "ip-address";
- config =
+
+ networkConfig =
{ networking.hostName = mkDefault m.fst;
networking.interfaces = listToAttrs interfaces;
@@ -93,10 +91,19 @@ rec {
"${config.networking.hostName}\n"));
virtualisation.qemu.options =
- forEach interfacesNumbered
- ({ fst, snd }: qemuNICFlags snd fst m.snd);
+ let qemu-common = import ../lib/qemu-common.nix { inherit lib pkgs; };
+ in flip concatMap interfacesNumbered
+ ({ fst, snd }: qemu-common.qemuNICFlags snd fst m.snd);
};
- }
+
+ in
+ { key = "ip-address";
+ config = networkConfig // {
+ # Expose the networkConfig items for tests like nixops
+ # that need to recreate the network config.
+ system.build.networkConfig = networkConfig;
+ };
+ }
)
(getAttr m.fst nodes)
] );
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index 15429a7160c5..69e0a2afdba3 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -61,7 +61,7 @@ in rec {
args = extraArgs;
specialArgs =
{ modulesPath = builtins.toString ../modules; } // specialArgs;
- }) config options _module;
+ }) config options _module type;
# These are the extra arguments passed to every module. In
# particular, Nixpkgs is passed through the "pkgs" argument.
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 55643facea03..0a4a71fadc42 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -44,11 +44,14 @@
# most likely fails as GRUB will probably refuse to install.
partitionTableType ? "legacy"
+, # Whether to invoke `switch-to-configuration boot` during image creation
+ installBootLoader ? true
+
, # The root file system type.
fsType ? "ext4"
, # Filesystem label
- label ? "nixos"
+ label ? if onlyNixStore then "nix-store" else "nixos"
, # The initial NixOS configuration file to be copied to
# /etc/nixos/configuration.nix.
@@ -57,10 +60,24 @@
, # Shell code executed after the VM has finished.
postVM ? ""
+, # Copy the contents of the Nix store to the root of the image and
+ # skip further setup. Incompatible with `contents`,
+ # `installBootLoader` and `configFile`.
+ onlyNixStore ? false
+
, name ? "nixos-disk-image"
, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
format ? "raw"
+
+, # Whether a nix channel based on the current source tree should be
+ # made available inside the image. Useful for interactive use of nix
+ # utils, but changes the hash of the image when the sources are
+ # updated.
+ copyChannel ? true
+
+, # Additional store paths to copy to the image's store.
+ additionalPaths ? []
}:
assert partitionTableType == "legacy" || partitionTableType == "legacy+gpt" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
@@ -71,6 +88,7 @@ assert lib.all
(attrs: ((attrs.user or null) == null)
== ((attrs.group or null) == null))
contents;
+assert onlyNixStore -> contents == [] && configFile == null && !installBootLoader;
with lib;
@@ -163,7 +181,14 @@ let format' = format; in let
users = map (x: x.user or "''") contents;
groups = map (x: x.group or "''") contents;
- closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; };
+ basePaths = [ config.system.build.toplevel ]
+ ++ lib.optional copyChannel channelSources;
+
+ additionalPaths' = subtractLists basePaths additionalPaths;
+
+ closureInfo = pkgs.closureInfo {
+ rootPaths = basePaths ++ additionalPaths';
+ };
blockSize = toString (4 * 1024); # ext4fs block size (not block device sector size)
@@ -251,7 +276,13 @@ let format' = format; in let
chmod 755 "$TMPDIR"
echo "running nixos-install..."
nixos-install --root $root --no-bootloader --no-root-passwd \
- --system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
+ --system ${config.system.build.toplevel} \
+ ${if copyChannel then "--channel ${channelSources}" else "--no-channel-copy"} \
+ --substituters ""
+
+ ${optionalString (additionalPaths' != []) ''
+ nix copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
+ ''}
diskImage=nixos.raw
@@ -320,25 +351,29 @@ let format' = format; in let
''}
echo "copying staging root to image..."
- cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* / ||
+ cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} \
+ -t ${fsType} \
+ -i $diskImage \
+ $root${optionalString onlyNixStore builtins.storeDir}/* / ||
(echo >&2 "ERROR: cptofs failed. diskSize might be too small for closure."; exit 1)
'';
-in pkgs.vmTools.runInLinuxVM (
- pkgs.runCommand name
- { preVM = prepareImage;
+
+ moveOrConvertImage = ''
+ ${if format == "raw" then ''
+ mv $diskImage $out/${filename}
+ '' else ''
+ ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
+ ''}
+ diskImage=$out/${filename}
+ '';
+
+ buildImage = pkgs.vmTools.runInLinuxVM (
+ pkgs.runCommand name {
+ preVM = prepareImage;
buildInputs = with pkgs; [ util-linux e2fsprogs dosfstools ];
- postVM = ''
- ${if format == "raw" then ''
- mv $diskImage $out/${filename}
- '' else ''
- ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
- ''}
- diskImage=$out/${filename}
- ${postVM}
- '';
+ postVM = moveOrConvertImage + postVM;
memSize = 1024;
- }
- ''
+ } ''
export PATH=${binPath}:$PATH
rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
@@ -368,11 +403,13 @@ in pkgs.vmTools.runInLinuxVM (
cp ${configFile} /mnt/etc/nixos/configuration.nix
''}
- # Set up core system link, GRUB, etc.
- NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
+ ${lib.optionalString installBootLoader ''
+ # Set up core system link, GRUB, etc.
+ NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
- # The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
- rm -f $mountPoint/etc/machine-id
+ # The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
+ rm -f $mountPoint/etc/machine-id
+ ''}
# Set the ownerships of the contents. The modes are set in preVM.
# No globbing on targets, so no need to set -f
@@ -398,4 +435,9 @@ in pkgs.vmTools.runInLinuxVM (
tune2fs -T now -c 0 -i 0 $rootDisk
''}
''
-)
+ );
+in
+ if onlyNixStore then
+ pkgs.runCommand name {}
+ (prepareImage + moveOrConvertImage + postVM)
+ else buildImage
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index 14015ab64abb..e058e70f3888 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -83,10 +83,13 @@ let
optionsListVisible = lib.filter (opt: opt.visible && !opt.internal) (lib.optionAttrSetToDocList options);
# Customly sort option list for the man page.
+ # Always ensure that the sort order matches sortXML.py!
optionsList = lib.sort optionLess optionsListDesc;
# Convert the list of options into an XML file.
- optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList);
+ # This file is *not* sorted sorted to save on eval time, since the docbook XML
+ # and the manpage depend on it and thus we evaluate this on every system rebuild.
+ optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsListDesc);
optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList);
@@ -185,9 +188,10 @@ in {
exit 1
fi
+ ${pkgs.python3Minimal}/bin/python ${./sortXML.py} $optionsXML sorted.xml
${pkgs.libxslt.bin}/bin/xsltproc \
--stringparam revision '${revision}' \
- -o intermediate.xml ${./options-to-docbook.xsl} $optionsXML
+ -o intermediate.xml ${./options-to-docbook.xsl} sorted.xml
${pkgs.libxslt.bin}/bin/xsltproc \
-o "$out" ${./postprocess-option-descriptions.xsl} intermediate.xml
'';
diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl
index 18d19fddaca2..da4cd164bf20 100644
--- a/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -54,7 +54,7 @@
Default:
-
+
@@ -62,14 +62,7 @@
Example:
-
-
-
-
-
-
-
-
+
@@ -107,20 +100,37 @@
-
+
-
-
-''
-''
+
+
-
+
+
+
+
+
+
+
+
+ ''
+
+ ''
+
+
+
+
+
+
+
+
+
null
@@ -129,10 +139,10 @@
- ''''
+ ''''
- ""
+ ""
@@ -163,7 +173,7 @@
-
+
diff --git a/nixos/lib/make-options-doc/sortXML.py b/nixos/lib/make-options-doc/sortXML.py
new file mode 100644
index 000000000000..717820788c94
--- /dev/null
+++ b/nixos/lib/make-options-doc/sortXML.py
@@ -0,0 +1,28 @@
+import xml.etree.ElementTree as ET
+import sys
+
+tree = ET.parse(sys.argv[1])
+# the xml tree is of the form
+# {all options, each an attrs}
+options = list(tree.getroot().find('list'))
+
+def sortKey(opt):
+ def order(s):
+ if s.startswith("enable"):
+ return 0
+ if s.startswith("package"):
+ return 1
+ return 2
+
+ return [
+ (order(p.attrib['value']), p.attrib['value'])
+ for p in opt.findall('attr[@name="loc"]/list/string')
+ ]
+
+# always ensure that the sort order matches the order used in the nix expression!
+options.sort(key=sortKey)
+
+doc = ET.Element("expr")
+newOptions = ET.SubElement(doc, "list")
+newOptions.extend(options)
+ET.ElementTree(doc).write(sys.argv[2], encoding='utf-8')
diff --git a/nixos/lib/qemu-flags.nix b/nixos/lib/qemu-common.nix
similarity index 83%
rename from nixos/lib/qemu-flags.nix
rename to nixos/lib/qemu-common.nix
index f786745ba324..84f9060acd63 100644
--- a/nixos/lib/qemu-flags.nix
+++ b/nixos/lib/qemu-common.nix
@@ -1,12 +1,12 @@
-# QEMU flags shared between various Nix expressions.
-{ pkgs }:
+# QEMU-related utilities shared between various Nix expressions.
+{ lib, pkgs }:
let
zeroPad = n:
- pkgs.lib.optionalString (n < 16) "0" +
+ lib.optionalString (n < 16) "0" +
(if n > 255
then throw "Can't have more than 255 nets or nodes!"
- else pkgs.lib.toHexString n);
+ else lib.toHexString n);
in
rec {
@@ -14,7 +14,7 @@ rec {
qemuNICFlags = nic: net: machine:
[ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
- "-netdev vde,id=vlan${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
+ ''-netdev vde,id=vlan${toString nic},sock="$QEMU_VDE_SOCKET_${toString net}"''
];
qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index f8502188bde8..a7c0484060f2 100755
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -6,9 +6,8 @@ from xml.sax.saxutils import XMLGenerator
from colorama import Style
import queue
import io
-import _thread
+import threading
import argparse
-import atexit
import base64
import codecs
import os
@@ -21,7 +20,6 @@ import shutil
import socket
import subprocess
import sys
-import telnetlib
import tempfile
import time
import unicodedata
@@ -89,55 +87,6 @@ CHAR_TO_KEY = {
")": "shift-0x0B",
}
-global log, machines, test_script
-
-
-def eprint(*args: object, **kwargs: Any) -> None:
- print(*args, file=sys.stderr, **kwargs)
-
-
-def make_command(args: list) -> str:
- return " ".join(map(shlex.quote, (map(str, args))))
-
-
-def create_vlan(vlan_nr: str) -> Tuple[str, str, "subprocess.Popen[bytes]", Any]:
- log.log("starting VDE switch for network {}".format(vlan_nr))
- vde_socket = tempfile.mkdtemp(
- prefix="nixos-test-vde-", suffix="-vde{}.ctl".format(vlan_nr)
- )
- pty_master, pty_slave = pty.openpty()
- vde_process = subprocess.Popen(
- ["vde_switch", "-s", vde_socket, "--dirmode", "0700"],
- stdin=pty_slave,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- shell=False,
- )
- fd = os.fdopen(pty_master, "w")
- fd.write("version\n")
- # TODO: perl version checks if this can be read from
- # an if not, dies. we could hang here forever. Fix it.
- assert vde_process.stdout is not None
- vde_process.stdout.readline()
- if not os.path.exists(os.path.join(vde_socket, "ctl")):
- raise Exception("cannot start vde_switch")
-
- return (vlan_nr, vde_socket, vde_process, fd)
-
-
-def retry(fn: Callable, timeout: int = 900) -> None:
- """Call the given function repeatedly, with 1 second intervals,
- until it returns True or a timeout is reached.
- """
-
- for _ in range(timeout):
- if fn(False):
- return
- time.sleep(1)
-
- if not fn(True):
- raise Exception(f"action timed out after {timeout} seconds")
-
class Logger:
def __init__(self) -> None:
@@ -151,6 +100,10 @@ class Logger:
self._print_serial_logs = True
+ @staticmethod
+ def _eprint(*args: object, **kwargs: Any) -> None:
+ print(*args, file=sys.stderr, **kwargs)
+
def close(self) -> None:
self.xml.endElement("logfile")
self.xml.endDocument()
@@ -169,15 +122,27 @@ class Logger:
self.xml.characters(message)
self.xml.endElement("line")
+ def info(self, *args, **kwargs) -> None: # type: ignore
+ self.log(*args, **kwargs)
+
+ def warning(self, *args, **kwargs) -> None: # type: ignore
+ self.log(*args, **kwargs)
+
+ def error(self, *args, **kwargs) -> None: # type: ignore
+ self.log(*args, **kwargs)
+ sys.exit(1)
+
def log(self, message: str, attributes: Dict[str, str] = {}) -> None:
- eprint(self.maybe_prefix(message, attributes))
+ self._eprint(self.maybe_prefix(message, attributes))
self.drain_log_queue()
self.log_line(message, attributes)
def log_serial(self, message: str, machine: str) -> None:
self.enqueue({"msg": message, "machine": machine, "type": "serial"})
if self._print_serial_logs:
- eprint(Style.DIM + "{} # {}".format(machine, message) + Style.RESET_ALL)
+ self._eprint(
+ Style.DIM + "{} # {}".format(machine, message) + Style.RESET_ALL
+ )
def enqueue(self, item: Dict[str, str]) -> None:
self.queue.put(item)
@@ -194,7 +159,7 @@ class Logger:
@contextmanager
def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
- eprint(self.maybe_prefix(message, attributes))
+ self._eprint(self.maybe_prefix(message, attributes))
self.xml.startElement("nest", attrs={})
self.xml.startElement("head", attributes)
@@ -211,6 +176,27 @@ class Logger:
self.xml.endElement("nest")
+rootlog = Logger()
+
+
+def make_command(args: list) -> str:
+ return " ".join(map(shlex.quote, (map(str, args))))
+
+
+def retry(fn: Callable, timeout: int = 900) -> None:
+ """Call the given function repeatedly, with 1 second intervals,
+ until it returns True or a timeout is reached.
+ """
+
+ for _ in range(timeout):
+ if fn(False):
+ return
+ time.sleep(1)
+
+ if not fn(True):
+ raise Exception(f"action timed out after {timeout} seconds")
+
+
def _perform_ocr_on_screenshot(
screenshot_path: str, model_ids: Iterable[int]
) -> List[str]:
@@ -242,113 +228,266 @@ def _perform_ocr_on_screenshot(
return model_results
+class StartCommand:
+ """The Base Start Command knows how to append the necesary
+ runtime qemu options as determined by a particular test driver
+ run. Any such start command is expected to happily receive and
+ append additional qemu args.
+ """
+
+ _cmd: str
+
+ def cmd(
+ self,
+ monitor_socket_path: pathlib.Path,
+ shell_socket_path: pathlib.Path,
+ allow_reboot: bool = False, # TODO: unused, legacy?
+ ) -> str:
+ display_opts = ""
+ display_available = any(x in os.environ for x in ["DISPLAY", "WAYLAND_DISPLAY"])
+ if not display_available:
+ display_opts += " -nographic"
+
+ # qemu options
+ qemu_opts = ""
+ qemu_opts += (
+ ""
+ if allow_reboot
+ else " -no-reboot"
+ " -device virtio-serial"
+ " -device virtconsole,chardev=shell"
+ " -device virtio-rng-pci"
+ " -serial stdio"
+ )
+ # TODO: qemu script already catpures this env variable, legacy?
+ qemu_opts += " " + os.environ.get("QEMU_OPTS", "")
+
+ return (
+ f"{self._cmd}"
+ f" -monitor unix:{monitor_socket_path}"
+ f" -chardev socket,id=shell,path={shell_socket_path}"
+ f"{qemu_opts}"
+ f"{display_opts}"
+ )
+
+ @staticmethod
+ def build_environment(
+ state_dir: pathlib.Path,
+ shared_dir: pathlib.Path,
+ ) -> dict:
+ # We make a copy to not update the current environment
+ env = dict(os.environ)
+ env.update(
+ {
+ "TMPDIR": str(state_dir),
+ "SHARED_DIR": str(shared_dir),
+ "USE_TMPDIR": "1",
+ }
+ )
+ return env
+
+ def run(
+ self,
+ state_dir: pathlib.Path,
+ shared_dir: pathlib.Path,
+ monitor_socket_path: pathlib.Path,
+ shell_socket_path: pathlib.Path,
+ ) -> subprocess.Popen:
+ return subprocess.Popen(
+ self.cmd(monitor_socket_path, shell_socket_path),
+ stdin=subprocess.DEVNULL,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ shell=True,
+ cwd=state_dir,
+ env=self.build_environment(state_dir, shared_dir),
+ )
+
+
+class NixStartScript(StartCommand):
+ """A start script from nixos/modules/virtualiation/qemu-vm.nix
+ that also satisfies the requirement of the BaseStartCommand.
+ These Nix commands have the particular charactersitic that the
+ machine name can be extracted out of them via a regex match.
+ (Admittedly a _very_ implicit contract, evtl. TODO fix)
+ """
+
+ def __init__(self, script: str):
+ self._cmd = script
+
+ @property
+ def machine_name(self) -> str:
+ match = re.search("run-(.+)-vm$", self._cmd)
+ name = "machine"
+ if match:
+ name = match.group(1)
+ return name
+
+
+class LegacyStartCommand(StartCommand):
+ """Used in some places to create an ad-hoc machine instead of
+ using nix test instrumentation + module system for that purpose.
+ Legacy.
+ """
+
+ def __init__(
+ self,
+ netBackendArgs: Optional[str] = None,
+ netFrontendArgs: Optional[str] = None,
+ hda: Optional[Tuple[pathlib.Path, str]] = None,
+ cdrom: Optional[str] = None,
+ usb: Optional[str] = None,
+ bios: Optional[str] = None,
+ qemuFlags: Optional[str] = None,
+ ):
+ self._cmd = "qemu-kvm -m 384"
+
+ # networking
+ net_backend = "-netdev user,id=net0"
+ net_frontend = "-device virtio-net-pci,netdev=net0"
+ if netBackendArgs is not None:
+ net_backend += "," + netBackendArgs
+ if netFrontendArgs is not None:
+ net_frontend += "," + netFrontendArgs
+ self._cmd += f" {net_backend} {net_frontend}"
+
+ # hda
+ hda_cmd = ""
+ if hda is not None:
+ hda_path = hda[0].resolve()
+ hda_interface = hda[1]
+ if hda_interface == "scsi":
+ hda_cmd += (
+ f" -drive id=hda,file={hda_path},werror=report,if=none"
+ " -device scsi-hd,drive=hda"
+ )
+ else:
+ hda_cmd += f" -drive file={hda_path},if={hda_interface},werror=report"
+ self._cmd += hda_cmd
+
+ # cdrom
+ if cdrom is not None:
+ self._cmd += f" -cdrom {cdrom}"
+
+ # usb
+ usb_cmd = ""
+ if usb is not None:
+ # https://github.com/qemu/qemu/blob/master/docs/usb2.txt
+ usb_cmd += (
+ " -device usb-ehci"
+ f" -drive id=usbdisk,file={usb},if=none,readonly"
+ " -device usb-storage,drive=usbdisk "
+ )
+ self._cmd += usb_cmd
+
+ # bios
+ if bios is not None:
+ self._cmd += f" -bios {bios}"
+
+ # qemu flags
+ if qemuFlags is not None:
+ self._cmd += f" {qemuFlags}"
+
+
class Machine:
+ """A handle to the machine with this name, that also knows how to manage
+ the machine lifecycle with the help of a start script / command."""
+
+ name: str
+ tmp_dir: pathlib.Path
+ shared_dir: pathlib.Path
+ state_dir: pathlib.Path
+ monitor_path: pathlib.Path
+ shell_path: pathlib.Path
+
+ start_command: StartCommand
+ keep_vm_state: bool
+ allow_reboot: bool
+
+ process: Optional[subprocess.Popen]
+ pid: Optional[int]
+ monitor: Optional[socket.socket]
+ shell: Optional[socket.socket]
+ serial_thread: Optional[threading.Thread]
+
+ booted: bool
+ connected: bool
+ # Store last serial console lines for use
+ # of wait_for_console_text
+ last_lines: Queue = Queue()
+
def __repr__(self) -> str:
return f""
- def __init__(self, args: Dict[str, Any]) -> None:
- if "name" in args:
- self.name = args["name"]
- else:
- self.name = "machine"
- cmd = args.get("startCommand", None)
- if cmd:
- match = re.search("run-(.+)-vm$", cmd)
- if match:
- self.name = match.group(1)
- self.logger = args["log"]
- self.script = args.get("startCommand", self.create_startcommand(args))
+ def __init__(
+ self,
+ tmp_dir: pathlib.Path,
+ start_command: StartCommand,
+ name: str = "machine",
+ keep_vm_state: bool = False,
+ allow_reboot: bool = False,
+ ) -> None:
+ self.tmp_dir = tmp_dir
+ self.keep_vm_state = keep_vm_state
+ self.allow_reboot = allow_reboot
+ self.name = name
+ self.start_command = start_command
- tmp_dir = os.environ.get("TMPDIR", tempfile.gettempdir())
+ # set up directories
+ self.shared_dir = self.tmp_dir / "shared-xchg"
+ self.shared_dir.mkdir(mode=0o700, exist_ok=True)
- def create_dir(name: str) -> str:
- path = os.path.join(tmp_dir, name)
- os.makedirs(path, mode=0o700, exist_ok=True)
- return path
-
- self.state_dir = os.path.join(tmp_dir, f"vm-state-{self.name}")
- if not args.get("keepVmState", False):
+ self.state_dir = self.tmp_dir / f"vm-state-{self.name}"
+ self.monitor_path = self.state_dir / "monitor"
+ self.shell_path = self.state_dir / "shell"
+ if (not self.keep_vm_state) and self.state_dir.exists():
self.cleanup_statedir()
- os.makedirs(self.state_dir, mode=0o700, exist_ok=True)
- self.shared_dir = create_dir("shared-xchg")
+ self.state_dir.mkdir(mode=0o700, exist_ok=True)
+
+ self.process = None
+ self.pid = None
+ self.monitor = None
+ self.shell = None
+ self.serial_thread = None
self.booted = False
self.connected = False
- self.pid: Optional[int] = None
- self.socket = None
- self.monitor: Optional[socket.socket] = None
- self.allow_reboot = args.get("allowReboot", False)
@staticmethod
- def create_startcommand(args: Dict[str, str]) -> str:
- net_backend = "-netdev user,id=net0"
- net_frontend = "-device virtio-net-pci,netdev=net0"
-
- if "netBackendArgs" in args:
- net_backend += "," + args["netBackendArgs"]
-
- if "netFrontendArgs" in args:
- net_frontend += "," + args["netFrontendArgs"]
-
- start_command = (
- args.get("qemuBinary", "qemu-kvm")
- + " -m 384 "
- + net_backend
- + " "
- + net_frontend
- + " $QEMU_OPTS "
+ def create_startcommand(args: Dict[str, str]) -> StartCommand:
+ rootlog.warning(
+ "Using legacy create_startcommand(),"
+ "please use proper nix test vm instrumentation, instead"
+ "to generate the appropriate nixos test vm qemu startup script"
+ )
+ hda = None
+ if args.get("hda"):
+ hda_arg: str = args.get("hda", "")
+ hda_arg_path: pathlib.Path = pathlib.Path(hda_arg)
+ hda = (hda_arg_path, args.get("hdaInterface", ""))
+ return LegacyStartCommand(
+ netBackendArgs=args.get("netBackendArgs"),
+ netFrontendArgs=args.get("netFrontendArgs"),
+ hda=hda,
+ cdrom=args.get("cdrom"),
+ usb=args.get("usb"),
+ bios=args.get("bios"),
+ qemuFlags=args.get("qemuFlags"),
)
-
- if "hda" in args:
- hda_path = os.path.abspath(args["hda"])
- if args.get("hdaInterface", "") == "scsi":
- start_command += (
- "-drive id=hda,file="
- + hda_path
- + ",werror=report,if=none "
- + "-device scsi-hd,drive=hda "
- )
- else:
- start_command += (
- "-drive file="
- + hda_path
- + ",if="
- + args["hdaInterface"]
- + ",werror=report "
- )
-
- if "cdrom" in args:
- start_command += "-cdrom " + args["cdrom"] + " "
-
- if "usb" in args:
- # https://github.com/qemu/qemu/blob/master/docs/usb2.txt
- start_command += (
- "-device usb-ehci -drive "
- + "id=usbdisk,file="
- + args["usb"]
- + ",if=none,readonly "
- + "-device usb-storage,drive=usbdisk "
- )
- if "bios" in args:
- start_command += "-bios " + args["bios"] + " "
-
- start_command += args.get("qemuFlags", "")
-
- return start_command
def is_up(self) -> bool:
return self.booted and self.connected
def log(self, msg: str) -> None:
- self.logger.log(msg, {"machine": self.name})
+ rootlog.log(msg, {"machine": self.name})
def log_serial(self, msg: str) -> None:
- self.logger.log_serial(msg, self.name)
+ rootlog.log_serial(msg, self.name)
def nested(self, msg: str, attrs: Dict[str, str] = {}) -> _GeneratorContextManager:
my_attrs = {"machine": self.name}
my_attrs.update(attrs)
- return self.logger.nested(msg, my_attrs)
+ return rootlog.nested(msg, my_attrs)
def wait_for_monitor_prompt(self) -> str:
assert self.monitor is not None
@@ -442,23 +581,40 @@ class Machine:
+ "'{}' but it is in state ‘{}’".format(require_state, state)
)
- def execute(self, command: str) -> Tuple[int, str]:
+ def _next_newline_closed_block_from_shell(self) -> str:
+ assert self.shell
+ output_buffer = []
+ while True:
+ # This receives up to 4096 bytes from the socket
+ chunk = self.shell.recv(4096)
+ if not chunk:
+ # Probably a broken pipe, return the output we have
+ break
+
+ decoded = chunk.decode()
+ output_buffer += [decoded]
+ if decoded[-1] == "\n":
+ break
+ return "".join(output_buffer)
+
+ def execute(self, command: str, check_return: bool = True) -> Tuple[int, str]:
self.connect()
- out_command = "( set -euo pipefail; {} ); echo '|!=EOF' $?\n".format(command)
+ out_command = f"( set -euo pipefail; {command} ) | (base64 --wrap 0; echo)\n"
+ assert self.shell
self.shell.send(out_command.encode())
- output = ""
- status_code_pattern = re.compile(r"(.*)\|\!=EOF\s+(\d+)")
+ # Get the output
+ output = base64.b64decode(self._next_newline_closed_block_from_shell())
- while True:
- chunk = self.shell.recv(4096).decode(errors="ignore")
- match = status_code_pattern.match(chunk)
- if match:
- output += match[1]
- status_code = int(match[2])
- return (status_code, output)
- output += chunk
+ if not check_return:
+ return (-1, output.decode())
+
+ # Get the return code
+ self.shell.send("echo ${PIPESTATUS[0]}\n".encode())
+ rc = int(self._next_newline_closed_block_from_shell().strip())
+
+ return (rc, output.decode())
def shell_interact(self) -> None:
"""Allows you to interact with the guest shell
@@ -466,6 +622,8 @@ class Machine:
Should only be used during test development, not in the production test."""
self.connect()
self.log("Terminal is ready (there is no prompt):")
+
+ assert self.shell
subprocess.run(
["socat", "READLINE", f"FD:{self.shell.fileno()}"],
pass_fds=[self.shell.fileno()],
@@ -534,6 +692,7 @@ class Machine:
with self.nested("waiting for the VM to power off"):
sys.stdout.flush()
+ assert self.process
self.process.wait()
self.pid = None
@@ -611,6 +770,8 @@ class Machine:
with self.nested("waiting for the VM to finish booting"):
self.start()
+ assert self.shell
+
tic = time.time()
self.shell.recv(1024)
# TODO: Timeout
@@ -750,72 +911,43 @@ class Machine:
self.log("starting vm")
- def create_socket(path: str) -> socket.socket:
- if os.path.exists(path):
- os.unlink(path)
+ def clear(path: pathlib.Path) -> pathlib.Path:
+ if path.exists():
+ path.unlink()
+ return path
+
+ def create_socket(path: pathlib.Path) -> socket.socket:
s = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM)
- s.bind(path)
+ s.bind(str(path))
s.listen(1)
return s
- monitor_path = os.path.join(self.state_dir, "monitor")
- self.monitor_socket = create_socket(monitor_path)
-
- shell_path = os.path.join(self.state_dir, "shell")
- self.shell_socket = create_socket(shell_path)
-
- display_available = any(x in os.environ for x in ["DISPLAY", "WAYLAND_DISPLAY"])
- qemu_options = (
- " ".join(
- [
- "" if self.allow_reboot else "-no-reboot",
- "-monitor unix:{}".format(monitor_path),
- "-chardev socket,id=shell,path={}".format(shell_path),
- "-device virtio-serial",
- "-device virtconsole,chardev=shell",
- "-device virtio-rng-pci",
- "-serial stdio" if display_available else "-nographic",
- ]
- )
- + " "
- + os.environ.get("QEMU_OPTS", "")
+ monitor_socket = create_socket(clear(self.monitor_path))
+ shell_socket = create_socket(clear(self.shell_path))
+ self.process = self.start_command.run(
+ self.state_dir,
+ self.shared_dir,
+ self.monitor_path,
+ self.shell_path,
)
-
- environment = dict(os.environ)
- environment.update(
- {
- "TMPDIR": self.state_dir,
- "SHARED_DIR": self.shared_dir,
- "USE_TMPDIR": "1",
- "QEMU_OPTS": qemu_options,
- }
- )
-
- self.process = subprocess.Popen(
- self.script,
- stdin=subprocess.DEVNULL,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
- shell=True,
- cwd=self.state_dir,
- env=environment,
- )
- self.monitor, _ = self.monitor_socket.accept()
- self.shell, _ = self.shell_socket.accept()
+ self.monitor, _ = monitor_socket.accept()
+ self.shell, _ = shell_socket.accept()
# Store last serial console lines for use
# of wait_for_console_text
self.last_lines: Queue = Queue()
def process_serial_output() -> None:
- assert self.process.stdout is not None
+ assert self.process
+ assert self.process.stdout
for _line in self.process.stdout:
# Ignore undecodable bytes that may occur in boot menus
line = _line.decode(errors="ignore").replace("\r", "").rstrip()
self.last_lines.put(line)
self.log_serial(line)
- _thread.start_new_thread(process_serial_output, ())
+ self.serial_thread = threading.Thread(target=process_serial_output)
+ self.serial_thread.start()
self.wait_for_monitor_prompt()
@@ -825,15 +957,15 @@ class Machine:
self.log("QEMU running (pid {})".format(self.pid))
def cleanup_statedir(self) -> None:
- if os.path.isdir(self.state_dir):
- shutil.rmtree(self.state_dir)
- self.logger.log(f"deleting VM state directory {self.state_dir}")
- self.logger.log("if you want to keep the VM state, pass --keep-vm-state")
+ shutil.rmtree(self.state_dir)
+ rootlog.log(f"deleting VM state directory {self.state_dir}")
+ rootlog.log("if you want to keep the VM state, pass --keep-vm-state")
def shutdown(self) -> None:
if not self.booted:
return
+ assert self.shell
self.shell.send("poweroff\n".encode())
self.wait_for_shutdown()
@@ -908,41 +1040,220 @@ class Machine:
"""Make the machine reachable."""
self.send_monitor_command("set_link virtio-net-pci.1 on")
+ def release(self) -> None:
+ if self.pid is None:
+ return
+ rootlog.info(f"kill machine (pid {self.pid})")
+ assert self.process
+ assert self.shell
+ assert self.monitor
+ assert self.serial_thread
-def create_machine(args: Dict[str, Any]) -> Machine:
- args["log"] = log
- return Machine(args)
+ self.process.terminate()
+ self.shell.close()
+ self.monitor.close()
+ self.serial_thread.join()
-def start_all() -> None:
- with log.nested("starting all VMs"):
- for machine in machines:
- machine.start()
+class VLan:
+ """This class handles a VLAN that the run-vm scripts identify via its
+ number handles. The network's lifetime equals the object's lifetime.
+ """
+
+ nr: int
+ socket_dir: pathlib.Path
+
+ process: subprocess.Popen
+ pid: int
+ fd: io.TextIOBase
+
+ def __repr__(self) -> str:
+ return f""
+
+ def __init__(self, nr: int, tmp_dir: pathlib.Path):
+ self.nr = nr
+ self.socket_dir = tmp_dir / f"vde{self.nr}.ctl"
+
+ # TODO: don't side-effect environment here
+ os.environ[f"QEMU_VDE_SOCKET_{self.nr}"] = str(self.socket_dir)
+
+ rootlog.info("start vlan")
+ pty_master, pty_slave = pty.openpty()
+
+ self.process = subprocess.Popen(
+ ["vde_switch", "-s", self.socket_dir, "--dirmode", "0700"],
+ stdin=pty_slave,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ shell=False,
+ )
+ self.pid = self.process.pid
+ self.fd = os.fdopen(pty_master, "w")
+ self.fd.write("version\n")
+
+ # TODO: perl version checks if this can be read from
+ # an if not, dies. we could hang here forever. Fix it.
+ assert self.process.stdout is not None
+ self.process.stdout.readline()
+ if not (self.socket_dir / "ctl").exists():
+ rootlog.error("cannot start vde_switch")
+
+ rootlog.info(f"running vlan (pid {self.pid})")
+
+ def __del__(self) -> None:
+ rootlog.info(f"kill vlan (pid {self.pid})")
+ self.fd.close()
+ self.process.terminate()
-def join_all() -> None:
- with log.nested("waiting for all VMs to finish"):
- for machine in machines:
- machine.wait_for_shutdown()
+class Driver:
+ """A handle to the driver that sets up the environment
+ and runs the tests"""
+ tests: str
+ vlans: List[VLan]
+ machines: List[Machine]
-def run_tests(interactive: bool = False) -> None:
- if interactive:
- ptpython.repl.embed(test_symbols(), {})
- else:
- test_script()
+ def __init__(
+ self,
+ start_scripts: List[str],
+ vlans: List[int],
+ tests: str,
+ keep_vm_state: bool = False,
+ ):
+ self.tests = tests
+
+ tmp_dir = pathlib.Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
+ tmp_dir.mkdir(mode=0o700, exist_ok=True)
+
+ with rootlog.nested("start all VLans"):
+ self.vlans = [VLan(nr, tmp_dir) for nr in vlans]
+
+ def cmd(scripts: List[str]) -> Iterator[NixStartScript]:
+ for s in scripts:
+ yield NixStartScript(s)
+
+ self.machines = [
+ Machine(
+ start_command=cmd,
+ keep_vm_state=keep_vm_state,
+ name=cmd.machine_name,
+ tmp_dir=tmp_dir,
+ )
+ for cmd in cmd(start_scripts)
+ ]
+
+ def __enter__(self) -> "Driver":
+ return self
+
+ def __exit__(self, *_: Any) -> None:
+ with rootlog.nested("cleanup"):
+ for machine in self.machines:
+ machine.release()
+
+ def subtest(self, name: str) -> Iterator[None]:
+ """Group logs under a given test name"""
+ with rootlog.nested(name):
+ try:
+ yield
+ return True
+ except Exception as e:
+ rootlog.error(f'Test "{name}" failed with error: "{e}"')
+ raise e
+
+ def test_symbols(self) -> Dict[str, Any]:
+ @contextmanager
+ def subtest(name: str) -> Iterator[None]:
+ return self.subtest(name)
+
+ general_symbols = dict(
+ start_all=self.start_all,
+ test_script=self.test_script,
+ machines=self.machines,
+ vlans=self.vlans,
+ driver=self,
+ log=rootlog,
+ os=os,
+ create_machine=self.create_machine,
+ subtest=subtest,
+ run_tests=self.run_tests,
+ join_all=self.join_all,
+ retry=retry,
+ serial_stdout_off=self.serial_stdout_off,
+ serial_stdout_on=self.serial_stdout_on,
+ Machine=Machine, # for typing
+ )
+ machine_symbols = {
+ m.name: self.machines[idx] for idx, m in enumerate(self.machines)
+ }
+ vlan_symbols = {
+ f"vlan{v.nr}": self.vlans[idx] for idx, v in enumerate(self.vlans)
+ }
+ print(
+ "additionally exposed symbols:\n "
+ + ", ".join(map(lambda m: m.name, self.machines))
+ + ",\n "
+ + ", ".join(map(lambda v: f"vlan{v.nr}", self.vlans))
+ + ",\n "
+ + ", ".join(list(general_symbols.keys()))
+ )
+ return {**general_symbols, **machine_symbols, **vlan_symbols}
+
+ def test_script(self) -> None:
+ """Run the test script"""
+ with rootlog.nested("run the VM test script"):
+ symbols = self.test_symbols() # call eagerly
+ exec(self.tests, symbols, None)
+
+ def run_tests(self) -> None:
+ """Run the test script (for non-interactive test runs)"""
+ self.test_script()
# TODO: Collect coverage data
- for machine in machines:
+ for machine in self.machines:
if machine.is_up():
machine.execute("sync")
+ def start_all(self) -> None:
+ """Start all machines"""
+ with rootlog.nested("start all VMs"):
+ for machine in self.machines:
+ machine.start()
-def serial_stdout_on() -> None:
- log._print_serial_logs = True
+ def join_all(self) -> None:
+ """Wait for all machines to shut down"""
+ with rootlog.nested("wait for all VMs to finish"):
+ for machine in self.machines:
+ machine.wait_for_shutdown()
+ def create_machine(self, args: Dict[str, Any]) -> Machine:
+ rootlog.warning(
+ "Using legacy create_machine(), please instantiate the"
+ "Machine class directly, instead"
+ )
+ tmp_dir = pathlib.Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
+ tmp_dir.mkdir(mode=0o700, exist_ok=True)
-def serial_stdout_off() -> None:
- log._print_serial_logs = False
+ if args.get("startCommand"):
+ start_command: str = args.get("startCommand", "")
+ cmd = NixStartScript(start_command)
+ name = args.get("name", cmd.machine_name)
+ else:
+ cmd = Machine.create_startcommand(args) # type: ignore
+ name = args.get("name", "machine")
+
+ return Machine(
+ tmp_dir=tmp_dir,
+ start_command=cmd,
+ name=name,
+ keep_vm_state=args.get("keep_vm_state", False),
+ allow_reboot=args.get("allow_reboot", False),
+ )
+
+ def serial_stdout_on(self) -> None:
+ rootlog._print_serial_logs = True
+
+ def serial_stdout_off(self) -> None:
+ rootlog._print_serial_logs = False
class EnvDefault(argparse.Action):
@@ -970,52 +1281,6 @@ class EnvDefault(argparse.Action):
setattr(namespace, self.dest, values)
-@contextmanager
-def subtest(name: str) -> Iterator[None]:
- with log.nested(name):
- try:
- yield
- return True
- except Exception as e:
- log.log(f'Test "{name}" failed with error: "{e}"')
- raise e
-
- return False
-
-
-def _test_symbols() -> Dict[str, Any]:
- general_symbols = dict(
- start_all=start_all,
- test_script=globals().get("test_script"), # same
- machines=globals().get("machines"), # without being initialized
- log=globals().get("log"), # extracting those symbol keys
- os=os,
- create_machine=create_machine,
- subtest=subtest,
- run_tests=run_tests,
- join_all=join_all,
- retry=retry,
- serial_stdout_off=serial_stdout_off,
- serial_stdout_on=serial_stdout_on,
- Machine=Machine, # for typing
- )
- return general_symbols
-
-
-def test_symbols() -> Dict[str, Any]:
-
- general_symbols = _test_symbols()
-
- machine_symbols = {m.name: machines[idx] for idx, m in enumerate(machines)}
- print(
- "additionally exposed symbols:\n "
- + ", ".join(map(lambda m: m.name, machines))
- + ",\n "
- + ", ".join(list(general_symbols.keys()))
- )
- return {**general_symbols, **machine_symbols}
-
-
if __name__ == "__main__":
arg_parser = argparse.ArgumentParser(prog="nixos-test-driver")
arg_parser.add_argument(
@@ -1055,44 +1320,17 @@ if __name__ == "__main__":
)
args = arg_parser.parse_args()
- testscript = pathlib.Path(args.testscript).read_text()
- global log, machines, test_script
+ if not args.keep_vm_state:
+ rootlog.info("Machine state will be reset. To keep it, pass --keep-vm-state")
- log = Logger()
-
- vde_sockets = [create_vlan(v) for v in args.vlans]
- for nr, vde_socket, _, _ in vde_sockets:
- os.environ["QEMU_VDE_SOCKET_{}".format(nr)] = vde_socket
-
- machines = [
- create_machine({"startCommand": s, "keepVmState": args.keep_vm_state})
- for s in args.start_scripts
- ]
- machine_eval = [
- "{0} = machines[{1}]".format(m.name, idx) for idx, m in enumerate(machines)
- ]
- exec("\n".join(machine_eval))
-
- @atexit.register
- def clean_up() -> None:
- with log.nested("cleaning up"):
- for machine in machines:
- if machine.pid is None:
- continue
- log.log("killing {} (pid {})".format(machine.name, machine.pid))
- machine.process.kill()
- for _, _, process, _ in vde_sockets:
- process.terminate()
- log.close()
-
- def test_script() -> None:
- with log.nested("running the VM test script"):
- symbols = test_symbols() # call eagerly
- exec(testscript, symbols, None)
-
- interactive = args.interactive or (not bool(testscript))
- tic = time.time()
- run_tests(interactive)
- toc = time.time()
- print("test script finished in {:.2f}s".format(toc - tic))
+ with Driver(
+ args.start_scripts, args.vlans, args.testscript.read_text(), args.keep_vm_state
+ ) as driver:
+ if args.interactive:
+ ptpython.repl.embed(driver.test_symbols(), {})
+ else:
+ tic = time.time()
+ driver.run_tests()
+ toc = time.time()
+ rootlog.info(f"test script finished in {(toc-tic):.2f}s")
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index 7c8c64211f18..cce017a6441d 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -43,7 +43,8 @@ rec {
from pydoc import importfile
with open('driver-symbols', 'w') as fp:
t = importfile('${testDriverScript}')
- test_symbols = t._test_symbols()
+ d = t.Driver([],[],"")
+ test_symbols = d.test_symbols()
fp.write(','.join(test_symbols.keys()))
EOF
'';
@@ -188,14 +189,6 @@ rec {
--set startScripts "''${vmStartScripts[*]}" \
--set testScript "$out/test-script" \
--set vlans '${toString vlans}'
-
- ${lib.optionalString (testScript == "") ''
- ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
- wrapProgram $out/bin/nixos-run-vms \
- --set startScripts "''${vmStartScripts[*]}" \
- --set testScript "${pkgs.writeText "start-all" "start_all(); join_all();"}" \
- --set vlans '${toString vlans}'
- ''}
'');
# Make a full-blown test
@@ -216,11 +209,41 @@ rec {
let
nodes = qemu_pkg:
let
+ testScript' =
+ # Call the test script with the computed nodes.
+ if lib.isFunction testScript
+ then testScript { nodes = nodes qemu_pkg; }
+ else testScript;
+
build-vms = import ./build-vms.nix {
- inherit system pkgs minimal specialArgs;
+ inherit system lib pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ [(
+ { config, ... }:
{
virtualisation.qemu.package = qemu_pkg;
+
+ # Make sure all derivations referenced by the test
+ # script are available on the nodes. When the store is
+ # accessed through 9p, this isn't important, since
+ # everything in the store is available to the guest,
+ # but when building a root image it is, as all paths
+ # that should be available to the guest has to be
+ # copied to the image.
+ virtualisation.additionalPaths =
+ lib.optional
+ # A testScript may evaluate nodes, which has caused
+ # infinite recursions. The demand cycle involves:
+ # testScript -->
+ # nodes -->
+ # toplevel -->
+ # additionalPaths -->
+ # hasContext testScript' -->
+ # testScript (ad infinitum)
+ # If we don't need to build an image, we can break this
+ # cycle by short-circuiting when useNixStoreImage is false.
+ (config.virtualisation.useNixStoreImage && builtins.hasContext testScript')
+ (pkgs.writeStringReferencesToFile testScript');
+
# Ensure we do not use aliases. Ideally this is only set
# when the test framework is used by Nixpkgs NixOS tests.
nixpkgs.config.allowAliases = false;
@@ -257,7 +280,6 @@ rec {
inherit test driver driverInteractive nodes;
};
-
abortForFunction = functionName: abort ''The ${functionName} function was
removed because it is not an essential part of the NixOS testing
infrastructure. It had no usage in NixOS or Nixpkgs and it had no designated
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index 7fe812424f85..439b627dc385 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -10,7 +10,7 @@ rec {
# Check whenever fileSystem is needed for boot. NOTE: Make sure
# pathsNeededForBoot is closed under the parent relationship, i.e. if /a/b/c
# is in the list, put /a and /a/b in as well.
- pathsNeededForBoot = [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
+ pathsNeededForBoot = [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/var/lib/nixos" "/etc" ];
fsNeededForBoot = fs: fs.neededForBoot || elem fs.mountPoint pathsNeededForBoot;
# Check whenever `b` depends on `a` as a fileSystem
diff --git a/nixos/maintainers/scripts/azure-new/examples/basic/image.nix b/nixos/maintainers/scripts/azure-new/examples/basic/image.nix
index ad62dcd14a0b..310eba3621a6 100644
--- a/nixos/maintainers/scripts/azure-new/examples/basic/image.nix
+++ b/nixos/maintainers/scripts/azure-new/examples/basic/image.nix
@@ -1,6 +1,6 @@
let
pkgs = (import ../../../../../../default.nix {});
- machine = import "${pkgs.path}/nixos/lib/eval-config.nix" {
+ machine = import (pkgs.path + "/nixos/lib/eval-config.nix") {
system = "x86_64-linux";
modules = [
({config, ...}: { imports = [ ./system.nix ]; })
diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix
index 6942b58f236e..6358ec68f7cf 100644
--- a/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -4,6 +4,7 @@ with lib;
let
cfg = config.amazonImage;
+ amiBootMode = if config.ec2.efi then "uefi" else "legacy-bios";
in {
@@ -27,7 +28,7 @@ in {
};
contents = mkOption {
- example = literalExample ''
+ example = literalExpression ''
[ { source = pkgs.memtest86 + "/memtest.bin";
target = "boot/memtest.bin";
}
@@ -104,12 +105,14 @@ in {
${pkgs.jq}/bin/jq -n \
--arg system_label ${lib.escapeShellArg config.system.nixos.label} \
--arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \
- --arg root_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$bootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
- --arg boot_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+ --arg root_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+ --arg boot_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$bootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+ --arg boot_mode "${amiBootMode}" \
--arg root "$rootDisk" \
--arg boot "$bootDisk" \
'{}
| .label = $system_label
+ | .boot_mode = $boot_mode
| .system = $system
| .disks.boot.logical_bytes = $boot_logical_bytes
| .disks.boot.file = $boot
@@ -145,9 +148,11 @@ in {
--arg system_label ${lib.escapeShellArg config.system.nixos.label} \
--arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \
--arg logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$diskImage" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+ --arg boot_mode "${amiBootMode}" \
--arg file "$diskImage" \
'{}
| .label = $system_label
+ | .boot_mode = $boot_mode
| .system = $system
| .logical_bytes = $logical_bytes
| .file = $file
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
index 691d7fcfcba4..797fe03e2095 100755
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -1,6 +1,9 @@
#!/usr/bin/env nix-shell
#!nix-shell -p awscli -p jq -p qemu -i bash
# shellcheck shell=bash
+#
+# Future Deprecation?
+# This entire thing should probably be replaced with a generic terraform config
# Uploads and registers NixOS images built from the
# amazonImage attribute. Images are uploaded and
@@ -15,18 +18,22 @@
# set -x
set -euo pipefail
-# configuration
-state_dir=$HOME/amis/ec2-images
-home_region=eu-west-1
-bucket=nixos-amis
-service_role_name=vmimport
+var () { true; }
-regions=(eu-west-1 eu-west-2 eu-west-3 eu-central-1 eu-north-1
+# configuration
+var ${state_dir:=$HOME/amis/ec2-images}
+var ${home_region:=eu-west-1}
+var ${bucket:=nixos-amis}
+var ${service_role_name:=vmimport}
+
+var ${regions:=eu-west-1 eu-west-2 eu-west-3 eu-central-1 eu-north-1
us-east-1 us-east-2 us-west-1 us-west-2
ca-central-1
ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2
ap-south-1 ap-east-1
- sa-east-1)
+ sa-east-1}
+
+regions=($regions)
log() {
echo "$@" >&2
@@ -60,10 +67,21 @@ read_image_info() {
# We handle a single image per invocation, store all attributes in
# globals for convenience.
-image_label=$(read_image_info .label)
+zfs_disks=$(read_image_info .disks)
+is_zfs_image=
+if jq -e .boot <<< "$zfs_disks"; then
+ is_zfs_image=1
+ zfs_boot=".disks.boot"
+fi
+image_label="$(read_image_info .label)${is_zfs_image:+-ZFS}"
image_system=$(read_image_info .system)
-image_file=$(read_image_info .file)
-image_logical_bytes=$(read_image_info .logical_bytes)
+image_files=( $(read_image_info ".disks.root.file") )
+
+image_logical_bytes=$(read_image_info "${zfs_boot:-.disks.root}.logical_bytes")
+
+if [[ -n "$is_zfs_image" ]]; then
+ image_files+=( $(read_image_info .disks.boot.file) )
+fi
# Derived attributes
@@ -113,11 +131,11 @@ wait_for_import() {
local state snapshot_id
log "Waiting for import task $task_id to be completed"
while true; do
- read -r state progress snapshot_id < <(
+ read -r state message snapshot_id < <(
aws ec2 describe-import-snapshot-tasks --region "$region" --import-task-ids "$task_id" | \
- jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail | "\(.Status) \(.Progress) \(.SnapshotId)"'
+ jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail | "\(.Status) \(.StatusMessage) \(.SnapshotId)"'
)
- log " ... state=$state progress=$progress snapshot_id=$snapshot_id"
+ log " ... state=$state message=$message snapshot_id=$snapshot_id"
case "$state" in
active)
sleep 10
@@ -179,41 +197,48 @@ make_image_public() {
upload_image() {
local region=$1
- local aws_path=${image_file#/}
+ for image_file in "${image_files[@]}"; do
+ local aws_path=${image_file#/}
- local state_key="$region.$image_label.$image_system"
- local task_id
- task_id=$(read_state "$state_key" task_id)
- local snapshot_id
- snapshot_id=$(read_state "$state_key" snapshot_id)
- local ami_id
- ami_id=$(read_state "$state_key" ami_id)
-
- if [ -z "$task_id" ]; then
- log "Checking for image on S3"
- if ! aws s3 ls --region "$region" "s3://${bucket}/${aws_path}" >&2; then
- log "Image missing from aws, uploading"
- aws s3 cp --region "$region" "$image_file" "s3://${bucket}/${aws_path}" >&2
+ if [[ -n "$is_zfs_image" ]]; then
+ local suffix=${image_file%.*}
+ suffix=${suffix##*.}
fi
- log "Importing image from S3 path s3://$bucket/$aws_path"
+ local state_key="$region.$image_label${suffix:+.${suffix}}.$image_system"
+ local task_id
+ task_id=$(read_state "$state_key" task_id)
+ local snapshot_id
+ snapshot_id=$(read_state "$state_key" snapshot_id)
+ local ami_id
+ ami_id=$(read_state "$state_key" ami_id)
- task_id=$(aws ec2 import-snapshot --role-name "$service_role_name" --disk-container "{
- \"Description\": \"nixos-image-${image_label}-${image_system}\",
- \"Format\": \"vhd\",
- \"UserBucket\": {
- \"S3Bucket\": \"$bucket\",
- \"S3Key\": \"$aws_path\"
- }
- }" --region "$region" | jq -r '.ImportTaskId')
+ if [ -z "$task_id" ]; then
+ log "Checking for image on S3"
+ if ! aws s3 ls --region "$region" "s3://${bucket}/${aws_path}" >&2; then
+ log "Image missing from aws, uploading"
+ aws s3 cp --region "$region" "$image_file" "s3://${bucket}/${aws_path}" >&2
+ fi
- write_state "$state_key" task_id "$task_id"
- fi
+ log "Importing image from S3 path s3://$bucket/$aws_path"
- if [ -z "$snapshot_id" ]; then
- snapshot_id=$(wait_for_import "$region" "$task_id")
- write_state "$state_key" snapshot_id "$snapshot_id"
- fi
+ task_id=$(aws ec2 import-snapshot --role-name "$service_role_name" --disk-container "{
+ \"Description\": \"nixos-image-${image_label}-${image_system}\",
+ \"Format\": \"vhd\",
+ \"UserBucket\": {
+ \"S3Bucket\": \"$bucket\",
+ \"S3Key\": \"$aws_path\"
+ }
+ }" --region "$region" | jq -r '.ImportTaskId')
+
+ write_state "$state_key" task_id "$task_id"
+ fi
+
+ if [ -z "$snapshot_id" ]; then
+ snapshot_id=$(wait_for_import "$region" "$task_id")
+ write_state "$state_key" snapshot_id "$snapshot_id"
+ fi
+ done
if [ -z "$ami_id" ]; then
log "Registering snapshot $snapshot_id as AMI"
@@ -222,6 +247,18 @@ upload_image() {
"DeviceName=/dev/xvda,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
)
+ if [[ -n "$is_zfs_image" ]]; then
+ local root_snapshot_id=$(read_state "$region.$image_label.root.$image_system" snapshot_id)
+
+ local root_image_logical_bytes=$(read_image_info ".disks.root.logical_bytes")
+ local root_image_logical_gigabytes=$(((root_image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB
+
+ block_device_mappings+=(
+ "DeviceName=/dev/xvdb,Ebs={SnapshotId=$root_snapshot_id,VolumeSize=$root_image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
+ )
+ fi
+
+
local extra_flags=(
--root-device-name /dev/xvda
--sriov-net-support simple
@@ -241,6 +278,7 @@ upload_image() {
--region "$region" \
--architecture $amazon_arch \
--block-device-mappings "${block_device_mappings[@]}" \
+ --boot-mode $(read_image_info .boot_mode) \
"${extra_flags[@]}" \
| jq -r '.ImageId'
)
@@ -248,7 +286,7 @@ upload_image() {
write_state "$state_key" ami_id "$ami_id"
fi
- make_image_public "$region" "$ami_id"
+ [[ -v PRIVATE ]] || make_image_public "$region" "$ami_id"
echo "$ami_id"
}
@@ -276,7 +314,7 @@ copy_to_region() {
write_state "$state_key" ami_id "$ami_id"
fi
- make_image_public "$region" "$ami_id"
+ [[ -v PRIVATE ]] || make_image_public "$region" "$ami_id"
echo "$ami_id"
}
diff --git a/nixos/maintainers/scripts/lxd/lxd-image-inner.nix b/nixos/maintainers/scripts/lxd/lxd-image-inner.nix
new file mode 100644
index 000000000000..74634fd1671c
--- /dev/null
+++ b/nixos/maintainers/scripts/lxd/lxd-image-inner.nix
@@ -0,0 +1,102 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page
+# and in the NixOS manual (accessible by running ‘nixos-help’).
+
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+{
+ imports =
+ [ # Include the default lxd configuration.
+ ../../../modules/virtualisation/lxc-container.nix
+ # Include the container-specific autogenerated configuration.
+ ./lxd.nix
+ ];
+
+ # networking.hostName = mkForce "nixos"; # Overwrite the hostname.
+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+
+ # Set your time zone.
+ # time.timeZone = "Europe/Amsterdam";
+
+ # The global useDHCP flag is deprecated, therefore explicitly set to false here.
+ # Per-interface useDHCP will be mandatory in the future, so this generated config
+ # replicates the default behaviour.
+ networking.useDHCP = false;
+ networking.interfaces.eth0.useDHCP = true;
+
+ # Configure network proxy if necessary
+ # networking.proxy.default = "http://user:password@proxy:port/";
+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+
+ # Select internationalisation properties.
+ # i18n.defaultLocale = "en_US.UTF-8";
+ # console = {
+ # font = "Lat2-Terminus16";
+ # keyMap = "us";
+ # };
+
+ # Enable the X11 windowing system.
+ # services.xserver.enable = true;
+
+ # Configure keymap in X11
+ # services.xserver.layout = "us";
+ # services.xserver.xkbOptions = "eurosign:e";
+
+ # Enable CUPS to print documents.
+ # services.printing.enable = true;
+
+ # Enable sound.
+ # sound.enable = true;
+ # hardware.pulseaudio.enable = true;
+
+ # Enable touchpad support (enabled default in most desktopManager).
+ # services.xserver.libinput.enable = true;
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ # users.users.jane = {
+ # isNormalUser = true;
+ # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
+ # };
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ # environment.systemPackages = with pkgs; [
+ # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
+ # wget
+ # firefox
+ # ];
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ # programs.mtr.enable = true;
+ # programs.gnupg.agent = {
+ # enable = true;
+ # enableSSHSupport = true;
+ # };
+
+ # List services that you want to enable:
+
+ # Enable the OpenSSH daemon.
+ # services.openssh.enable = true;
+
+ # Open ports in the firewall.
+ # networking.firewall.allowedTCPPorts = [ ... ];
+ # networking.firewall.allowedUDPPorts = [ ... ];
+ # Or disable the firewall altogether.
+ # networking.firewall.enable = false;
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = "21.05"; # Did you read the comment?
+
+ # As this is intended as a stadalone image, undo some of the minimal profile stuff
+ documentation.enable = true;
+ documentation.nixos.enable = true;
+ environment.noXlibs = false;
+}
diff --git a/nixos/maintainers/scripts/lxd/lxd-image.nix b/nixos/maintainers/scripts/lxd/lxd-image.nix
new file mode 100644
index 000000000000..c76b9fcc7f77
--- /dev/null
+++ b/nixos/maintainers/scripts/lxd/lxd-image.nix
@@ -0,0 +1,34 @@
+{ lib, config, pkgs, ... }:
+
+with lib;
+
+{
+ imports = [
+ ../../../modules/virtualisation/lxc-container.nix
+ ];
+
+ virtualisation.lxc.templates.nix = {
+ enable = true;
+ target = "/etc/nixos/lxd.nix";
+ template = ./nix.tpl;
+ when = [ "create" "copy" ];
+ };
+
+ # copy the config for nixos-rebuild
+ system.activationScripts.config = ''
+ if [ ! -e /etc/nixos/configuration.nix ]; then
+ mkdir -p /etc/nixos
+ cat ${./lxd-image-inner.nix} > /etc/nixos/configuration.nix
+ sed 's|../../../modules/virtualisation/lxc-container.nix||g' -i /etc/nixos/configuration.nix
+ fi
+ '';
+
+ # Network
+ networking.useDHCP = false;
+ networking.interfaces.eth0.useDHCP = true;
+
+ # As this is intended as a stadalone image, undo some of the minimal profile stuff
+ documentation.enable = true;
+ documentation.nixos.enable = true;
+ environment.noXlibs = false;
+}
diff --git a/nixos/maintainers/scripts/lxd/nix.tpl b/nixos/maintainers/scripts/lxd/nix.tpl
new file mode 100644
index 000000000000..307258ddc628
--- /dev/null
+++ b/nixos/maintainers/scripts/lxd/nix.tpl
@@ -0,0 +1,9 @@
+{ lib, config, pkgs, ... }:
+
+with lib;
+
+# WARNING: THIS CONFIGURATION IS AUTOGENERATED AND WILL BE OVERWRITTEN AUTOMATICALLY
+
+{
+ networking.hostName = "{{ container.name }}";
+}
diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix
index 98f942ee63f5..168bebd8d06a 100644
--- a/nixos/modules/config/console.nix
+++ b/nixos/modules/config/console.nix
@@ -116,7 +116,7 @@ in
{ console.keyMap = with config.services.xserver;
mkIf cfg.useXkbConfig
(pkgs.runCommand "xkb-console-keymap" { preferLocalBuild = true; } ''
- '${pkgs.ckbcomp}/bin/ckbcomp' \
+ '${pkgs.buildPackages.ckbcomp}/bin/ckbcomp' \
${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
"-I${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
} \
diff --git a/nixos/modules/config/fonts/fontdir.nix b/nixos/modules/config/fonts/fontdir.nix
index c4bd3a077d33..db4b6c638ab4 100644
--- a/nixos/modules/config/fonts/fontdir.nix
+++ b/nixos/modules/config/fonts/fontdir.nix
@@ -50,9 +50,8 @@ in
config = mkIf cfg.enable {
- # This is enough to make a symlink because the xserver
- # module already links all /share/X11 paths.
environment.systemPackages = [ x11Fonts ];
+ environment.pathsToLink = [ "/share/X11/fonts" ];
services.xserver.filesSection = ''
FontPath "${x11Fonts}/share/X11/fonts"
diff --git a/nixos/modules/config/fonts/fonts.nix b/nixos/modules/config/fonts/fonts.nix
index f87e61e3ef9f..04952898cb76 100644
--- a/nixos/modules/config/fonts/fonts.nix
+++ b/nixos/modules/config/fonts/fonts.nix
@@ -61,7 +61,7 @@ in
fonts = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "[ pkgs.dejavu_fonts ]";
+ example = literalExpression "[ pkgs.dejavu_fonts ]";
description = "List of primary font paths.";
};
diff --git a/nixos/modules/config/i18n.nix b/nixos/modules/config/i18n.nix
index 991b449d80b5..545d4a3dca61 100644
--- a/nixos/modules/config/i18n.nix
+++ b/nixos/modules/config/i18n.nix
@@ -14,7 +14,7 @@ with lib;
allLocales = any (x: x == "all") config.i18n.supportedLocales;
locales = config.i18n.supportedLocales;
};
- example = literalExample "pkgs.glibcLocales";
+ example = literalExpression "pkgs.glibcLocales";
description = ''
Customized pkg.glibcLocales package.
diff --git a/nixos/modules/config/krb5/default.nix b/nixos/modules/config/krb5/default.nix
index c2302451d702..911c5b629a9a 100644
--- a/nixos/modules/config/krb5/default.nix
+++ b/nixos/modules/config/krb5/default.nix
@@ -83,8 +83,8 @@ in {
kerberos = mkOption {
type = types.package;
default = pkgs.krb5Full;
- defaultText = "pkgs.krb5Full";
- example = literalExample "pkgs.heimdalFull";
+ defaultText = literalExpression "pkgs.krb5Full";
+ example = literalExpression "pkgs.heimdal";
description = ''
The Kerberos implementation that will be present in
environment.systemPackages after enabling this
@@ -96,7 +96,7 @@ in {
type = with types; either attrs lines;
default = {};
apply = attrs: filterEmbeddedMetadata attrs;
- example = literalExample ''
+ example = literalExpression ''
{
default_realm = "ATHENA.MIT.EDU";
};
@@ -109,7 +109,7 @@ in {
realms = mkOption {
type = with types; either attrs lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"ATHENA.MIT.EDU" = {
admin_server = "athena.mit.edu";
@@ -127,7 +127,7 @@ in {
domain_realm = mkOption {
type = with types; either attrs lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"example.com" = "EXAMPLE.COM";
".example.com" = "EXAMPLE.COM";
@@ -142,7 +142,7 @@ in {
capaths = mkOption {
type = with types; either attrs lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"ATHENA.MIT.EDU" = {
"EXAMPLE.COM" = ".";
@@ -161,7 +161,7 @@ in {
appdefaults = mkOption {
type = with types; either attrs lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
pam = {
debug = false;
@@ -182,7 +182,7 @@ in {
plugins = mkOption {
type = with types; either attrs lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
ccselect = {
disable = "k5identity";
diff --git a/nixos/modules/config/malloc.nix b/nixos/modules/config/malloc.nix
index fc35993b5a81..84da5643004f 100644
--- a/nixos/modules/config/malloc.nix
+++ b/nixos/modules/config/malloc.nix
@@ -30,6 +30,15 @@ let
vulnerabilities, while maintaining good performance.
'';
};
+
+ mimalloc = {
+ libPath = "${pkgs.mimalloc}/lib/libmimalloc.so";
+ description = ''
+ A compact and fast general purpose allocator, which may
+ optionally be built with mitigations against various heap
+ vulnerabilities.
+ '';
+ };
};
providerConf = providers.${cfg.provider};
@@ -91,7 +100,10 @@ in
"abstractions/base" = ''
r /etc/ld-nix.so.preload,
r ${config.environment.etc."ld-nix.so.preload".source},
- mr ${providerLibPath},
+ include "${pkgs.apparmorRulesFromClosure {
+ name = "mallocLib";
+ baseRules = ["mr $path/lib/**.so*"];
+ } [ mallocLib ] }"
'';
};
};
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index 8c4eec510e5d..11307e331200 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -21,7 +21,7 @@ in
networking.hosts = lib.mkOption {
type = types.attrsOf (types.listOf types.str);
- example = literalExample ''
+ example = literalExpression ''
{
"127.0.0.1" = [ "foo.bar.baz" ];
"192.168.0.2" = [ "fileserver.local" "nameserver.local" ];
@@ -34,8 +34,8 @@ in
networking.hostFiles = lib.mkOption {
type = types.listOf types.path;
- defaultText = lib.literalExample "Hosts from `networking.hosts` and `networking.extraHosts`";
- example = lib.literalExample ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
+ defaultText = literalDocBook "Hosts from and ";
+ example = literalExpression ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
description = ''
Files that should be concatenated together to form /etc/hosts.
'';
diff --git a/nixos/modules/config/power-management.nix b/nixos/modules/config/power-management.nix
index cc0ff732ffa5..710842e1503b 100644
--- a/nixos/modules/config/power-management.nix
+++ b/nixos/modules/config/power-management.nix
@@ -35,7 +35,7 @@ in
powerUpCommands = mkOption {
type = types.lines;
default = "";
- example = literalExample ''
+ example = literalExpression ''
"''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"
'';
description =
@@ -49,7 +49,7 @@ in
powerDownCommands = mkOption {
type = types.lines;
default = "";
- example = literalExample ''
+ example = literalExpression ''
"''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"
'';
description =
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index 3f7ae109e8c2..01555d28b73f 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -149,8 +149,8 @@ in {
default = if config.services.jack.jackd.enable
then pkgs.pulseaudioFull
else pkgs.pulseaudio;
- defaultText = "pkgs.pulseaudio";
- example = literalExample "pkgs.pulseaudioFull";
+ defaultText = literalExpression "pkgs.pulseaudio";
+ example = literalExpression "pkgs.pulseaudioFull";
description = ''
The PulseAudio derivation to use. This can be used to enable
features (such as JACK support, Bluetooth) via the
@@ -161,7 +161,7 @@ in {
extraModules = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.pulseaudio-modules-bt ]";
+ example = literalExpression "[ pkgs.pulseaudio-modules-bt ]";
description = ''
Extra pulseaudio modules to use. This is intended for out-of-tree
pulseaudio modules like extra bluetooth codecs.
@@ -184,7 +184,7 @@ in {
type = types.attrsOf types.unspecified;
default = {};
description = "Config of the pulse daemon. See man pulse-daemon.conf.";
- example = literalExample ''{ realtime-scheduling = "yes"; }'';
+ example = literalExpression ''{ realtime-scheduling = "yes"; }'';
};
};
@@ -204,7 +204,7 @@ in {
allowedIpRanges = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''[ "127.0.0.1" "192.168.1.0/24" ]'';
+ example = literalExpression ''[ "127.0.0.1" "192.168.1.0/24" ]'';
description = ''
A list of IP subnets that are allowed to stream to the server.
'';
diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index 34e558d8603d..ae3f618e273c 100644
--- a/nixos/modules/config/shells-environment.nix
+++ b/nixos/modules/config/shells-environment.nix
@@ -136,10 +136,8 @@ in
environment.binsh = mkOption {
default = "${config.system.build.binsh}/bin/sh";
- defaultText = "\${config.system.build.binsh}/bin/sh";
- example = literalExample ''
- "''${pkgs.dash}/bin/dash"
- '';
+ defaultText = literalExpression ''"''${config.system.build.binsh}/bin/sh"'';
+ example = literalExpression ''"''${pkgs.dash}/bin/dash"'';
type = types.path;
visible = false;
description = ''
@@ -152,7 +150,7 @@ in
environment.shells = mkOption {
default = [];
- example = literalExample "[ pkgs.bashInteractive pkgs.zsh ]";
+ example = literalExpression "[ pkgs.bashInteractive pkgs.zsh ]";
description = ''
A list of permissible login shells for user accounts.
No need to mention /bin/sh
diff --git a/nixos/modules/config/swap.nix b/nixos/modules/config/swap.nix
index ff2ae1da31bd..9b005021086b 100644
--- a/nixos/modules/config/swap.nix
+++ b/nixos/modules/config/swap.nix
@@ -47,6 +47,15 @@ let
'';
};
+ allowDiscards = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Whether to allow TRIM requests to the underlying device. This option
+ has security implications; please read the LUKS documentation before
+ activating it.
+ '';
+ };
};
};
@@ -224,7 +233,8 @@ in
fi
''}
${optionalString sw.randomEncryption.enable ''
- cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} ${optionalString (sw.discardPolicy != null) "--allow-discards"} ${sw.device} ${sw.deviceName}
+ cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} \
+ ${optionalString sw.randomEncryption.allowDiscards "--allow-discards"} ${sw.device} ${sw.deviceName}
mkswap ${sw.realDevice}
''}
'';
diff --git a/nixos/modules/config/sysctl.nix b/nixos/modules/config/sysctl.nix
index e59c7a32c287..db1f5284f504 100644
--- a/nixos/modules/config/sysctl.nix
+++ b/nixos/modules/config/sysctl.nix
@@ -22,7 +22,7 @@ in
boot.kernel.sysctl = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
'';
type = types.attrsOf sysctlOption;
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index 1292c3008c6f..6ff4ec2921cf 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -58,7 +58,7 @@ in
systemPackages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.firefox pkgs.thunderbird ]";
+ example = literalExpression "[ pkgs.firefox pkgs.thunderbird ]";
description = ''
The set of packages that appear in
/run/current-system/sw. These packages are
@@ -73,9 +73,9 @@ in
defaultPackages = mkOption {
type = types.listOf types.package;
default = defaultPackages;
- example = literalExample "[]";
+ example = [];
description = ''
- Set of default packages that aren't strictly neccessary
+ Set of default packages that aren't strictly necessary
for a running system, entries can be removed for a more
minimal NixOS installation.
diff --git a/nixos/modules/config/unix-odbc-drivers.nix b/nixos/modules/config/unix-odbc-drivers.nix
index abc12a627d6f..055c3b2364e6 100644
--- a/nixos/modules/config/unix-odbc-drivers.nix
+++ b/nixos/modules/config/unix-odbc-drivers.nix
@@ -19,7 +19,7 @@ in {
environment.unixODBCDrivers = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "with pkgs.unixODBCDrivers; [ sqlite psql ]";
+ example = literalExpression "with pkgs.unixODBCDrivers; [ sqlite psql ]";
description = ''
Specifies Unix ODBC drivers to be registered in
/etc/odbcinst.ini. You may also want to
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 8e2db9107a11..629905e60955 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -165,8 +165,8 @@ let
shell = mkOption {
type = types.nullOr (types.either types.shellPackage (passwdEntry types.path));
default = pkgs.shadow;
- defaultText = "pkgs.shadow";
- example = literalExample "pkgs.bashInteractive";
+ defaultText = literalExpression "pkgs.shadow";
+ example = literalExpression "pkgs.bashInteractive";
description = ''
The path to the user's shell. Can use shell derivations,
like pkgs.bashInteractive. Don’t
@@ -291,7 +291,7 @@ let
packages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.firefox pkgs.thunderbird ]";
+ example = literalExpression "[ pkgs.firefox pkgs.thunderbird ]";
description = ''
The set of packages that should be made available to the user.
This is in contrast to ,
diff --git a/nixos/modules/config/xdg/portals/wlr.nix b/nixos/modules/config/xdg/portals/wlr.nix
index 55baab0026b2..aba1d8dbc00e 100644
--- a/nixos/modules/config/xdg/portals/wlr.nix
+++ b/nixos/modules/config/xdg/portals/wlr.nix
@@ -37,7 +37,7 @@ in
default = { };
# Example taken from the manpage
- example = literalExample ''
+ example = literalExpression ''
{
screencast = {
output_name = "HDMI-A-1";
diff --git a/nixos/modules/hardware/ckb-next.nix b/nixos/modules/hardware/ckb-next.nix
index 6932be1c54ca..b2bbd77c9d7f 100644
--- a/nixos/modules/hardware/ckb-next.nix
+++ b/nixos/modules/hardware/ckb-next.nix
@@ -27,7 +27,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.ckb-next;
- defaultText = "pkgs.ckb-next";
+ defaultText = literalExpression "pkgs.ckb-next";
description = ''
The package implementing the Corsair keyboard/mouse driver.
'';
diff --git a/nixos/modules/hardware/device-tree.nix b/nixos/modules/hardware/device-tree.nix
index 4aa1d6369d1b..be67116ad507 100644
--- a/nixos/modules/hardware/device-tree.nix
+++ b/nixos/modules/hardware/device-tree.nix
@@ -21,7 +21,7 @@ let
each .dtb file matching "compatible" of the overlay.
'';
default = null;
- example = literalExample "./dts/overlays.dts";
+ example = literalExpression "./dts/overlays.dts";
};
dtsText = mkOption {
@@ -31,7 +31,7 @@ let
Literal DTS contents, overlay is applied to
each .dtb file matching "compatible" of the overlay.
'';
- example = literalExample ''
+ example = ''
/dts-v1/;
/plugin/;
/ {
@@ -125,8 +125,8 @@ in
kernelPackage = mkOption {
default = config.boot.kernelPackages.kernel;
- defaultText = "config.boot.kernelPackages.kernel";
- example = literalExample "pkgs.linux_latest";
+ defaultText = literalExpression "config.boot.kernelPackages.kernel";
+ example = literalExpression "pkgs.linux_latest";
type = types.path;
description = ''
Kernel package containing the base device-tree (.dtb) to boot. Uses
@@ -156,7 +156,7 @@ in
overlays = mkOption {
default = [];
- example = literalExample ''
+ example = literalExpression ''
[
{ name = "pps"; dtsFile = ./dts/pps.dts; }
{ name = "spi";
diff --git a/nixos/modules/hardware/digitalbitbox.nix b/nixos/modules/hardware/digitalbitbox.nix
index 0888cfbef2a8..097448a74f4d 100644
--- a/nixos/modules/hardware/digitalbitbox.nix
+++ b/nixos/modules/hardware/digitalbitbox.nix
@@ -19,7 +19,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.digitalbitbox;
- defaultText = "pkgs.digitalbitbox";
+ defaultText = literalExpression "pkgs.digitalbitbox";
description = "The Digital Bitbox package to use. This can be used to install a package with udev rules that differ from the defaults.";
};
};
diff --git a/nixos/modules/hardware/flirc.nix b/nixos/modules/hardware/flirc.nix
new file mode 100644
index 000000000000..94ec715b9fa5
--- /dev/null
+++ b/nixos/modules/hardware/flirc.nix
@@ -0,0 +1,12 @@
+{ config, lib, pkgs, ... }:
+let
+ cfg = config.hardware.flirc;
+in
+{
+ options.hardware.flirc.enable = lib.mkEnableOption "software to configure a Flirc USB device";
+
+ config = lib.mkIf cfg.enable {
+ environment.systemPackages = [ pkgs.flirc ];
+ services.udev.packages = [ pkgs.flirc ];
+ };
+}
diff --git a/nixos/modules/hardware/gkraken.nix b/nixos/modules/hardware/gkraken.nix
new file mode 100644
index 000000000000..97d15369db0a
--- /dev/null
+++ b/nixos/modules/hardware/gkraken.nix
@@ -0,0 +1,18 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.hardware.gkraken;
+in
+{
+ options.hardware.gkraken = {
+ enable = mkEnableOption "gkraken's udev rules for NZXT AIO liquid coolers";
+ };
+
+ config = mkIf cfg.enable {
+ services.udev.packages = with pkgs; [
+ gkraken
+ ];
+ };
+}
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
index a50b5d32c358..0d8aaf734591 100644
--- a/nixos/modules/hardware/opengl.nix
+++ b/nixos/modules/hardware/opengl.nix
@@ -89,7 +89,7 @@ in
extraPackages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau intel-ocl ]";
+ example = literalExpression "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau intel-ocl ]";
description = ''
Additional packages to add to OpenGL drivers. This can be used
to add OpenCL drivers, VA-API/VDPAU drivers etc.
@@ -99,7 +99,7 @@ in
extraPackages32 = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "with pkgs.pkgsi686Linux; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]";
+ example = literalExpression "with pkgs.pkgsi686Linux; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]";
description = ''
Additional packages to add to 32-bit OpenGL drivers on
64-bit systems. Used when is
diff --git a/nixos/modules/hardware/opentabletdriver.nix b/nixos/modules/hardware/opentabletdriver.nix
index 295e23e6164f..caba934ebe77 100644
--- a/nixos/modules/hardware/opentabletdriver.nix
+++ b/nixos/modules/hardware/opentabletdriver.nix
@@ -29,7 +29,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.opentabletdriver;
- defaultText = "pkgs.opentabletdriver";
+ defaultText = literalExpression "pkgs.opentabletdriver";
description = ''
OpenTabletDriver derivation to use.
'';
diff --git a/nixos/modules/hardware/printers.nix b/nixos/modules/hardware/printers.nix
index c587076dcd18..ef07542950ba 100644
--- a/nixos/modules/hardware/printers.nix
+++ b/nixos/modules/hardware/printers.nix
@@ -72,10 +72,10 @@ in {
};
deviceUri = mkOption {
type = types.str;
- example = [
+ example = literalExpression ''
"ipp://printserver.local/printers/BrotherHL_Workroom"
"usb://HP/DESKJET%20940C?serial=CN16E6C364BH"
- ];
+ '';
description = ''
How to reach the printer.
lpinfo -v shows a list of supported device URIs and schemes.
@@ -83,8 +83,8 @@ in {
};
model = mkOption {
type = types.str;
- example = literalExample ''
- gutenprint.''${lib.versions.majorMinor (lib.getVersion pkgs.gutenprint)}://brother-hl-5140/expert
+ example = literalExpression ''
+ "gutenprint.''${lib.versions.majorMinor (lib.getVersion pkgs.gutenprint)}://brother-hl-5140/expert"
'';
description = ''
Location of the ppd driver file for the printer.
@@ -116,19 +116,14 @@ in {
description = "Ensure NixOS-configured CUPS printers";
wantedBy = [ "multi-user.target" ];
requires = [ cupsUnit ];
- # in contrast to cups.socket, for cups.service, this is actually not enough,
- # as the cups service reports its activation before clients can actually interact with it.
- # Because of this, commands like `lpinfo -v` will report a bad file descriptor
- # due to the missing UNIX socket without sufficient sleep time.
after = [ cupsUnit ];
serviceConfig = {
Type = "oneshot";
+ RemainAfterExit = true;
};
- # sleep 10 is required to wait until cups.service is actually initialized and has created its UNIX socket file
- script = (optionalString (!config.services.printing.startWhenNeeded) "sleep 10\n")
- + (concatMapStringsSep "\n" ensurePrinter cfg.ensurePrinters)
+ script = concatMapStringsSep "\n" ensurePrinter cfg.ensurePrinters
+ optionalString (cfg.ensureDefaultPrinter != null) (ensureDefaultPrinter cfg.ensureDefaultPrinter);
};
};
diff --git a/nixos/modules/hardware/sata.nix b/nixos/modules/hardware/sata.nix
index 541897527a8d..81592997d6e3 100644
--- a/nixos/modules/hardware/sata.nix
+++ b/nixos/modules/hardware/sata.nix
@@ -39,7 +39,7 @@ in
enable = mkEnableOption "SATA drive timeouts";
deciSeconds = mkOption {
- example = "70";
+ example = 70;
type = types.int;
description = ''
Set SCT Error Recovery Control timeout in deciseconds for use in RAID configurations.
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index cf87ca5377dd..917c6d3013e7 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -165,11 +165,11 @@ in
hardware.nvidia.package = lib.mkOption {
type = lib.types.package;
default = config.boot.kernelPackages.nvidiaPackages.stable;
- defaultText = "config.boot.kernelPackages.nvidiaPackages.stable";
+ defaultText = literalExpression "config.boot.kernelPackages.nvidiaPackages.stable";
description = ''
The NVIDIA X11 derivation to use.
'';
- example = "config.boot.kernelPackages.nvidiaPackages.legacy_340";
+ example = literalExpression "config.boot.kernelPackages.nvidiaPackages.legacy_340";
};
};
@@ -213,7 +213,7 @@ in
}
{
- assertion = cfg.powerManagement.enable -> offloadCfg.enable;
+ assertion = cfg.powerManagement.finegrained -> offloadCfg.enable;
message = "Fine-grained power management requires offload to be enabled.";
}
@@ -284,6 +284,10 @@ in
source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";
};
+ # 'nvidia_x11' installs it's files to /run/opengl-driver/...
+ environment.etc."egl/egl_external_platform.d".source =
+ "/run/opengl-driver/share/egl/egl_external_platform.d/";
+
hardware.opengl.package = mkIf (!offloadCfg.enable) nvidia_x11.out;
hardware.opengl.package32 = mkIf (!offloadCfg.enable) nvidia_x11.lib32;
hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;
diff --git a/nixos/modules/hardware/video/uvcvideo/default.nix b/nixos/modules/hardware/video/uvcvideo/default.nix
index cf6aa052abb0..338062cf69b7 100644
--- a/nixos/modules/hardware/video/uvcvideo/default.nix
+++ b/nixos/modules/hardware/video/uvcvideo/default.nix
@@ -33,7 +33,7 @@ in
packages = mkOption {
type = types.listOf types.path;
- example = literalExample "[ pkgs.tiscamera ]";
+ example = literalExpression "[ pkgs.tiscamera ]";
description = ''
List of packages containing uvcvideo dynamic controls
rules. All files found in
diff --git a/nixos/modules/i18n/input-method/fcitx.nix b/nixos/modules/i18n/input-method/fcitx.nix
index 440f13b41522..57960cc365b6 100644
--- a/nixos/modules/i18n/input-method/fcitx.nix
+++ b/nixos/modules/i18n/input-method/fcitx.nix
@@ -17,7 +17,7 @@ in
engines = mkOption {
type = with types; listOf fcitxEngine;
default = [];
- example = literalExample "with pkgs.fcitx-engines; [ mozc hangul ]";
+ example = literalExpression "with pkgs.fcitx-engines; [ mozc hangul ]";
description =
let
enginesDrv = filterAttrs (const isDerivation) pkgs.fcitx-engines;
diff --git a/nixos/modules/i18n/input-method/fcitx5.nix b/nixos/modules/i18n/input-method/fcitx5.nix
index eecbe32fea49..414aabbbaa73 100644
--- a/nixos/modules/i18n/input-method/fcitx5.nix
+++ b/nixos/modules/i18n/input-method/fcitx5.nix
@@ -12,7 +12,7 @@ in {
addons = mkOption {
type = with types; listOf package;
default = [];
- example = with pkgs; [ fcitx5-rime ];
+ example = literalExpression "with pkgs; [ fcitx5-rime ]";
description = ''
Enabled Fcitx5 addons.
'';
diff --git a/nixos/modules/i18n/input-method/ibus.nix b/nixos/modules/i18n/input-method/ibus.nix
index 1aaa5a952bea..92f8c64338a4 100644
--- a/nixos/modules/i18n/input-method/ibus.nix
+++ b/nixos/modules/i18n/input-method/ibus.nix
@@ -36,7 +36,7 @@ in
engines = mkOption {
type = with types; listOf ibusEngine;
default = [];
- example = literalExample "with pkgs.ibus-engines; [ mozc hangul ]";
+ example = literalExpression "with pkgs.ibus-engines; [ mozc hangul ]";
description =
let
enginesDrv = filterAttrs (const isDerivation) pkgs.ibus-engines;
@@ -48,7 +48,7 @@ in
panel = mkOption {
type = with types; nullOr path;
default = null;
- example = literalExample "''${pkgs.plasma5Packages.plasma-desktop}/lib/libexec/kimpanel-ibus-panel";
+ example = literalExpression ''"''${pkgs.plasma5Packages.plasma-desktop}/lib/libexec/kimpanel-ibus-panel"'';
description = "Replace the IBus panel with another panel.";
};
};
diff --git a/nixos/modules/i18n/input-method/kime.nix b/nixos/modules/i18n/input-method/kime.nix
index 2a73cb3f4605..e462cae2437b 100644
--- a/nixos/modules/i18n/input-method/kime.nix
+++ b/nixos/modules/i18n/input-method/kime.nix
@@ -10,7 +10,7 @@ in
config = mkOption {
type = yamlFormat.type;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
daemon = {
modules = ["Xim" "Indicator"];
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 78cbf14bbaf6..4812cacabaf3 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -528,7 +528,7 @@ in
};
isoImage.contents = mkOption {
- example = literalExample ''
+ example = literalExpression ''
[ { source = pkgs.memtest86 + "/memtest.bin";
target = "boot/memtest.bin";
}
@@ -541,7 +541,7 @@ in
};
isoImage.storeContents = mkOption {
- example = literalExample "[ pkgs.stdenv ]";
+ example = literalExpression "[ pkgs.stdenv ]";
description = ''
This option lists additional derivations to be included in the
Nix store in the generated ISO image.
diff --git a/nixos/modules/installer/cd-dvd/system-tarball.nix b/nixos/modules/installer/cd-dvd/system-tarball.nix
index 58098c45535d..362c555cc53e 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball.nix
@@ -15,7 +15,7 @@ in
{
options = {
tarball.contents = mkOption {
- example = literalExample ''
+ example = literalExpression ''
[ { source = pkgs.memtest86 + "/memtest.bin";
target = "boot/memtest.bin";
}
@@ -28,7 +28,7 @@ in
};
tarball.storeContents = mkOption {
- example = literalExample "[ pkgs.stdenv ]";
+ example = literalExpression "[ pkgs.stdenv ]";
description = ''
This option lists additional derivations to be included in the
Nix store in the generated ISO image.
diff --git a/nixos/modules/installer/netboot/netboot.nix b/nixos/modules/installer/netboot/netboot.nix
index 28b6c39b29df..145f71b5d0c7 100644
--- a/nixos/modules/installer/netboot/netboot.nix
+++ b/nixos/modules/installer/netboot/netboot.nix
@@ -9,7 +9,7 @@ with lib;
options = {
netboot.storeContents = mkOption {
- example = literalExample "[ pkgs.stdenv ]";
+ example = literalExpression "[ pkgs.stdenv ]";
description = ''
This option lists additional derivations to be included in the
Nix store in the generated netboot image.
diff --git a/nixos/modules/installer/sd-card/sd-image.nix b/nixos/modules/installer/sd-card/sd-image.nix
index 2a10a77300e8..a964cf2d6f85 100644
--- a/nixos/modules/installer/sd-card/sd-image.nix
+++ b/nixos/modules/installer/sd-card/sd-image.nix
@@ -49,7 +49,7 @@ in
storePaths = mkOption {
type = with types; listOf package;
- example = literalExample "[ pkgs.stdenv ]";
+ example = literalExpression "[ pkgs.stdenv ]";
description = ''
Derivations to be included in the Nix store in the generated SD image.
'';
@@ -107,7 +107,7 @@ in
};
populateFirmwareCommands = mkOption {
- example = literalExample "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
+ example = literalExpression "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
description = ''
Shell commands to populate the ./firmware directory.
All files in that directory are copied to the
@@ -116,7 +116,7 @@ in
};
populateRootCommands = mkOption {
- example = literalExample "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
+ example = literalExpression "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
description = ''
Shell commands to populate the ./files directory.
All files in that directory are copied to the
@@ -126,7 +126,7 @@ in
};
postBuildCommands = mkOption {
- example = literalExample "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
+ example = literalExpression "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
default = "";
description = ''
Shell commands to run after the image is built.
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 15c76287e34e..065cea470fbb 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,7 +1,7 @@
{
- x86_64-linux = "/nix/store/jhbxh1jwjc3hjhzs9y2hifdn0rmnfwaj-nix-2.3.15";
- i686-linux = "/nix/store/9pspwnkdrgzma1l4xlv7arhwa56y16di-nix-2.3.15";
- aarch64-linux = "/nix/store/72aqi5g7f4fhgvgafbcqwcpqjgnczj48-nix-2.3.15";
- x86_64-darwin = "/nix/store/6p6qwp73dgfkqhynmxrzbx1lcfgfpqal-nix-2.3.15";
- aarch64-darwin = "/nix/store/dmq2vksdhssgfl822shd0ky3x5x0klh4-nix-2.3.15";
+ x86_64-linux = "/nix/store/hapw7q1fkjxvprnkcgw9ppczavg4daj2-nix-2.4";
+ i686-linux = "/nix/store/8qlvh8pp5j8wgrzj3is2jlbhgrwgsiy9-nix-2.4";
+ aarch64-linux = "/nix/store/h48lkygcqj4hdibbdnpl67q7ks6vkrd6-nix-2.4";
+ x86_64-darwin = "/nix/store/c3mvzszvyzakvcp9spnjvsb8m2bpjk7m-nix-2.4";
+ aarch64-darwin = "/nix/store/hbfqs62r0hga2yr4zi5kc7fzhf71bq9n-nix-2.4";
}
diff --git a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix b/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix
index e49ceba24245..8aedce2fb49c 100644
--- a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix
+++ b/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix
@@ -8,11 +8,21 @@ let
_file = "${networkExpr}@node-${vm}";
imports = [ module ];
}) (import networkExpr);
+
+ pkgs = import ../../../../.. { inherit system config; };
+
+ testing = import ../../../../lib/testing-python.nix {
+ inherit system pkgs;
+ };
+
+ interactiveDriver = (testing.makeTest { inherit nodes; testScript = "start_all(); join_all();"; }).driverInteractive;
in
-with import ../../../../lib/testing-python.nix {
- inherit system;
- pkgs = import ../../../../.. { inherit system config; };
-};
-(makeTest { inherit nodes; testScript = ""; }).driverInteractive
+pkgs.runCommand "nixos-build-vms" { nativeBuildInputs = [ pkgs.makeWrapper ]; } ''
+ mkdir -p $out/bin
+ ln -s ${interactiveDriver}/bin/nixos-test-driver $out/bin/nixos-test-driver
+ ln -s ${interactiveDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
+ wrapProgram $out/bin/nixos-test-driver \
+ --add-flags "--interactive"
+''
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index 450d77618148..00883205e8b5 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -60,6 +60,35 @@ chmod 0755 "$mountPoint/dev" "$mountPoint/sys"
mount --rbind /dev "$mountPoint/dev"
mount --rbind /sys "$mountPoint/sys"
+# modified from https://github.com/archlinux/arch-install-scripts/blob/bb04ab435a5a89cd5e5ee821783477bc80db797f/arch-chroot.in#L26-L52
+chroot_add_resolv_conf() {
+ local chrootdir=$1 resolv_conf=$1/etc/resolv.conf
+
+ [[ -e /etc/resolv.conf ]] || return 0
+
+ # Handle resolv.conf as a symlink to somewhere else.
+ if [[ -L $chrootdir/etc/resolv.conf ]]; then
+ # readlink(1) should always give us *something* since we know at this point
+ # it's a symlink. For simplicity, ignore the case of nested symlinks.
+ # We also ignore the possibility if `../`s escaping the root.
+ resolv_conf=$(readlink "$chrootdir/etc/resolv.conf")
+ if [[ $resolv_conf = /* ]]; then
+ resolv_conf=$chrootdir$resolv_conf
+ else
+ resolv_conf=$chrootdir/etc/$resolv_conf
+ fi
+ fi
+
+ # ensure file exists to bind mount over
+ if [[ ! -f $resolv_conf ]]; then
+ install -Dm644 /dev/null "$resolv_conf" || return 1
+ fi
+
+ mount --bind /etc/resolv.conf "$resolv_conf"
+}
+
+chroot_add_resolv_conf "$mountPoint" || print "ERROR: failed to set up resolv.conf"
+
(
# If silent, write both stdout and stderr of activation script to /dev/null
# otherwise, write both streams to stderr of this process
@@ -68,7 +97,7 @@ mount --rbind /sys "$mountPoint/sys"
fi
# Run the activation script. Set $LOCALE_ARCHIVE to supress some Perl locale warnings.
- LOCALE_ARCHIVE="$system/sw/lib/locale/locale-archive" chroot "$mountPoint" "$system/activate" 1>&2 || true
+ LOCALE_ARCHIVE="$system/sw/lib/locale/locale-archive" IN_NIXOS_ENTER=1 chroot "$mountPoint" "$system/activate" 1>&2 || true
# Create /tmp
chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index 1d23b9b72442..c3ded4f1ea34 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -6,7 +6,11 @@ let
cfg = config.documentation;
- manualModules = baseModules ++ optionals cfg.nixos.includeAllModules (extraModules ++ modules);
+ manualModules =
+ baseModules
+ # Modules for which to show options even when not imported
+ ++ [ ../virtualisation/qemu-vm.nix ]
+ ++ optionals cfg.nixos.includeAllModules (extraModules ++ modules);
/* For the purpose of generating docs, evaluate options with each derivation
in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".
@@ -129,7 +133,7 @@ in
extraOutputsToInstall = ["man"];
ignoreCollisions = true;
};
- defaultText = "all man pages in config.environment.systemPackages";
+ defaultText = literalDocBook "all man pages in ";
description = ''
The manual pages to generate caches for if
is enabled. Must be a path to a directory with man pages under
@@ -207,7 +211,7 @@ in
Which extra NixOS module paths the generated NixOS's documentation should strip
from options.
'';
- example = literalExample ''
+ example = literalExpression ''
# e.g. with options from modules in ''${pkgs.customModules}/nix:
[ pkgs.customModules ]
'';
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index e760a18f5082..f392ca52566f 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -48,7 +48,7 @@ in
#disk = 6; # unused
#vsftpd = 7; # dynamically allocated ass of 2021-09-14
ftp = 8;
- bitlbee = 9;
+ # bitlbee = 9; # removed 2021-10-05 #139765
#avahi = 10; # removed 2019-05-22
nagios = 11;
atd = 12;
@@ -144,7 +144,7 @@ in
dictd = 105;
couchdb = 106;
#searx = 107; # dynamically allocated as of 2020-10-27
- kippo = 108;
+ #kippo = 108; # removed 2021-10-07, the kippo package was removed in 1b213f321cdbfcf868b96fd9959c24207ce1b66a during 2021-04
jenkins = 109;
systemd-journal-gateway = 110;
#notbit = 111; # unused
@@ -368,7 +368,7 @@ in
disk = 6;
#vsftpd = 7; # dynamically allocated as of 2021-09-14
ftp = 8;
- bitlbee = 9;
+ # bitlbee = 9; # removed 2021-10-05 #139765
#avahi = 10; # removed 2019-05-22
#nagios = 11; # unused
atd = 12;
@@ -462,7 +462,7 @@ in
dictd = 105;
couchdb = 106;
#searx = 107; # dynamically allocated as of 2020-10-27
- kippo = 108;
+ #kippo = 108; # removed 2021-10-07, the kippo package was removed in 1b213f321cdbfcf868b96fd9959c24207ce1b66a during 2021-04
jenkins = 109;
systemd-journal-gateway = 110;
#notbit = 111; # unused
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 1d2bc8c72813..2f2986c2fec5 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -25,8 +25,8 @@ in {
locate = mkOption {
type = package;
default = pkgs.findutils;
- defaultText = "pkgs.findutils";
- example = "pkgs.mlocate";
+ defaultText = literalExpression "pkgs.findutils";
+ example = literalExpression "pkgs.mlocate";
description = ''
The locate implementation to use
'';
@@ -43,6 +43,9 @@ in {
The format is described in
systemd.time
7.
+
+ To disable automatic updates, set to "never"
+ and run updatedb manually.
'';
};
@@ -192,6 +195,18 @@ in {
{ LOCATE_PATH = cfg.output;
};
+ environment.etc = {
+ # write /etc/updatedb.conf for manual calls to `updatedb`
+ "updatedb.conf" = {
+ text = ''
+ PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
+ PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
+ PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
+ PRUNE_BIND_MOUNTSFR="${lib.boolToString cfg.pruneBindMounts}"
+ '';
+ };
+ };
+
warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
@@ -238,7 +253,7 @@ in {
serviceConfig.ReadWritePaths = dirOf cfg.output;
};
- systemd.timers.update-locatedb =
+ systemd.timers.update-locatedb = mkIf (cfg.interval != "never")
{ description = "Update timer for locate database";
partOf = [ "update-locatedb.service" ];
wantedBy = [ "timers.target" ];
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index a2ac5c58528a..08bc4398555b 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -67,13 +67,13 @@ in
options.nixpkgs = {
pkgs = mkOption {
- defaultText = literalExample
- ''import "''${nixos}/.." {
- inherit (cfg) config overlays localSystem crossSystem;
- }
- '';
+ defaultText = literalExpression ''
+ import "''${nixos}/.." {
+ inherit (cfg) config overlays localSystem crossSystem;
+ }
+ '';
type = pkgsType;
- example = literalExample "import {}";
+ example = literalExpression "import {}";
description = ''
If set, the pkgs argument to all NixOS modules is the value of
this option, extended with nixpkgs.overlays, if
@@ -109,7 +109,7 @@ in
config = mkOption {
default = {};
- example = literalExample
+ example = literalExpression
''
{ allowBroken = true; allowUnfree = true; }
'';
@@ -125,7 +125,7 @@ in
overlays = mkOption {
default = [];
- example = literalExample
+ example = literalExpression
''
[
(self: super: {
@@ -158,7 +158,7 @@ in
# Make sure that the final value has all fields for sake of other modules
# referring to this. TODO make `lib.systems` itself use the module system.
apply = lib.systems.elaborate;
- defaultText = literalExample
+ defaultText = literalExpression
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
description = ''
Specifies the platform on which NixOS should be built. When
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 23b95ed8d975..49509171c3f6 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -48,6 +48,8 @@
./hardware/corectrl.nix
./hardware/digitalbitbox.nix
./hardware/device-tree.nix
+ ./hardware/gkraken.nix
+ ./hardware/flirc.nix
./hardware/i2c.nix
./hardware/sensor/hddtemp.nix
./hardware/sensor/iio.nix
@@ -135,6 +137,7 @@
./programs/droidcam.nix
./programs/environment.nix
./programs/evince.nix
+ ./programs/extra-container.nix
./programs/feedbackd.nix
./programs/file-roller.nix
./programs/firejail.nix
@@ -153,6 +156,7 @@
./programs/gnupg.nix
./programs/gphoto2.nix
./programs/hamster.nix
+ ./programs/htop.nix
./programs/iftop.nix
./programs/iotop.nix
./programs/java.nix
@@ -202,6 +206,7 @@
./programs/vim.nix
./programs/wavemon.nix
./programs/waybar.nix
+ ./programs/weylus.nix
./programs/wireshark.nix
./programs/wshowkeys.nix
./programs/xfs_quota.nix
@@ -386,6 +391,7 @@
./services/display-managers/greetd.nix
./services/editors/emacs.nix
./services/editors/infinoted.nix
+ ./services/finance/odoo.nix
./services/games/crossfire-server.nix
./services/games/deliantra-server.nix
./services/games/factorio.nix
@@ -409,12 +415,14 @@
./services/hardware/illum.nix
./services/hardware/interception-tools.nix
./services/hardware/irqbalance.nix
+ ./services/hardware/joycond.nix
./services/hardware/lcd.nix
./services/hardware/lirc.nix
./services/hardware/nvidia-optimus.nix
./services/hardware/pcscd.nix
./services/hardware/pommed.nix
./services/hardware/power-profiles-daemon.nix
+ ./services/hardware/rasdaemon.nix
./services/hardware/ratbagd.nix
./services/hardware/sane.nix
./services/hardware/sane_extra_backends/brscan4.nix
@@ -479,6 +487,7 @@
./services/mail/nullmailer.nix
./services/matrix/mjolnir.nix
./services/matrix/pantalaimon.nix
+ ./services/misc/ananicy.nix
./services/misc/airsonic.nix
./services/misc/ankisyncd.nix
./services/misc/apache-kafka.nix
@@ -542,6 +551,7 @@
./services/misc/matrix-appservice-discord.nix
./services/misc/matrix-appservice-irc.nix
./services/misc/matrix-synapse.nix
+ ./services/misc/mautrix-facebook.nix
./services/misc/mautrix-telegram.nix
./services/misc/mbpfan.nix
./services/misc/mediatomb.nix
@@ -561,12 +571,14 @@
./services/misc/octoprint.nix
./services/misc/ombi.nix
./services/misc/osrm.nix
+ ./services/misc/owncast.nix
./services/misc/packagekit.nix
./services/misc/paperless-ng.nix
./services/misc/parsoid.nix
./services/misc/plex.nix
./services/misc/plikd.nix
./services/misc/podgrab.nix
+ ./services/misc/prowlarr.nix
./services/misc/tautulli.nix
./services/misc/pinnwand.nix
./services/misc/pykms.nix
@@ -578,6 +590,7 @@
./services/misc/safeeyes.nix
./services/misc/sdrplay.nix
./services/misc/sickbeard.nix
+ ./services/misc/signald.nix
./services/misc/siproxd.nix
./services/misc/snapper.nix
./services/misc/sonarr.nix
@@ -592,6 +605,7 @@
./services/misc/sysprof.nix
./services/misc/taskserver
./services/misc/tiddlywiki.nix
+ ./services/misc/tp-auto-kbbl.nix
./services/misc/tzupdate.nix
./services/misc/uhub.nix
./services/misc/weechat.nix
@@ -674,6 +688,7 @@
./services/networking/3proxy.nix
./services/networking/adguardhome.nix
./services/networking/amuled.nix
+ ./services/networking/antennas.nix
./services/networking/aria2.nix
./services/networking/asterisk.nix
./services/networking/atftpd.nix
@@ -749,18 +764,19 @@
./services/networking/iscsi/root-initiator.nix
./services/networking/iscsi/target.nix
./services/networking/iwd.nix
+ ./services/networking/jibri/default.nix
./services/networking/jicofo.nix
./services/networking/jitsi-videobridge.nix
./services/networking/kea.nix
./services/networking/keepalived/default.nix
./services/networking/keybase.nix
- ./services/networking/kippo.nix
./services/networking/knot.nix
./services/networking/kresd.nix
./services/networking/lambdabot.nix
./services/networking/libreswan.nix
./services/networking/lldpd.nix
./services/networking/logmein-hamachi.nix
+ ./services/networking/lxd-image-server.nix
./services/networking/mailpile.nix
./services/networking/magic-wormhole-mailbox-server.nix
./services/networking/matterbridge.nix
@@ -774,6 +790,7 @@
./services/networking/mstpd.nix
./services/networking/mtprotoproxy.nix
./services/networking/mullvad-vpn.nix
+ ./services/networking/multipath.nix
./services/networking/murmur.nix
./services/networking/mxisd.nix
./services/networking/namecoind.nix
@@ -830,6 +847,7 @@
./services/networking/rpcbind.nix
./services/networking/rxe.nix
./services/networking/sabnzbd.nix
+ ./services/networking/seafile.nix
./services/networking/searx.nix
./services/networking/skydns.nix
./services/networking/shadowsocks.nix
@@ -878,7 +896,6 @@
./services/video/unifi-video.nix
./services/networking/v2ray.nix
./services/networking/vsftpd.nix
- ./services/networking/wakeonlan.nix
./services/networking/wasabibackend.nix
./services/networking/websockify.nix
./services/networking/wg-quick.nix
@@ -961,8 +978,10 @@
./services/web-apps/atlassian/jira.nix
./services/web-apps/bookstack.nix
./services/web-apps/calibre-web.nix
+ ./services/web-apps/code-server.nix
./services/web-apps/convos.nix
./services/web-apps/cryptpad.nix
+ ./services/web-apps/dex.nix
./services/web-apps/discourse.nix
./services/web-apps/documize.nix
./services/web-apps/dokuwiki.nix
@@ -981,6 +1000,8 @@
./services/web-apps/jirafeau.nix
./services/web-apps/jitsi-meet.nix
./services/web-apps/keycloak.nix
+ ./services/web-apps/lemmy.nix
+ ./services/web-apps/invidious.nix
./services/web-apps/limesurvey.nix
./services/web-apps/mastodon.nix
./services/web-apps/mattermost.nix
@@ -990,11 +1011,14 @@
./services/web-apps/nextcloud.nix
./services/web-apps/nexus.nix
./services/web-apps/node-red.nix
+ ./services/web-apps/pict-rs.nix
+ ./services/web-apps/peertube.nix
./services/web-apps/plantuml-server.nix
./services/web-apps/plausible.nix
./services/web-apps/pgpkeyserver-lite.nix
./services/web-apps/matomo.nix
./services/web-apps/moinmoin.nix
+ ./services/web-apps/openwebrx.nix
./services/web-apps/restya-board.nix
./services/web-apps/sogo.nix
./services/web-apps/rss-bridge.nix
@@ -1032,7 +1056,7 @@
./services/web-servers/shellinabox.nix
./services/web-servers/tomcat.nix
./services/web-servers/traefik.nix
- ./services/web-servers/trafficserver.nix
+ ./services/web-servers/trafficserver/default.nix
./services/web-servers/ttyd.nix
./services/web-servers/uwsgi.nix
./services/web-servers/varnish/default.nix
@@ -1170,6 +1194,7 @@
./virtualisation/virtualbox-guest.nix
./virtualisation/virtualbox-host.nix
./virtualisation/vmware-guest.nix
+ ./virtualisation/waydroid.nix
./virtualisation/xen-dom0.nix
./virtualisation/xe-guest-utilities.nix
]
diff --git a/nixos/modules/programs/atop.nix b/nixos/modules/programs/atop.nix
index b45eb16e3eaf..ad75ab27666c 100644
--- a/nixos/modules/programs/atop.nix
+++ b/nixos/modules/programs/atop.nix
@@ -19,7 +19,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.atop;
- defaultText = "pkgs.atop";
+ defaultText = literalExpression "pkgs.atop";
description = ''
Which package to use for Atop.
'';
@@ -37,7 +37,7 @@ in
package = mkOption {
type = types.package;
default = config.boot.kernelPackages.netatop;
- defaultText = "config.boot.kernelPackages.netatop";
+ defaultText = literalExpression "config.boot.kernelPackages.netatop";
description = ''
Which package to use for netatop.
'';
@@ -141,8 +141,15 @@ in
// mkService cfg.atopgpu.enable "atopgpu" [ atop ];
timers = mkTimer cfg.atopRotateTimer.enable "atop-rotate" [ atop ];
};
- security.wrappers =
- lib.mkIf cfg.setuidWrapper.enable { atop = { source = "${atop}/bin/atop"; }; };
+
+ security.wrappers = lib.mkIf cfg.setuidWrapper.enable {
+ atop =
+ { setuid = true;
+ owner = "root";
+ group = "root";
+ source = "${atop}/bin/atop";
+ };
+ };
}
);
}
diff --git a/nixos/modules/programs/captive-browser.nix b/nixos/modules/programs/captive-browser.nix
index 4e8abdeecf0b..0f5d087e8d87 100644
--- a/nixos/modules/programs/captive-browser.nix
+++ b/nixos/modules/programs/captive-browser.nix
@@ -14,7 +14,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.captive-browser;
- defaultText = "pkgs.captive-browser";
+ defaultText = literalExpression "pkgs.captive-browser";
description = "Which package to use for captive-browser";
};
diff --git a/nixos/modules/programs/ccache.nix b/nixos/modules/programs/ccache.nix
index 35a4373f6128..0f7fd0a3683c 100644
--- a/nixos/modules/programs/ccache.nix
+++ b/nixos/modules/programs/ccache.nix
@@ -28,7 +28,7 @@ in {
# "nix-ccache --show-stats" and "nix-ccache --clear"
security.wrappers.nix-ccache = {
- owner = "nobody";
+ owner = "root";
group = "nixbld";
setuid = false;
setgid = true;
diff --git a/nixos/modules/programs/chromium.nix b/nixos/modules/programs/chromium.nix
index b727f850a949..602253a321d7 100644
--- a/nixos/modules/programs/chromium.nix
+++ b/nixos/modules/programs/chromium.nix
@@ -33,7 +33,7 @@ in
for additional details.
'';
default = [];
- example = literalExample ''
+ example = literalExpression ''
[
"chlffgpmiacpedhhbkiomidkjlcfhogd" # pushbullet
"mbniclmhobmnbdlbpiphghaielnnpgdp" # lightshot
@@ -75,7 +75,7 @@ in
Make sure the selected policy is supported on Linux and your browser version.
'';
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"BrowserSignin" = 0;
"SyncDisabled" = true;
diff --git a/nixos/modules/programs/command-not-found/command-not-found.pl b/nixos/modules/programs/command-not-found/command-not-found.pl
index 6e275bcc8be6..220d057b7f4f 100644
--- a/nixos/modules/programs/command-not-found/command-not-found.pl
+++ b/nixos/modules/programs/command-not-found/command-not-found.pl
@@ -25,14 +25,7 @@ if (!defined $res || scalar @$res == 0) {
print STDERR "$program: command not found\n";
} elsif (scalar @$res == 1) {
my $package = @$res[0]->{package};
- if ($ENV{"NIX_AUTO_INSTALL"} // "") {
- print STDERR <runtime.
@@ -139,10 +151,10 @@ in {
environment.systemPackages = [
cfg.finalPackage
];
- environment.variables = { EDITOR = mkOverride 900 "nvim"; };
+ environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "nvim");
programs.neovim.finalPackage = pkgs.wrapNeovim cfg.package {
- inherit (cfg) viAlias vimAlias;
+ inherit (cfg) viAlias vimAlias withPython3 withNodeJs withRuby;
configure = cfg.configure // {
customRC = (cfg.configure.customRC or "") + ''
diff --git a/nixos/modules/programs/noisetorch.nix b/nixos/modules/programs/noisetorch.nix
index bca68b0064c0..f76555289f1a 100644
--- a/nixos/modules/programs/noisetorch.nix
+++ b/nixos/modules/programs/noisetorch.nix
@@ -10,6 +10,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.noisetorch;
+ defaultText = literalExpression "pkgs.noisetorch";
description = ''
The noisetorch package to use.
'';
diff --git a/nixos/modules/programs/npm.nix b/nixos/modules/programs/npm.nix
index f101a44587a1..d79c6c734000 100644
--- a/nixos/modules/programs/npm.nix
+++ b/nixos/modules/programs/npm.nix
@@ -14,10 +14,11 @@ in
enable = mkEnableOption "npm global config";
package = mkOption {
- type = types.path;
+ type = types.package;
description = "The npm package version / flavor to use";
default = pkgs.nodePackages.npm;
- example = literalExample "pkgs.nodePackages_13_x.npm";
+ defaultText = literalExpression "pkgs.nodePackages.npm";
+ example = literalExpression "pkgs.nodePackages_13_x.npm";
};
npmrc = mkOption {
diff --git a/nixos/modules/programs/plotinus.nix b/nixos/modules/programs/plotinus.nix
index e3549c79588b..2c90a41ba029 100644
--- a/nixos/modules/programs/plotinus.nix
+++ b/nixos/modules/programs/plotinus.nix
@@ -30,7 +30,7 @@ in
###### implementation
config = mkIf cfg.enable {
- environment.variables.XDG_DATA_DIRS = [ "${pkgs.plotinus}/share/gsettings-schemas/${pkgs.plotinus.name}" ];
+ environment.sessionVariables.XDG_DATA_DIRS = [ "${pkgs.plotinus}/share/gsettings-schemas/${pkgs.plotinus.name}" ];
environment.variables.GTK3_MODULES = [ "${pkgs.plotinus}/lib/libplotinus.so" ];
};
}
diff --git a/nixos/modules/programs/proxychains.nix b/nixos/modules/programs/proxychains.nix
index 7743f79c1c0a..3f44e23a93ef 100644
--- a/nixos/modules/programs/proxychains.nix
+++ b/nixos/modules/programs/proxychains.nix
@@ -120,7 +120,7 @@ in {
Proxies to be used by proxychains.
'';
- example = literalExample ''
+ example = literalExpression ''
{ myproxy =
{ type = "socks4";
host = "127.0.0.1";
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index e021f184179d..963cd8853dbb 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -66,7 +66,7 @@ in
This must not be a store path, since the path is
used outside the store (in particular in /etc/passwd).
'';
- example = literalExample "pkgs.zsh";
+ example = literalExpression "pkgs.zsh";
type = types.either types.path types.shellPackage;
};
diff --git a/nixos/modules/programs/spacefm.nix b/nixos/modules/programs/spacefm.nix
index 6d03608402fc..822fca3ecec7 100644
--- a/nixos/modules/programs/spacefm.nix
+++ b/nixos/modules/programs/spacefm.nix
@@ -29,11 +29,13 @@ in
terminal_su = "${pkgs.sudo}/bin/sudo";
graphical_su = "${pkgs.gksu}/bin/gksu";
};
- example = literalExample ''{
- tmp_dir = "/tmp";
- terminal_su = "''${pkgs.sudo}/bin/sudo";
- graphical_su = "''${pkgs.gksu}/bin/gksu";
- }'';
+ defaultText = literalExpression ''
+ {
+ tmp_dir = "/tmp";
+ terminal_su = "''${pkgs.sudo}/bin/sudo";
+ graphical_su = "''${pkgs.gksu}/bin/gksu";
+ }
+ '';
description = ''
The system-wide spacefm configuration.
Parameters to be written to /etc/spacefm/spacefm.conf.
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 795f1a9f7b44..5da15b68cf7d 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -36,6 +36,7 @@ in
askPassword = mkOption {
type = types.str;
default = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
+ defaultText = literalExpression ''"''${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass"'';
description = "Program used by SSH to ask for passwords.";
};
@@ -113,7 +114,7 @@ in
agentPKCS11Whitelist = mkOption {
type = types.nullOr types.str;
default = null;
- example = "\${pkgs.opensc}/lib/opensc-pkcs11.so";
+ example = literalExpression ''"''${pkgs.opensc}/lib/opensc-pkcs11.so"'';
description = ''
A pattern-list of acceptable paths for PKCS#11 shared libraries
that may be used with the -s option to ssh-add.
@@ -123,7 +124,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.openssh;
- defaultText = "pkgs.openssh";
+ defaultText = literalExpression "pkgs.openssh";
description = ''
The package used for the openssh client and daemon.
'';
@@ -180,7 +181,7 @@ in
description = ''
The set of system-wide known SSH hosts.
'';
- example = literalExample ''
+ example = literalExpression ''
{
myhost = {
hostNames = [ "myhost" "myhost.mydomain.com" "10.10.1.4" ];
diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix
index e28a14538ecd..b454bf35229e 100644
--- a/nixos/modules/programs/ssmtp.nix
+++ b/nixos/modules/programs/ssmtp.nix
@@ -54,7 +54,7 @@ in
ssmtp5 configuration. Refer
to for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
Debug = true;
FromLineOverride = false;
diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix
index d5819a08e8f2..caf329c2536a 100644
--- a/nixos/modules/programs/sway.nix
+++ b/nixos/modules/programs/sway.nix
@@ -92,10 +92,10 @@ in {
default = with pkgs; [
swaylock swayidle alacritty dmenu
];
- defaultText = literalExample ''
+ defaultText = literalExpression ''
with pkgs; [ swaylock swayidle alacritty dmenu ];
'';
- example = literalExample ''
+ example = literalExpression ''
with pkgs; [
i3status i3status-rust
termite rofi light
diff --git a/nixos/modules/programs/tsm-client.nix b/nixos/modules/programs/tsm-client.nix
index 7ac4086d5f09..65d4db7834ff 100644
--- a/nixos/modules/programs/tsm-client.nix
+++ b/nixos/modules/programs/tsm-client.nix
@@ -5,7 +5,7 @@ let
inherit (builtins) length map;
inherit (lib.attrsets) attrNames filterAttrs hasAttr mapAttrs mapAttrsToList optionalAttrs;
inherit (lib.modules) mkDefault mkIf;
- inherit (lib.options) literalExample mkEnableOption mkOption;
+ inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.strings) concatStringsSep optionalString toLower;
inherit (lib.types) addCheck attrsOf lines nullOr package path port str strMatching submodule;
@@ -123,7 +123,7 @@ let
};
options.text = mkOption {
type = lines;
- example = literalExample
+ example = literalExpression
''lib.modules.mkAfter "compression no"'';
description = ''
Additional text lines for the server stanza.
@@ -218,8 +218,8 @@ let
package = mkOption {
type = package;
default = pkgs.tsm-client;
- defaultText = "pkgs.tsm-client";
- example = literalExample "pkgs.tsm-client-withGui";
+ defaultText = literalExpression "pkgs.tsm-client";
+ example = literalExpression "pkgs.tsm-client-withGui";
description = ''
The TSM client derivation to be
added to the system environment.
diff --git a/nixos/modules/programs/vim.nix b/nixos/modules/programs/vim.nix
index 9f46dff2a293..1695bc994732 100644
--- a/nixos/modules/programs/vim.nix
+++ b/nixos/modules/programs/vim.nix
@@ -18,8 +18,8 @@ in {
package = mkOption {
type = types.package;
default = pkgs.vim;
- defaultText = "pkgs.vim";
- example = "pkgs.vimHugeX";
+ defaultText = literalExpression "pkgs.vim";
+ example = literalExpression "pkgs.vimHugeX";
description = ''
vim package to use.
'';
diff --git a/nixos/modules/programs/weylus.nix b/nixos/modules/programs/weylus.nix
new file mode 100644
index 000000000000..ea92c77e7c32
--- /dev/null
+++ b/nixos/modules/programs/weylus.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.programs.weylus;
+in
+{
+ options.programs.weylus = with types; {
+ enable = mkEnableOption "weylus";
+
+ openFirewall = mkOption {
+ type = bool;
+ default = false;
+ description = ''
+ Open ports needed for the functionality of the program.
+ '';
+ };
+
+ users = mkOption {
+ type = listOf str;
+ default = [ ];
+ description = ''
+ To enable stylus and multi-touch support, the user you're going to use must be added to this list.
+ These users can synthesize input events system-wide, even when another user is logged in - untrusted users should not be added.
+ '';
+ };
+
+ package = mkOption {
+ type = package;
+ default = pkgs.weylus;
+ defaultText = "pkgs.weylus";
+ description = "Weylus package to install.";
+ };
+ };
+ config = mkIf cfg.enable {
+ networking.firewall = mkIf cfg.openFirewall {
+ allowedTCPPorts = [ 1701 9001 ];
+ };
+
+ hardware.uinput.enable = true;
+
+ users.groups.uinput.members = cfg.users;
+
+ environment.systemPackages = [ cfg.package ];
+ };
+}
diff --git a/nixos/modules/programs/wireshark.nix b/nixos/modules/programs/wireshark.nix
index 819f15b98a05..f7b0727cb2b3 100644
--- a/nixos/modules/programs/wireshark.nix
+++ b/nixos/modules/programs/wireshark.nix
@@ -19,7 +19,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.wireshark-cli;
- defaultText = "pkgs.wireshark-cli";
+ defaultText = literalExpression "pkgs.wireshark-cli";
description = ''
Which Wireshark package to install in the global environment.
'';
diff --git a/nixos/modules/programs/xonsh.nix b/nixos/modules/programs/xonsh.nix
index c06fd1655c20..6e40db51cdb2 100644
--- a/nixos/modules/programs/xonsh.nix
+++ b/nixos/modules/programs/xonsh.nix
@@ -27,7 +27,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.xonsh;
- example = literalExample "pkgs.xonsh.override { configFile = \"/path/to/xonshrc\"; }";
+ defaultText = literalExpression "pkgs.xonsh";
+ example = literalExpression "pkgs.xonsh.override { configFile = \"/path/to/xonshrc\"; }";
description = ''
xonsh package to use.
'';
diff --git a/nixos/modules/programs/xss-lock.nix b/nixos/modules/programs/xss-lock.nix
index ceb7259b3d77..aba76133e5e3 100644
--- a/nixos/modules/programs/xss-lock.nix
+++ b/nixos/modules/programs/xss-lock.nix
@@ -11,7 +11,8 @@ in
lockerCommand = mkOption {
default = "${pkgs.i3lock}/bin/i3lock";
- example = literalExample "\${pkgs.i3lock-fancy}/bin/i3lock-fancy";
+ defaultText = literalExpression ''"''${pkgs.i3lock}/bin/i3lock"'';
+ example = literalExpression ''"''${pkgs.i3lock-fancy}/bin/i3lock-fancy"'';
type = types.separatedString " ";
description = "Locker to be used with xsslock";
};
diff --git a/nixos/modules/programs/xwayland.nix b/nixos/modules/programs/xwayland.nix
index cb3c9c5b156c..3a8080fa4c4d 100644
--- a/nixos/modules/programs/xwayland.nix
+++ b/nixos/modules/programs/xwayland.nix
@@ -16,9 +16,8 @@ in
type = types.str;
default = optionalString config.fonts.fontDir.enable
"/run/current-system/sw/share/X11/fonts";
- defaultText = literalExample ''
- optionalString config.fonts.fontDir.enable
- "/run/current-system/sw/share/X11/fonts";
+ defaultText = literalExpression ''
+ optionalString config.fonts.fontDir.enable "/run/current-system/sw/share/X11/fonts"
'';
description = ''
Default font path. Setting this option causes Xwayland to be rebuilt.
@@ -30,10 +29,10 @@ in
default = pkgs.xwayland.override (oldArgs: {
inherit (cfg) defaultFontPath;
});
- defaultText = literalExample ''
+ defaultText = literalExpression ''
pkgs.xwayland.override (oldArgs: {
inherit (config.programs.xwayland) defaultFontPath;
- });
+ })
'';
description = "The Xwayland package to use.";
};
diff --git a/nixos/modules/programs/yabar.nix b/nixos/modules/programs/yabar.nix
index 5de9331ac520..a8fac41e899c 100644
--- a/nixos/modules/programs/yabar.nix
+++ b/nixos/modules/programs/yabar.nix
@@ -45,7 +45,8 @@ in
package = mkOption {
default = pkgs.yabar-unstable;
- example = literalExample "pkgs.yabar";
+ defaultText = literalExpression "pkgs.yabar-unstable";
+ example = literalExpression "pkgs.yabar";
type = types.package;
# `yabar-stable` segfaults under certain conditions.
diff --git a/nixos/modules/programs/zsh/oh-my-zsh.nix b/nixos/modules/programs/zsh/oh-my-zsh.nix
index f24842a47919..9d7622bd3287 100644
--- a/nixos/modules/programs/zsh/oh-my-zsh.nix
+++ b/nixos/modules/programs/zsh/oh-my-zsh.nix
@@ -48,7 +48,7 @@ in
package = mkOption {
default = pkgs.oh-my-zsh;
- defaultText = "pkgs.oh-my-zsh";
+ defaultText = literalExpression "pkgs.oh-my-zsh";
description = ''
Package to install for `oh-my-zsh` usage.
'';
diff --git a/nixos/modules/programs/zsh/zsh-autoenv.nix b/nixos/modules/programs/zsh/zsh-autoenv.nix
index 630114bcda9f..62f497a45dd0 100644
--- a/nixos/modules/programs/zsh/zsh-autoenv.nix
+++ b/nixos/modules/programs/zsh/zsh-autoenv.nix
@@ -10,7 +10,7 @@ in {
enable = mkEnableOption "zsh-autoenv";
package = mkOption {
default = pkgs.zsh-autoenv;
- defaultText = "pkgs.zsh-autoenv";
+ defaultText = literalExpression "pkgs.zsh-autoenv";
description = ''
Package to install for `zsh-autoenv` usage.
'';
diff --git a/nixos/modules/programs/zsh/zsh-autosuggestions.nix b/nixos/modules/programs/zsh/zsh-autosuggestions.nix
index 037888fdc5a8..a8fcfff95e59 100644
--- a/nixos/modules/programs/zsh/zsh-autosuggestions.nix
+++ b/nixos/modules/programs/zsh/zsh-autosuggestions.nix
@@ -40,7 +40,7 @@ in
type = with types; attrsOf str;
default = {};
description = "Attribute set with additional configuration values";
- example = literalExample ''
+ example = literalExpression ''
{
"ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" = "20";
}
diff --git a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix
index 927a904369d5..1eb53ccae52b 100644
--- a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix
+++ b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix
@@ -42,7 +42,7 @@ in
default = {};
type = types.attrsOf types.str;
- example = literalExample ''
+ example = literalExpression ''
{
"rm -rf *" = "fg=white,bold,bg=red";
}
@@ -59,7 +59,7 @@ in
default = {};
type = types.attrsOf types.str;
- example = literalExample ''
+ example = literalExpression ''
{
"alias" = "fg=magenta,bold";
}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 4db6efb75d82..8e1d6f7bc4a5 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -79,6 +79,9 @@ with lib;
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.
'')
+ (mkRemovedOptionModule ["services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces..wakeOnLan")
+
+ (mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
# Do NOT add any option renames here, see top of the file
];
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index bcbd17d8e10e..cfbc8e91903e 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -192,6 +192,14 @@ let
++ data.extraLegoRenewFlags
);
+ # We need to collect all the ACME webroots to grant them write
+ # access in the systemd service.
+ webroots =
+ lib.remove null
+ (lib.unique
+ (builtins.map
+ (certAttrs: certAttrs.webroot)
+ (lib.attrValues config.security.acme.certs)));
in {
inherit accountHash cert selfsignedDeps;
@@ -288,6 +296,8 @@ let
"acme/.lego/accounts/${accountHash}"
];
+ ReadWritePaths = commonServiceConfig.ReadWritePaths ++ webroots;
+
# Needs to be space separated, but can't use a multiline string because that'll include newlines
BindPaths = [
"${accountDir}:/tmp/accounts"
@@ -486,7 +496,7 @@ let
extraDomainNames = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[
"example.org"
"mydomain.org"
@@ -656,7 +666,7 @@ in {
to those units if they rely on the certificates being present,
or trigger restarts of the service if certificates get renewed.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"example.com" = {
webroot = "/var/lib/acme/acme-challenge/";
diff --git a/nixos/modules/security/ca.nix b/nixos/modules/security/ca.nix
index 7df86e71423f..f71d9d90ec5b 100644
--- a/nixos/modules/security/ca.nix
+++ b/nixos/modules/security/ca.nix
@@ -8,12 +8,10 @@ let
cacertPackage = pkgs.cacert.override {
blacklist = cfg.caCertificateBlacklist;
+ extraCertificateFiles = cfg.certificateFiles;
+ extraCertificateStrings = cfg.certificates;
};
-
- caCertificates = pkgs.runCommand "ca-certificates.crt" {
- files = cfg.certificateFiles ++ [ (builtins.toFile "extra.crt" (concatStringsSep "\n" cfg.certificates)) ];
- preferLocalBuild = true;
- } "awk 1 $files > $out"; # awk ensures a newline between each pair of consecutive files
+ caBundle = "${cacertPackage}/etc/ssl/certs/ca-bundle.crt";
in
@@ -24,7 +22,7 @@ in
security.pki.certificateFiles = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "[ \"\${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt\" ]";
+ example = literalExpression ''[ "''${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" ]'';
description = ''
A list of files containing trusted root certificates in PEM
format. These are concatenated to form
@@ -37,7 +35,7 @@ in
security.pki.certificates = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ '''
NixOS.org
=========
@@ -74,16 +72,17 @@ in
config = {
- security.pki.certificateFiles = [ "${cacertPackage}/etc/ssl/certs/ca-bundle.crt" ];
-
# NixOS canonical location + Debian/Ubuntu/Arch/Gentoo compatibility.
- environment.etc."ssl/certs/ca-certificates.crt".source = caCertificates;
+ environment.etc."ssl/certs/ca-certificates.crt".source = caBundle;
# Old NixOS compatibility.
- environment.etc."ssl/certs/ca-bundle.crt".source = caCertificates;
+ environment.etc."ssl/certs/ca-bundle.crt".source = caBundle;
# CentOS/Fedora compatibility.
- environment.etc."pki/tls/certs/ca-bundle.crt".source = caCertificates;
+ environment.etc."pki/tls/certs/ca-bundle.crt".source = caBundle;
+
+ # P11-Kit trust source.
+ environment.etc."ssl/trust-source".source = "${cacertPackage.p11kit}/etc/ssl/trust-source";
};
diff --git a/nixos/modules/security/dhparams.nix b/nixos/modules/security/dhparams.nix
index 62a499ea624d..012be2887d89 100644
--- a/nixos/modules/security/dhparams.nix
+++ b/nixos/modules/security/dhparams.nix
@@ -53,7 +53,7 @@ in {
coerce = bits: { inherit bits; };
in attrsOf (coercedTo int coerce (submodule paramsSubmodule));
default = {};
- example = lib.literalExample "{ nginx.bits = 3072; }";
+ example = lib.literalExpression "{ nginx.bits = 3072; }";
description = ''
Diffie-Hellman parameters to generate.
diff --git a/nixos/modules/security/doas.nix b/nixos/modules/security/doas.nix
index 35f618b03e8e..2a814f17e454 100644
--- a/nixos/modules/security/doas.nix
+++ b/nixos/modules/security/doas.nix
@@ -15,7 +15,7 @@ let
(optionalString rule.noLog "nolog")
(optionalString rule.persist "persist")
(optionalString rule.keepEnv "keepenv")
- "setenv { SSH_AUTH_SOCK ${concatStringsSep " " rule.setEnv} }"
+ "setenv { SSH_AUTH_SOCK TERMINFO TERMINFO_DIRS ${concatStringsSep " " rule.setEnv} }"
];
mkArgs = rule:
@@ -77,7 +77,7 @@ in
You can use mkBefore and/or mkAfter to ensure
this is the case when configuration options are merged.
'';
- example = literalExample ''
+ example = literalExpression ''
[
# Allow execution of any command by any user in group doas, requiring
# a password and keeping any previously-defined environment variables.
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 8b1f653d4e2c..7c8db9db0031 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -428,7 +428,7 @@ let
${optionalString config.security.pam.enableEcryptfs
"auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
${optionalString cfg.pamMount
- "auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
+ "auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so disable_interactive"}
${optionalString cfg.enableKwallet
("auth optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so" +
" kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5")}
@@ -483,13 +483,13 @@ let
if config.boot.isContainer then "optional" else "required"
} pam_loginuid.so"}
${optionalString cfg.makeHomeDir
- "session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=${config.security.pam.makeHomeDir.skelDirectory} umask=0022"}
+ "session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=${config.security.pam.makeHomeDir.skelDirectory} umask=0077"}
${optionalString cfg.updateWtmp
"session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
${optionalString config.security.pam.enableEcryptfs
"session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
${optionalString cfg.pamMount
- "session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
+ "session optional ${pkgs.pam_mount}/lib/security/pam_mount.so disable_interactive"}
${optionalString use_ldap
"session optional ${pam_ldap}/lib/security/pam_ldap.so"}
${optionalString config.services.sssd.enable
@@ -586,7 +586,7 @@ in
};
security.pam.services = mkOption {
- default = [];
+ default = {};
type = with types; attrsOf (submodule pamOpts);
description =
''
diff --git a/nixos/modules/security/pam_mount.nix b/nixos/modules/security/pam_mount.nix
index e25ace38f57f..462b7f89e2f4 100644
--- a/nixos/modules/security/pam_mount.nix
+++ b/nixos/modules/security/pam_mount.nix
@@ -33,7 +33,7 @@ in
additionalSearchPaths = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.bindfs ]";
+ example = literalExpression "[ pkgs.bindfs ]";
description = ''
Additional programs to include in the search path of pam_mount.
Useful for example if you want to use some FUSE filesystems like bindfs.
@@ -43,7 +43,7 @@ in
fuseMountOptions = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ "nodev" "nosuid" "force-user=%(USER)" "gid=%(USERGID)" "perms=0700" "chmod-deny" "chown-deny" "chgrp-deny" ]
'';
description = ''
diff --git a/nixos/modules/security/sudo.nix b/nixos/modules/security/sudo.nix
index 2e73f8f4f311..99e578f8adae 100644
--- a/nixos/modules/security/sudo.nix
+++ b/nixos/modules/security/sudo.nix
@@ -45,7 +45,7 @@ in
security.sudo.package = mkOption {
type = types.package;
default = pkgs.sudo;
- defaultText = "pkgs.sudo";
+ defaultText = literalExpression "pkgs.sudo";
description = ''
Which package to use for `sudo`.
'';
@@ -91,7 +91,7 @@ in
this is the case when configuration options are merged.
'';
default = [];
- example = literalExample ''
+ example = literalExpression ''
[
# Allow execution of any command by all users in group sudo,
# requiring a password.
diff --git a/nixos/modules/security/systemd-confinement.nix b/nixos/modules/security/systemd-confinement.nix
index 0a09a755e93c..d859c45c74f7 100644
--- a/nixos/modules/security/systemd-confinement.nix
+++ b/nixos/modules/security/systemd-confinement.nix
@@ -62,8 +62,8 @@ in {
options.confinement.binSh = lib.mkOption {
type = types.nullOr types.path;
default = toplevelConfig.environment.binsh;
- defaultText = "config.environment.binsh";
- example = lib.literalExample "\${pkgs.dash}/bin/dash";
+ defaultText = lib.literalExpression "config.environment.binsh";
+ example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
description = ''
The program to make available as /bin/sh inside
the chroot. If this is set to null, no
diff --git a/nixos/modules/security/tpm2.nix b/nixos/modules/security/tpm2.nix
index d37425166f88..be85fd246e3c 100644
--- a/nixos/modules/security/tpm2.nix
+++ b/nixos/modules/security/tpm2.nix
@@ -26,8 +26,7 @@ in {
'';
type = lib.types.nullOr lib.types.str;
default = if cfg.abrmd.enable then "tss" else "root";
- defaultText = ''"tss" when using the userspace resource manager,'' +
- ''"root" otherwise'';
+ defaultText = lib.literalExpression ''if config.security.tpm2.abrmd.enable then "tss" else "root"'';
};
tssGroup = lib.mkOption {
@@ -57,7 +56,7 @@ in {
description = "tpm2-abrmd package to use";
type = lib.types.package;
default = pkgs.tpm2-abrmd;
- defaultText = "pkgs.tpm2-abrmd";
+ defaultText = lib.literalExpression "pkgs.tpm2-abrmd";
};
};
@@ -71,7 +70,7 @@ in {
description = "tpm2-pkcs11 package to use";
type = lib.types.package;
default = pkgs.tpm2-pkcs11;
- defaultText = "pkgs.tpm2-pkcs11";
+ defaultText = lib.literalExpression "pkgs.tpm2-pkcs11";
};
};
diff --git a/nixos/modules/security/wrappers/default.nix b/nixos/modules/security/wrappers/default.nix
index 2697ab0bde8f..a47de7e04f7a 100644
--- a/nixos/modules/security/wrappers/default.nix
+++ b/nixos/modules/security/wrappers/default.nix
@@ -152,7 +152,7 @@ in
security.wrappers = lib.mkOption {
type = lib.types.attrsOf wrapperType;
default = {};
- example = lib.literalExample
+ example = lib.literalExpression
''
{
# a setuid root program
diff --git a/nixos/modules/services/admin/meshcentral.nix b/nixos/modules/services/admin/meshcentral.nix
index ae7b6edda7d5..92762d2037c3 100644
--- a/nixos/modules/services/admin/meshcentral.nix
+++ b/nixos/modules/services/admin/meshcentral.nix
@@ -10,7 +10,7 @@ in with lib; {
description = "MeshCentral package to use. Replacing this may be necessary to add dependencies for extra functionality.";
type = types.package;
default = pkgs.meshcentral;
- defaultText = "pkgs.meshcentral";
+ defaultText = literalExpression "pkgs.meshcentral";
};
settings = mkOption {
description = ''
diff --git a/nixos/modules/services/admin/oxidized.nix b/nixos/modules/services/admin/oxidized.nix
index 94b44630ba6c..49ea3ced76a4 100644
--- a/nixos/modules/services/admin/oxidized.nix
+++ b/nixos/modules/services/admin/oxidized.nix
@@ -33,7 +33,7 @@ in
configFile = mkOption {
type = types.path;
- example = literalExample ''
+ example = literalExpression ''
pkgs.writeText "oxidized-config.yml" '''
---
debug: true
@@ -69,7 +69,7 @@ in
routerDB = mkOption {
type = types.path;
- example = literalExample ''
+ example = literalExpression ''
pkgs.writeText "oxidized-router.db" '''
hostname-sw1:powerconnect:username1:password2
hostname-sw2:procurve:username2:password2
diff --git a/nixos/modules/services/amqp/activemq/default.nix b/nixos/modules/services/amqp/activemq/default.nix
index 178b2f6e144b..47669b05aa91 100644
--- a/nixos/modules/services/amqp/activemq/default.nix
+++ b/nixos/modules/services/amqp/activemq/default.nix
@@ -33,6 +33,7 @@ in {
};
configurationDir = mkOption {
default = "${activemq}/conf";
+ defaultText = literalExpression ''"''${pkgs.activemq}/conf"'';
type = types.str;
description = ''
The base directory for ActiveMQ's configuration.
@@ -64,7 +65,7 @@ in {
javaProperties = mkOption {
type = types.attrs;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"java.net.preferIPv4Stack" = "true";
}
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index dabd80312d9d..3255942fe438 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -29,7 +29,7 @@ in
package = mkOption {
default = pkgs.rabbitmq-server;
type = types.package;
- defaultText = "pkgs.rabbitmq-server";
+ defaultText = literalExpression "pkgs.rabbitmq-server";
description = ''
Which rabbitmq package to use.
'';
@@ -82,7 +82,7 @@ in
configItems = mkOption {
default = { };
type = types.attrsOf types.str;
- example = literalExample ''
+ example = literalExpression ''
{
"auth_backends.1.authn" = "rabbit_auth_backend_ldap";
"auth_backends.1.authz" = "rabbit_auth_backend_internal";
diff --git a/nixos/modules/services/audio/botamusique.nix b/nixos/modules/services/audio/botamusique.nix
index 14614d2dd161..f4fa0ead4f05 100644
--- a/nixos/modules/services/audio/botamusique.nix
+++ b/nixos/modules/services/audio/botamusique.nix
@@ -17,6 +17,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.botamusique;
+ defaultText = literalExpression "pkgs.botamusique";
description = "The botamusique package to use.";
};
diff --git a/nixos/modules/services/audio/hqplayerd.nix b/nixos/modules/services/audio/hqplayerd.nix
index d549ac77e0e5..416d12ce2172 100644
--- a/nixos/modules/services/audio/hqplayerd.nix
+++ b/nixos/modules/services/audio/hqplayerd.nix
@@ -63,7 +63,7 @@ in
description = ''
HQplayer daemon configuration, written to /etc/hqplayer/hqplayerd.xml.
- Refer to ${pkg}/share/doc/hqplayerd/readme.txt for possible values.
+ Refer to share/doc/hqplayerd/readme.txt in the hqplayerd derivation for possible values.
'';
};
};
diff --git a/nixos/modules/services/audio/jack.nix b/nixos/modules/services/audio/jack.nix
index d0a95b87ee1b..84fc9957b879 100644
--- a/nixos/modules/services/audio/jack.nix
+++ b/nixos/modules/services/audio/jack.nix
@@ -25,8 +25,8 @@ in {
internal = true;
type = types.package;
default = pkgs.jack2;
- defaultText = "pkgs.jack2";
- example = literalExample "pkgs.jack1";
+ defaultText = literalExpression "pkgs.jack2";
+ example = literalExpression "pkgs.jack1";
description = ''
The JACK package to use.
'';
@@ -37,7 +37,7 @@ in {
default = [
"-dalsa"
];
- example = literalExample ''
+ example = literalExpression ''
[ "-dalsa" "--device" "hw:1" ];
'';
description = ''
diff --git a/nixos/modules/services/audio/liquidsoap.nix b/nixos/modules/services/audio/liquidsoap.nix
index 3a047d10a631..ffeefc0f988e 100644
--- a/nixos/modules/services/audio/liquidsoap.nix
+++ b/nixos/modules/services/audio/liquidsoap.nix
@@ -39,9 +39,9 @@ in
default = {};
example = {
- myStream1 = literalExample "\"/etc/liquidsoap/myStream1.liq\"";
- myStream2 = literalExample "./myStream2.liq";
- myStream3 = literalExample "\"out(playlist(\\\"/srv/music/\\\"))\"";
+ myStream1 = "/etc/liquidsoap/myStream1.liq";
+ myStream2 = literalExpression "./myStream2.liq";
+ myStream3 = "out(playlist(\"/srv/music/\"))";
};
type = types.attrsOf (types.either types.path types.str);
diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix
index 6fd7eae5b892..9937feadaeb6 100644
--- a/nixos/modules/services/audio/mopidy.nix
+++ b/nixos/modules/services/audio/mopidy.nix
@@ -39,7 +39,7 @@ in {
extensionPackages = mkOption {
default = [];
type = types.listOf types.package;
- example = literalExample "[ pkgs.mopidy-spotify ]";
+ example = literalExpression "[ pkgs.mopidy-spotify ]";
description = ''
Mopidy extensions that should be loaded by the service.
'';
diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix
index e33e860d883d..560264e249d0 100644
--- a/nixos/modules/services/audio/mpd.nix
+++ b/nixos/modules/services/audio/mpd.nix
@@ -74,7 +74,7 @@ in {
musicDirectory = mkOption {
type = with types; either path (strMatching "(http|https|nfs|smb)://.+");
default = "${cfg.dataDir}/music";
- defaultText = "\${dataDir}/music";
+ defaultText = literalExpression ''"''${dataDir}/music"'';
description = ''
The directory or NFS/SMB network share where MPD reads music from. If left
as the default value this directory will automatically be created before
@@ -86,7 +86,7 @@ in {
playlistDirectory = mkOption {
type = types.path;
default = "${cfg.dataDir}/playlists";
- defaultText = "\${dataDir}/playlists";
+ defaultText = literalExpression ''"''${dataDir}/playlists"'';
description = ''
The directory where MPD stores playlists. If left as the default value
this directory will automatically be created before the MPD server starts,
@@ -155,7 +155,7 @@ in {
dbFile = mkOption {
type = types.nullOr types.str;
default = "${cfg.dataDir}/tag_cache";
- defaultText = "\${dataDir}/tag_cache";
+ defaultText = literalExpression ''"''${dataDir}/tag_cache"'';
description = ''
The path to MPD's database. If set to null the
parameter is omitted from the configuration.
diff --git a/nixos/modules/services/audio/roon-server.nix b/nixos/modules/services/audio/roon-server.nix
index 42da5a100170..566c7cae42ce 100644
--- a/nixos/modules/services/audio/roon-server.nix
+++ b/nixos/modules/services/audio/roon-server.nix
@@ -42,7 +42,7 @@ in {
environment.ROON_DATAROOT = "/var/lib/${name}";
serviceConfig = {
- ExecStart = "${pkgs.roon-server}/start.sh";
+ ExecStart = "${pkgs.roon-server}/bin/RoonServer";
LimitNOFILE = 8192;
User = cfg.user;
Group = cfg.group;
diff --git a/nixos/modules/services/audio/slimserver.nix b/nixos/modules/services/audio/slimserver.nix
index 21632919699c..ecd265284990 100644
--- a/nixos/modules/services/audio/slimserver.nix
+++ b/nixos/modules/services/audio/slimserver.nix
@@ -22,7 +22,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.slimserver;
- defaultText = "pkgs.slimserver";
+ defaultText = literalExpression "pkgs.slimserver";
description = "Slimserver package to use.";
};
diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix
index f96b5f3e1942..d3e97719f357 100644
--- a/nixos/modules/services/audio/snapserver.nix
+++ b/nixos/modules/services/audio/snapserver.nix
@@ -206,7 +206,7 @@ in {
For type meta, a list of stream names in the form /one/two/.... Don't forget the leading slash.
For type alsa, use an empty string.
'';
- example = literalExample ''
+ example = literalExpression ''
"/path/to/pipe"
"/path/to/librespot"
"192.168.1.2:4444"
@@ -226,7 +226,7 @@ in {
description = ''
Key-value pairs that convey additional parameters about a stream.
'';
- example = literalExample ''
+ example = literalExpression ''
# for type == "pipe":
{
mode = "create";
@@ -254,7 +254,7 @@ in {
description = ''
The definition for an input source.
'';
- example = literalExample ''
+ example = literalExpression ''
{
mpd = {
type = "pipe";
diff --git a/nixos/modules/services/audio/ympd.nix b/nixos/modules/services/audio/ympd.nix
index 551bd941fe68..36c5527027ff 100644
--- a/nixos/modules/services/audio/ympd.nix
+++ b/nixos/modules/services/audio/ympd.nix
@@ -26,7 +26,6 @@ in {
type = types.str;
default = "localhost";
description = "The host where MPD is listening.";
- example = "localhost";
};
port = mkOption {
diff --git a/nixos/modules/services/backup/automysqlbackup.nix b/nixos/modules/services/backup/automysqlbackup.nix
index 4fcaf9eb9301..fd2764a40ad2 100644
--- a/nixos/modules/services/backup/automysqlbackup.nix
+++ b/nixos/modules/services/backup/automysqlbackup.nix
@@ -2,7 +2,7 @@
let
- inherit (lib) concatMapStringsSep concatStringsSep isInt isList literalExample;
+ inherit (lib) concatMapStringsSep concatStringsSep isInt isList literalExpression;
inherit (lib) mapAttrs mapAttrsToList mkDefault mkEnableOption mkIf mkOption optional types;
cfg = config.services.automysqlbackup;
@@ -48,7 +48,7 @@ in
''${pkgs.automysqlbackup}/etc/automysqlbackup.conf
for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
db_names = [ "nextcloud" "matomo" ];
table_exclude = [ "nextcloud.oc_users" "nextcloud.oc_whats_new" ];
diff --git a/nixos/modules/services/backup/borgbackup.nix b/nixos/modules/services/backup/borgbackup.nix
index c4174286fc0b..220c571b927e 100644
--- a/nixos/modules/services/backup/borgbackup.nix
+++ b/nixos/modules/services/backup/borgbackup.nix
@@ -42,12 +42,16 @@ let
${cfg.postInit}
fi
'' + ''
- borg create $extraArgs \
- --compression ${cfg.compression} \
- --exclude-from ${mkExcludeFile cfg} \
- $extraCreateArgs \
- "::$archiveName$archiveSuffix" \
- ${escapeShellArgs cfg.paths}
+ (
+ set -o pipefail
+ ${optionalString (cfg.dumpCommand != null) ''${escapeShellArg cfg.dumpCommand} | \''}
+ borg create $extraArgs \
+ --compression ${cfg.compression} \
+ --exclude-from ${mkExcludeFile cfg} \
+ $extraCreateArgs \
+ "::$archiveName$archiveSuffix" \
+ ${if cfg.paths == null then "-" else escapeShellArgs cfg.paths}
+ )
'' + optionalString cfg.appendFailedSuffix ''
borg rename $extraArgs \
"::$archiveName$archiveSuffix" "$archiveName"
@@ -182,6 +186,14 @@ let
+ " without at least one public key";
};
+ mkSourceAssertions = name: cfg: {
+ assertion = count isNull [ cfg.dumpCommand cfg.paths ] == 1;
+ message = ''
+ Exactly one of borgbackup.jobs.${name}.paths or borgbackup.jobs.${name}.dumpCommand
+ must be set.
+ '';
+ };
+
mkRemovableDeviceAssertions = name: cfg: {
assertion = !(isLocalPath cfg.repo) -> !cfg.removableDevice;
message = ''
@@ -203,7 +215,7 @@ in {
See also the chapter about BorgBackup in the NixOS manual.
'';
default = { };
- example = literalExample ''
+ example = literalExpression ''
{ # for a local backup
rootBackup = {
paths = "/";
@@ -240,11 +252,25 @@ in {
options = {
paths = mkOption {
- type = with types; coercedTo str lib.singleton (listOf str);
- description = "Path(s) to back up.";
+ type = with types; nullOr (coercedTo str lib.singleton (listOf str));
+ default = null;
+ description = ''
+ Path(s) to back up.
+ Mutually exclusive with .
+ '';
example = "/home/user";
};
+ dumpCommand = mkOption {
+ type = with types; nullOr path;
+ default = null;
+ description = ''
+ Backup the stdout of this program instead of filesystem paths.
+ Mutually exclusive with .
+ '';
+ example = "/path/to/createZFSsend.sh";
+ };
+
repo = mkOption {
type = types.str;
description = "Remote or local repository to back up to.";
@@ -260,7 +286,7 @@ in {
archiveBaseName = mkOption {
type = types.strMatching "[^/{}]+";
default = "${globalConfig.networking.hostName}-${name}";
- defaultText = "\${config.networking.hostName}-";
+ defaultText = literalExpression ''"''${config.networking.hostName}-"'';
description = ''
How to name the created archives. A timestamp, whose format is
determined by , will be appended. The full
@@ -326,10 +352,7 @@ in {
you to specify a
or a .
'';
- example = ''
- encryption.mode = "repokey-blake2" ;
- encryption.passphrase = "mySecretPassphrase" ;
- '';
+ example = "repokey-blake2";
};
encryption.passCommand = mkOption {
@@ -437,7 +460,7 @@ in {
for the available options.
'';
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
within = "1d"; # Keep all archives from the last day
daily = 7;
@@ -455,7 +478,7 @@ in {
Use "" to consider all archives.
'';
default = config.archiveBaseName;
- defaultText = "\${archiveBaseName}";
+ defaultText = literalExpression "archiveBaseName";
};
environment = mkOption {
@@ -660,6 +683,7 @@ in {
assertions =
mapAttrsToList mkPassAssertion jobs
++ mapAttrsToList mkKeysAssertion repos
+ ++ mapAttrsToList mkSourceAssertions jobs
++ mapAttrsToList mkRemovableDeviceAssertions jobs;
system.activationScripts = mapAttrs' mkActivationScript jobs;
diff --git a/nixos/modules/services/backup/btrbk.nix b/nixos/modules/services/backup/btrbk.nix
index a8ff71f609a5..0c00b9344050 100644
--- a/nixos/modules/services/backup/btrbk.nix
+++ b/nixos/modules/services/backup/btrbk.nix
@@ -57,7 +57,7 @@ in
description = "Extra packages for btrbk, like compression utilities for stream_compress";
type = lib.types.listOf lib.types.package;
default = [ ];
- example = lib.literalExample "[ pkgs.xz ]";
+ example = lib.literalExpression "[ pkgs.xz ]";
};
niceness = lib.mkOption {
description = "Niceness for local instances of btrbk. Also applies to remote ones connecting via ssh when positive.";
diff --git a/nixos/modules/services/backup/postgresql-backup.nix b/nixos/modules/services/backup/postgresql-backup.nix
index bcc135005e16..562458eb4571 100644
--- a/nixos/modules/services/backup/postgresql-backup.nix
+++ b/nixos/modules/services/backup/postgresql-backup.nix
@@ -85,7 +85,7 @@ in {
backupAll = mkOption {
default = cfg.databases == [];
- defaultText = "services.postgresqlBackup.databases == []";
+ defaultText = literalExpression "services.postgresqlBackup.databases == []";
type = lib.types.bool;
description = ''
Backup all databases using pg_dumpall.
diff --git a/nixos/modules/services/backup/postgresql-wal-receiver.nix b/nixos/modules/services/backup/postgresql-wal-receiver.nix
index 3d9869d53431..32643adfdaea 100644
--- a/nixos/modules/services/backup/postgresql-wal-receiver.nix
+++ b/nixos/modules/services/backup/postgresql-wal-receiver.nix
@@ -7,7 +7,7 @@ let
options = {
postgresqlPackage = mkOption {
type = types.package;
- example = literalExample "pkgs.postgresql_11";
+ example = literalExpression "pkgs.postgresql_11";
description = ''
PostgreSQL package to use.
'';
@@ -15,7 +15,7 @@ let
directory = mkOption {
type = types.path;
- example = literalExample "/mnt/pg_wal/main/";
+ example = literalExpression "/mnt/pg_wal/main/";
description = ''
Directory to write the output to.
'';
@@ -88,7 +88,7 @@ let
extraArgs = mkOption {
type = with types; listOf str;
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
[
"--no-sync"
]
@@ -101,7 +101,7 @@ let
environment = mkOption {
type = with types; attrsOf str;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
PGPASSFILE = "/private/passfile";
PGSSLMODE = "require";
@@ -121,7 +121,7 @@ in {
receivers = mkOption {
type = with types; attrsOf (submodule receiverSubmodule);
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
main = {
postgresqlPackage = pkgs.postgresql_11;
diff --git a/nixos/modules/services/backup/restic-rest-server.nix b/nixos/modules/services/backup/restic-rest-server.nix
index d1b775f150dc..86744637f85d 100644
--- a/nixos/modules/services/backup/restic-rest-server.nix
+++ b/nixos/modules/services/backup/restic-rest-server.nix
@@ -59,7 +59,7 @@ in
package = mkOption {
default = pkgs.restic-rest-server;
- defaultText = "pkgs.restic-rest-server";
+ defaultText = literalExpression "pkgs.restic-rest-server";
type = types.package;
description = "Restic REST server package to use.";
};
diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix
index ac57f271526f..67fef55614b3 100644
--- a/nixos/modules/services/backup/restic.nix
+++ b/nixos/modules/services/backup/restic.nix
@@ -11,7 +11,7 @@ in
description = ''
Periodic backups to create with Restic.
'';
- type = types.attrsOf (types.submodule ({ name, ... }: {
+ type = types.attrsOf (types.submodule ({ config, name, ... }: {
options = {
passwordFile = mkOption {
type = types.str;
@@ -21,6 +21,17 @@ in
example = "/etc/nixos/restic-password";
};
+ environmentFile = mkOption {
+ type = with types; nullOr str;
+ # added on 2021-08-28, s3CredentialsFile should
+ # be removed in the future (+ remember the warning)
+ default = config.s3CredentialsFile;
+ description = ''
+ file containing the credentials to access the repository, in the
+ format of an EnvironmentFile as described by systemd.exec(5)
+ '';
+ };
+
s3CredentialsFile = mkOption {
type = with types; nullOr str;
default = null;
@@ -212,6 +223,7 @@ in
};
config = {
+ warnings = mapAttrsToList (n: v: "services.restic.backups.${n}.s3CredentialsFile is deprecated, please use services.restic.backups.${n}.environmentFile instead.") (filterAttrs (n: v: v.s3CredentialsFile != null) config.services.restic.backups);
systemd.services =
mapAttrs' (name: backup:
let
@@ -251,8 +263,8 @@ in
RuntimeDirectory = "restic-backups-${name}";
CacheDirectory = "restic-backups-${name}";
CacheDirectoryMode = "0700";
- } // optionalAttrs (backup.s3CredentialsFile != null) {
- EnvironmentFile = backup.s3CredentialsFile;
+ } // optionalAttrs (backup.environmentFile != null) {
+ EnvironmentFile = backup.environmentFile;
};
} // optionalAttrs (backup.initialize || backup.dynamicFilesFrom != null) {
preStart = ''
diff --git a/nixos/modules/services/backup/syncoid.nix b/nixos/modules/services/backup/syncoid.nix
index 3ad8d279a36d..4df10f5ee02b 100644
--- a/nixos/modules/services/backup/syncoid.nix
+++ b/nixos/modules/services/backup/syncoid.nix
@@ -16,16 +16,67 @@ let
lib.concatMapStrings (s: if lib.isList s then "-" else s)
(builtins.split "[^a-zA-Z0-9_.\\-]+" name);
- # Function to build "zfs allow" and "zfs unallow" commands for the
- # filesystems we've delegated permissions to.
- buildAllowCommand = zfsAction: permissions: dataset: lib.escapeShellArgs [
- # Here we explicitly use the booted system to guarantee the stable API needed by ZFS
- "-+/run/booted-system/sw/bin/zfs"
- zfsAction
- cfg.user
- (concatStringsSep "," permissions)
- dataset
- ];
+ # Function to build "zfs allow" commands for the filesystems we've
+ # delegated permissions to. It also checks if the target dataset
+ # exists before delegating permissions, if it doesn't exist we
+ # delegate it to the parent dataset. This should solve the case of
+ # provisoning new datasets.
+ buildAllowCommand = permissions: dataset: (
+ "-+${pkgs.writeShellScript "zfs-allow-${dataset}" ''
+ # Here we explicitly use the booted system to guarantee the stable API needed by ZFS
+
+ # Run a ZFS list on the dataset to check if it exists
+ if ${lib.escapeShellArgs [
+ "/run/booted-system/sw/bin/zfs"
+ "list"
+ dataset
+ ]} 2> /dev/null; then
+ ${lib.escapeShellArgs [
+ "/run/booted-system/sw/bin/zfs"
+ "allow"
+ cfg.user
+ (concatStringsSep "," permissions)
+ dataset
+ ]}
+ else
+ ${lib.escapeShellArgs [
+ "/run/booted-system/sw/bin/zfs"
+ "allow"
+ cfg.user
+ (concatStringsSep "," permissions)
+ # Remove the last part of the path
+ (builtins.dirOf dataset)
+ ]}
+ fi
+ ''}"
+ );
+
+ # Function to build "zfs unallow" commands for the filesystems we've
+ # delegated permissions to. Here we unallow both the target but also
+ # on the parent dataset because at this stage we have no way of
+ # knowing if the allow command did execute on the parent dataset or
+ # not in the pre-hook. We can't run the same if in the post hook
+ # since the dataset should have been created at this point.
+ buildUnallowCommand = permissions: dataset: (
+ "-+${pkgs.writeShellScript "zfs-unallow-${dataset}" ''
+ # Here we explicitly use the booted system to guarantee the stable API needed by ZFS
+ ${lib.escapeShellArgs [
+ "/run/booted-system/sw/bin/zfs"
+ "unallow"
+ cfg.user
+ (concatStringsSep "," permissions)
+ dataset
+ ]}
+ ${lib.escapeShellArgs [
+ "/run/booted-system/sw/bin/zfs"
+ "unallow"
+ cfg.user
+ (concatStringsSep "," permissions)
+ # Remove the last part of the path
+ (builtins.dirOf dataset)
+ ]}
+ ''}"
+ );
in
{
@@ -235,7 +286,7 @@ in
};
}));
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"pool/test".target = "root@target:pool/test";
}
@@ -274,11 +325,11 @@ in
path = [ "/run/booted-system/sw/bin/" ];
serviceConfig = {
ExecStartPre =
- (map (buildAllowCommand "allow" c.localSourceAllow) (localDatasetName c.source)) ++
- (map (buildAllowCommand "allow" c.localTargetAllow) (localDatasetName c.target));
+ (map (buildAllowCommand c.localSourceAllow) (localDatasetName c.source)) ++
+ (map (buildAllowCommand c.localTargetAllow) (localDatasetName c.target));
ExecStopPost =
- (map (buildAllowCommand "unallow" c.localSourceAllow) (localDatasetName c.source)) ++
- (map (buildAllowCommand "unallow" c.localTargetAllow) (localDatasetName c.target));
+ (map (buildUnallowCommand c.localSourceAllow) (localDatasetName c.source)) ++
+ (map (buildUnallowCommand c.localTargetAllow) (localDatasetName c.target));
ExecStart = lib.escapeShellArgs ([ "${pkgs.sanoid}/bin/syncoid" ]
++ optionals c.useCommonArgs cfg.commonArgs
++ optional c.recursive "-r"
diff --git a/nixos/modules/services/backup/tarsnap.nix b/nixos/modules/services/backup/tarsnap.nix
index 8187042b4b80..9cce86836612 100644
--- a/nixos/modules/services/backup/tarsnap.nix
+++ b/nixos/modules/services/backup/tarsnap.nix
@@ -214,7 +214,7 @@ in
maxbwRateUp = mkOption {
type = types.nullOr types.int;
default = null;
- example = literalExample "25 * 1000";
+ example = literalExpression "25 * 1000";
description = ''
Upload bandwidth rate limit in bytes.
'';
@@ -223,7 +223,7 @@ in
maxbwRateDown = mkOption {
type = types.nullOr types.int;
default = null;
- example = literalExample "50 * 1000";
+ example = literalExpression "50 * 1000";
description = ''
Download bandwidth rate limit in bytes.
'';
@@ -256,7 +256,7 @@ in
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
nixos =
{ directories = [ "/home" "/root/ssl" ];
@@ -310,7 +310,7 @@ in
# the service - therefore we sleep in a loop until we can ping the
# endpoint.
preStart = ''
- while ! ping -q -c 1 v1-0-0-server.tarsnap.com &> /dev/null; do sleep 3; done
+ while ! ping -4 -q -c 1 v1-0-0-server.tarsnap.com &> /dev/null; do sleep 3; done
'';
script = let
diff --git a/nixos/modules/services/backup/znapzend.nix b/nixos/modules/services/backup/znapzend.nix
index 1fccc7cd6076..09e60177c390 100644
--- a/nixos/modules/services/backup/znapzend.nix
+++ b/nixos/modules/services/backup/znapzend.nix
@@ -166,8 +166,8 @@ let
.
'';
default = null;
- example = literalExample ''
- ''${pkgs.mariadb}/bin/mysql -e "set autocommit=0;flush tables with read lock;\\! ''${pkgs.coreutils}/bin/sleep 600" & ''${pkgs.coreutils}/bin/echo $! > /tmp/mariadblock.pid ; sleep 10
+ example = literalExpression ''
+ '''''${pkgs.mariadb}/bin/mysql -e "set autocommit=0;flush tables with read lock;\\! ''${pkgs.coreutils}/bin/sleep 600" & ''${pkgs.coreutils}/bin/echo $! > /tmp/mariadblock.pid ; sleep 10'''
'';
};
@@ -178,8 +178,8 @@ let
e.g. for database unlocking. See also .
'';
default = null;
- example = literalExample ''
- ''${pkgs.coreutils}/bin/kill `''${pkgs.coreutils}/bin/cat /tmp/mariadblock.pid`;''${pkgs.coreutils}/bin/rm /tmp/mariadblock.pid
+ example = literalExpression ''
+ "''${pkgs.coreutils}/bin/kill `''${pkgs.coreutils}/bin/cat /tmp/mariadblock.pid`;''${pkgs.coreutils}/bin/rm /tmp/mariadblock.pid"
'';
};
@@ -223,7 +223,7 @@ let
type = attrsOf (destType config);
description = "Additional destinations.";
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
local = {
dataset = "btank/backup";
@@ -331,7 +331,7 @@ in
type = attrsOf srcType;
description = "Znapzend configuration.";
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"tank/home" = {
# Make snapshots of tank/home every hour, keep those for 1 day,
diff --git a/nixos/modules/services/blockchain/ethereum/geth.nix b/nixos/modules/services/blockchain/ethereum/geth.nix
index 6c2df95886e7..bf2cf1edd4d8 100644
--- a/nixos/modules/services/blockchain/ethereum/geth.nix
+++ b/nixos/modules/services/blockchain/ethereum/geth.nix
@@ -108,6 +108,7 @@ let
package = mkOption {
default = pkgs.go-ethereum.geth;
+ defaultText = literalExpression "pkgs.go-ethereum.geth";
type = types.package;
description = "Package to use as Go Ethereum node.";
};
diff --git a/nixos/modules/services/cluster/hadoop/conf.nix b/nixos/modules/services/cluster/hadoop/conf.nix
index 38db10406b9a..0caec5cfc203 100644
--- a/nixos/modules/services/cluster/hadoop/conf.nix
+++ b/nixos/modules/services/cluster/hadoop/conf.nix
@@ -1,4 +1,4 @@
-{ hadoop, pkgs }:
+{ cfg, pkgs, lib }:
let
propertyXml = name: value: ''
@@ -13,19 +13,32 @@ let
${builtins.concatStringsSep "\n" (pkgs.lib.mapAttrsToList propertyXml properties)}
'';
+ cfgLine = name: value: ''
+ ${name}=${builtins.toString value}
+ '';
+ cfgFile = fileName: properties: pkgs.writeTextDir fileName ''
+ # generated by NixOS
+ ${builtins.concatStringsSep "" (pkgs.lib.mapAttrsToList cfgLine properties)}
+ '';
userFunctions = ''
hadoop_verify_logdir() {
echo Skipping verification of log directory
}
'';
+ hadoopEnv = ''
+ export HADOOP_LOG_DIR=/tmp/hadoop/$USER
+ '';
in
-pkgs.buildEnv {
- name = "hadoop-conf";
- paths = [
- (siteXml "core-site.xml" hadoop.coreSite)
- (siteXml "hdfs-site.xml" hadoop.hdfsSite)
- (siteXml "mapred-site.xml" hadoop.mapredSite)
- (siteXml "yarn-site.xml" hadoop.yarnSite)
- (pkgs.writeTextDir "hadoop-user-functions.sh" userFunctions)
- ];
-}
+pkgs.runCommand "hadoop-conf" {} ''
+ mkdir -p $out/
+ cp ${siteXml "core-site.xml" cfg.coreSite}/* $out/
+ cp ${siteXml "hdfs-site.xml" cfg.hdfsSite}/* $out/
+ cp ${siteXml "mapred-site.xml" cfg.mapredSite}/* $out/
+ cp ${siteXml "yarn-site.xml" cfg.yarnSite}/* $out/
+ cp ${siteXml "httpfs-site.xml" cfg.httpfsSite}/* $out/
+ cp ${cfgFile "container-executor.cfg" cfg.containerExecutorCfg}/* $out/
+ cp ${pkgs.writeTextDir "hadoop-user-functions.sh" userFunctions}/* $out/
+ cp ${pkgs.writeTextDir "hadoop-env.sh" hadoopEnv}/* $out/
+ cp ${cfg.log4jProperties} $out/log4j.properties
+ ${lib.concatMapStringsSep "\n" (dir: "cp -r ${dir}/* $out/") cfg.extraConfDirs}
+''
diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix
index 41ac46e538e3..90f22c48e055 100644
--- a/nixos/modules/services/cluster/hadoop/default.nix
+++ b/nixos/modules/services/cluster/hadoop/default.nix
@@ -1,5 +1,7 @@
{ config, lib, pkgs, ...}:
-
+let
+ cfg = config.services.hadoop;
+in
with lib;
{
imports = [ ./yarn.nix ./hdfs.nix ];
@@ -8,52 +10,136 @@ with lib;
coreSite = mkOption {
default = {};
type = types.attrsOf types.anything;
- example = literalExample ''
+ example = literalExpression ''
{
"fs.defaultFS" = "hdfs://localhost";
}
'';
- description = "Hadoop core-site.xml definition";
+ description = ''
+ Hadoop core-site.xml definition
+
+ '';
};
hdfsSite = mkOption {
- default = {};
+ default = {
+ "dfs.namenode.rpc-bind-host" = "0.0.0.0";
+ };
type = types.attrsOf types.anything;
- example = literalExample ''
+ example = literalExpression ''
{
"dfs.nameservices" = "namenode1";
}
'';
- description = "Hadoop hdfs-site.xml definition";
+ description = ''
+ Hadoop hdfs-site.xml definition
+
+ '';
};
mapredSite = mkOption {
- default = {};
+ default = {
+ "mapreduce.framework.name" = "yarn";
+ "yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
+ "mapreduce.map.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
+ "mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
+ };
type = types.attrsOf types.anything;
- example = literalExample ''
- {
- "mapreduce.map.cpu.vcores" = "1";
+ example = literalExpression ''
+ options.services.hadoop.mapredSite.default // {
+ "mapreduce.map.java.opts" = "-Xmx900m -XX:+UseParallelGC";
}
'';
- description = "Hadoop mapred-site.xml definition";
+ description = ''
+ Hadoop mapred-site.xml definition
+
+ '';
};
yarnSite = mkOption {
- default = {};
+ default = {
+ "yarn.nodemanager.admin-env" = "PATH=$PATH";
+ "yarn.nodemanager.aux-services" = "mapreduce_shuffle";
+ "yarn.nodemanager.aux-services.mapreduce_shuffle.class" = "org.apache.hadoop.mapred.ShuffleHandler";
+ "yarn.nodemanager.bind-host" = "0.0.0.0";
+ "yarn.nodemanager.container-executor.class" = "org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor";
+ "yarn.nodemanager.env-whitelist" = "JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,LANG,TZ";
+ "yarn.nodemanager.linux-container-executor.group" = "hadoop";
+ "yarn.nodemanager.linux-container-executor.path" = "/run/wrappers/yarn-nodemanager/bin/container-executor";
+ "yarn.nodemanager.log-dirs" = "/var/log/hadoop/yarn/nodemanager";
+ "yarn.resourcemanager.bind-host" = "0.0.0.0";
+ "yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler";
+ };
type = types.attrsOf types.anything;
- example = literalExample ''
- {
- "yarn.resourcemanager.ha.id" = "resourcemanager1";
+ example = literalExpression ''
+ options.services.hadoop.yarnSite.default // {
+ "yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
}
'';
- description = "Hadoop yarn-site.xml definition";
+ description = ''
+ Hadoop yarn-site.xml definition
+
+ '';
+ };
+
+ httpfsSite = mkOption {
+ default = { };
+ type = types.attrsOf types.anything;
+ example = literalExpression ''
+ {
+ "hadoop.http.max.threads" = 500;
+ }
+ '';
+ description = ''
+ Hadoop httpfs-site.xml definition
+
+ '';
+ };
+
+ log4jProperties = mkOption {
+ default = "${cfg.package}/lib/${cfg.package.untarDir}/etc/hadoop/log4j.properties";
+ type = types.path;
+ example = literalExpression ''
+ "''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
+ '';
+ description = "log4j.properties file added to HADOOP_CONF_DIR";
+ };
+
+ containerExecutorCfg = mkOption {
+ default = {
+ # must be the same as yarn.nodemanager.linux-container-executor.group in yarnSite
+ "yarn.nodemanager.linux-container-executor.group"="hadoop";
+ "min.user.id"=1000;
+ "feature.terminal.enabled"=1;
+ };
+ type = types.attrsOf types.anything;
+ example = literalExpression ''
+ options.services.hadoop.containerExecutorCfg.default // {
+ "feature.terminal.enabled" = 0;
+ }
+ '';
+ description = ''
+ Yarn container-executor.cfg definition
+
+ '';
+ };
+
+ extraConfDirs = mkOption {
+ default = [];
+ type = types.listOf types.path;
+ example = literalExpression ''
+ [
+ ./extraHDFSConfs
+ ./extraYARNConfs
+ ]
+ '';
+ description = "Directories containing additional config files to be added to HADOOP_CONF_DIR";
};
package = mkOption {
type = types.package;
default = pkgs.hadoop;
- defaultText = "pkgs.hadoop";
- example = literalExample "pkgs.hadoop";
+ defaultText = literalExpression "pkgs.hadoop";
description = "";
};
};
@@ -61,10 +147,17 @@ with lib;
config = mkMerge [
(mkIf (builtins.hasAttr "yarn" config.users.users ||
- builtins.hasAttr "hdfs" config.users.users) {
+ builtins.hasAttr "hdfs" config.users.users ||
+ builtins.hasAttr "httpfs" config.users.users) {
users.groups.hadoop = {
gid = config.ids.gids.hadoop;
};
+ environment = {
+ systemPackages = [ cfg.package ];
+ etc."hadoop-conf".source = let
+ hadoopConf = "${import ./conf.nix { inherit cfg pkgs lib; }}/";
+ in "${hadoopConf}";
+ };
})
];
diff --git a/nixos/modules/services/cluster/hadoop/hdfs.nix b/nixos/modules/services/cluster/hadoop/hdfs.nix
index 4f4b0a92108f..be667aa82d8a 100644
--- a/nixos/modules/services/cluster/hadoop/hdfs.nix
+++ b/nixos/modules/services/cluster/hadoop/hdfs.nix
@@ -1,66 +1,190 @@
{ config, lib, pkgs, ...}:
+with lib;
let
cfg = config.services.hadoop;
- hadoopConf = import ./conf.nix { hadoop = cfg; pkgs = pkgs; };
+ hadoopConf = "${import ./conf.nix { inherit cfg pkgs lib; }}/";
+ restartIfChanged = mkOption {
+ type = types.bool;
+ description = ''
+ Automatically restart the service on config change.
+ This can be set to false to defer restarts on clusters running critical applications.
+ Please consider the security implications of inadvertently running an older version,
+ and the possibility of unexpected behavior caused by inconsistent versions across a cluster when disabling this option.
+ '';
+ default = false;
+ };
in
-with lib;
{
options.services.hadoop.hdfs = {
- namenode.enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN NameNode
- '';
+ namenode = {
+ enable = mkEnableOption "Whether to run the HDFS NameNode";
+ formatOnInit = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Format HDFS namenode on first start. This is useful for quickly spinning up ephemeral HDFS clusters with a single namenode.
+ For HA clusters, initialization involves multiple steps across multiple nodes. Follow [this guide](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html)
+ to initialize an HA cluster manually.
+ '';
+ };
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for namenode
+ '';
+ };
};
- datanode.enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN DataNode
- '';
+ datanode = {
+ enable = mkEnableOption "Whether to run the HDFS DataNode";
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for datanode
+ '';
+ };
+ };
+ journalnode = {
+ enable = mkEnableOption "Whether to run the HDFS JournalNode";
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for journalnode
+ '';
+ };
+ };
+ zkfc = {
+ enable = mkEnableOption "Whether to run the HDFS ZooKeeper failover controller";
+ inherit restartIfChanged;
+ };
+ httpfs = {
+ enable = mkEnableOption "Whether to run the HDFS HTTPfs server";
+ tempPath = mkOption {
+ type = types.path;
+ default = "/tmp/hadoop/httpfs";
+ description = ''
+ HTTPFS_TEMP path used by HTTPFS
+ '';
+ };
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for HTTPFS
+ '';
+ };
};
};
config = mkMerge [
- (mkIf cfg.hdfs.namenode.enabled {
+ (mkIf cfg.hdfs.namenode.enable {
systemd.services.hdfs-namenode = {
description = "Hadoop HDFS NameNode";
wantedBy = [ "multi-user.target" ];
+ inherit (cfg.hdfs.namenode) restartIfChanged;
- environment = {
- HADOOP_HOME = "${cfg.package}";
- };
-
- preStart = ''
+ preStart = (mkIf cfg.hdfs.namenode.formatOnInit ''
${cfg.package}/bin/hdfs --config ${hadoopConf} namenode -format -nonInteractive || true
- '';
+ '');
serviceConfig = {
User = "hdfs";
SyslogIdentifier = "hdfs-namenode";
ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} namenode";
+ Restart = "always";
};
};
+
+ networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.namenode.openFirewall [
+ 9870 # namenode.http-address
+ 8020 # namenode.rpc-address
+ 8022 # namenode. servicerpc-address
+ ]);
})
- (mkIf cfg.hdfs.datanode.enabled {
+ (mkIf cfg.hdfs.datanode.enable {
systemd.services.hdfs-datanode = {
description = "Hadoop HDFS DataNode";
wantedBy = [ "multi-user.target" ];
-
- environment = {
- HADOOP_HOME = "${cfg.package}";
- };
+ inherit (cfg.hdfs.datanode) restartIfChanged;
serviceConfig = {
User = "hdfs";
SyslogIdentifier = "hdfs-datanode";
ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} datanode";
+ Restart = "always";
+ };
+ };
+
+ networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.datanode.openFirewall [
+ 9864 # datanode.http.address
+ 9866 # datanode.address
+ 9867 # datanode.ipc.address
+ ]);
+ })
+ (mkIf cfg.hdfs.journalnode.enable {
+ systemd.services.hdfs-journalnode = {
+ description = "Hadoop HDFS JournalNode";
+ wantedBy = [ "multi-user.target" ];
+ inherit (cfg.hdfs.journalnode) restartIfChanged;
+
+ serviceConfig = {
+ User = "hdfs";
+ SyslogIdentifier = "hdfs-journalnode";
+ ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} journalnode";
+ Restart = "always";
+ };
+ };
+
+ networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.journalnode.openFirewall [
+ 8480 # dfs.journalnode.http-address
+ 8485 # dfs.journalnode.rpc-address
+ ]);
+ })
+ (mkIf cfg.hdfs.zkfc.enable {
+ systemd.services.hdfs-zkfc = {
+ description = "Hadoop HDFS ZooKeeper failover controller";
+ wantedBy = [ "multi-user.target" ];
+ inherit (cfg.hdfs.zkfc) restartIfChanged;
+
+ serviceConfig = {
+ User = "hdfs";
+ SyslogIdentifier = "hdfs-zkfc";
+ ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} zkfc";
+ Restart = "always";
};
};
})
+ (mkIf cfg.hdfs.httpfs.enable {
+ systemd.services.hdfs-httpfs = {
+ description = "Hadoop httpfs";
+ wantedBy = [ "multi-user.target" ];
+ inherit (cfg.hdfs.httpfs) restartIfChanged;
+
+ environment.HTTPFS_TEMP = cfg.hdfs.httpfs.tempPath;
+
+ preStart = ''
+ mkdir -p $HTTPFS_TEMP
+ '';
+
+ serviceConfig = {
+ User = "httpfs";
+ SyslogIdentifier = "hdfs-httpfs";
+ ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} httpfs";
+ Restart = "always";
+ };
+ };
+ networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.httpfs.openFirewall [
+ 14000 # httpfs.http.port
+ ]);
+ })
(mkIf (
- cfg.hdfs.namenode.enabled || cfg.hdfs.datanode.enabled
+ cfg.hdfs.namenode.enable || cfg.hdfs.datanode.enable || cfg.hdfs.journalnode.enable || cfg.hdfs.zkfc.enable
) {
users.users.hdfs = {
description = "Hadoop HDFS user";
@@ -68,6 +192,12 @@ with lib;
uid = config.ids.uids.hdfs;
};
})
-
+ (mkIf cfg.hdfs.httpfs.enable {
+ users.users.httpfs = {
+ description = "Hadoop HTTPFS user";
+ group = "hadoop";
+ isSystemUser = true;
+ };
+ })
];
}
diff --git a/nixos/modules/services/cluster/hadoop/yarn.nix b/nixos/modules/services/cluster/hadoop/yarn.nix
index c92020637e47..37c26ea10f76 100644
--- a/nixos/modules/services/cluster/hadoop/yarn.nix
+++ b/nixos/modules/services/cluster/hadoop/yarn.nix
@@ -1,30 +1,56 @@
{ config, lib, pkgs, ...}:
+with lib;
let
cfg = config.services.hadoop;
- hadoopConf = import ./conf.nix { hadoop = cfg; pkgs = pkgs; };
+ hadoopConf = "${import ./conf.nix { inherit cfg pkgs lib; }}/";
+ restartIfChanged = mkOption {
+ type = types.bool;
+ description = ''
+ Automatically restart the service on config change.
+ This can be set to false to defer restarts on clusters running critical applications.
+ Please consider the security implications of inadvertently running an older version,
+ and the possibility of unexpected behavior caused by inconsistent versions across a cluster when disabling this option.
+ '';
+ default = false;
+ };
in
-with lib;
{
options.services.hadoop.yarn = {
- resourcemanager.enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN ResourceManager
- '';
+ resourcemanager = {
+ enable = mkEnableOption "Whether to run the Hadoop YARN ResourceManager";
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for resourcemanager
+ '';
+ };
};
- nodemanager.enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN NodeManager
- '';
+ nodemanager = {
+ enable = mkEnableOption "Whether to run the Hadoop YARN NodeManager";
+ inherit restartIfChanged;
+ addBinBash = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Add /bin/bash. This is needed by the linux container executor's launch script.
+ '';
+ };
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for nodemanager.
+ Because containers can listen on any ephemeral port, TCP ports 1024–65535 will be opened.
+ '';
+ };
};
};
config = mkMerge [
(mkIf (
- cfg.yarn.resourcemanager.enabled || cfg.yarn.nodemanager.enabled
+ cfg.yarn.resourcemanager.enable || cfg.yarn.nodemanager.enable
) {
users.users.yarn = {
@@ -34,40 +60,68 @@ with lib;
};
})
- (mkIf cfg.yarn.resourcemanager.enabled {
+ (mkIf cfg.yarn.resourcemanager.enable {
systemd.services.yarn-resourcemanager = {
description = "Hadoop YARN ResourceManager";
wantedBy = [ "multi-user.target" ];
-
- environment = {
- HADOOP_HOME = "${cfg.package}";
- };
+ inherit (cfg.yarn.resourcemanager) restartIfChanged;
serviceConfig = {
User = "yarn";
SyslogIdentifier = "yarn-resourcemanager";
ExecStart = "${cfg.package}/bin/yarn --config ${hadoopConf} " +
" resourcemanager";
+ Restart = "always";
};
};
+ networking.firewall.allowedTCPPorts = (mkIf cfg.yarn.resourcemanager.openFirewall [
+ 8088 # resourcemanager.webapp.address
+ 8030 # resourcemanager.scheduler.address
+ 8031 # resourcemanager.resource-tracker.address
+ 8032 # resourcemanager.address
+ 8033 # resourcemanager.admin.address
+ ]);
})
- (mkIf cfg.yarn.nodemanager.enabled {
+ (mkIf cfg.yarn.nodemanager.enable {
+ # Needed because yarn hardcodes /bin/bash in container start scripts
+ # These scripts can't be patched, they are generated at runtime
+ systemd.tmpfiles.rules = [
+ (mkIf cfg.yarn.nodemanager.addBinBash "L /bin/bash - - - - /run/current-system/sw/bin/bash")
+ ];
+
systemd.services.yarn-nodemanager = {
description = "Hadoop YARN NodeManager";
wantedBy = [ "multi-user.target" ];
+ inherit (cfg.yarn.nodemanager) restartIfChanged;
- environment = {
- HADOOP_HOME = "${cfg.package}";
- };
+ preStart = ''
+ # create log dir
+ mkdir -p /var/log/hadoop/yarn/nodemanager
+ chown yarn:hadoop /var/log/hadoop/yarn/nodemanager
+
+ # set up setuid container executor binary
+ rm -rf /run/wrappers/yarn-nodemanager/ || true
+ mkdir -p /run/wrappers/yarn-nodemanager/{bin,etc/hadoop}
+ cp ${cfg.package}/lib/${cfg.package.untarDir}/bin/container-executor /run/wrappers/yarn-nodemanager/bin/
+ chgrp hadoop /run/wrappers/yarn-nodemanager/bin/container-executor
+ chmod 6050 /run/wrappers/yarn-nodemanager/bin/container-executor
+ cp ${hadoopConf}/container-executor.cfg /run/wrappers/yarn-nodemanager/etc/hadoop/
+ '';
serviceConfig = {
User = "yarn";
SyslogIdentifier = "yarn-nodemanager";
+ PermissionsStartOnly = true;
ExecStart = "${cfg.package}/bin/yarn --config ${hadoopConf} " +
" nodemanager";
+ Restart = "always";
};
};
+
+ networking.firewall.allowedTCPPortRanges = [
+ (mkIf (cfg.yarn.nodemanager.openFirewall) {from = 1024; to = 65535;})
+ ];
})
];
diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix
index e5c51441690a..50b6780bbe66 100644
--- a/nixos/modules/services/cluster/k3s/default.nix
+++ b/nixos/modules/services/cluster/k3s/default.nix
@@ -12,8 +12,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.k3s;
- defaultText = "pkgs.k3s";
- example = literalExample "pkgs.k3s";
+ defaultText = literalExpression "pkgs.k3s";
description = "Package that should be used for k3s";
};
diff --git a/nixos/modules/services/cluster/kubernetes/addon-manager.nix b/nixos/modules/services/cluster/kubernetes/addon-manager.nix
index 821f1aa54604..3d988dc2479a 100644
--- a/nixos/modules/services/cluster/kubernetes/addon-manager.nix
+++ b/nixos/modules/services/cluster/kubernetes/addon-manager.nix
@@ -27,7 +27,7 @@ in
'';
default = { };
type = attrsOf attrs;
- example = literalExample ''
+ example = literalExpression ''
{
"my-service" = {
"apiVersion" = "v1";
@@ -46,7 +46,7 @@ in
description = "Kubernetes addons (any kind of Kubernetes resource can be an addon).";
default = { };
type = attrsOf (either attrs (listOf attrs));
- example = literalExample ''
+ example = literalExpression ''
{
"my-service" = {
"apiVersion" = "v1";
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index 8f937a13231b..34943fddd3d1 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -83,21 +83,24 @@ in {
reload
loadbalance
}'';
- defaultText = ''
- .:${toString ports.dns} {
- errors
- health :${toString ports.health}
- kubernetes ''${config.services.kubernetes.addons.dns.clusterDomain} in-addr.arpa ip6.arpa {
- pods insecure
- fallthrough in-addr.arpa ip6.arpa
+ defaultText = literalExpression ''
+ '''
+ .:${toString ports.dns} {
+ errors
+ health :${toString ports.health}
+ kubernetes ''${config.services.kubernetes.addons.dns.clusterDomain} in-addr.arpa ip6.arpa {
+ pods insecure
+ fallthrough in-addr.arpa ip6.arpa
+ }
+ prometheus :${toString ports.metrics}
+ forward . /etc/resolv.conf
+ cache 30
+ loop
+ reload
+ loadbalance
}
- prometheus :${toString ports.metrics}
- forward . /etc/resolv.conf
- cache 30
- loop
- reload
- loadbalance
- }'';
+ '''
+ '';
};
};
diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 33d217ba60ed..433adf4d488c 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -5,28 +5,33 @@ with lib;
let
cfg = config.services.kubernetes;
- defaultContainerdConfigFile = pkgs.writeText "containerd.toml" ''
- version = 2
- root = "/var/lib/containerd"
- state = "/run/containerd"
- oom_score = 0
+ defaultContainerdSettings = {
+ version = 2;
+ root = "/var/lib/containerd";
+ state = "/run/containerd";
+ oom_score = 0;
- [grpc]
- address = "/run/containerd/containerd.sock"
+ grpc = {
+ address = "/run/containerd/containerd.sock";
+ };
- [plugins."io.containerd.grpc.v1.cri"]
- sandbox_image = "pause:latest"
+ plugins."io.containerd.grpc.v1.cri" = {
+ sandbox_image = "pause:latest";
- [plugins."io.containerd.grpc.v1.cri".cni]
- bin_dir = "/opt/cni/bin"
- max_conf_num = 0
+ cni = {
+ bin_dir = "/opt/cni/bin";
+ max_conf_num = 0;
+ };
- [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
- runtime_type = "io.containerd.runc.v2"
+ containerd.runtimes.runc = {
+ runtime_type = "io.containerd.runc.v2";
+ };
- [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."io.containerd.runc.v2".options]
- SystemdCgroup = true
- '';
+ containerd.runtimes."io.containerd.runc.v2".options = {
+ SystemdCgroup = true;
+ };
+ };
+ };
mkKubeConfig = name: conf: pkgs.writeText "${name}-kubeconfig" (builtins.toJSON {
apiVersion = "v1";
@@ -121,7 +126,7 @@ in {
description = "Kubernetes package to use.";
type = types.package;
default = pkgs.kubernetes;
- defaultText = "pkgs.kubernetes";
+ defaultText = literalExpression "pkgs.kubernetes";
};
kubeconfig = mkKubeConfigOptions "Default kubeconfig";
@@ -248,7 +253,7 @@ in {
(mkIf cfg.kubelet.enable {
virtualisation.containerd = {
enable = mkDefault true;
- configFile = mkDefault defaultContainerdConfigFile;
+ settings = mapAttrsRecursive (name: mkDefault) defaultContainerdSettings;
};
})
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 51b2b5f6eb0d..3a2a0ed363d6 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -96,7 +96,7 @@ in
description = "Kubernetes CNI configuration.";
type = listOf attrs;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[{
"cniVersion": "0.3.1",
"name": "mynet",
diff --git a/nixos/modules/services/cluster/spark/default.nix b/nixos/modules/services/cluster/spark/default.nix
index bbfe0489f115..e6b44e130a3e 100644
--- a/nixos/modules/services/cluster/spark/default.nix
+++ b/nixos/modules/services/cluster/spark/default.nix
@@ -70,7 +70,7 @@ with lib;
type = types.path;
description = "Spark configuration directory. Spark will use the configuration files (spark-defaults.conf, spark-env.sh, log4j.properties, etc) from this directory.";
default = "${cfg.package}/lib/${cfg.package.untarDir}/conf";
- defaultText = literalExample "\${cfg.package}/lib/\${cfg.package.untarDir}/conf";
+ defaultText = literalExpression ''"''${package}/lib/''${package.untarDir}/conf"'';
};
logDir = mkOption {
type = types.path;
@@ -81,8 +81,8 @@ with lib;
type = types.package;
description = "Spark package.";
default = pkgs.spark;
- defaultText = "pkgs.spark";
- example = literalExample ''pkgs.spark.overrideAttrs (super: rec {
+ defaultText = literalExpression "pkgs.spark";
+ example = literalExpression ''pkgs.spark.overrideAttrs (super: rec {
pname = "spark";
version = "2.4.4";
diff --git a/nixos/modules/services/computing/boinc/client.nix b/nixos/modules/services/computing/boinc/client.nix
index 7becf6240710..52249455fd45 100644
--- a/nixos/modules/services/computing/boinc/client.nix
+++ b/nixos/modules/services/computing/boinc/client.nix
@@ -30,7 +30,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.boinc;
- defaultText = "pkgs.boinc";
+ defaultText = literalExpression "pkgs.boinc";
description = ''
Which BOINC package to use.
'';
@@ -60,7 +60,7 @@ in
extraEnvPackages = mkOption {
type = types.listOf types.package;
default = [];
- example = "[ pkgs.virtualbox ]";
+ example = literalExpression "[ pkgs.virtualbox ]";
description = ''
Additional packages to make available in the environment in which
BOINC will run. Common choices are:
diff --git a/nixos/modules/services/computing/foldingathome/client.nix b/nixos/modules/services/computing/foldingathome/client.nix
index fbef6a04b16d..aa9d0a5218fa 100644
--- a/nixos/modules/services/computing/foldingathome/client.nix
+++ b/nixos/modules/services/computing/foldingathome/client.nix
@@ -23,7 +23,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.fahclient;
- defaultText = "pkgs.fahclient";
+ defaultText = literalExpression "pkgs.fahclient";
description = ''
Which Folding@home client to use.
'';
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix
index a3dee94e2dc5..0c96f3231329 100644
--- a/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixos/modules/services/computing/slurm/slurm.nix
@@ -132,8 +132,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.slurm.override { enableX11 = ! cfg.enableSrunX11; };
- defaultText = "pkgs.slurm";
- example = literalExample "pkgs.slurm-full";
+ defaultText = literalExpression "pkgs.slurm";
+ example = literalExpression "pkgs.slurm-full";
description = ''
The package to use for slurm binaries.
'';
@@ -172,7 +172,7 @@ in
nodeName = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''[ "linux[1-32] CPUs=1 State=UNKNOWN" ];'';
+ example = literalExpression ''[ "linux[1-32] CPUs=1 State=UNKNOWN" ];'';
description = ''
Name that SLURM uses to refer to a node (or base partition for BlueGene
systems). Typically this would be the string that "/bin/hostname -s"
@@ -183,7 +183,7 @@ in
partitionName = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''[ "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP" ];'';
+ example = literalExpression ''[ "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP" ];'';
description = ''
Name by which the partition may be referenced. Note that now you have
to write the partition's parameters after the name.
diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix
index f668e69e5df7..2dc61c21ac71 100644
--- a/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -93,6 +93,7 @@ in {
type = types.path;
description = "Optionally pass master.cfg path. Other options in this configuration will be ignored.";
default = defaultMasterCfg;
+ defaultText = literalDocBook ''generated configuration file'';
example = "/etc/nixos/buildbot/master.cfg";
};
@@ -210,14 +211,14 @@ in {
package = mkOption {
type = types.package;
default = pkgs.python3Packages.buildbot-full;
- defaultText = "pkgs.python3Packages.buildbot-full";
+ defaultText = literalExpression "pkgs.python3Packages.buildbot-full";
description = "Package to use for buildbot.";
- example = literalExample "pkgs.python3Packages.buildbot";
+ example = literalExpression "pkgs.python3Packages.buildbot";
};
packages = mkOption {
default = [ pkgs.git ];
- example = literalExample "[ pkgs.git ]";
+ defaultText = literalExpression "[ pkgs.git ]";
type = types.listOf types.package;
description = "Packages to add to PATH for the buildbot process.";
};
@@ -225,9 +226,9 @@ in {
pythonPackages = mkOption {
type = types.functionTo (types.listOf types.package);
default = pythonPackages: with pythonPackages; [ ];
- defaultText = "pythonPackages: with pythonPackages; [ ]";
+ defaultText = literalExpression "pythonPackages: with pythonPackages; [ ]";
description = "Packages to add the to the PYTHONPATH of the buildbot process.";
- example = literalExample "pythonPackages: with pythonPackages; [ requests ]";
+ example = literalExpression "pythonPackages: with pythonPackages; [ requests ]";
};
};
};
diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 708b3e1cc182..dd4f4a4a74a9 100644
--- a/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -128,14 +128,14 @@ in {
package = mkOption {
type = types.package;
default = pkgs.python3Packages.buildbot-worker;
- defaultText = "pkgs.python3Packages.buildbot-worker";
+ defaultText = literalExpression "pkgs.python3Packages.buildbot-worker";
description = "Package to use for buildbot worker.";
- example = literalExample "pkgs.python2Packages.buildbot-worker";
+ example = literalExpression "pkgs.python2Packages.buildbot-worker";
};
packages = mkOption {
default = with pkgs; [ git ];
- example = literalExample "[ pkgs.git ]";
+ defaultText = literalExpression "[ pkgs.git ]";
type = types.listOf types.package;
description = "Packages to add to PATH for the buildbot process.";
};
diff --git a/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixos/modules/services/continuous-integration/buildkite-agents.nix
index b8982d757db9..1872567c9f12 100644
--- a/nixos/modules/services/continuous-integration/buildkite-agents.nix
+++ b/nixos/modules/services/continuous-integration/buildkite-agents.nix
@@ -39,7 +39,7 @@ let
package = mkOption {
default = pkgs.buildkite-agent;
- defaultText = "pkgs.buildkite-agent";
+ defaultText = literalExpression "pkgs.buildkite-agent";
description = "Which buildkite-agent derivation to use";
type = types.package;
};
@@ -52,7 +52,7 @@ let
runtimePackages = mkOption {
default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ];
- defaultText = "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
+ defaultText = literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
description = "Add programs to the buildkite-agent environment";
type = types.listOf types.package;
};
@@ -168,7 +168,7 @@ let
hooksPath = mkOption {
type = types.path;
default = hooksDir config;
- defaultText = "generated from services.buildkite-agents..hooks";
+ defaultText = literalDocBook "generated from ";
description = ''
Path to the directory storing the hooks.
Consider using
@@ -179,6 +179,7 @@ let
shell = mkOption {
type = types.str;
default = "${pkgs.bash}/bin/bash -e -c";
+ defaultText = literalExpression ''"''${pkgs.bash}/bin/bash -e -c"'';
description = ''
Command that buildkite-agent 3 will execute when it spawns a shell.
'';
diff --git a/nixos/modules/services/continuous-integration/github-runner.nix b/nixos/modules/services/continuous-integration/github-runner.nix
index f951c1553235..943c1e4598df 100644
--- a/nixos/modules/services/continuous-integration/github-runner.nix
+++ b/nixos/modules/services/continuous-integration/github-runner.nix
@@ -77,7 +77,7 @@ in
Changing this option triggers a new runner registration.
'';
- example = literalExample ''[ "nixos" ]'';
+ example = literalExpression ''[ "nixos" ]'';
default = [ ];
};
@@ -105,6 +105,7 @@ in
Which github-runner derivation to use.
'';
default = pkgs.github-runner;
+ defaultText = literalExpression "pkgs.github-runner";
};
};
diff --git a/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixos/modules/services/continuous-integration/gitlab-runner.nix
index 15c37c2bc76d..d4b8541c6a1b 100644
--- a/nixos/modules/services/continuous-integration/gitlab-runner.nix
+++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix
@@ -136,7 +136,7 @@ in
checkInterval = mkOption {
type = types.int;
default = 0;
- example = literalExample "with lib; (length (attrNames config.services.gitlab-runner.services)) * 3";
+ example = literalExpression "with lib; (length (attrNames config.services.gitlab-runner.services)) * 3";
description = ''
Defines the interval length, in seconds, between new jobs check.
The default value is 3;
@@ -147,7 +147,7 @@ in
concurrent = mkOption {
type = types.int;
default = 1;
- example = literalExample "config.nix.maxJobs";
+ example = literalExpression "config.nix.maxJobs";
description = ''
Limits how many jobs globally can be run concurrently.
The most upper limit of jobs using all defined runners.
@@ -203,7 +203,7 @@ in
};
};
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
listenAddress = "0.0.0.0:8093";
}
@@ -234,8 +234,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.gitlab-runner;
- defaultText = "pkgs.gitlab-runner";
- example = literalExample "pkgs.gitlab-runner_1_11";
+ defaultText = literalExpression "pkgs.gitlab-runner";
+ example = literalExpression "pkgs.gitlab-runner_1_11";
description = "Gitlab Runner package to use.";
};
extraPackages = mkOption {
@@ -248,7 +248,7 @@ in
services = mkOption {
description = "GitLab Runner services.";
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
# runner for building in docker via host's nix-daemon
# nix store will be readable in runner, might be insecure
diff --git a/nixos/modules/services/continuous-integration/gocd-agent/default.nix b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
index 8cae08bf1fa0..acc3fb12484a 100644
--- a/nixos/modules/services/continuous-integration/gocd-agent/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
@@ -37,7 +37,7 @@ in {
packages = mkOption {
default = [ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ];
- defaultText = "[ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ]";
+ defaultText = literalExpression "[ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ]";
type = types.listOf types.package;
description = ''
Packages to add to PATH for the Go.CD agent process.
diff --git a/nixos/modules/services/continuous-integration/gocd-server/default.nix b/nixos/modules/services/continuous-integration/gocd-server/default.nix
index 4c829664a0a5..646bf13ac67a 100644
--- a/nixos/modules/services/continuous-integration/gocd-server/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-server/default.nix
@@ -69,7 +69,7 @@ in {
packages = mkOption {
default = [ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ];
- defaultText = "[ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ]";
+ defaultText = literalExpression "[ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ]";
type = types.listOf types.package;
description = ''
Packages to add to PATH for the Go.CD server's process.
diff --git a/nixos/modules/services/continuous-integration/hail.nix b/nixos/modules/services/continuous-integration/hail.nix
index 5d0c3f7b4ab3..4070a3425c4f 100644
--- a/nixos/modules/services/continuous-integration/hail.nix
+++ b/nixos/modules/services/continuous-integration/hail.nix
@@ -35,7 +35,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.haskellPackages.hail;
- defaultText = "pkgs.haskellPackages.hail";
+ defaultText = literalExpression "pkgs.haskellPackages.hail";
description = "Hail package to use.";
};
};
diff --git a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
index 70d85a97f3b7..d53d68bdcf97 100644
--- a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
+++ b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -10,7 +10,8 @@ Platform-specific code is in the respective default.nix files.
let
inherit (lib)
filterAttrs
- literalExample
+ literalDocBook
+ literalExpression
mkIf
mkOption
mkRemovedOptionModule
@@ -60,7 +61,7 @@ let
'';
type = types.path;
default = config.baseDirectory + "/work";
- defaultText = literalExample ''baseDirectory + "/work"'';
+ defaultText = literalExpression ''baseDirectory + "/work"'';
};
staticSecretsDirectory = mkOption {
description = ''
@@ -68,7 +69,7 @@ let
'';
type = types.path;
default = config.baseDirectory + "/secrets";
- defaultText = literalExample ''baseDirectory + "/secrets"'';
+ defaultText = literalExpression ''baseDirectory + "/secrets"'';
};
clusterJoinTokenPath = mkOption {
description = ''
@@ -76,7 +77,7 @@ let
'';
type = types.path;
default = config.staticSecretsDirectory + "/cluster-join-token.key";
- defaultText = literalExample ''staticSecretsDirectory + "/cluster-join-token.key"'';
+ defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
# internal: It's a bit too detailed to show by default in the docs,
# but useful to define explicitly to allow reuse by other modules.
internal = true;
@@ -87,7 +88,7 @@ let
'';
type = types.path;
default = config.staticSecretsDirectory + "/binary-caches.json";
- defaultText = literalExample ''staticSecretsDirectory + "/binary-caches.json"'';
+ defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
# internal: It's a bit too detailed to show by default in the docs,
# but useful to define explicitly to allow reuse by other modules.
internal = true;
@@ -158,7 +159,7 @@ in
'';
type = types.package;
default = pkgs.hercules-ci-agent;
- defaultText = literalExample "pkgs.hercules-ci-agent";
+ defaultText = literalExpression "pkgs.hercules-ci-agent";
};
settings = mkOption {
description = ''
@@ -180,7 +181,7 @@ in
tomlFile = mkOption {
type = types.path;
internal = true;
- defaultText = "generated hercules-ci-agent.toml";
+ defaultText = literalDocBook "generated hercules-ci-agent.toml";
description = ''
The fully assembled config file.
'';
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 0103cd723d2f..d6cde77c0a3f 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -100,7 +100,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.hydra-unstable;
- defaultText = "pkgs.hydra-unstable";
+ defaultText = literalExpression "pkgs.hydra-unstable";
description = "The Hydra package.";
};
@@ -155,7 +155,7 @@ in
smtpHost = mkOption {
type = types.nullOr types.str;
default = null;
- example = ["localhost"];
+ example = "localhost";
description = ''
Hostname of the SMTP server to use to send email.
'';
diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix
index 98ef1e2c691b..d37dcb5519d2 100644
--- a/nixos/modules/services/continuous-integration/jenkins/default.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/default.nix
@@ -81,14 +81,14 @@ in {
package = mkOption {
default = pkgs.jenkins;
- defaultText = "pkgs.jenkins";
+ defaultText = literalExpression "pkgs.jenkins";
type = types.package;
description = "Jenkins package to use.";
};
packages = mkOption {
default = [ pkgs.stdenv pkgs.git pkgs.jdk11 config.programs.ssh.package pkgs.nix ];
- defaultText = "[ pkgs.stdenv pkgs.git pkgs.jdk11 config.programs.ssh.package pkgs.nix ]";
+ defaultText = literalExpression "[ pkgs.stdenv pkgs.git pkgs.jdk11 config.programs.ssh.package pkgs.nix ]";
type = types.listOf types.package;
description = ''
Packages to add to PATH for the jenkins process.
@@ -120,7 +120,7 @@ in {
null. You can generate this set with a
tool such as jenkinsPlugins2nix.
'';
- example = literalExample ''
+ example = literalExpression ''
import path/to/jenkinsPlugins2nix-generated-plugins.nix { inherit (pkgs) fetchurl stdenv; }
'';
};
diff --git a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
index 536d394b3fd4..3ca1542c18f2 100644
--- a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
@@ -74,7 +74,7 @@ in {
jsonJobs = mkOption {
default = [ ];
type = types.listOf types.str;
- example = literalExample ''
+ example = literalExpression ''
[
'''
[ { "job":
@@ -94,7 +94,7 @@ in {
nixJobs = mkOption {
default = [ ];
type = types.listOf types.attrs;
- example = literalExample ''
+ example = literalExpression ''
[ { job =
{ name = "jenkins-job-test-3";
builders = [
diff --git a/nixos/modules/services/databases/aerospike.nix b/nixos/modules/services/databases/aerospike.nix
index 4b905f90529d..8109762aea78 100644
--- a/nixos/modules/services/databases/aerospike.nix
+++ b/nixos/modules/services/databases/aerospike.nix
@@ -43,7 +43,7 @@ in
package = mkOption {
default = pkgs.aerospike;
- defaultText = "pkgs.aerospike";
+ defaultText = literalExpression "pkgs.aerospike";
type = types.package;
description = "Which Aerospike derivation to use";
};
diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix
index 820be5085de9..b36cac35e7c2 100644
--- a/nixos/modules/services/databases/cassandra.nix
+++ b/nixos/modules/services/databases/cassandra.nix
@@ -4,7 +4,8 @@ let
inherit (lib)
concatStringsSep
flip
- literalExample
+ literalDocBook
+ literalExpression
optionalAttrs
optionals
recursiveUpdate
@@ -136,8 +137,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.cassandra;
- defaultText = "pkgs.cassandra";
- example = literalExample "pkgs.cassandra_3_11";
+ defaultText = literalExpression "pkgs.cassandra";
+ example = literalExpression "pkgs.cassandra_3_11";
description = ''
The Apache Cassandra package to use.
'';
@@ -276,7 +277,7 @@ in
extraEnvSh = mkOption {
type = types.lines;
default = "";
- example = "CLASSPATH=$CLASSPATH:\${extraJar}";
+ example = literalExpression ''"CLASSPATH=$CLASSPATH:''${extraJar}"'';
description = ''
Extra shell lines to be appended onto cassandra-env.sh.
'';
@@ -436,6 +437,7 @@ in
if versionAtLeast cfg.package.version "3.11"
then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile
else null;
+ defaultText = literalDocBook ''generated configuration file if version is at least 3.11, otherwise null'';
example = "/var/lib/cassandra/jmx.password";
description = ''
Specify your own jmx roles file.
diff --git a/nixos/modules/services/databases/cockroachdb.nix b/nixos/modules/services/databases/cockroachdb.nix
index 35fb46d69d8e..eb061af92621 100644
--- a/nixos/modules/services/databases/cockroachdb.nix
+++ b/nixos/modules/services/databases/cockroachdb.nix
@@ -150,7 +150,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.cockroachdb;
- defaultText = "pkgs.cockroachdb";
+ defaultText = literalExpression "pkgs.cockroachdb";
description = ''
The CockroachDB derivation to use for running the service.
diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix
index 6cc29cd717ec..16dd64f2373e 100644
--- a/nixos/modules/services/databases/couchdb.nix
+++ b/nixos/modules/services/databases/couchdb.nix
@@ -44,8 +44,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.couchdb;
- defaultText = "pkgs.couchdb";
- example = literalExample "pkgs.couchdb";
+ defaultText = literalExpression "pkgs.couchdb";
description = ''
CouchDB package to use.
'';
diff --git a/nixos/modules/services/databases/firebird.nix b/nixos/modules/services/databases/firebird.nix
index 0815487d4a1f..4e3130bea22f 100644
--- a/nixos/modules/services/databases/firebird.nix
+++ b/nixos/modules/services/databases/firebird.nix
@@ -44,11 +44,9 @@ in
package = mkOption {
default = pkgs.firebird;
- defaultText = "pkgs.firebird";
+ defaultText = literalExpression "pkgs.firebird";
type = types.package;
- example = ''
- package = pkgs.firebird_3;
- '';
+ example = literalExpression "pkgs.firebird_3";
description = ''
Which Firebird package to be installed: pkgs.firebird_3
For SuperServer use override: pkgs.firebird_3.override { superServer = true; };
@@ -56,7 +54,7 @@ in
};
port = mkOption {
- default = "3050";
+ default = 3050;
type = types.port;
description = ''
Port Firebird uses.
diff --git a/nixos/modules/services/databases/hbase.nix b/nixos/modules/services/databases/hbase.nix
index 2d1a47bbaa31..9132b7ed3569 100644
--- a/nixos/modules/services/databases/hbase.nix
+++ b/nixos/modules/services/databases/hbase.nix
@@ -44,8 +44,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.hbase;
- defaultText = "pkgs.hbase";
- example = literalExample "pkgs.hbase";
+ defaultText = literalExpression "pkgs.hbase";
description = ''
HBase package to use.
'';
diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index 3b8c00929ba9..f7383b2023a4 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -96,9 +96,8 @@ let
};
} cfg.extraConfig;
- configFile = pkgs.runCommand "config.toml" {
- buildInputs = [ pkgs.remarshal ];
- preferLocalBuild = true;
+ configFile = pkgs.runCommandLocal "config.toml" {
+ nativeBuildInputs = [ pkgs.remarshal ];
} ''
remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON configOptions)} \
@@ -121,7 +120,7 @@ in
package = mkOption {
default = pkgs.influxdb;
- defaultText = "pkgs.influxdb";
+ defaultText = literalExpression "pkgs.influxdb";
description = "Which influxdb derivation to use";
type = types.package;
};
diff --git a/nixos/modules/services/databases/influxdb2.nix b/nixos/modules/services/databases/influxdb2.nix
index df7bac4261b5..01b9c4934847 100644
--- a/nixos/modules/services/databases/influxdb2.nix
+++ b/nixos/modules/services/databases/influxdb2.nix
@@ -11,7 +11,7 @@ in
enable = mkEnableOption "the influxdb2 server";
package = mkOption {
default = pkgs.influxdb2;
- defaultText = "pkgs.influxdb2";
+ defaultText = literalExpression "pkgs.influxdb2";
description = "influxdb2 derivation to use.";
type = types.package;
};
diff --git a/nixos/modules/services/databases/monetdb.nix b/nixos/modules/services/databases/monetdb.nix
index 5c66fc7b2e36..52a2ef041f8b 100644
--- a/nixos/modules/services/databases/monetdb.nix
+++ b/nixos/modules/services/databases/monetdb.nix
@@ -17,7 +17,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.monetdb;
- defaultText = "pkgs.monetdb";
+ defaultText = literalExpression "pkgs.monetdb";
description = "MonetDB package to use.";
};
diff --git a/nixos/modules/services/databases/mongodb.nix b/nixos/modules/services/databases/mongodb.nix
index 5121e0415db1..fccf85d482e0 100644
--- a/nixos/modules/services/databases/mongodb.nix
+++ b/nixos/modules/services/databases/mongodb.nix
@@ -33,7 +33,7 @@ in
package = mkOption {
default = pkgs.mongodb;
- defaultText = "pkgs.mongodb";
+ defaultText = literalExpression "pkgs.mongodb";
type = types.package;
description = "
Which MongoDB derivation to use.
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index b801b5cce635..a9d9a6d80588 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -34,7 +34,7 @@ in
package = mkOption {
type = types.package;
- example = literalExample "pkgs.mariadb";
+ example = literalExpression "pkgs.mariadb";
description = "
Which MySQL derivation to use. MariaDB packages are supported too.
";
@@ -43,7 +43,7 @@ in
bind = mkOption {
type = types.nullOr types.str;
default = null;
- example = literalExample "0.0.0.0";
+ example = "0.0.0.0";
description = "Address to bind to. The default is to bind to all addresses.";
};
@@ -74,12 +74,12 @@ in
configFile = mkOption {
type = types.path;
default = settingsFile;
- defaultText = "settingsFile";
+ defaultText = literalExpression "settingsFile";
description = ''
Override the configuration file used by MySQL. By default,
NixOS generates one automatically from .
'';
- example = literalExample ''
+ example = literalExpression ''
pkgs.writeText "my.cnf" '''
[mysqld]
datadir = /var/lib/mysql
@@ -109,7 +109,7 @@ in
'';
- example = literalExample ''
+ example = literalExpression ''
{
mysqld = {
key_buffer_size = "6G";
@@ -167,7 +167,7 @@ in
of MySQL. The schema attribute is optional: If not specified, an empty database is created.
'';
example = [
- { name = "foodatabase"; schema = literalExample "./foodatabase.sql"; }
+ { name = "foodatabase"; schema = literalExpression "./foodatabase.sql"; }
{ name = "bardatabase"; }
];
};
@@ -217,7 +217,7 @@ in
GRANT syntax.
The attributes are used as GRANT ''${attrName} ON ''${attrValue}.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"database.*" = "ALL PRIVILEGES";
"*.*" = "SELECT, LOCK TABLES";
@@ -235,7 +235,7 @@ in
option is changed. This means that users created and permissions assigned once through this option or
otherwise have to be removed manually.
'';
- example = literalExample ''
+ example = literalExpression ''
[
{
name = "nextcloud";
diff --git a/nixos/modules/services/databases/neo4j.nix b/nixos/modules/services/databases/neo4j.nix
index 2a30923538db..f37e5ad16939 100644
--- a/nixos/modules/services/databases/neo4j.nix
+++ b/nixos/modules/services/databases/neo4j.nix
@@ -179,7 +179,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.neo4j;
- defaultText = "pkgs.neo4j";
+ defaultText = literalExpression "pkgs.neo4j";
description = ''
Neo4j package to use.
'';
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index f0efc659cff7..2c1e25d43084 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -34,7 +34,7 @@ let
in types.attrsOf (types.submodule { options = hiddenOptions; });
default = {};
description = "Child entries of the current entry, with recursively the same structure.";
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
"cn=schema" = {
# The attribute used in the DN must be defined
@@ -127,6 +127,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.openldap;
+ defaultText = literalExpression "pkgs.openldap";
description = ''
OpenLDAP package to use.
@@ -158,14 +159,14 @@ in {
settings = mkOption {
type = ldapAttrsType;
description = "Configuration for OpenLDAP, in OLC format";
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
attrs.olcLogLevel = [ "stats" ];
children = {
"cn=schema".includes = [
- "\${pkgs.openldap}/etc/schema/core.ldif"
- "\${pkgs.openldap}/etc/schema/cosine.ldif"
- "\${pkgs.openldap}/etc/schema/inetorgperson.ldif"
+ "''${pkgs.openldap}/etc/schema/core.ldif"
+ "''${pkgs.openldap}/etc/schema/cosine.ldif"
+ "''${pkgs.openldap}/etc/schema/inetorgperson.ldif"
];
"olcDatabase={-1}frontend" = {
attrs = {
@@ -225,7 +226,7 @@ in {
rebuilt on each server startup, so this will slow down server startup,
especially with large databases.
'';
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
"dc=example,dc=org" = '''
dn= dn: dc=example,dc=org
diff --git a/nixos/modules/services/databases/opentsdb.nix b/nixos/modules/services/databases/opentsdb.nix
index c4bd71f3d60e..e873b2f70115 100644
--- a/nixos/modules/services/databases/opentsdb.nix
+++ b/nixos/modules/services/databases/opentsdb.nix
@@ -26,8 +26,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.opentsdb;
- defaultText = "pkgs.opentsdb";
- example = literalExample "pkgs.opentsdb";
+ defaultText = literalExpression "pkgs.opentsdb";
description = ''
OpenTSDB package to use.
'';
diff --git a/nixos/modules/services/databases/pgmanage.nix b/nixos/modules/services/databases/pgmanage.nix
index 8508e76b5cd6..f30f71866afd 100644
--- a/nixos/modules/services/databases/pgmanage.nix
+++ b/nixos/modules/services/databases/pgmanage.nix
@@ -49,7 +49,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.pgmanage;
- defaultText = "pkgs.pgmanage";
+ defaultText = literalExpression "pkgs.pgmanage";
description = ''
The pgmanage package to use.
'';
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index fd4a195787f3..d49cb4c51a72 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -44,7 +44,7 @@ in
package = mkOption {
type = types.package;
- example = literalExample "pkgs.postgresql_11";
+ example = literalExpression "pkgs.postgresql_11";
description = ''
PostgreSQL package to use.
'';
@@ -66,7 +66,7 @@ in
dataDir = mkOption {
type = types.path;
- defaultText = "/var/lib/postgresql/\${config.services.postgresql.package.psqlSchema}";
+ defaultText = literalExpression ''"/var/lib/postgresql/''${config.services.postgresql.package.psqlSchema}"'';
example = "/var/lib/postgresql/11";
description = ''
The data directory for PostgreSQL. If left as the default value
@@ -161,7 +161,7 @@ in
GRANT syntax.
The attributes are used as GRANT ''${attrValue} ON ''${attrName}.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"DATABASE \"nextcloud\"" = "ALL PRIVILEGES";
"ALL TABLES IN SCHEMA public" = "ALL PRIVILEGES";
@@ -179,7 +179,7 @@ in
option is changed. This means that users created and permissions assigned once through this option or
otherwise have to be removed manually.
'';
- example = literalExample ''
+ example = literalExpression ''
[
{
name = "nextcloud";
@@ -221,7 +221,7 @@ in
extraPlugins = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "with pkgs.postgresql_11.pkgs; [ postgis pg_repack ]";
+ example = literalExpression "with pkgs.postgresql_11.pkgs; [ postgis pg_repack ]";
description = ''
List of PostgreSQL plugins. PostgreSQL version for each plugin should
match version for services.postgresql.package value.
@@ -241,7 +241,7 @@ in
escaped with two single quotes as described by the upstream documentation linked above.
'';
- example = literalExample ''
+ example = literalExpression ''
{
log_connections = true;
log_statement = "all";
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix
index 1b9358c81a12..578d9d9ec8d7 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -47,7 +47,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.redis;
- defaultText = "pkgs.redis";
+ defaultText = literalExpression "pkgs.redis";
description = "Which Redis derivation to use.";
};
@@ -133,7 +133,6 @@ in {
type = with types; listOf (listOf int);
default = [ [900 1] [300 10] [60 10000] ];
description = "The schedule in which data is persisted to disk, represented as a list of lists where the first element represent the amount of seconds and the second the number of changes.";
- example = [ [900 1] [300 10] [60 10000] ];
};
slaveOf = mkOption {
@@ -217,7 +216,7 @@ in {
for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
loadmodule = [ "/path/to/my_module.so" "/path/to/other_module.so" ];
}
diff --git a/nixos/modules/services/databases/riak.nix b/nixos/modules/services/databases/riak.nix
index 657eeea87bf4..cc4237d038cd 100644
--- a/nixos/modules/services/databases/riak.nix
+++ b/nixos/modules/services/databases/riak.nix
@@ -21,8 +21,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.riak;
- defaultText = "pkgs.riak";
- example = literalExample "pkgs.riak";
+ defaultText = literalExpression "pkgs.riak";
description = ''
Riak package to use.
'';
diff --git a/nixos/modules/services/databases/victoriametrics.nix b/nixos/modules/services/databases/victoriametrics.nix
index 9e2c79e61a39..0513dcff172b 100644
--- a/nixos/modules/services/databases/victoriametrics.nix
+++ b/nixos/modules/services/databases/victoriametrics.nix
@@ -6,7 +6,7 @@ let cfg = config.services.victoriametrics; in
package = mkOption {
type = types.package;
default = pkgs.victoriametrics;
- defaultText = "pkgs.victoriametrics";
+ defaultText = literalExpression "pkgs.victoriametrics";
description = ''
The VictoriaMetrics distribution to use.
'';
diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix
index cb5c948ecf78..60a34dd65631 100644
--- a/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixos/modules/services/desktops/geoclue2.nix
@@ -21,7 +21,6 @@ let
isAllowed = mkOption {
type = types.bool;
- default = null;
description = ''
Whether the application will be allowed access to location information.
'';
@@ -29,7 +28,6 @@ let
isSystem = mkOption {
type = types.bool;
- default = null;
description = ''
Whether the application is a system component or not.
'';
@@ -162,7 +160,7 @@ in
appConfig = mkOption {
type = types.attrsOf appConfigModule;
default = {};
- example = literalExample ''
+ example = literalExpression ''
"com.github.app" = {
isAllowed = true;
isSystem = true;
diff --git a/nixos/modules/services/desktops/gnome/evolution-data-server.nix b/nixos/modules/services/desktops/gnome/evolution-data-server.nix
index ef5ad797c278..bd2242d98182 100644
--- a/nixos/modules/services/desktops/gnome/evolution-data-server.nix
+++ b/nixos/modules/services/desktops/gnome/evolution-data-server.nix
@@ -39,7 +39,7 @@ with lib;
plugins = mkOption {
type = types.listOf types.package;
default = [ ];
- example = literalExample "[ pkgs.evolution-ews ]";
+ example = literalExpression "[ pkgs.evolution-ews ]";
description = "Plugins for Evolution.";
};
diff --git a/nixos/modules/services/desktops/gvfs.nix b/nixos/modules/services/desktops/gvfs.nix
index 966a4d38662b..b6a27279bdf8 100644
--- a/nixos/modules/services/desktops/gvfs.nix
+++ b/nixos/modules/services/desktops/gvfs.nix
@@ -35,6 +35,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.gnome.gvfs;
+ defaultText = literalExpression "pkgs.gnome.gvfs";
description = "Which GVfs package to use.";
};
diff --git a/nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json b/nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json
deleted file mode 100644
index e5e7517e38d4..000000000000
--- a/nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json
+++ /dev/null
@@ -1,250 +0,0 @@
-{
- "bluez5.features.device": [
- {
- "name": "Air 1 Plus",
- "no-features": [
- "hw-volume-mic"
- ]
- },
- {
- "name": "AirPods",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "name": "AirPods Pro",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "name": "AXLOIE Goin",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "name": "BAA 100",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "name": "D50s",
- "address": "~^00:13:ef:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "name": "JBL Endurance RUN BT",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl",
- "sbc-xq"
- ]
- },
- {
- "name": "JBL LIVE650BTNC"
- },
- {
- "name": "Motorola DC800",
- "no-features": [
- "sbc-xq"
- ]
- },
- {
- "name": "Motorola S305",
- "no-features": [
- "sbc-xq"
- ]
- },
- {
- "name": "Soundcore Life P2-L",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "name": "Urbanista Stockholm Plus",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "address": "~^94:16:25:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^9c:64:8b:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^a0:e9:db:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^0c:a6:94:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^00:14:02:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^44:5e:f3:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^d4:9c:28:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^00:18:6b:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^b8:ad:3e:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^a0:e9:db:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^00:24:1c:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^00:11:b1:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^a4:15:66:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^00:14:f1:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^00:26:7e:",
- "no-features": [
- "hw-volume"
- ]
- },
- {
- "address": "~^90:03:b7:",
- "no-features": [
- "hw-volume"
- ]
- }
- ],
- "bluez5.features.adapter": [
- {
- "bus-type": "usb",
- "vendor-id": "usb:0bda"
- },
- {
- "bus-type": "usb",
- "no-features": [
- "msbc-alt1-rtl"
- ]
- },
- {
- "no-features": [
- "msbc-alt1-rtl"
- ]
- }
- ],
- "bluez5.features.kernel": [
- {
- "sysname": "Linux",
- "release": "~^[0-4]\\.",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "sysname": "Linux",
- "release": "~^5\\.[1-7]\\.",
- "no-features": [
- "msbc-alt1",
- "msbc-alt1-rtl"
- ]
- },
- {
- "sysname": "Linux",
- "release": "~^5\\.(8|9)\\.",
- "no-features": [
- "msbc-alt1"
- ]
- },
- {
- "sysname": "Linux",
- "release": "~^5\\.10\\.(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|51|52|53|54|55|56|57|58|59|60|61)($|[^0-9])",
- "no-features": [
- "msbc-alt1"
- ]
- },
- {
- "sysname": "Linux",
- "release": "~^5\\.12\\.(18|19)($|[^0-9])",
- "no-features": [
- "msbc-alt1"
- ]
- },
- {
- "sysname": "Linux",
- "release": "~^5\\.13\\.(3|4|5|6|7|8|9|10|11|12|13)($|[^0-9])",
- "no-features": [
- "msbc-alt1"
- ]
- },
- {
- "sysname": "Linux",
- "release": "~^5\\.14($|[^0-9])",
- "no-features": [
- "msbc-alt1"
- ]
- },
- {
- "no-features": []
- }
- ]
-}
diff --git a/nixos/modules/services/desktops/pipewire/client-rt.conf.json b/nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/client-rt.conf.json
rename to nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/client.conf.json b/nixos/modules/services/desktops/pipewire/daemon/client.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/client.conf.json
rename to nixos/modules/services/desktops/pipewire/daemon/client.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/jack.conf.json b/nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/jack.conf.json
rename to nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
rename to nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/pipewire.conf.json
rename to nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json b/nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json
rename to nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
rename to nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/media-session.conf.json
rename to nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json b/nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
similarity index 100%
rename from nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json
rename to nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
diff --git a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
index 41ab995e3292..4be3e881a9dc 100644
--- a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
+++ b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
@@ -13,17 +13,15 @@ let
# Use upstream config files passed through spa-json-dump as the base
# Patched here as necessary for them to work with this module
defaults = {
- alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json));
- bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json));
- bluez-hardware = (builtins.fromJSON (builtins.readFile ./bluez-hardware.conf.json));
- media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json));
- v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json));
+ alsa-monitor = lib.importJSON ./media-session/alsa-monitor.conf.json;
+ bluez-monitor = lib.importJSON ./media-session/bluez-monitor.conf.json;
+ media-session = lib.importJSON ./media-session/media-session.conf.json;
+ v4l2-monitor = lib.importJSON ./media-session/v4l2-monitor.conf.json;
};
configs = {
alsa-monitor = recursiveUpdate defaults.alsa-monitor cfg.config.alsa-monitor;
bluez-monitor = recursiveUpdate defaults.bluez-monitor cfg.config.bluez-monitor;
- bluez-hardware = defaults.bluez-hardware;
media-session = recursiveUpdate defaults.media-session cfg.config.media-session;
v4l2-monitor = recursiveUpdate defaults.v4l2-monitor cfg.config.v4l2-monitor;
};
@@ -39,14 +37,14 @@ in {
enable = mkOption {
type = types.bool;
default = config.services.pipewire.enable;
- defaultText = "config.services.pipewire.enable";
+ defaultText = literalExpression "config.services.pipewire.enable";
description = "Example pipewire session manager";
};
package = mkOption {
type = types.package;
- default = pkgs.pipewire.mediaSession;
- example = literalExample "pkgs.pipewire.mediaSession";
+ default = pkgs.pipewire-media-session;
+ defaultText = literalExpression "pkgs.pipewire-media-session";
description = ''
The pipewire-media-session derivation to use.
'';
@@ -57,7 +55,7 @@ in {
type = json.type;
description = ''
Configuration for the media session core. For details see
- https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
+ https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
'';
default = {};
};
@@ -66,7 +64,7 @@ in {
type = json.type;
description = ''
Configuration for the alsa monitor. For details see
- https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
+ https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
'';
default = {};
};
@@ -75,7 +73,7 @@ in {
type = json.type;
description = ''
Configuration for the bluez5 monitor. For details see
- https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
+ https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
'';
default = {};
};
@@ -84,7 +82,7 @@ in {
type = json.type;
description = ''
Configuration for the V4L2 monitor. For details see
- https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
+ https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
'';
default = {};
};
@@ -122,10 +120,6 @@ in {
mkIf config.services.pipewire.pulse.enable {
source = json.generate "bluez-monitor.conf" configs.bluez-monitor;
};
- environment.etc."pipewire/media-session.d/bluez-hardware.conf" =
- mkIf config.services.pipewire.pulse.enable {
- source = json.generate "bluez-hardware.conf" configs.bluez-hardware;
- };
environment.etc."pipewire/media-session.d/with-jack" =
mkIf config.services.pipewire.jack.enable {
diff --git a/nixos/modules/services/desktops/pipewire/pipewire.nix b/nixos/modules/services/desktops/pipewire/pipewire.nix
index bc75aa2717a9..55755ecd6457 100644
--- a/nixos/modules/services/desktops/pipewire/pipewire.nix
+++ b/nixos/modules/services/desktops/pipewire/pipewire.nix
@@ -22,12 +22,11 @@ let
# Use upstream config files passed through spa-json-dump as the base
# Patched here as necessary for them to work with this module
defaults = {
- client = builtins.fromJSON (builtins.readFile ./client.conf.json);
- client-rt = builtins.fromJSON (builtins.readFile ./client-rt.conf.json);
- jack = builtins.fromJSON (builtins.readFile ./jack.conf.json);
- # Remove session manager invocation from the upstream generated file, it points to the wrong path
- pipewire = builtins.fromJSON (builtins.readFile ./pipewire.conf.json);
- pipewire-pulse = builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json);
+ client = lib.importJSON ./daemon/client.conf.json;
+ client-rt = lib.importJSON ./daemon/client-rt.conf.json;
+ jack = lib.importJSON ./daemon/jack.conf.json;
+ pipewire = lib.importJSON ./daemon/pipewire.conf.json;
+ pipewire-pulse = lib.importJSON ./daemon/pipewire-pulse.conf.json;
};
configs = {
@@ -51,8 +50,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.pipewire;
- defaultText = "pkgs.pipewire";
- example = literalExample "pkgs.pipewire";
+ defaultText = literalExpression "pkgs.pipewire";
description = ''
The pipewire derivation to use.
'';
diff --git a/nixos/modules/services/development/blackfire.nix b/nixos/modules/services/development/blackfire.nix
index 6fd948cce38d..8564aabc6a37 100644
--- a/nixos/modules/services/development/blackfire.nix
+++ b/nixos/modules/services/development/blackfire.nix
@@ -19,7 +19,7 @@ in {
enable = lib.mkEnableOption "Blackfire profiler agent";
settings = lib.mkOption {
description = ''
- See https://blackfire.io/docs/configuration/agent
+ See https://blackfire.io/docs/up-and-running/configuration/agent
'';
type = lib.types.submodule {
freeformType = with lib.types; attrsOf str;
@@ -53,13 +53,8 @@ in {
services.blackfire-agent.settings.socket = "unix:///run/${agentSock}";
- systemd.services.blackfire-agent = {
- description = "Blackfire agent";
-
- serviceConfig = {
- ExecStart = "${pkgs.blackfire}/bin/blackfire-agent";
- RuntimeDirectory = "blackfire";
- };
- };
+ systemd.packages = [
+ pkgs.blackfire
+ ];
};
}
diff --git a/nixos/modules/services/development/blackfire.xml b/nixos/modules/services/development/blackfire.xml
index ad4af35788db..cecd249dda48 100644
--- a/nixos/modules/services/development/blackfire.xml
+++ b/nixos/modules/services/development/blackfire.xml
@@ -28,13 +28,14 @@ in {
enable = true;
settings = {
# You will need to get credentials at https://blackfire.io/my/settings/credentials
- # You can also use other options described in https://blackfire.io/docs/configuration/agent
+ # You can also use other options described in https://blackfire.io/docs/up-and-running/configuration/agent
server-id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
server-token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
};
};
# Make the agent run on start-up.
+ # (WantedBy= from the upstream unit not respected: https://github.com/NixOS/nixpkgs/issues/81138)
# Alternately, you can start it manually with `systemctl start blackfire-agent`.
systemd.services.blackfire-agent.wantedBy = [ "phpfpm-foo.service" ];
}
diff --git a/nixos/modules/services/development/distccd.nix b/nixos/modules/services/development/distccd.nix
index 8790ea08d0c1..9f6d5c813c45 100644
--- a/nixos/modules/services/development/distccd.nix
+++ b/nixos/modules/services/development/distccd.nix
@@ -69,7 +69,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.distcc;
- example = "pkgs.distcc";
+ defaultText = literalExpression "pkgs.distcc";
description = ''
The distcc package to use.
'';
diff --git a/nixos/modules/services/development/hoogle.nix b/nixos/modules/services/development/hoogle.nix
index a6693013b73c..7c635f7a5b8d 100644
--- a/nixos/modules/services/development/hoogle.nix
+++ b/nixos/modules/services/development/hoogle.nix
@@ -27,8 +27,8 @@ in {
packages = mkOption {
type = types.functionTo (types.listOf types.package);
default = hp: [];
- defaultText = "hp: []";
- example = "hp: with hp; [ text lens ]";
+ defaultText = literalExpression "hp: []";
+ example = literalExpression "hp: with hp; [ text lens ]";
description = ''
The Haskell packages to generate documentation for.
@@ -41,7 +41,7 @@ in {
haskellPackages = mkOption {
description = "Which haskell package set to use.";
default = pkgs.haskellPackages;
- defaultText = "pkgs.haskellPackages";
+ defaultText = literalExpression "pkgs.haskellPackages";
};
home = mkOption {
diff --git a/nixos/modules/services/development/jupyter/default.nix b/nixos/modules/services/development/jupyter/default.nix
index 21b84b3bcdaa..bebb3c3f13f0 100644
--- a/nixos/modules/services/development/jupyter/default.nix
+++ b/nixos/modules/services/development/jupyter/default.nix
@@ -40,6 +40,7 @@ in {
# want to pass in JUPYTER_PATH but use .environment instead,
# saving a rebuild.
default = pkgs.python3.pkgs.notebook;
+ defaultText = literalExpression "pkgs.python3.pkgs.notebook";
description = ''
Jupyter package to use.
'';
@@ -105,10 +106,7 @@ in {
"open('/path/secret_file', 'r', encoding='utf8').read().strip()"
It will be interpreted at the end of the notebookConfig.
'';
- example = [
- "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'"
- "open('/path/secret_file', 'r', encoding='utf8').read().strip()"
- ];
+ example = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
};
notebookConfig = mkOption {
@@ -125,7 +123,7 @@ in {
})));
default = null;
- example = literalExample ''
+ example = literalExpression ''
{
python3 = let
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
diff --git a/nixos/modules/services/development/jupyter/kernel-options.nix b/nixos/modules/services/development/jupyter/kernel-options.nix
index 03547637449a..348a8b44b382 100644
--- a/nixos/modules/services/development/jupyter/kernel-options.nix
+++ b/nixos/modules/services/development/jupyter/kernel-options.nix
@@ -9,10 +9,10 @@ with lib;
displayName = mkOption {
type = types.str;
default = "";
- example = [
+ example = literalExpression ''
"Python 3"
"Python 3 for Data Science"
- ];
+ '';
description = ''
Name that will be shown to the user.
'';
@@ -43,7 +43,7 @@ with lib;
logo32 = mkOption {
type = types.nullOr types.path;
default = null;
- example = "{env.sitePackages}/ipykernel/resources/logo-32x32.png";
+ example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-32x32.png"'';
description = ''
Path to 32x32 logo png.
'';
@@ -51,7 +51,7 @@ with lib;
logo64 = mkOption {
type = types.nullOr types.path;
default = null;
- example = "{env.sitePackages}/ipykernel/resources/logo-64x64.png";
+ example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-64x64.png"'';
description = ''
Path to 64x64 logo png.
'';
diff --git a/nixos/modules/services/development/jupyterhub/default.nix b/nixos/modules/services/development/jupyterhub/default.nix
index a1df4468cfff..fa6b3be960ab 100644
--- a/nixos/modules/services/development/jupyterhub/default.nix
+++ b/nixos/modules/services/development/jupyterhub/default.nix
@@ -66,18 +66,24 @@ in {
defaults for configuration but you can override anything since
this is a python file.
'';
- example = literalExample ''
- c.SystemdSpawner.mem_limit = '8G'
- c.SystemdSpawner.cpu_limit = 2.0
+ example = ''
+ c.SystemdSpawner.mem_limit = '8G'
+ c.SystemdSpawner.cpu_limit = 2.0
'';
};
jupyterhubEnv = mkOption {
type = types.package;
- default = (pkgs.python3.withPackages (p: with p; [
+ default = pkgs.python3.withPackages (p: with p; [
jupyterhub
jupyterhub-systemdspawner
- ]));
+ ]);
+ defaultText = literalExpression ''
+ pkgs.python3.withPackages (p: with p; [
+ jupyterhub
+ jupyterhub-systemdspawner
+ ])
+ '';
description = ''
Python environment to run jupyterhub
@@ -90,10 +96,16 @@ in {
jupyterlabEnv = mkOption {
type = types.package;
- default = (pkgs.python3.withPackages (p: with p; [
+ default = pkgs.python3.withPackages (p: with p; [
jupyterhub
jupyterlab
- ]));
+ ]);
+ defaultText = literalExpression ''
+ pkgs.python3.withPackages (p: with p; [
+ jupyterhub
+ jupyterlab
+ ])
+ '';
description = ''
Python environment to run jupyterlab
@@ -111,7 +123,7 @@ in {
})));
default = null;
- example = literalExample ''
+ example = literalExpression ''
{
python3 = let
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
diff --git a/nixos/modules/services/development/lorri.nix b/nixos/modules/services/development/lorri.nix
index fc576e4c18ba..bda63518bfd9 100644
--- a/nixos/modules/services/development/lorri.nix
+++ b/nixos/modules/services/development/lorri.nix
@@ -21,8 +21,7 @@ in {
description = ''
The lorri package to use.
'';
- defaultText = lib.literalExample "pkgs.lorri";
- example = lib.literalExample "pkgs.lorri";
+ defaultText = lib.literalExpression "pkgs.lorri";
};
};
};
diff --git a/nixos/modules/services/display-managers/greetd.nix b/nixos/modules/services/display-managers/greetd.nix
index d4f5dc267d09..895961707d36 100644
--- a/nixos/modules/services/display-managers/greetd.nix
+++ b/nixos/modules/services/display-managers/greetd.nix
@@ -13,13 +13,13 @@ in
package = mkOption {
type = types.package;
default = pkgs.greetd.greetd;
- defaultText = "pkgs.greetd.greetd";
+ defaultText = literalExpression "pkgs.greetd.greetd";
description = "The greetd package that should be used.";
};
settings = mkOption {
type = settingsFormat.type;
- example = literalExample ''
+ example = literalExpression ''
{
default_session = {
command = "''${pkgs.greetd.greetd}/bin/agreety --cmd sway";
@@ -43,7 +43,7 @@ in
restart = mkOption {
type = types.bool;
default = !(cfg.settings ? initial_session);
- defaultText = "!(config.services.greetd.settings ? initial_session)";
+ defaultText = literalExpression "!(config.services.greetd.settings ? initial_session)";
description = ''
Wether to restart greetd when it terminates (e.g. on failure).
This is usually desirable so a user can always log in, but should be disabled when using 'settings.initial_session' (autologin),
diff --git a/nixos/modules/services/editors/emacs.nix b/nixos/modules/services/editors/emacs.nix
index 00d9eaad9eb9..e2bbd27f6e56 100644
--- a/nixos/modules/services/editors/emacs.nix
+++ b/nixos/modules/services/editors/emacs.nix
@@ -66,7 +66,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.emacs;
- defaultText = "pkgs.emacs";
+ defaultText = literalExpression "pkgs.emacs";
description = ''
emacs derivation to use.
'';
diff --git a/nixos/modules/services/editors/infinoted.nix b/nixos/modules/services/editors/infinoted.nix
index 3eb0753194dd..16fe52a232bd 100644
--- a/nixos/modules/services/editors/infinoted.nix
+++ b/nixos/modules/services/editors/infinoted.nix
@@ -11,7 +11,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.libinfinity;
- defaultText = "pkgs.libinfinity";
+ defaultText = literalExpression "pkgs.libinfinity";
description = ''
Package providing infinoted
'';
diff --git a/nixos/modules/services/finance/odoo.nix b/nixos/modules/services/finance/odoo.nix
new file mode 100644
index 000000000000..422ee9510074
--- /dev/null
+++ b/nixos/modules/services/finance/odoo.nix
@@ -0,0 +1,122 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ cfg = config.services.odoo;
+ format = pkgs.formats.ini {};
+in
+{
+ options = {
+ services.odoo = {
+ enable = mkEnableOption "odoo";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.odoo;
+ defaultText = literalExpression "pkgs.odoo";
+ description = "Odoo package to use.";
+ };
+
+ addons = mkOption {
+ type = with types; listOf package;
+ default = [];
+ example = literalExpression "[ pkgs.odoo_enterprise ]";
+ description = "Odoo addons.";
+ };
+
+ settings = mkOption {
+ type = format.type;
+ default = {};
+ description = ''
+ Odoo configuration settings. For more details see
+ '';
+ };
+
+ domain = mkOption {
+ type = with types; nullOr str;
+ description = "Domain to host Odoo with nginx";
+ default = null;
+ };
+ };
+ };
+
+ config = mkIf (cfg.enable) (let
+ cfgFile = format.generate "odoo.cfg" cfg.settings;
+ in {
+ services.nginx = mkIf (cfg.domain != null) {
+ upstreams = {
+ odoo.servers = {
+ "127.0.0.1:8069" = {};
+ };
+
+ odoochat.servers = {
+ "127.0.0.1:8072" = {};
+ };
+ };
+
+ virtualHosts."${cfg.domain}" = {
+ extraConfig = ''
+ proxy_read_timeout 720s;
+ proxy_connect_timeout 720s;
+ proxy_send_timeout 720s;
+
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Real-IP $remote_addr;
+ '';
+
+ locations = {
+ "/longpolling" = {
+ proxyPass = "http://odoochat";
+ };
+
+ "/" = {
+ proxyPass = "http://odoo";
+ extraConfig = ''
+ proxy_redirect off;
+ '';
+ };
+ };
+ };
+ };
+
+ services.odoo.settings.options = {
+ proxy_mode = cfg.domain != null;
+ };
+
+ users.users.odoo = {
+ isSystemUser = true;
+ group = "odoo";
+ };
+ users.groups.odoo = {};
+
+ systemd.services.odoo = {
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" "postgresql.service" ];
+
+ # pg_dump
+ path = [ config.services.postgresql.package ];
+
+ requires = [ "postgresql.service" ];
+ script = "HOME=$STATE_DIRECTORY ${cfg.package}/bin/odoo ${optionalString (cfg.addons != []) "--addons-path=${concatMapStringsSep "," escapeShellArg cfg.addons}"} -c ${cfgFile}";
+
+ serviceConfig = {
+ DynamicUser = true;
+ User = "odoo";
+ StateDirectory = "odoo";
+ };
+ };
+
+ services.postgresql = {
+ enable = true;
+
+ ensureUsers = [{
+ name = "odoo";
+ ensurePermissions = { "DATABASE odoo" = "ALL PRIVILEGES"; };
+ }];
+ ensureDatabases = [ "odoo" ];
+ };
+ });
+}
diff --git a/nixos/modules/services/games/crossfire-server.nix b/nixos/modules/services/games/crossfire-server.nix
index 974aea0cd671..a33025e0c3e1 100644
--- a/nixos/modules/services/games/crossfire-server.nix
+++ b/nixos/modules/services/games/crossfire-server.nix
@@ -18,7 +18,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.crossfire-server;
- defaultText = "pkgs.crossfire-server";
+ defaultText = literalExpression "pkgs.crossfire-server";
description = ''
The package to use for the Crossfire server (and map/arch data, if you
don't change dataDir).
@@ -28,7 +28,7 @@ in {
dataDir = mkOption {
type = types.str;
default = "${cfg.package}/share/crossfire";
- defaultText = "\${config.services.crossfire.package}/share/crossfire";
+ defaultText = literalExpression ''"''${config.services.crossfire.package}/share/crossfire"'';
description = ''
Where to load readonly data from -- maps, archetypes, treasure tables,
and the like. If you plan to edit the data on the live server (rather
@@ -72,30 +72,32 @@ in {
overwrite the example files that come with the server, rather than being
appended to them as the other configuration files are.
'';
- example = literalExample ''
- dm_file = '''
- admin:secret_password:localhost
- jane:xyzzy:*
- ''';
- ban_file = '''
- # Bob is a jerk
- bob@*
- # So is everyone on 192.168.86.255/24
- *@192.168.86.
- ''';
- metaserver2 = '''
- metaserver2_notification on
- localhostname crossfire.example.net
- ''';
- motd = "Welcome to CrossFire!";
- news = "No news yet.";
- rules = "Don't be a jerk.";
- settings = '''
- # be nicer to newbies and harsher to experienced players
- balanced_stat_loss true
- # don't let players pick up and use admin-created items
- real_wiz false
- ''';
+ example = literalExpression ''
+ {
+ dm_file = '''
+ admin:secret_password:localhost
+ jane:xyzzy:*
+ ''';
+ ban_file = '''
+ # Bob is a jerk
+ bob@*
+ # So is everyone on 192.168.86.255/24
+ *@192.168.86.
+ ''';
+ metaserver2 = '''
+ metaserver2_notification on
+ localhostname crossfire.example.net
+ ''';
+ motd = "Welcome to CrossFire!";
+ news = "No news yet.";
+ rules = "Don't be a jerk.";
+ settings = '''
+ # be nicer to newbies and harsher to experienced players
+ balanced_stat_loss true
+ # don't let players pick up and use admin-created items
+ real_wiz false
+ ''';
+ }
'';
default = {};
};
diff --git a/nixos/modules/services/games/deliantra-server.nix b/nixos/modules/services/games/deliantra-server.nix
index 36bf60417626..b7011f4c3542 100644
--- a/nixos/modules/services/games/deliantra-server.nix
+++ b/nixos/modules/services/games/deliantra-server.nix
@@ -18,7 +18,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.deliantra-server;
- defaultText = "pkgs.deliantra-server";
+ defaultText = literalExpression "pkgs.deliantra-server";
description = ''
The package to use for the Deliantra server (and map/arch data, if you
don't change dataDir).
@@ -28,7 +28,7 @@ in {
dataDir = mkOption {
type = types.str;
default = "${pkgs.deliantra-data}";
- defaultText = "\${pkgs.deliantra-data}";
+ defaultText = literalExpression ''"''${pkgs.deliantra-data}"'';
description = ''
Where to store readonly data (maps, archetypes, sprites, etc).
Note that if you plan to use the live map editor (rather than editing
@@ -69,22 +69,24 @@ in {
The example here is not comprehensive. See the files in
/etc/deliantra-server after enabling this module for full documentation.
'';
- example = literalExample ''
- dm_file = '''
- admin:secret_password:localhost
- jane:xyzzy:*
- ''';
- motd = "Welcome to Deliantra!";
- settings = '''
- # Settings for game mechanics.
- stat_loss_on_death true
- armor_max_enchant 7
- ''';
- config = '''
- # Settings for the server daemon.
- hiscore_url https://deliantra.example.net/scores/
- max_map_reset 86400
- ''';
+ example = literalExpression ''
+ {
+ dm_file = '''
+ admin:secret_password:localhost
+ jane:xyzzy:*
+ ''';
+ motd = "Welcome to Deliantra!";
+ settings = '''
+ # Settings for game mechanics.
+ stat_loss_on_death true
+ armor_max_enchant 7
+ ''';
+ config = '''
+ # Settings for the server daemon.
+ hiscore_url https://deliantra.example.net/scores/
+ max_map_reset 86400
+ ''';
+ }
'';
default = {
motd = "";
diff --git a/nixos/modules/services/games/factorio.nix b/nixos/modules/services/games/factorio.nix
index 3cb142757927..0e8860a02819 100644
--- a/nixos/modules/services/games/factorio.nix
+++ b/nixos/modules/services/games/factorio.nix
@@ -86,7 +86,7 @@ in
configFile = mkOption {
type = types.path;
default = configFile;
- defaultText = "configFile";
+ defaultText = literalExpression "configFile";
description = ''
The server's configuration file.
@@ -162,8 +162,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.factorio-headless;
- defaultText = "pkgs.factorio-headless";
- example = "pkgs.factorio-headless-experimental";
+ defaultText = literalExpression "pkgs.factorio-headless";
+ example = literalExpression "pkgs.factorio-headless-experimental";
description = ''
Factorio version to use. This defaults to the stable channel.
'';
diff --git a/nixos/modules/services/games/minecraft-server.nix b/nixos/modules/services/games/minecraft-server.nix
index 458e57fef846..ddbe9508a4dc 100644
--- a/nixos/modules/services/games/minecraft-server.nix
+++ b/nixos/modules/services/games/minecraft-server.nix
@@ -109,7 +109,7 @@ in {
You can use to get a
Minecraft UUID for a username.
'';
- example = literalExample ''
+ example = literalExpression ''
{
username1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
username2 = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy";
@@ -120,7 +120,7 @@ in {
serverProperties = mkOption {
type = with types; attrsOf (oneOf [ bool int str ]);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
server-port = 43000;
difficulty = 3;
@@ -144,8 +144,8 @@ in {
package = mkOption {
type = types.package;
default = pkgs.minecraft-server;
- defaultText = "pkgs.minecraft-server";
- example = literalExample "pkgs.minecraft-server_1_12_2";
+ defaultText = literalExpression "pkgs.minecraft-server";
+ example = literalExpression "pkgs.minecraft-server_1_12_2";
description = "Version of minecraft-server to run.";
};
diff --git a/nixos/modules/services/hardware/acpid.nix b/nixos/modules/services/hardware/acpid.nix
index 3e619fe32ef1..883ef0830037 100644
--- a/nixos/modules/services/hardware/acpid.nix
+++ b/nixos/modules/services/hardware/acpid.nix
@@ -61,7 +61,7 @@ in
options = {
event = mkOption {
type = types.str;
- example = [ "button/power.*" "button/lid.*" "ac_adapter.*" "button/mute.*" "button/volumedown.*" "cd/play.*" "cd/next.*" ];
+ example = literalExpression ''"button/power.*" "button/lid.*" "ac_adapter.*" "button/mute.*" "button/volumedown.*" "cd/play.*" "cd/next.*"'';
description = "Event type.";
};
diff --git a/nixos/modules/services/hardware/actkbd.nix b/nixos/modules/services/hardware/actkbd.nix
index f7770f85da33..b499de97b2c3 100644
--- a/nixos/modules/services/hardware/actkbd.nix
+++ b/nixos/modules/services/hardware/actkbd.nix
@@ -74,7 +74,7 @@ in
bindings = mkOption {
type = types.listOf (types.submodule bindingCfg);
default = [];
- example = lib.literalExample ''
+ example = lib.literalExpression ''
[ { keys = [ 113 ]; events = [ "key" ]; command = "''${pkgs.alsa-utils}/bin/amixer -q set Master toggle"; }
]
'';
diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix
index 08ad90126b1d..7f75ac272d40 100644
--- a/nixos/modules/services/hardware/bluetooth.nix
+++ b/nixos/modules/services/hardware/bluetooth.nix
@@ -6,7 +6,7 @@ let
inherit (lib)
mkDefault mkEnableOption mkIf mkOption
mkRenamedOptionModule mkRemovedOptionModule
- concatStringsSep escapeShellArgs
+ concatStringsSep escapeShellArgs literalExpression
optional optionals optionalAttrs recursiveUpdate types;
cfgFmt = pkgs.formats.ini { };
@@ -53,8 +53,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.bluez;
- defaultText = "pkgs.bluez";
- example = "pkgs.bluezFull";
+ defaultText = literalExpression "pkgs.bluez";
+ example = literalExpression "pkgs.bluezFull";
description = ''
Which BlueZ package to use.
diff --git a/nixos/modules/services/hardware/fancontrol.nix b/nixos/modules/services/hardware/fancontrol.nix
index 5574c5a132e5..861b70970b87 100644
--- a/nixos/modules/services/hardware/fancontrol.nix
+++ b/nixos/modules/services/hardware/fancontrol.nix
@@ -38,6 +38,7 @@ in
after = [ "lm_sensors.service" ];
serviceConfig = {
+ Restart = "on-failure";
ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}";
};
};
diff --git a/nixos/modules/services/hardware/freefall.nix b/nixos/modules/services/hardware/freefall.nix
index 83f1e8c84f28..3f7b15924496 100644
--- a/nixos/modules/services/hardware/freefall.nix
+++ b/nixos/modules/services/hardware/freefall.nix
@@ -21,7 +21,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.freefall;
- defaultText = "pkgs.freefall";
+ defaultText = literalExpression "pkgs.freefall";
description = ''
freefall derivation to use.
'';
diff --git a/nixos/modules/services/hardware/fwupd.nix b/nixos/modules/services/hardware/fwupd.nix
index 51eca19dca32..e0506416ffa3 100644
--- a/nixos/modules/services/hardware/fwupd.nix
+++ b/nixos/modules/services/hardware/fwupd.nix
@@ -80,7 +80,7 @@ in {
extraTrustedKeys = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "[ /etc/nixos/fwupd/myfirmware.pem ]";
+ example = literalExpression "[ /etc/nixos/fwupd/myfirmware.pem ]";
description = ''
Installing a public key allows firmware signed with a matching private key to be recognized as trusted, which may require less authentication to install than for untrusted files. By default trusted firmware can be upgraded (but not downgraded) without the user or administrator password. Only very few keys are installed by default.
'';
@@ -98,6 +98,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.fwupd;
+ defaultText = literalExpression "pkgs.fwupd";
description = ''
Which fwupd package to use.
'';
diff --git a/nixos/modules/services/hardware/interception-tools.nix b/nixos/modules/services/hardware/interception-tools.nix
index fadcb19a016f..e69c05841ee0 100644
--- a/nixos/modules/services/hardware/interception-tools.nix
+++ b/nixos/modules/services/hardware/interception-tools.nix
@@ -15,6 +15,7 @@ in {
plugins = mkOption {
type = types.listOf types.package;
default = [ pkgs.interception-tools-plugins.caps2esc ];
+ defaultText = literalExpression "[ pkgs.interception-tools-plugins.caps2esc ]";
description = ''
A list of interception tools plugins that will be made available to use
inside the udevmon configuration.
diff --git a/nixos/modules/services/hardware/joycond.nix b/nixos/modules/services/hardware/joycond.nix
new file mode 100644
index 000000000000..ffef4f8a4e18
--- /dev/null
+++ b/nixos/modules/services/hardware/joycond.nix
@@ -0,0 +1,40 @@
+{ config, lib, pkgs, ... }:
+
+let
+ cfg = config.services.joycond;
+ kernelPackages = config.boot.kernelPackages;
+in
+
+with lib;
+
+{
+ options.services.joycond = {
+ enable = mkEnableOption "support for Nintendo Pro Controllers and Joycons";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.joycond;
+ defaultText = "pkgs.joycond";
+ description = ''
+ The joycond package to use.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [
+ kernelPackages.hid-nintendo
+ cfg.package
+ ];
+
+ boot.extraModulePackages = [ kernelPackages.hid-nintendo ];
+ boot.kernelModules = [ "hid_nintendo" ];
+
+ services.udev.packages = [ cfg.package ];
+
+ systemd.packages = [ cfg.package ];
+
+ # Workaround for https://github.com/NixOS/nixpkgs/issues/81138
+ systemd.services.joycond.wantedBy = [ "multi-user.target" ];
+ };
+}
diff --git a/nixos/modules/services/hardware/lirc.nix b/nixos/modules/services/hardware/lirc.nix
index 826e512c75d1..f970b0a095c3 100644
--- a/nixos/modules/services/hardware/lirc.nix
+++ b/nixos/modules/services/hardware/lirc.nix
@@ -65,7 +65,7 @@ in {
unitConfig.Documentation = [ "man:lircd(8)" ];
serviceConfig = {
- RuntimeDirectory = "lirc";
+ RuntimeDirectory = ["lirc" "lirc/lock"];
# Service runtime directory and socket share same folder.
# Following hacks are necessary to get everything right:
diff --git a/nixos/modules/services/hardware/pcscd.nix b/nixos/modules/services/hardware/pcscd.nix
index 4fc1e351f503..b1a5c680a022 100644
--- a/nixos/modules/services/hardware/pcscd.nix
+++ b/nixos/modules/services/hardware/pcscd.nix
@@ -21,8 +21,8 @@ in
plugins = mkOption {
type = types.listOf types.package;
default = [ pkgs.ccid ];
- defaultText = "[ pkgs.ccid ]";
- example = literalExample "[ pkgs.pcsc-cyberjack ]";
+ defaultText = literalExpression "[ pkgs.ccid ]";
+ example = literalExpression "[ pkgs.pcsc-cyberjack ]";
description = "Plugin packages to be used for PCSC-Lite.";
};
diff --git a/nixos/modules/services/hardware/power-profiles-daemon.nix b/nixos/modules/services/hardware/power-profiles-daemon.nix
index 70b7a72b8bae..4144bc667088 100644
--- a/nixos/modules/services/hardware/power-profiles-daemon.nix
+++ b/nixos/modules/services/hardware/power-profiles-daemon.nix
@@ -42,6 +42,8 @@ in
}
];
+ environment.systemPackages = [ package ];
+
services.dbus.packages = [ package ];
services.udev.packages = [ package ];
diff --git a/nixos/modules/services/hardware/rasdaemon.nix b/nixos/modules/services/hardware/rasdaemon.nix
new file mode 100644
index 000000000000..b1efe0f18c88
--- /dev/null
+++ b/nixos/modules/services/hardware/rasdaemon.nix
@@ -0,0 +1,171 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.hardware.rasdaemon;
+
+in
+{
+ options.hardware.rasdaemon = {
+
+ enable = mkEnableOption "RAS logging daemon";
+
+ record = mkOption {
+ type = types.bool;
+ default = true;
+ description = "record events via sqlite3, required for ras-mc-ctl";
+ };
+
+ mainboard = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Custom mainboard description, see ras-mc-ctl8 for more details.";
+ example = ''
+ vendor = ASRock
+ model = B450M Pro4
+
+ # it should default to such values from
+ # /sys/class/dmi/id/board_[vendor|name]
+ # alternatively one can supply a script
+ # that returns the same format as above
+
+ script =
+ '';
+ };
+
+ # TODO, accept `rasdaemon.labels = " ";` or `rasdaemon.labels = { dell = " "; asrock = " "; };'
+
+ labels = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Additional memory module label descriptions to be placed in /etc/ras/dimm_labels.d/labels";
+ example = ''
+ # vendor and model may be shown by 'ras-mc-ctl --mainboard'
+ vendor: ASRock
+ product: To Be Filled By O.E.M.
+ model: B450M Pro4
+ # these labels are names for the motherboard slots
+ # the numbers may be shown by `ras-mc-ctl --error-count`
+ # they are mc:csrow:channel
+ DDR4_A1: 0.2.0; DDR4_B1: 0.2.1;
+ DDR4_A2: 0.3.0; DDR4_B2: 0.3.1;
+ '';
+ };
+
+ config = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ rasdaemon configuration, currently only used for CE PFA
+ for details, read rasdaemon.outPath/etc/sysconfig/rasdaemon's comments
+ '';
+ example = ''
+ # defaults from included config
+ PAGE_CE_REFRESH_CYCLE="24h"
+ PAGE_CE_THRESHOLD="50"
+ PAGE_CE_ACTION="soft"
+ '';
+ };
+
+ extraModules = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = "extra kernel modules to load";
+ example = [ "i7core_edac" ];
+ };
+
+ testing = mkEnableOption "error injection infrastructure";
+ };
+
+ config = mkIf cfg.enable {
+
+ environment.etc = {
+ "ras/mainboard" = {
+ enable = cfg.mainboard != "";
+ text = cfg.mainboard;
+ };
+ # TODO, handle multiple cfg.labels.brand = " ";
+ "ras/dimm_labels.d/labels" = {
+ enable = cfg.labels != "";
+ text = cfg.labels;
+ };
+ "sysconfig/rasdaemon" = {
+ enable = cfg.config != "";
+ text = cfg.config;
+ };
+ };
+ environment.systemPackages = [ pkgs.rasdaemon ]
+ ++ optionals (cfg.testing) (with pkgs.error-inject; [
+ edac-inject
+ mce-inject
+ aer-inject
+ ]);
+
+ boot.initrd.kernelModules = cfg.extraModules
+ ++ optionals (cfg.testing) [
+ # edac_core and amd64_edac should get loaded automatically
+ # i7core_edac may not be, and may not be required, but should load successfully
+ "edac_core"
+ "amd64_edac"
+ "i7core_edac"
+ "mce-inject"
+ "aer-inject"
+ ];
+
+ boot.kernelPatches = optionals (cfg.testing) [{
+ name = "rasdaemon-tests";
+ patch = null;
+ extraConfig = ''
+ EDAC_DEBUG y
+ X86_MCE_INJECT y
+
+ PCIEPORTBUS y
+ PCIEAER y
+ PCIEAER_INJECT y
+ '';
+ }];
+
+ # i tried to set up a group for this
+ # but rasdaemon needs higher permissions?
+ # `rasdaemon: Can't locate a mounted debugfs`
+
+ # most of this taken from src/misc/
+ systemd.services = {
+ rasdaemon = {
+ description = "the RAS logging daemon";
+ documentation = [ "man:rasdaemon(1)" ];
+ wantedBy = [ "multi-user.target" ];
+ after = [ "syslog.target" ];
+
+ serviceConfig = {
+ StateDirectory = optionalString (cfg.record) "rasdaemon";
+
+ ExecStart = "${pkgs.rasdaemon}/bin/rasdaemon --foreground"
+ + optionalString (cfg.record) " --record";
+ ExecStop = "${pkgs.rasdaemon}/bin/rasdaemon --disable";
+ Restart = "on-abort";
+
+ # src/misc/rasdaemon.service.in shows this:
+ # ExecStartPost = ${pkgs.rasdaemon}/bin/rasdaemon --enable
+ # but that results in unpredictable existence of the database
+ # and everything seems to be enabled without this...
+ };
+ };
+ ras-mc-ctl = mkIf (cfg.labels != "") {
+ description = "register DIMM labels on startup";
+ documentation = [ "man:ras-mc-ctl(8)" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "${pkgs.rasdaemon}/bin/ras-mc-ctl --register-labels";
+ RemainAfterExit = true;
+ };
+ };
+ };
+ };
+
+ meta.maintainers = [ maintainers.evils ];
+
+}
diff --git a/nixos/modules/services/hardware/sane.nix b/nixos/modules/services/hardware/sane.nix
index ccf726bd182b..caf232e234eb 100644
--- a/nixos/modules/services/hardware/sane.nix
+++ b/nixos/modules/services/hardware/sane.nix
@@ -73,7 +73,7 @@ in
The example contains the package for HP scanners.
'';
- example = literalExample "[ pkgs.hplipWithPlugin ]";
+ example = literalExpression "[ pkgs.hplipWithPlugin ]";
};
hardware.sane.disabledDefaultBackends = mkOption {
@@ -115,6 +115,7 @@ in
hardware.sane.drivers.scanSnap.package = mkOption {
type = types.package;
default = pkgs.sane-drivers.epjitsu;
+ defaultText = literalExpression "pkgs.sane-drivers.epjitsu";
description = ''
Epjitsu driver package to use. Useful if you want to extract the driver files yourself.
diff --git a/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix b/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
index a6afa01dd812..8f9998108406 100644
--- a/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
+++ b/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
@@ -20,7 +20,7 @@ let
the name of attribute will be used.
'';
- example = literalExample "office1";
+ example = "office1";
};
model = mkOption {
@@ -29,7 +29,7 @@ let
The model of the network device.
'';
- example = literalExample "MFC-7860DW";
+ example = "MFC-7860DW";
};
ip = mkOption {
@@ -40,7 +40,7 @@ let
provide a nodename.
'';
- example = literalExample "192.168.1.2";
+ example = "192.168.1.2";
};
nodename = mkOption {
@@ -51,7 +51,7 @@ let
provide an ip.
'';
- example = literalExample "BRW0080927AFBCE";
+ example = "BRW0080927AFBCE";
};
};
diff --git a/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix b/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
index 89b5ff0e0282..2e4ad8cc3ba0 100644
--- a/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
+++ b/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
@@ -20,7 +20,7 @@ let
the name of attribute will be used.
'';
- example = literalExample "office1";
+ example = "office1";
};
model = mkOption {
@@ -29,7 +29,7 @@ let
The model of the network device.
'';
- example = literalExample "ADS-1200";
+ example = "ADS-1200";
};
ip = mkOption {
@@ -40,7 +40,7 @@ let
provide a nodename.
'';
- example = literalExample "192.168.1.2";
+ example = "192.168.1.2";
};
nodename = mkOption {
@@ -51,7 +51,7 @@ let
provide an ip.
'';
- example = literalExample "BRW0080927AFBCE";
+ example = "BRW0080927AFBCE";
};
};
diff --git a/nixos/modules/services/hardware/thermald.nix b/nixos/modules/services/hardware/thermald.nix
index aa936ac09d1d..3b495d00df07 100644
--- a/nixos/modules/services/hardware/thermald.nix
+++ b/nixos/modules/services/hardware/thermald.nix
@@ -27,7 +27,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.thermald;
- defaultText = "pkgs.thermald";
+ defaultText = literalExpression "pkgs.thermald";
description = "Which thermald package to use.";
};
};
diff --git a/nixos/modules/services/hardware/triggerhappy.nix b/nixos/modules/services/hardware/triggerhappy.nix
index f9f5234bdc3f..4e979c4d8fa1 100644
--- a/nixos/modules/services/hardware/triggerhappy.nix
+++ b/nixos/modules/services/hardware/triggerhappy.nix
@@ -69,7 +69,7 @@ in
bindings = mkOption {
type = types.listOf (types.submodule bindingCfg);
default = [];
- example = lib.literalExample ''
+ example = lib.literalExpression ''
[ { keys = ["PLAYPAUSE"]; cmd = "''${pkgs.mpc_cli}/bin/mpc -q toggle"; } ]
'';
description = ''
diff --git a/nixos/modules/services/hardware/undervolt.nix b/nixos/modules/services/hardware/undervolt.nix
index 9c2f78a755dd..212c0227c0d0 100644
--- a/nixos/modules/services/hardware/undervolt.nix
+++ b/nixos/modules/services/hardware/undervolt.nix
@@ -50,7 +50,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.undervolt;
- defaultText = "pkgs.undervolt";
+ defaultText = literalExpression "pkgs.undervolt";
description = ''
undervolt derivation to use.
'';
diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix
index 449810b53150..92c060147bfc 100644
--- a/nixos/modules/services/hardware/upower.nix
+++ b/nixos/modules/services/hardware/upower.nix
@@ -30,8 +30,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.upower;
- defaultText = "pkgs.upower";
- example = lib.literalExample "pkgs.upower";
+ defaultText = literalExpression "pkgs.upower";
description = ''
Which upower package to use.
'';
diff --git a/nixos/modules/services/hardware/vdr.nix b/nixos/modules/services/hardware/vdr.nix
index 8a6cde51b06f..5ec222b805c8 100644
--- a/nixos/modules/services/hardware/vdr.nix
+++ b/nixos/modules/services/hardware/vdr.nix
@@ -17,8 +17,8 @@ in {
package = mkOption {
type = types.package;
default = pkgs.vdr;
- defaultText = "pkgs.vdr";
- example = literalExample "pkgs.wrapVdr.override { plugins = with pkgs.vdrPlugins; [ hello ]; }";
+ defaultText = literalExpression "pkgs.vdr";
+ example = literalExpression "pkgs.wrapVdr.override { plugins = with pkgs.vdrPlugins; [ hello ]; }";
description = "Package to use.";
};
diff --git a/nixos/modules/services/logging/SystemdJournal2Gelf.nix b/nixos/modules/services/logging/SystemdJournal2Gelf.nix
index f26aef7262ba..f28ecab8ac23 100644
--- a/nixos/modules/services/logging/SystemdJournal2Gelf.nix
+++ b/nixos/modules/services/logging/SystemdJournal2Gelf.nix
@@ -36,6 +36,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.systemd-journal2gelf;
+ defaultText = literalExpression "pkgs.systemd-journal2gelf";
description = ''
SystemdJournal2Gelf package to use.
'';
diff --git a/nixos/modules/services/logging/awstats.nix b/nixos/modules/services/logging/awstats.nix
index 896f52302ff3..df0124380ff0 100644
--- a/nixos/modules/services/logging/awstats.nix
+++ b/nixos/modules/services/logging/awstats.nix
@@ -51,7 +51,7 @@ let
hostAliases = mkOption {
type = types.listOf types.str;
default = [];
- example = "[ \"www.example.org\" ]";
+ example = [ "www.example.org" ];
description = ''
List of aliases the site has.
'';
@@ -60,12 +60,12 @@ let
extraConfig = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"ValidHTTPCodes" = "404";
}
'';
- description = "Extra configuration to be appendend to awstats.\${name}.conf.";
+ description = "Extra configuration to be appended to awstats.\${name}.conf.";
};
webService = {
@@ -106,7 +106,7 @@ in
configs = mkOption {
type = types.attrsOf (types.submodule configOpts);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"mysite" = {
domain = "example.com";
diff --git a/nixos/modules/services/logging/fluentd.nix b/nixos/modules/services/logging/fluentd.nix
index 95825705d9d7..dd19617a13ff 100644
--- a/nixos/modules/services/logging/fluentd.nix
+++ b/nixos/modules/services/logging/fluentd.nix
@@ -27,7 +27,7 @@ in {
package = mkOption {
type = types.path;
default = pkgs.fluentd;
- defaultText = "pkgs.fluentd";
+ defaultText = literalExpression "pkgs.fluentd";
description = "The fluentd package to use.";
};
diff --git a/nixos/modules/services/logging/graylog.nix b/nixos/modules/services/logging/graylog.nix
index 5e20a10f2490..e6a23233ba28 100644
--- a/nixos/modules/services/logging/graylog.nix
+++ b/nixos/modules/services/logging/graylog.nix
@@ -38,14 +38,13 @@ in
package = mkOption {
type = types.package;
default = pkgs.graylog;
- defaultText = "pkgs.graylog";
+ defaultText = literalExpression "pkgs.graylog";
description = "Graylog package to use.";
};
user = mkOption {
type = types.str;
default = "graylog";
- example = literalExample "graylog";
description = "User account under which graylog runs";
};
@@ -90,7 +89,7 @@ in
elasticsearchHosts = mkOption {
type = types.listOf types.str;
- example = literalExample ''[ "http://node1:9200" "http://user:password@node2:19200" ]'';
+ example = literalExpression ''[ "http://node1:9200" "http://user:password@node2:19200" ]'';
description = "List of valid URIs of the http ports of your elastic nodes. If one or more of your elasticsearch hosts require authentication, include the credentials in each node URI that requires authentication";
};
diff --git a/nixos/modules/services/logging/journalbeat.nix b/nixos/modules/services/logging/journalbeat.nix
index 89f53b1b2454..2d98598c1bee 100644
--- a/nixos/modules/services/logging/journalbeat.nix
+++ b/nixos/modules/services/logging/journalbeat.nix
@@ -27,8 +27,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.journalbeat;
- defaultText = "pkgs.journalbeat";
- example = literalExample "pkgs.journalbeat7";
+ defaultText = literalExpression "pkgs.journalbeat";
+ example = literalExpression "pkgs.journalbeat7";
description = ''
The journalbeat package to use
'';
diff --git a/nixos/modules/services/logging/logcheck.nix b/nixos/modules/services/logging/logcheck.nix
index 348ed8adf903..c8738b734f9a 100644
--- a/nixos/modules/services/logging/logcheck.nix
+++ b/nixos/modules/services/logging/logcheck.nix
@@ -172,7 +172,7 @@ in
extraRulesDirs = mkOption {
default = [];
- example = "/etc/logcheck";
+ example = [ "/etc/logcheck" ];
type = types.listOf types.path;
description = ''
Directories with extra rules.
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index 7d6102b82557..624b6cfb1215 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -111,7 +111,7 @@ in
can be controlled by the priority option
using the same semantics as `lib.mkOrder`. Smaller values have a greater priority.
'';
- example = literalExample ''
+ example = literalExpression ''
{
httpd = {
path = "/var/log/httpd/*.log";
diff --git a/nixos/modules/services/logging/logstash.nix b/nixos/modules/services/logging/logstash.nix
index 7a2f5681612c..044d5330231e 100644
--- a/nixos/modules/services/logging/logstash.nix
+++ b/nixos/modules/services/logging/logstash.nix
@@ -53,15 +53,14 @@ in
package = mkOption {
type = types.package;
default = pkgs.logstash;
- defaultText = "pkgs.logstash";
- example = literalExample "pkgs.logstash";
+ defaultText = literalExpression "pkgs.logstash";
description = "Logstash package to use.";
};
plugins = mkOption {
type = types.listOf types.path;
default = [ ];
- example = literalExample "[ pkgs.logstash-contrib ]";
+ example = literalExpression "[ pkgs.logstash-contrib ]";
description = "The paths to find other logstash plugins in.";
};
@@ -102,12 +101,14 @@ in
type = types.lines;
default = "generator { }";
description = "Logstash input configuration.";
- example = ''
- # Read from journal
- pipe {
- command => "''${pkgs.systemd}/bin/journalctl -f -o json"
- type => "syslog" codec => json {}
- }
+ example = literalExpression ''
+ '''
+ # Read from journal
+ pipe {
+ command => "''${pkgs.systemd}/bin/journalctl -f -o json"
+ type => "syslog" codec => json {}
+ }
+ '''
'';
};
diff --git a/nixos/modules/services/logging/syslog-ng.nix b/nixos/modules/services/logging/syslog-ng.nix
index 35055311680b..0a57bf20bd07 100644
--- a/nixos/modules/services/logging/syslog-ng.nix
+++ b/nixos/modules/services/logging/syslog-ng.nix
@@ -43,7 +43,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.syslogng;
- defaultText = "pkgs.syslogng";
+ defaultText = literalExpression "pkgs.syslogng";
description = ''
The package providing syslog-ng binaries.
'';
@@ -51,7 +51,7 @@ in {
extraModulePaths = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ "''${pkgs.syslogng_incubator}/lib/syslog-ng" ]
'';
description = ''
diff --git a/nixos/modules/services/mail/davmail.nix b/nixos/modules/services/mail/davmail.nix
index 374a3dd75c1c..e9f31e6fb390 100644
--- a/nixos/modules/services/mail/davmail.nix
+++ b/nixos/modules/services/mail/davmail.nix
@@ -42,7 +42,7 @@ in
and
for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
davmail.allowRemote = true;
davmail.imapPort = 55555;
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index f3500f46e355..223f3bef77db 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -289,7 +289,7 @@ in
modules = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.dovecot_pigeonhole ]";
+ example = literalExpression "[ pkgs.dovecot_pigeonhole ]";
description = ''
Symlinks the contents of lib/dovecot of every given package into
/etc/dovecot/modules. This will make the given modules available
@@ -339,7 +339,7 @@ in
(list: listToAttrs (map (entry: { name = entry.name; value = removeAttrs entry ["name"]; }) list))
(attrsOf (submodule mailboxes));
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
Spam = { specialUse = "Junk"; auto = "create"; };
}
diff --git a/nixos/modules/services/mail/exim.nix b/nixos/modules/services/mail/exim.nix
index 25b533578c94..7356db2b6a62 100644
--- a/nixos/modules/services/mail/exim.nix
+++ b/nixos/modules/services/mail/exim.nix
@@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }:
let
- inherit (lib) mkIf mkOption singleton types;
+ inherit (lib) literalExpression mkIf mkOption singleton types;
inherit (pkgs) coreutils;
cfg = config.services.exim;
in
@@ -60,7 +60,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.exim;
- defaultText = "pkgs.exim";
+ defaultText = literalExpression "pkgs.exim";
description = ''
The Exim derivation to use.
This can be used to enable features such as LDAP or PAM support.
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix
index 831175d5625f..0c9b38b44b24 100644
--- a/nixos/modules/services/mail/mailman.nix
+++ b/nixos/modules/services/mail/mailman.nix
@@ -87,8 +87,8 @@ in {
package = mkOption {
type = types.package;
default = pkgs.mailman;
- defaultText = "pkgs.mailman";
- example = literalExample "pkgs.mailman.override { archivers = []; }";
+ defaultText = literalExpression "pkgs.mailman";
+ example = literalExpression "pkgs.mailman.override { archivers = []; }";
description = "Mailman package to use";
};
diff --git a/nixos/modules/services/mail/offlineimap.nix b/nixos/modules/services/mail/offlineimap.nix
index 294e3806f94a..451477581190 100644
--- a/nixos/modules/services/mail/offlineimap.nix
+++ b/nixos/modules/services/mail/offlineimap.nix
@@ -25,14 +25,14 @@ in {
package = mkOption {
type = types.package;
default = pkgs.offlineimap;
- defaultText = "pkgs.offlineimap";
+ defaultText = literalExpression "pkgs.offlineimap";
description = "Offlineimap derivation to use.";
};
path = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "[ pkgs.pass pkgs.bash pkgs.notmuch ]";
+ example = literalExpression "[ pkgs.pass pkgs.bash pkgs.notmuch ]";
description = "List of derivations to put in Offlineimap's path.";
};
diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix
index dc209e8add4e..e7632be28045 100644
--- a/nixos/modules/services/mail/opensmtpd.nix
+++ b/nixos/modules/services/mail/opensmtpd.nix
@@ -34,7 +34,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.opensmtpd;
- defaultText = "pkgs.opensmtpd";
+ defaultText = literalExpression "pkgs.opensmtpd";
description = "The OpenSMTPD package to use.";
};
@@ -103,7 +103,7 @@ in {
};
security.wrappers.smtpctl = {
- owner = "nobody";
+ owner = "root";
group = "smtpq";
setuid = false;
setgid = true;
@@ -111,7 +111,7 @@ in {
};
services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail
- security.wrappers.smtpctl // { program = "sendmail"; };
+ (security.wrappers.smtpctl // { program = "sendmail"; });
systemd.tmpfiles.rules = [
"d /var/spool/smtpd 711 root - - -"
diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix
index 2b8edb9c51f8..23d3574ae27c 100644
--- a/nixos/modules/services/mail/postfix.nix
+++ b/nixos/modules/services/mail/postfix.nix
@@ -294,7 +294,7 @@ in
};
submissionOptions = mkOption {
- type = types.attrs;
+ type = with types; attrsOf str;
default = {
smtpd_tls_security_level = "encrypt";
smtpd_sasl_auth_enable = "yes";
@@ -312,7 +312,7 @@ in
};
submissionsOptions = mkOption {
- type = types.attrs;
+ type = with types; attrsOf str;
default = {
smtpd_sasl_auth_enable = "yes";
smtpd_client_restrictions = "permit_sasl_authenticated,reject";
@@ -505,6 +505,7 @@ in
tlsTrustedAuthorities = mkOption {
type = types.str;
default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
+ defaultText = literalExpression ''"''${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"'';
description = ''
File containing trusted certification authorities (CA) to verify certificates of mailservers contacted for mail delivery. This basically sets smtp_tls_CAfile and enables opportunistic tls. Defaults to NixOS trusted certification authorities.
'';
@@ -544,7 +545,7 @@ in
type = types.lines;
default = "";
description = "
- Entries for the virtual alias map, cf. man-page virtual(8).
+ Entries for the virtual alias map, cf. man-page virtual(5).
";
};
@@ -673,7 +674,7 @@ in
services.mail.sendmailSetuidWrapper = mkIf config.services.postfix.setSendmail {
program = "sendmail";
source = "${pkgs.postfix}/bin/sendmail";
- owner = "nobody";
+ owner = "root";
group = setgidGroup;
setuid = false;
setgid = true;
@@ -682,7 +683,7 @@ in
security.wrappers.mailq = {
program = "mailq";
source = "${pkgs.postfix}/bin/mailq";
- owner = "nobody";
+ owner = "root";
group = setgidGroup;
setuid = false;
setgid = true;
@@ -691,7 +692,7 @@ in
security.wrappers.postqueue = {
program = "postqueue";
source = "${pkgs.postfix}/bin/postqueue";
- owner = "nobody";
+ owner = "root";
group = setgidGroup;
setuid = false;
setgid = true;
@@ -700,7 +701,7 @@ in
security.wrappers.postdrop = {
program = "postdrop";
source = "${pkgs.postfix}/bin/postdrop";
- owner = "nobody";
+ owner = "root";
group = setgidGroup;
setuid = false;
setgid = true;
diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix
index f9b63000473c..ac192c56aa60 100644
--- a/nixos/modules/services/mail/roundcube.nix
+++ b/nixos/modules/services/mail/roundcube.nix
@@ -7,7 +7,7 @@ let
fpm = config.services.phpfpm.pools.roundcube;
localDB = cfg.database.host == "localhost";
user = cfg.database.username;
- phpWithPspell = pkgs.php74.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled);
+ phpWithPspell = pkgs.php80.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled);
in
{
options.services.roundcube = {
@@ -32,8 +32,9 @@ in
package = mkOption {
type = types.package;
default = pkgs.roundcube;
+ defaultText = literalExpression "pkgs.roundcube";
- example = literalExample ''
+ example = literalExpression ''
roundcube.withPlugins (plugins: [ plugins.persistent_login ])
'';
@@ -89,7 +90,7 @@ in
dicts = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "with pkgs.aspellDicts; [ en fr de ]";
+ example = literalExpression "with pkgs.aspellDicts; [ en fr de ]";
description = ''
List of aspell dictionnaries for spell checking. If empty, spell checking is disabled.
'';
diff --git a/nixos/modules/services/mail/rspamd.nix b/nixos/modules/services/mail/rspamd.nix
index c78f464235aa..50208cbeb00a 100644
--- a/nixos/modules/services/mail/rspamd.nix
+++ b/nixos/modules/services/mail/rspamd.nix
@@ -240,7 +240,7 @@ in
description = ''
Local configuration files, written into /etc/rspamd/local.d/{name}.
'';
- example = literalExample ''
+ example = literalExpression ''
{ "redis.conf".source = "/nix/store/.../etc/dir/redis.conf";
"arc.conf".text = "allow_envfrom_empty = true;";
}
@@ -253,7 +253,7 @@ in
description = ''
Overridden configuration files, written into /etc/rspamd/override.d/{name}.
'';
- example = literalExample ''
+ example = literalExpression ''
{ "redis.conf".source = "/nix/store/.../etc/dir/redis.conf";
"arc.conf".text = "allow_envfrom_empty = true;";
}
@@ -278,7 +278,7 @@ in
normal = {};
controller = {};
};
- example = literalExample ''
+ example = literalExpression ''
{
normal = {
includes = [ "$CONFDIR/worker-normal.inc" ];
@@ -338,10 +338,6 @@ in
smtpd_milters = ["unix:/run/rspamd/rspamd-milter.sock"];
non_smtpd_milters = ["unix:/run/rspamd/rspamd-milter.sock"];
};
- example = {
- smtpd_milters = ["unix:/run/rspamd/rspamd-milter.sock"];
- non_smtpd_milters = ["unix:/run/rspamd/rspamd-milter.sock"];
- };
};
};
};
diff --git a/nixos/modules/services/mail/sympa.nix b/nixos/modules/services/mail/sympa.nix
index 491b6dba9aa4..f3578bef96ea 100644
--- a/nixos/modules/services/mail/sympa.nix
+++ b/nixos/modules/services/mail/sympa.nix
@@ -153,7 +153,7 @@ in
Email domains handled by this instance. There have
to be MX records for keys of this attribute set.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"lists.example.org" = {
webHost = "lists.example.org";
@@ -200,7 +200,7 @@ in
name = mkOption {
type = str;
default = if cfg.database.type == "SQLite" then "${dataDir}/sympa.sqlite" else "sympa";
- defaultText = ''if database.type == "SQLite" then "${dataDir}/sympa.sqlite" else "sympa"'';
+ defaultText = literalExpression ''if database.type == "SQLite" then "${dataDir}/sympa.sqlite" else "sympa"'';
description = ''
Database name. When using SQLite this must be an absolute
path to the database file.
@@ -279,7 +279,7 @@ in
settings = mkOption {
type = attrsOf (oneOf [ str int bool ]);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
default_home = "lists";
viewlogs_page_size = 50;
@@ -314,7 +314,7 @@ in
config.source = mkIf (config.text != null) (mkDefault (pkgs.writeText "sympa-${baseNameOf name}" config.text));
}));
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"list_data/lists.example.org/help" = {
text = "subject This list provides help to users";
diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix
index c1ce515750b0..533a3d367a32 100644
--- a/nixos/modules/services/misc/airsonic.nix
+++ b/nixos/modules/services/misc/airsonic.nix
@@ -74,7 +74,7 @@ in {
transcoders = mkOption {
type = types.listOf types.path;
default = [ "${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
- defaultText= [ "\${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
+ defaultText = literalExpression ''[ "''${pkgs.ffmpeg.bin}/bin/ffmpeg" ]'';
description = ''
List of paths to transcoder executables that should be accessible
from Airsonic. Symlinks will be created to each executable inside
@@ -85,7 +85,7 @@ in {
jre = mkOption {
type = types.package;
default = pkgs.jre8;
- defaultText = literalExample "pkgs.jre8";
+ defaultText = literalExpression "pkgs.jre8";
description = ''
JRE package to use.
@@ -97,7 +97,7 @@ in {
war = mkOption {
type = types.path;
default = "${pkgs.airsonic}/webapps/airsonic.war";
- defaultText = "\${pkgs.airsonic}/webapps/airsonic.war";
+ defaultText = literalExpression ''"''${pkgs.airsonic}/webapps/airsonic.war"'';
description = "Airsonic war file to use.";
};
diff --git a/nixos/modules/services/misc/ananicy.nix b/nixos/modules/services/misc/ananicy.nix
new file mode 100644
index 000000000000..f76f534fb450
--- /dev/null
+++ b/nixos/modules/services/misc/ananicy.nix
@@ -0,0 +1,107 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.ananicy;
+ configFile = pkgs.writeText "ananicy.conf" (generators.toKeyValue { } cfg.settings);
+ extraRules = pkgs.writeText "extraRules" cfg.extraRules;
+ servicename = if ((lib.getName cfg.package) == (lib.getName pkgs.ananicy-cpp)) then "ananicy-cpp" else "ananicy";
+in
+{
+ options = {
+ services.ananicy = {
+ enable = mkEnableOption "Ananicy, an auto nice daemon";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.ananicy;
+ defaultText = literalExpression "pkgs.ananicy";
+ example = literalExpression "pkgs.ananicy-cpp";
+ description = ''
+ Which ananicy package to use.
+ '';
+ };
+
+ settings = mkOption {
+ type = with types; attrsOf (oneOf [ int bool str ]);
+ default = { };
+ example = {
+ apply_nice = false;
+ };
+ description = ''
+ See
+ '';
+ };
+
+ extraRules = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ Extra rules in json format on separate lines. See:
+
+
+ '';
+ example = literalExpression ''
+ '''
+ { "name": "eog", "type": "Image-View" }
+ { "name": "fdupes", "type": "BG_CPUIO" }
+ '''
+ '';
+
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment = {
+ systemPackages = [ cfg.package ];
+ etc."ananicy.d".source = pkgs.runCommandLocal "ananicyfiles" { } ''
+ mkdir -p $out
+ # ananicy-cpp does not include rules or settings on purpose
+ cp -r ${pkgs.ananicy}/etc/ananicy.d/* $out
+ rm $out/ananicy.conf
+ cp ${configFile} $out/ananicy.conf
+ ${optionalString (cfg.extraRules != "") "cp ${extraRules} $out/nixRules.rules"}
+ '';
+ };
+
+ # ananicy and ananicy-cpp have different default settings
+ services.ananicy.settings =
+ let
+ mkOD = mkOptionDefault;
+ in
+ {
+ cgroup_load = mkOD true;
+ type_load = mkOD true;
+ rule_load = mkOD true;
+ apply_nice = mkOD true;
+ apply_ioclass = mkOD true;
+ apply_ionice = mkOD true;
+ apply_sched = mkOD true;
+ apply_oom_score_adj = mkOD true;
+ apply_cgroup = mkOD true;
+ } // (if ((lib.getName cfg.package) == (lib.getName pkgs.ananicy-cpp)) then {
+ # https://gitlab.com/ananicy-cpp/ananicy-cpp/-/blob/master/src/config.cpp#L12
+ loglevel = mkOD "warn"; # default is info but its spammy
+ cgroup_realtime_workaround = mkOD true;
+ } else {
+ # https://github.com/Nefelim4ag/Ananicy/blob/master/ananicy.d/ananicy.conf
+ check_disks_schedulers = mkOD true;
+ check_freq = mkOD 5;
+ });
+
+ systemd = {
+ # https://gitlab.com/ananicy-cpp/ananicy-cpp/#cgroups applies to both ananicy and -cpp
+ enableUnifiedCgroupHierarchy = mkDefault false;
+ packages = [ cfg.package ];
+ services."${servicename}" = {
+ wantedBy = [ "default.target" ];
+ };
+ };
+ };
+
+ meta = {
+ maintainers = with maintainers; [ artturin ];
+ };
+}
diff --git a/nixos/modules/services/misc/ankisyncd.nix b/nixos/modules/services/misc/ankisyncd.nix
index 5fc19649d3d9..69e471f4f577 100644
--- a/nixos/modules/services/misc/ankisyncd.nix
+++ b/nixos/modules/services/misc/ankisyncd.nix
@@ -33,7 +33,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.ankisyncd;
- defaultText = literalExample "pkgs.ankisyncd";
+ defaultText = literalExpression "pkgs.ankisyncd";
description = "The package to use for the ankisyncd command.";
};
diff --git a/nixos/modules/services/misc/apache-kafka.nix b/nixos/modules/services/misc/apache-kafka.nix
index 8bc307311a42..d1856fff4aa4 100644
--- a/nixos/modules/services/misc/apache-kafka.nix
+++ b/nixos/modules/services/misc/apache-kafka.nix
@@ -102,14 +102,14 @@ in {
package = mkOption {
description = "The kafka package to use";
default = pkgs.apacheKafka;
- defaultText = "pkgs.apacheKafka";
+ defaultText = literalExpression "pkgs.apacheKafka";
type = types.package;
};
jre = mkOption {
description = "The JRE with which to run Kafka";
default = cfg.package.passthru.jre;
- defaultText = "pkgs.apacheKafka.passthru.jre";
+ defaultText = literalExpression "pkgs.apacheKafka.passthru.jre";
type = types.package;
};
diff --git a/nixos/modules/services/misc/autofs.nix b/nixos/modules/services/misc/autofs.nix
index 541f0d2db19f..5fce990afece 100644
--- a/nixos/modules/services/misc/autofs.nix
+++ b/nixos/modules/services/misc/autofs.nix
@@ -29,7 +29,7 @@ in
autoMaster = mkOption {
type = types.str;
- example = literalExample ''
+ example = literalExpression ''
let
mapConf = pkgs.writeText "auto" '''
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
diff --git a/nixos/modules/services/misc/bees.nix b/nixos/modules/services/misc/bees.nix
index 6b8cae84642f..cb97a86b8592 100644
--- a/nixos/modules/services/misc/bees.nix
+++ b/nixos/modules/services/misc/bees.nix
@@ -61,7 +61,7 @@ let
description = ''
Extra command-line options passed to the daemon. See upstream bees documentation.
'';
- example = literalExample ''
+ example = literalExpression ''
[ "--thread-count" "4" ]
'';
};
@@ -75,7 +75,7 @@ in
type = with types; attrsOf (submodule fsOptions);
description = "BTRFS filesystems to run block-level deduplication on.";
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
root = {
spec = "LABEL=root";
diff --git a/nixos/modules/services/misc/cfdyndns.nix b/nixos/modules/services/misc/cfdyndns.nix
index 15af1f50da1d..5885617d7429 100644
--- a/nixos/modules/services/misc/cfdyndns.nix
+++ b/nixos/modules/services/misc/cfdyndns.nix
@@ -48,7 +48,7 @@ in
description = "CloudFlare Dynamic DNS Client";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- startAt = "5 minutes";
+ startAt = "*:0/5";
serviceConfig = {
Type = "simple";
User = config.ids.uids.cfdyndns;
diff --git a/nixos/modules/services/misc/cgminer.nix b/nixos/modules/services/misc/cgminer.nix
index 5afc1546efa9..60f75530723b 100644
--- a/nixos/modules/services/misc/cgminer.nix
+++ b/nixos/modules/services/misc/cgminer.nix
@@ -35,7 +35,7 @@ in
package = mkOption {
default = pkgs.cgminer;
- defaultText = "pkgs.cgminer";
+ defaultText = literalExpression "pkgs.cgminer";
description = "Which cgminer derivation to use.";
type = types.package;
};
diff --git a/nixos/modules/services/misc/clipcat.nix b/nixos/modules/services/misc/clipcat.nix
index 128bb9a89d69..8b749aa72896 100644
--- a/nixos/modules/services/misc/clipcat.nix
+++ b/nixos/modules/services/misc/clipcat.nix
@@ -12,7 +12,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.clipcat;
- defaultText = "pkgs.clipcat";
+ defaultText = literalExpression "pkgs.clipcat";
description = "clipcat derivation to use.";
};
};
diff --git a/nixos/modules/services/misc/clipmenu.nix b/nixos/modules/services/misc/clipmenu.nix
index 3ba050044cac..ef95985f8d8a 100644
--- a/nixos/modules/services/misc/clipmenu.nix
+++ b/nixos/modules/services/misc/clipmenu.nix
@@ -12,7 +12,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.clipmenu;
- defaultText = "pkgs.clipmenu";
+ defaultText = literalExpression "pkgs.clipmenu";
description = "clipmenu derivation to use.";
};
};
diff --git a/nixos/modules/services/misc/confd.nix b/nixos/modules/services/misc/confd.nix
index c1ebdb3dde91..6c66786524ba 100755
--- a/nixos/modules/services/misc/confd.nix
+++ b/nixos/modules/services/misc/confd.nix
@@ -64,7 +64,7 @@ in {
package = mkOption {
description = "Confd package to use.";
default = pkgs.confd;
- defaultText = "pkgs.confd";
+ defaultText = literalExpression "pkgs.confd";
type = types.package;
};
};
diff --git a/nixos/modules/services/misc/dictd.nix b/nixos/modules/services/misc/dictd.nix
index 6e796a3a1fce..96e2a4e7c260 100644
--- a/nixos/modules/services/misc/dictd.nix
+++ b/nixos/modules/services/misc/dictd.nix
@@ -25,8 +25,8 @@ in
DBs = mkOption {
type = types.listOf types.package;
default = with pkgs.dictdDBs; [ wiktionary wordnet ];
- defaultText = "with pkgs.dictdDBs; [ wiktionary wordnet ]";
- example = literalExample "[ pkgs.dictdDBs.nld2eng ]";
+ defaultText = literalExpression "with pkgs.dictdDBs; [ wiktionary wordnet ]";
+ example = literalExpression "[ pkgs.dictdDBs.nld2eng ]";
description = "List of databases to make available.";
};
diff --git a/nixos/modules/services/misc/disnix.nix b/nixos/modules/services/misc/disnix.nix
index 24a259bb4d2b..07c0613336aa 100644
--- a/nixos/modules/services/misc/disnix.nix
+++ b/nixos/modules/services/misc/disnix.nix
@@ -31,7 +31,7 @@ in
type = types.path;
description = "The Disnix package";
default = pkgs.disnix;
- defaultText = "pkgs.disnix";
+ defaultText = literalExpression "pkgs.disnix";
};
enableProfilePath = mkEnableOption "exposing the Disnix profiles in the system's PATH";
@@ -39,7 +39,6 @@ in
profiles = mkOption {
type = types.listOf types.str;
default = [ "default" ];
- example = [ "default" ];
description = "Names of the Disnix profiles to expose in the system's PATH";
};
};
diff --git a/nixos/modules/services/misc/dwm-status.nix b/nixos/modules/services/misc/dwm-status.nix
index b98a42e6a6d2..5f591b3c5d41 100644
--- a/nixos/modules/services/misc/dwm-status.nix
+++ b/nixos/modules/services/misc/dwm-status.nix
@@ -27,8 +27,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.dwm-status;
- defaultText = "pkgs.dwm-status";
- example = "pkgs.dwm-status.override { enableAlsaUtils = false; }";
+ defaultText = literalExpression "pkgs.dwm-status";
+ example = literalExpression "pkgs.dwm-status.override { enableAlsaUtils = false; }";
description = ''
Which dwm-status package to use.
'';
diff --git a/nixos/modules/services/misc/etcd.nix b/nixos/modules/services/misc/etcd.nix
index 2b667fab6b04..c4ea091a0380 100644
--- a/nixos/modules/services/misc/etcd.nix
+++ b/nixos/modules/services/misc/etcd.nix
@@ -123,7 +123,7 @@ in {
'';
type = types.attrsOf types.str;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"CORS" = "*";
"NAME" = "default-name";
diff --git a/nixos/modules/services/misc/etebase-server.nix b/nixos/modules/services/misc/etebase-server.nix
index b6bd6e9fd37b..dd84ac37b0d5 100644
--- a/nixos/modules/services/misc/etebase-server.nix
+++ b/nixos/modules/services/misc/etebase-server.nix
@@ -97,13 +97,13 @@ in
static_root = mkOption {
type = types.str;
default = "${cfg.dataDir}/static";
- defaultText = "\${config.services.etebase-server.dataDir}/static";
+ defaultText = literalExpression ''"''${config.services.etebase-server.dataDir}/static"'';
description = "The directory for static files.";
};
media_root = mkOption {
type = types.str;
default = "${cfg.dataDir}/media";
- defaultText = "\${config.services.etebase-server.dataDir}/media";
+ defaultText = literalExpression ''"''${config.services.etebase-server.dataDir}/media"'';
description = "The media directory.";
};
};
@@ -126,7 +126,7 @@ in
name = mkOption {
type = types.str;
default = "${cfg.dataDir}/db.sqlite3";
- defaultText = "\${config.services.etebase-server.dataDir}/db.sqlite3";
+ defaultText = literalExpression ''"''${config.services.etebase-server.dataDir}/db.sqlite3"'';
description = "The database name.";
};
};
diff --git a/nixos/modules/services/misc/felix.nix b/nixos/modules/services/misc/felix.nix
index 8d438bb9eb19..0283de128afe 100644
--- a/nixos/modules/services/misc/felix.nix
+++ b/nixos/modules/services/misc/felix.nix
@@ -22,7 +22,7 @@ in
bundles = mkOption {
type = types.listOf types.package;
default = [ pkgs.felix_remoteshell ];
- defaultText = "[ pkgs.felix_remoteshell ]";
+ defaultText = literalExpression "[ pkgs.felix_remoteshell ]";
description = "List of bundles that should be activated on startup";
};
diff --git a/nixos/modules/services/misc/freeswitch.nix b/nixos/modules/services/misc/freeswitch.nix
index b42f36e86637..472b0b73ff69 100644
--- a/nixos/modules/services/misc/freeswitch.nix
+++ b/nixos/modules/services/misc/freeswitch.nix
@@ -32,8 +32,8 @@ in {
configTemplate = mkOption {
type = types.path;
default = "${config.services.freeswitch.package}/share/freeswitch/conf/vanilla";
- defaultText = literalExample "\${config.services.freeswitch.package}/share/freeswitch/conf/vanilla";
- example = literalExample "\${config.services.freeswitch.package}/share/freeswitch/conf/minimal";
+ defaultText = literalExpression ''"''${config.services.freeswitch.package}/share/freeswitch/conf/vanilla"'';
+ example = literalExpression ''"''${config.services.freeswitch.package}/share/freeswitch/conf/minimal"'';
description = ''
Configuration template to use.
See available templates in FreeSWITCH repository.
@@ -43,7 +43,7 @@ in {
configDir = mkOption {
type = with types; attrsOf path;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"freeswitch.xml" = ./freeswitch.xml;
"dialplan/default.xml" = pkgs.writeText "dialplan-default.xml" '''
@@ -61,8 +61,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.freeswitch;
- defaultText = literalExample "pkgs.freeswitch";
- example = literalExample "pkgs.freeswitch";
+ defaultText = literalExpression "pkgs.freeswitch";
description = ''
FreeSWITCH package.
'';
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index 8322b7c09022..c0f7661c5698 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -32,7 +32,7 @@ in
package = mkOption {
default = pkgs.gitea;
type = types.package;
- defaultText = "pkgs.gitea";
+ defaultText = literalExpression "pkgs.gitea";
description = "gitea derivation to use";
};
@@ -55,7 +55,7 @@ in
description = "Root path for log files.";
};
level = mkOption {
- default = "Trace";
+ default = "Info";
type = types.enum [ "Trace" "Debug" "Info" "Warn" "Error" "Critical" ];
description = "General log level.";
};
@@ -122,7 +122,7 @@ in
socket = mkOption {
type = types.nullOr types.path;
default = if (cfg.database.createDatabase && usePostgresql) then "/run/postgresql" else if (cfg.database.createDatabase && useMysql) then "/run/mysqld/mysqld.sock" else null;
- defaultText = "null";
+ defaultText = literalExpression "null";
example = "/run/mysqld/mysqld.sock";
description = "Path to the unix socket file to use for authentication.";
};
@@ -255,8 +255,9 @@ in
};
staticRootPath = mkOption {
- type = types.str;
- default = "${gitea.data}";
+ type = types.either types.str types.path;
+ default = gitea.data;
+ defaultText = literalExpression "package.data";
example = "/var/lib/gitea/data";
description = "Upper level of template and static files path.";
};
@@ -287,7 +288,7 @@ in
Gitea configuration. Refer to
for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"cron.sync_external_users" = {
RUN_AT_START = true;
@@ -348,7 +349,7 @@ in
server = mkMerge [
{
DOMAIN = cfg.domain;
- STATIC_ROOT_PATH = cfg.staticRootPath;
+ STATIC_ROOT_PATH = toString cfg.staticRootPath;
LFS_JWT_SECRET = "#lfsjwtsecret#";
ROOT_URL = cfg.rootUrl;
}
diff --git a/nixos/modules/services/misc/gitit.nix b/nixos/modules/services/misc/gitit.nix
index f09565283f3c..ceb186c0f049 100644
--- a/nixos/modules/services/misc/gitit.nix
+++ b/nixos/modules/services/misc/gitit.nix
@@ -36,15 +36,15 @@ let
haskellPackages = mkOption {
default = pkgs.haskellPackages;
- defaultText = "pkgs.haskellPackages";
- example = literalExample "pkgs.haskell.packages.ghc784";
+ defaultText = literalExpression "pkgs.haskellPackages";
+ example = literalExpression "pkgs.haskell.packages.ghc784";
description = "haskellPackages used to build gitit and plugins.";
};
extraPackages = mkOption {
type = types.functionTo (types.listOf types.package);
default = self: [];
- example = literalExample ''
+ example = literalExpression ''
haskellPackages: [
haskellPackages.wreq
]
@@ -665,9 +665,9 @@ in
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ curl ]
++ optional cfg.pdfExport texlive.combined.scheme-basic
- ++ optional (cfg.repositoryType == "darcs") darcs
- ++ optional (cfg.repositoryType == "mercurial") mercurial
- ++ optional (cfg.repositoryType == "git") git;
+ ++ optional (cfg.repositoryType == "darcs") darcs
+ ++ optional (cfg.repositoryType == "mercurial") mercurial
+ ++ optional (cfg.repositoryType == "git") git;
preStart = let
gm = "gitit@${config.networking.hostName}";
@@ -684,35 +684,35 @@ in
fi
done
cd ${repositoryPath}
- ${
- if repositoryType == "darcs" then
- ''
- if [ ! -d _darcs ]
- then
- ${pkgs.darcs}/bin/darcs initialize
- echo "${gm}" > _darcs/prefs/email
- ''
- else if repositoryType == "mercurial" then
- ''
- if [ ! -d .hg ]
- then
- ${pkgs.mercurial}/bin/hg init
- cat >> .hg/hgrc < _darcs/prefs/email
+ ''
+ else if repositoryType == "mercurial" then
+ ''
+ if [ ! -d .hg ]
+ then
+ ${pkgs.mercurial}/bin/hg init
+ cat >> .hg/hgrc <~/.gitolite.rc.
diff --git a/nixos/modules/services/misc/greenclip.nix b/nixos/modules/services/misc/greenclip.nix
index 9152a782d7f0..32e8d746cb5c 100644
--- a/nixos/modules/services/misc/greenclip.nix
+++ b/nixos/modules/services/misc/greenclip.nix
@@ -12,7 +12,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.haskellPackages.greenclip;
- defaultText = "pkgs.haskellPackages.greenclip";
+ defaultText = literalExpression "pkgs.haskellPackages.greenclip";
description = "greenclip derivation to use.";
};
};
diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix
index 800bea4ff571..8279d075bafb 100644
--- a/nixos/modules/services/misc/home-assistant.nix
+++ b/nixos/modules/services/misc/home-assistant.nix
@@ -112,7 +112,7 @@ in {
emptyValue.value = {};
};
in valueType;
- example = literalExample ''
+ example = literalExpression ''
{
homeassistant = {
name = "Home";
@@ -152,7 +152,7 @@ in {
default = null;
type = with types; nullOr attrs;
# from https://www.home-assistant.io/lovelace/yaml-mode/
- example = literalExample ''
+ example = literalExpression ''
{
title = "My Awesome Home";
views = [ {
@@ -188,13 +188,13 @@ in {
default = pkgs.home-assistant.overrideAttrs (oldAttrs: {
doInstallCheck = false;
});
- defaultText = literalExample ''
+ defaultText = literalExpression ''
pkgs.home-assistant.overrideAttrs (oldAttrs: {
doInstallCheck = false;
})
'';
type = types.package;
- example = literalExample ''
+ example = literalExpression ''
pkgs.home-assistant.override {
extraPackages = ps: with ps; [ colorlog ];
}
diff --git a/nixos/modules/services/misc/ihaskell.nix b/nixos/modules/services/misc/ihaskell.nix
index c7332b87803a..9978e8a46534 100644
--- a/nixos/modules/services/misc/ihaskell.nix
+++ b/nixos/modules/services/misc/ihaskell.nix
@@ -6,7 +6,7 @@ let
cfg = config.services.ihaskell;
ihaskell = pkgs.ihaskell.override {
- packages = self: cfg.extraPackages self;
+ packages = cfg.extraPackages;
};
in
@@ -22,8 +22,9 @@ in
extraPackages = mkOption {
type = types.functionTo (types.listOf types.package);
- default = self: [];
- example = literalExample ''
+ default = haskellPackages: [];
+ defaultText = literalExpression "haskellPackages: []";
+ example = literalExpression ''
haskellPackages: [
haskellPackages.wreq
haskellPackages.lens
diff --git a/nixos/modules/services/misc/jackett.nix b/nixos/modules/services/misc/jackett.nix
index f2dc6635df93..c2144d4a9a9f 100644
--- a/nixos/modules/services/misc/jackett.nix
+++ b/nixos/modules/services/misc/jackett.nix
@@ -38,7 +38,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.jackett;
- defaultText = "pkgs.jackett";
+ defaultText = literalExpression "pkgs.jackett";
description = "Jackett package to use.";
};
};
diff --git a/nixos/modules/services/misc/jellyfin.nix b/nixos/modules/services/misc/jellyfin.nix
index 6d64acc02910..b9d54f27edc2 100644
--- a/nixos/modules/services/misc/jellyfin.nix
+++ b/nixos/modules/services/misc/jellyfin.nix
@@ -19,7 +19,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.jellyfin;
- example = literalExample "pkgs.jellyfin";
+ defaultText = literalExpression "pkgs.jellyfin";
description = ''
Jellyfin package to use.
'';
diff --git a/nixos/modules/services/misc/klipper.nix b/nixos/modules/services/misc/klipper.nix
index e6b9dd234a9b..7b3780b5cc9f 100644
--- a/nixos/modules/services/misc/klipper.nix
+++ b/nixos/modules/services/misc/klipper.nix
@@ -19,6 +19,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.klipper;
+ defaultText = literalExpression "pkgs.klipper";
description = "The Klipper package.";
};
diff --git a/nixos/modules/services/misc/lidarr.nix b/nixos/modules/services/misc/lidarr.nix
index 8ff1adadcf23..20153c7e61a6 100644
--- a/nixos/modules/services/misc/lidarr.nix
+++ b/nixos/modules/services/misc/lidarr.nix
@@ -19,7 +19,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.lidarr;
- defaultText = "pkgs.lidarr";
+ defaultText = literalExpression "pkgs.lidarr";
description = "The Lidarr package to use";
};
diff --git a/nixos/modules/services/misc/matrix-appservice-discord.nix b/nixos/modules/services/misc/matrix-appservice-discord.nix
index 71d1227f4ff7..c448614eca32 100644
--- a/nixos/modules/services/misc/matrix-appservice-discord.nix
+++ b/nixos/modules/services/misc/matrix-appservice-discord.nix
@@ -31,7 +31,7 @@ in {
botToken = "";
};
};
- example = literalExample ''
+ example = literalExpression ''
{
bridge = {
domain = "public-domain.tld";
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index e150a1aaaad1..950c72c6e589 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -122,10 +122,18 @@ in {
options = {
services.matrix-synapse = {
enable = mkEnableOption "matrix.org synapse";
+ configFile = mkOption {
+ type = types.str;
+ readOnly = true;
+ description = ''
+ Path to the configuration file on the target system. Useful to configure e.g. workers
+ that also need this.
+ '';
+ };
package = mkOption {
type = types.package;
default = pkgs.matrix-synapse;
- defaultText = "pkgs.matrix-synapse";
+ defaultText = literalExpression "pkgs.matrix-synapse";
description = ''
Overridable attribute of the matrix synapse server package to use.
'';
@@ -133,7 +141,7 @@ in {
plugins = mkOption {
type = types.listOf types.package;
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
with config.services.matrix-synapse.package.plugins; [
matrix-synapse-ldap3
matrix-synapse-pam
@@ -706,6 +714,8 @@ in {
}
];
+ services.matrix-synapse.configFile = "${configFile}";
+
users.users.matrix-synapse = {
group = "matrix-synapse";
home = cfg.dataDir;
diff --git a/nixos/modules/services/misc/mautrix-facebook.nix b/nixos/modules/services/misc/mautrix-facebook.nix
new file mode 100644
index 000000000000..e046c791ac01
--- /dev/null
+++ b/nixos/modules/services/misc/mautrix-facebook.nix
@@ -0,0 +1,195 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ cfg = config.services.mautrix-facebook;
+ settingsFormat = pkgs.formats.json {};
+ settingsFile = settingsFormat.generate "mautrix-facebook-config.json" cfg.settings;
+
+ puppetRegex = concatStringsSep
+ ".*"
+ (map
+ escapeRegex
+ (splitString
+ "{userid}"
+ cfg.settings.bridge.username_template));
+in {
+ options = {
+ services.mautrix-facebook = {
+ enable = mkEnableOption "Mautrix-Facebook, a Matrix-Facebook hybrid puppeting/relaybot bridge";
+
+ settings = mkOption rec {
+ apply = recursiveUpdate default;
+ type = settingsFormat.type;
+ default = {
+ homeserver = {
+ address = "http://localhost:8008";
+ };
+
+ appservice = rec {
+ address = "http://${hostname}:${toString port}";
+ hostname = "localhost";
+ port = 29319;
+
+ database = "postgresql://";
+
+ bot_username = "facebookbot";
+ };
+
+ metrics.enabled = false;
+ manhole.enabled = false;
+
+ bridge = {
+ encryption = {
+ allow = true;
+ default = true;
+ };
+ username_template = "facebook_{userid}";
+ };
+
+ logging = {
+ version = 1;
+ formatters.journal_fmt.format = "%(name)s: %(message)s";
+ handlers.journal = {
+ class = "systemd.journal.JournalHandler";
+ formatter = "journal_fmt";
+ SYSLOG_IDENTIFIER = "mautrix-facebook";
+ };
+ root = {
+ level = "INFO";
+ handlers = ["journal"];
+ };
+ };
+ };
+ example = literalExpression ''
+ {
+ homeserver = {
+ address = "http://localhost:8008";
+ domain = "mydomain.example";
+ };
+
+ bridge.permissions = {
+ "@admin:mydomain.example" = "admin";
+ "mydomain.example" = "user";
+ };
+ }
+ '';
+ description = ''
+ config.yaml configuration as a Nix attribute set.
+ Configuration options should match those described in
+
+ example-config.yaml.
+
+
+
+ Secret tokens should be specified using
+ instead of this world-readable attribute set.
+ '';
+ };
+
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ File containing environment variables to be passed to the mautrix-telegram service.
+
+ Any config variable can be overridden by setting MAUTRIX_FACEBOOK_SOME_KEY to override the some.key variable.
+ '';
+ };
+
+ configurePostgresql = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Enable PostgreSQL and create a user and database for mautrix-facebook. The default settings reference this database, if you disable this option you must provide a database URL.
+ '';
+ };
+
+ registrationData = mkOption {
+ type = types.attrs;
+ default = {};
+ description = ''
+ Output data for appservice registration. Simply make any desired changes and serialize to JSON. Note that this data contains secrets so think twice before putting it into the nix store.
+
+ Currently as_token and hs_token need to be added as they are not known to this module.
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ users.users.mautrix-facebook = {
+ group = "mautrix-facebook";
+ isSystemUser = true;
+ };
+
+ services.postgresql = mkIf cfg.configurePostgresql {
+ ensureDatabases = ["mautrix-facebook"];
+ ensureUsers = [{
+ name = "mautrix-facebook";
+ ensurePermissions = {
+ "DATABASE \"mautrix-facebook\"" = "ALL PRIVILEGES";
+ };
+ }];
+ };
+
+ systemd.services.mautrix-facebook = rec {
+ wantedBy = [ "multi-user.target" ];
+ wants = [
+ "network-online.target"
+ ] ++ optional config.services.matrix-synapse.enable "matrix-synapse.service"
+ ++ optional cfg.configurePostgresql "postgresql.service";
+ after = wants;
+
+ serviceConfig = {
+ Type = "simple";
+ Restart = "always";
+
+ User = "mautrix-facebook";
+
+ ProtectSystem = "strict";
+ ProtectHome = true;
+ ProtectKernelTunables = true;
+ ProtectKernelModules = true;
+ ProtectControlGroups = true;
+ PrivateTmp = true;
+
+ EnvironmentFile = cfg.environmentFile;
+
+ ExecStart = ''
+ ${pkgs.mautrix-facebook}/bin/mautrix-facebook --config=${settingsFile}
+ '';
+ };
+ };
+
+ services.mautrix-facebook = {
+ registrationData = {
+ id = "mautrix-facebook";
+
+ namespaces = {
+ users = [
+ {
+ exclusive = true;
+ regex = escapeRegex "@${cfg.settings.appservice.bot_username}:${cfg.settings.homeserver.domain}";
+ }
+ {
+ exclusive = true;
+ regex = "@${puppetRegex}:${escapeRegex cfg.settings.homeserver.domain}";
+ }
+ ];
+ aliases = [];
+ };
+
+ url = cfg.settings.appservice.address;
+ sender_localpart = "mautrix-facebook-sender";
+
+ rate_limited = false;
+ "de.sorunome.msc2409.push_ephemeral" = true;
+ push_ephemeral = true;
+ };
+ };
+ };
+
+ meta.maintainers = with maintainers; [ kevincox ];
+}
diff --git a/nixos/modules/services/misc/mautrix-telegram.nix b/nixos/modules/services/misc/mautrix-telegram.nix
index 717cf7936ead..59d0b6824090 100644
--- a/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixos/modules/services/misc/mautrix-telegram.nix
@@ -60,7 +60,7 @@ in {
};
};
};
- example = literalExample ''
+ example = literalExpression ''
{
homeserver = {
address = "http://localhost:8008";
diff --git a/nixos/modules/services/misc/mbpfan.nix b/nixos/modules/services/misc/mbpfan.nix
index e22d1ed61f99..d80b6fafc2cf 100644
--- a/nixos/modules/services/misc/mbpfan.nix
+++ b/nixos/modules/services/misc/mbpfan.nix
@@ -13,7 +13,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.mbpfan;
- defaultText = "pkgs.mbpfan";
+ defaultText = literalExpression "pkgs.mbpfan";
description = ''
The package used for the mbpfan daemon.
'';
diff --git a/nixos/modules/services/misc/mediatomb.nix b/nixos/modules/services/misc/mediatomb.nix
index a19b73889ce4..383090575b22 100644
--- a/nixos/modules/services/misc/mediatomb.nix
+++ b/nixos/modules/services/misc/mediatomb.nix
@@ -216,10 +216,11 @@ in {
package = mkOption {
type = types.package;
- example = literalExample "pkgs.mediatomb";
+ example = literalExpression "pkgs.mediatomb";
default = pkgs.gerbera;
+ defaultText = literalExpression "pkgs.gerbera";
description = ''
- Underlying package to be used with the module (default: pkgs.gerbera).
+ Underlying package to be used with the module.
'';
};
@@ -325,7 +326,7 @@ in {
mediaDirectories = mkOption {
type = with types; listOf (submodule mediaDirectory);
- default = {};
+ default = [];
description = ''
Declare media directories to index.
'';
diff --git a/nixos/modules/services/misc/mx-puppet-discord.nix b/nixos/modules/services/misc/mx-puppet-discord.nix
index 11116f7c3489..c34803f97223 100644
--- a/nixos/modules/services/misc/mx-puppet-discord.nix
+++ b/nixos/modules/services/misc/mx-puppet-discord.nix
@@ -45,7 +45,7 @@ in {
lineDateFormat = "MMM-D HH:mm:ss.SSS";
};
};
- example = literalExample ''
+ example = literalExpression ''
{
bridge = {
bindAddress = "localhost";
diff --git a/nixos/modules/services/misc/n8n.nix b/nixos/modules/services/misc/n8n.nix
index 516d0f70ef0b..27616e5f8226 100644
--- a/nixos/modules/services/misc/n8n.nix
+++ b/nixos/modules/services/misc/n8n.nix
@@ -66,7 +66,7 @@ in
RestrictNamespaces = "yes";
RestrictRealtime = "yes";
RestrictSUIDSGID = "yes";
- MemoryDenyWriteExecute = "yes";
+ MemoryDenyWriteExecute = "no"; # v8 JIT requires memory segments to be Writable-Executable.
LockPersonality = "yes";
};
};
diff --git a/nixos/modules/services/misc/nitter.nix b/nixos/modules/services/misc/nitter.nix
index 301af76c336a..0c562343d85d 100644
--- a/nixos/modules/services/misc/nitter.nix
+++ b/nixos/modules/services/misc/nitter.nix
@@ -79,7 +79,7 @@ in
staticDir = mkOption {
type = types.path;
default = "${pkgs.nitter}/share/nitter/public";
- defaultText = "\${pkgs.nitter}/share/nitter/public";
+ defaultText = literalExpression ''"''${pkgs.nitter}/share/nitter/public"'';
description = "Path to the static files directory.";
};
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 70b27b7d3d09..d04937004777 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -82,10 +82,19 @@ in
nix = {
+ enable = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to enable Nix.
+ Disabling Nix makes the system hard to modify and the Nix programs and configuration will not be made available by NixOS itself.
+ '';
+ };
+
package = mkOption {
type = types.package;
default = pkgs.nix;
- defaultText = "pkgs.nix";
+ defaultText = literalExpression "pkgs.nix";
description = ''
This option specifies the Nix package instance to use throughout the system.
'';
@@ -180,7 +189,19 @@ in
default = 0;
description = ''
Nix daemon process priority. This priority propagates to build processes.
- 0 is the default Unix process priority, 19 is the lowest.
+ 0 is the default Unix process priority, 19 is the lowest. Note that nix
+ bypasses nix-daemon when running as root and this option does not have
+ any effect in such a case.
+
+ Please note that if used on a recent Linux kernel with group scheduling,
+ setting the nice level will only have an effect relative to other threads
+ in the same task group. Therefore this option is only useful if
+ autogrouping has been disabled (see the kernel.sched_autogroup_enabled
+ sysctl) and no systemd unit uses any of the per-service CPU accounting
+ features of systemd. Otherwise the Nix daemon process may be placed in a
+ separate task group and the nice level setting will have no effect.
+ Refer to the man pages sched(7) and systemd.resource-control(5) for
+ details.
'';
};
@@ -460,7 +481,7 @@ in
flake = mkOption {
type = types.nullOr types.attrs;
default = null;
- example = literalExample "nixpkgs";
+ example = literalExpression "nixpkgs";
description = ''
The flake input to which is to be rewritten.
'';
@@ -499,7 +520,7 @@ in
###### implementation
- config = {
+ config = mkIf cfg.enable {
nix.binaryCachePublicKeys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
nix.binaryCaches = [ "https://cache.nixos.org/" ];
@@ -534,6 +555,22 @@ in
+ "\n"
) cfg.buildMachines;
};
+ assertions =
+ let badMachine = m: m.system == null && m.systems == [];
+ in [
+ {
+ assertion = !(builtins.any badMachine cfg.buildMachines);
+ message = ''
+ At least one system type (via system or
+ systems) must be set for every build machine.
+ Invalid machine specifications:
+ '' + " " +
+ (builtins.concatStringsSep "\n "
+ (builtins.map (m: m.hostName)
+ (builtins.filter (badMachine) cfg.buildMachines)));
+ }
+ ];
+
systemd.packages = [ nix ];
diff --git a/nixos/modules/services/misc/nzbhydra2.nix b/nixos/modules/services/misc/nzbhydra2.nix
index c396b4b8f6e9..500c40f117dd 100644
--- a/nixos/modules/services/misc/nzbhydra2.nix
+++ b/nixos/modules/services/misc/nzbhydra2.nix
@@ -25,7 +25,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.nzbhydra2;
- defaultText = "pkgs.nzbhydra2";
+ defaultText = literalExpression "pkgs.nzbhydra2";
description = "NZBHydra2 package to use.";
};
};
diff --git a/nixos/modules/services/misc/octoprint.nix b/nixos/modules/services/misc/octoprint.nix
index 7129ac69527f..cd846d3f268d 100644
--- a/nixos/modules/services/misc/octoprint.nix
+++ b/nixos/modules/services/misc/octoprint.nix
@@ -68,8 +68,8 @@ in
plugins = mkOption {
type = types.functionTo (types.listOf types.package);
default = plugins: [];
- defaultText = "plugins: []";
- example = literalExample "plugins: with plugins; [ themeify stlviewer ]";
+ defaultText = literalExpression "plugins: []";
+ example = literalExpression "plugins: with plugins; [ themeify stlviewer ]";
description = "Additional plugins to be used. Available plugins are passed through the plugins input.";
};
diff --git a/nixos/modules/services/misc/owncast.nix b/nixos/modules/services/misc/owncast.nix
new file mode 100644
index 000000000000..0852335238fd
--- /dev/null
+++ b/nixos/modules/services/misc/owncast.nix
@@ -0,0 +1,98 @@
+{ lib, pkgs, config, ... }:
+with lib;
+let cfg = config.services.owncast;
+in {
+
+ options.services.owncast = {
+
+ enable = mkEnableOption "owncast";
+
+ dataDir = mkOption {
+ type = types.str;
+ default = "/var/lib/owncast";
+ description = ''
+ The directory where owncast stores its data files. If left as the default value this directory will automatically be created before the owncast server starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions.
+ '';
+ };
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Open the appropriate ports in the firewall for owncast.
+ '';
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "owncast";
+ description = "User account under which owncast runs.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "owncast";
+ description = "Group under which owncast runs.";
+ };
+
+ listen = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ example = "0.0.0.0";
+ description = "The IP address to bind the owncast web server to.";
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 8080;
+ description = ''
+ TCP port where owncast web-gui listens.
+ '';
+ };
+
+ rtmp-port = mkOption {
+ type = types.port;
+ default = 1935;
+ description = ''
+ TCP port where owncast rtmp service listens.
+ '';
+ };
+
+ };
+
+ config = mkIf cfg.enable {
+
+ systemd.services.owncast = {
+ description = "A self-hosted live video and web chat server";
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = mkMerge [
+ {
+ User = cfg.user;
+ Group = cfg.group;
+ WorkingDirectory = cfg.dataDir;
+ ExecStart = "${pkgs.owncast}/bin/owncast -webserverport ${toString cfg.port} -rtmpport ${toString cfg.rtmp-port} -webserverip ${cfg.listen}";
+ Restart = "on-failure";
+ }
+ (mkIf (cfg.dataDir == "/var/lib/owncast") {
+ StateDirectory = "owncast";
+ })
+ ];
+ };
+
+ users.users = mkIf (cfg.user == "owncast") {
+ owncast = {
+ isSystemUser = true;
+ group = cfg.group;
+ description = "owncast system user";
+ };
+ };
+
+ users.groups = mkIf (cfg.group == "owncast") { owncast = { }; };
+
+ networking.firewall =
+ mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.rtmp-port ] ++ optional (cfg.listen != "127.0.0.1") cfg.port; };
+
+ };
+ meta = { maintainers = with lib.maintainers; [ MayNiklas ]; };
+}
diff --git a/nixos/modules/services/misc/paperless-ng.nix b/nixos/modules/services/misc/paperless-ng.nix
index 4b7087e17f96..db8082f072c3 100644
--- a/nixos/modules/services/misc/paperless-ng.nix
+++ b/nixos/modules/services/misc/paperless-ng.nix
@@ -107,14 +107,14 @@ in
mediaDir = mkOption {
type = types.str;
default = "${cfg.dataDir}/media";
- defaultText = "\${dataDir}/consume";
+ defaultText = literalExpression ''"''${dataDir}/media"'';
description = "Directory to store the Paperless documents.";
};
consumptionDir = mkOption {
type = types.str;
default = "${cfg.dataDir}/consume";
- defaultText = "\${dataDir}/consume";
+ defaultText = literalExpression ''"''${dataDir}/consume"'';
description = "Directory from which new documents are imported.";
};
@@ -167,7 +167,7 @@ in
See the documentation
for available options.
'';
- example = literalExample ''
+ example = literalExpression ''
{
PAPERLESS_OCR_LANGUAGE = "deu+eng";
}
@@ -183,7 +183,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.paperless-ng;
- defaultText = "pkgs.paperless-ng";
+ defaultText = literalExpression "pkgs.paperless-ng";
description = "The Paperless package to use.";
};
};
diff --git a/nixos/modules/services/misc/plex.nix b/nixos/modules/services/misc/plex.nix
index 7efadf1b9bb1..5f99ee866a50 100644
--- a/nixos/modules/services/misc/plex.nix
+++ b/nixos/modules/services/misc/plex.nix
@@ -68,7 +68,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.plex;
- defaultText = "pkgs.plex";
+ defaultText = literalExpression "pkgs.plex";
description = ''
The Plex package to use. Plex subscribers may wish to use their own
package here, pointing to subscriber-only server versions.
diff --git a/nixos/modules/services/misc/prowlarr.nix b/nixos/modules/services/misc/prowlarr.nix
new file mode 100644
index 000000000000..ef820b4022d5
--- /dev/null
+++ b/nixos/modules/services/misc/prowlarr.nix
@@ -0,0 +1,41 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ cfg = config.services.prowlarr;
+
+in
+{
+ options = {
+ services.prowlarr = {
+ enable = mkEnableOption "Prowlarr";
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Open ports in the firewall for the Prowlarr web interface.";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.prowlarr = {
+ description = "Prowlarr";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ Type = "simple";
+ DynamicUser = true;
+ StateDirectory = "prowlarr";
+ ExecStart = "${pkgs.prowlarr}/bin/Prowlarr -nobrowser -data=/var/lib/prowlarr";
+ Restart = "on-failure";
+ };
+ };
+
+ networking.firewall = mkIf cfg.openFirewall {
+ allowedTCPPorts = [ 9696 ];
+ };
+ };
+}
diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix
index 66c8e558fb04..696b8d1a25d9 100644
--- a/nixos/modules/services/misc/redmine.nix
+++ b/nixos/modules/services/misc/redmine.nix
@@ -2,7 +2,7 @@
let
inherit (lib) mkBefore mkDefault mkEnableOption mkIf mkOption mkRemovedOptionModule types;
- inherit (lib) concatStringsSep literalExample mapAttrsToList;
+ inherit (lib) concatStringsSep literalExpression mapAttrsToList;
inherit (lib) optional optionalAttrs optionalString;
cfg = config.services.redmine;
@@ -54,8 +54,9 @@ in
package = mkOption {
type = types.package;
default = pkgs.redmine;
+ defaultText = literalExpression "pkgs.redmine";
description = "Which Redmine package to use.";
- example = "pkgs.redmine.override { ruby = pkgs.ruby_2_7; }";
+ example = literalExpression "pkgs.redmine.override { ruby = pkgs.ruby_2_7; }";
};
user = mkOption {
@@ -90,7 +91,7 @@ in
for details.
'';
- example = literalExample ''
+ example = literalExpression ''
{
email_delivery = {
delivery_method = "smtp";
@@ -112,7 +113,7 @@ in
See
for details.
'';
- example = literalExample ''
+ example = ''
config.logger.level = Logger::DEBUG
'';
};
@@ -121,7 +122,7 @@ in
type = types.attrsOf types.path;
default = {};
description = "Set of themes.";
- example = literalExample ''
+ example = literalExpression ''
{
dkuk-redmine_alex_skin = builtins.fetchurl {
url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip";
@@ -135,7 +136,7 @@ in
type = types.attrsOf types.path;
default = {};
description = "Set of plugins.";
- example = literalExample ''
+ example = literalExpression ''
{
redmine_env_auth = builtins.fetchurl {
url = "https://github.com/Intera/redmine_env_auth/archive/0.6.zip";
@@ -162,7 +163,7 @@ in
port = mkOption {
type = types.int;
default = if cfg.database.type == "postgresql" then 5432 else 3306;
- defaultText = "3306";
+ defaultText = literalExpression "3306";
description = "Database host port.";
};
@@ -194,7 +195,7 @@ in
if mysqlLocal then "/run/mysqld/mysqld.sock"
else if pgsqlLocal then "/run/postgresql"
else null;
- defaultText = "/run/mysqld/mysqld.sock";
+ defaultText = literalExpression "/run/mysqld/mysqld.sock";
example = "/run/mysqld/mysqld.sock";
description = "Path to the unix socket file to use for authentication.";
};
diff --git a/nixos/modules/services/misc/rippled.nix b/nixos/modules/services/misc/rippled.nix
index 8cdfe0875d89..9c66df2fce1c 100644
--- a/nixos/modules/services/misc/rippled.nix
+++ b/nixos/modules/services/misc/rippled.nix
@@ -210,7 +210,7 @@ in
description = "Which rippled package to use.";
type = types.package;
default = pkgs.rippled;
- defaultText = "pkgs.rippled";
+ defaultText = literalExpression "pkgs.rippled";
};
ports = mkOption {
diff --git a/nixos/modules/services/misc/safeeyes.nix b/nixos/modules/services/misc/safeeyes.nix
index 1e748195e41a..638218d8bb00 100644
--- a/nixos/modules/services/misc/safeeyes.nix
+++ b/nixos/modules/services/misc/safeeyes.nix
@@ -26,12 +26,16 @@ in
config = mkIf cfg.enable {
+ environment.systemPackages = [ pkgs.safeeyes ];
+
systemd.user.services.safeeyes = {
description = "Safeeyes";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
+ path = [ pkgs.alsa-utils ];
+
startLimitIntervalSec = 350;
startLimitBurst = 10;
serviceConfig = {
diff --git a/nixos/modules/services/misc/sickbeard.nix b/nixos/modules/services/misc/sickbeard.nix
index a32dbfa3108f..8e871309c98e 100644
--- a/nixos/modules/services/misc/sickbeard.nix
+++ b/nixos/modules/services/misc/sickbeard.nix
@@ -24,7 +24,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.sickbeard;
- example = literalExample "pkgs.sickrage";
+ defaultText = literalExpression "pkgs.sickbeard";
+ example = literalExpression "pkgs.sickrage";
description =''
Enable pkgs.sickrage or pkgs.sickgear
as an alternative to SickBeard
@@ -85,7 +86,7 @@ in
serviceConfig = {
User = cfg.user;
Group = cfg.group;
- ExecStart = "${sickbeard}/SickBeard.py --datadir ${cfg.dataDir} --config ${cfg.configFile} --port ${toString cfg.port}";
+ ExecStart = "${sickbeard}/bin/${sickbeard.pname} --datadir ${cfg.dataDir} --config ${cfg.configFile} --port ${toString cfg.port}";
};
};
};
diff --git a/nixos/modules/services/misc/signald.nix b/nixos/modules/services/misc/signald.nix
new file mode 100644
index 000000000000..4cd34e4326d7
--- /dev/null
+++ b/nixos/modules/services/misc/signald.nix
@@ -0,0 +1,105 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.signald;
+ dataDir = "/var/lib/signald";
+ defaultUser = "signald";
+in
+{
+ options.services.signald = {
+ enable = mkEnableOption "the signald service";
+
+ user = mkOption {
+ type = types.str;
+ default = defaultUser;
+ description = "User under which signald runs.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = defaultUser;
+ description = "Group under which signald runs.";
+ };
+
+ socketPath = mkOption {
+ type = types.str;
+ default = "/run/signald/signald.sock";
+ description = "Path to the signald socket";
+ };
+ };
+
+ config = mkIf cfg.enable {
+ users.users = optionalAttrs (cfg.user == defaultUser) {
+ ${defaultUser} = {
+ group = cfg.group;
+ isSystemUser = true;
+ };
+ };
+
+ users.groups = optionalAttrs (cfg.group == defaultUser) {
+ ${defaultUser} = { };
+ };
+
+ systemd.services.signald = {
+ description = "A daemon for interacting with the Signal Private Messenger";
+ wants = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ serviceConfig = {
+ User = cfg.user;
+ Group = cfg.group;
+ ExecStart = "${pkgs.signald}/bin/signald -d ${dataDir} -s ${cfg.socketPath}";
+ Restart = "on-failure";
+ StateDirectory = "signald";
+ RuntimeDirectory = "signald";
+ StateDirectoryMode = "0750";
+ RuntimeDirectoryMode = "0750";
+
+ BindReadOnlyPaths = [
+ "/nix/store"
+ "-/etc/resolv.conf"
+ "-/etc/nsswitch.conf"
+ "-/etc/hosts"
+ "-/etc/localtime"
+ ];
+ CapabilityBoundingSet = "";
+ # ProtectClock= adds DeviceAllow=char-rtc r
+ DeviceAllow = "";
+ # Use a static user so other applications can access the files
+ #DynamicUser = true;
+ LockPersonality = true;
+ # Needed for java
+ #MemoryDenyWriteExecute = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ PrivateMounts = true;
+ # Needs network access
+ #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";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/misc/snapper.nix b/nixos/modules/services/misc/snapper.nix
index a821b9b6bf65..3c3f6c4d641b 100644
--- a/nixos/modules/services/misc/snapper.nix
+++ b/nixos/modules/services/misc/snapper.nix
@@ -9,6 +9,14 @@ in
{
options.services.snapper = {
+ snapshotRootOnBoot = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to snapshot root on boot
+ '';
+ };
+
snapshotInterval = mkOption {
type = types.str;
default = "hourly";
@@ -43,16 +51,18 @@ in
configs = mkOption {
default = { };
- example = literalExample {
- home = {
- subvolume = "/home";
- extraConfig = ''
- ALLOW_USERS="alice"
- TIMELINE_CREATE=yes
- TIMELINE_CLEANUP=yes
- '';
- };
- };
+ example = literalExpression ''
+ {
+ home = {
+ subvolume = "/home";
+ extraConfig = '''
+ ALLOW_USERS="alice"
+ TIMELINE_CREATE=yes
+ TIMELINE_CLEANUP=yes
+ ''';
+ };
+ }
+ '';
description = ''
Subvolume configuration
@@ -130,20 +140,22 @@ in
Type = "dbus";
BusName = "org.opensuse.Snapper";
ExecStart = "${pkgs.snapper}/bin/snapperd";
+ CapabilityBoundingSet = "CAP_DAC_OVERRIDE CAP_FOWNER CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_SYS_ADMIN CAP_SYS_MODULE CAP_IPC_LOCK CAP_SYS_NICE";
+ LockPersonality = true;
+ NoNewPrivileges = false;
+ PrivateNetwork = true;
+ ProtectHostname = true;
+ RestrictAddressFamilies = "AF_UNIX";
+ RestrictRealtime = true;
};
};
systemd.services.snapper-timeline = {
description = "Timeline of Snapper Snapshots";
inherit documentation;
+ requires = [ "local-fs.target" ];
serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --timeline";
- };
-
- systemd.timers.snapper-timeline = {
- description = "Timeline of Snapper Snapshots";
- inherit documentation;
- wantedBy = [ "basic.target" ];
- timerConfig.OnCalendar = cfg.snapshotInterval;
+ startAt = cfg.snapshotInterval;
};
systemd.services.snapper-cleanup = {
@@ -155,10 +167,21 @@ in
systemd.timers.snapper-cleanup = {
description = "Cleanup of Snapper Snapshots";
inherit documentation;
- wantedBy = [ "basic.target" ];
+ wantedBy = [ "timers.target" ];
+ requires = [ "local-fs.target" ];
timerConfig.OnBootSec = "10m";
timerConfig.OnUnitActiveSec = cfg.cleanupInterval;
};
+
+ systemd.services.snapper-boot = lib.optionalAttrs cfg.snapshotRootOnBoot {
+ description = "Take snapper snapshot of root on boot";
+ inherit documentation;
+ serviceConfig.ExecStart = "${pkgs.snapper}/bin/snapper --config root create --cleanup-algorithm number --description boot";
+ serviceConfig.type = "oneshot";
+ requires = [ "local-fs.target" ];
+ wantedBy = [ "multi-user.target" ];
+ unitConfig.ConditionPathExists = "/etc/snapper/configs/root";
+ };
+
});
}
-
diff --git a/nixos/modules/services/misc/sourcehut/builds.nix b/nixos/modules/services/misc/sourcehut/builds.nix
index e446f08284f7..f806e8c51b99 100644
--- a/nixos/modules/services/misc/sourcehut/builds.nix
+++ b/nixos/modules/services/misc/sourcehut/builds.nix
@@ -54,7 +54,7 @@ in
images = mkOption {
type = types.attrsOf (types.attrsOf (types.attrsOf types.package));
default = { };
- example = lib.literalExample ''(let
+ example = lib.literalExpression ''(let
# Pinning unstable to allow usage with flakes and limit rebuilds.
pkgs_unstable = builtins.fetchGit {
url = "https://github.com/NixOS/nixpkgs";
diff --git a/nixos/modules/services/misc/sourcehut/git.nix b/nixos/modules/services/misc/sourcehut/git.nix
index 99b9aec06123..2653d77876dc 100644
--- a/nixos/modules/services/misc/sourcehut/git.nix
+++ b/nixos/modules/services/misc/sourcehut/git.nix
@@ -49,7 +49,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.git;
- example = literalExample "pkgs.gitFull";
+ defaultText = literalExpression "pkgs.git";
+ example = literalExpression "pkgs.gitFull";
description = ''
Git package for git.sr.ht. This can help silence collisions.
'';
diff --git a/nixos/modules/services/misc/ssm-agent.nix b/nixos/modules/services/misc/ssm-agent.nix
index c29d03d199bf..4ae596ade174 100644
--- a/nixos/modules/services/misc/ssm-agent.nix
+++ b/nixos/modules/services/misc/ssm-agent.nix
@@ -23,7 +23,7 @@ in {
type = types.path;
description = "The SSM agent package to use";
default = pkgs.ssm-agent.override { overrideEtc = false; };
- defaultText = "pkgs.ssm-agent.override { overrideEtc = false; }";
+ defaultText = literalExpression "pkgs.ssm-agent.override { overrideEtc = false; }";
};
};
diff --git a/nixos/modules/services/misc/subsonic.nix b/nixos/modules/services/misc/subsonic.nix
index e17a98a5e1de..98b85918ad18 100644
--- a/nixos/modules/services/misc/subsonic.nix
+++ b/nixos/modules/services/misc/subsonic.nix
@@ -93,6 +93,7 @@ let cfg = config.services.subsonic; in {
transcoders = mkOption {
type = types.listOf types.path;
default = [ "${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
+ defaultText = literalExpression ''[ "''${pkgs.ffmpeg.bin}/bin/ffmpeg" ]'';
description = ''
List of paths to transcoder executables that should be accessible
from Subsonic. Symlinks will be created to each executable inside
@@ -108,7 +109,7 @@ let cfg = config.services.subsonic; in {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
script = ''
- ${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \
+ ${pkgs.jre8}/bin/java -Xmx${toString cfg.maxMemory}m \
-Dsubsonic.home=${cfg.home} \
-Dsubsonic.host=${cfg.listenAddress} \
-Dsubsonic.port=${toString cfg.port} \
diff --git a/nixos/modules/services/misc/tautulli.nix b/nixos/modules/services/misc/tautulli.nix
index aded33629f1c..9a972b291225 100644
--- a/nixos/modules/services/misc/tautulli.nix
+++ b/nixos/modules/services/misc/tautulli.nix
@@ -47,7 +47,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.tautulli;
- defaultText = "pkgs.tautulli";
+ defaultText = literalExpression "pkgs.tautulli";
description = ''
The Tautulli package to use.
'';
diff --git a/nixos/modules/services/misc/tp-auto-kbbl.nix b/nixos/modules/services/misc/tp-auto-kbbl.nix
new file mode 100644
index 000000000000..59018f7f81ff
--- /dev/null
+++ b/nixos/modules/services/misc/tp-auto-kbbl.nix
@@ -0,0 +1,58 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.services.tp-auto-kbbl;
+
+in {
+ meta.maintainers = with maintainers; [ sebtm ];
+
+ options = {
+ services.tp-auto-kbbl = {
+ enable = mkEnableOption "Auto toggle keyboard back-lighting on Thinkpads (and maybe other laptops) for Linux";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.tp-auto-kbbl;
+ defaultText = literalExpression "pkgs.tp-auto-kbbl";
+ description = "Package providing tp-auto-kbbl.";
+ };
+
+ arguments = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ description = ''
+ List of arguments appended to ./tp-auto-kbbl --device [device] [arguments]
+ '';
+ };
+
+ device = mkOption {
+ type = types.str;
+ default = "/dev/input/event0";
+ description = "Device watched for activities.";
+ };
+
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [ cfg.package ];
+
+ systemd.services.tp-auto-kbbl = {
+ serviceConfig = {
+ ExecStart = concatStringsSep " "
+ ([ "${cfg.package}/bin/tp-auto-kbbl" "--device ${cfg.device}" ] ++ cfg.arguments);
+ Restart = "always";
+ Type = "simple";
+ };
+
+ unitConfig = {
+ Description = "Auto toggle keyboard backlight";
+ Documentation = "https://github.com/saibotd/tp-auto-kbbl";
+ After = [ "dbus.service" ];
+ };
+
+ wantedBy = [ "multi-user.target" ];
+ };
+ };
+}
diff --git a/nixos/modules/services/misc/uhub.nix b/nixos/modules/services/misc/uhub.nix
index da2613e6db17..0d0a8c2a4cb8 100644
--- a/nixos/modules/services/misc/uhub.nix
+++ b/nixos/modules/services/misc/uhub.nix
@@ -50,7 +50,7 @@ in {
options = {
plugin = mkOption {
type = path;
- example = literalExample
+ example = literalExpression
"$${pkgs.uhub}/plugins/mod_auth_sqlite.so";
description = "Path to plugin file.";
};
diff --git a/nixos/modules/services/misc/weechat.nix b/nixos/modules/services/misc/weechat.nix
index 9ac2b0ea490c..7a4c4dca2ac9 100644
--- a/nixos/modules/services/misc/weechat.nix
+++ b/nixos/modules/services/misc/weechat.nix
@@ -21,11 +21,10 @@ in
};
binary = mkOption {
type = types.path;
- description = "Binary to execute (by default \${weechat}/bin/weechat).";
- example = literalExample ''
- ''${pkgs.weechat}/bin/weechat-headless
- '';
+ description = "Binary to execute.";
default = "${pkgs.weechat}/bin/weechat";
+ defaultText = literalExpression ''"''${pkgs.weechat}/bin/weechat"'';
+ example = literalExpression ''"''${pkgs.weechat}/bin/weechat-headless"'';
};
};
diff --git a/nixos/modules/services/misc/xmr-stak.nix b/nixos/modules/services/misc/xmr-stak.nix
index a87878c31e0d..9256e9ae01cb 100644
--- a/nixos/modules/services/misc/xmr-stak.nix
+++ b/nixos/modules/services/misc/xmr-stak.nix
@@ -29,7 +29,7 @@ in
configFiles = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"config.txt" = '''
"verbose_level" : 4,
diff --git a/nixos/modules/services/misc/xmrig.nix b/nixos/modules/services/misc/xmrig.nix
new file mode 100644
index 000000000000..15c7d2a7b14c
--- /dev/null
+++ b/nixos/modules/services/misc/xmrig.nix
@@ -0,0 +1,71 @@
+{ config, pkgs, lib, ... }:
+
+
+let
+ cfg = config.services.xmrig;
+
+ json = pkgs.formats.json { };
+ configFile = json.generate "config.json" cfg.settings;
+in
+
+with lib;
+
+{
+ options = {
+ services.xmrig = {
+ enable = mkEnableOption "XMRig Mining Software";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.xmrig;
+ example = literalExpression "pkgs.xmrig-mo";
+ description = "XMRig package to use.";
+ };
+
+ settings = mkOption {
+ default = { };
+ type = json.type;
+ example = literalExpression ''
+ {
+ autosave = true;
+ cpu = true;
+ opencl = false;
+ cuda = false;
+ pools = [
+ {
+ url = "pool.supportxmr.com:443";
+ user = "your-wallet";
+ keepalive = true;
+ tls = true;
+ }
+ ]
+ }
+ '';
+ description = ''
+ XMRig configuration. Refer to
+
+ for details on supported values.
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.xmrig = {
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ description = "XMRig Mining Software Service";
+ serviceConfig = {
+ ExecStartPre = "${cfg.package}/bin/xmrig --config=${configFile} --dry-run";
+ ExecStart = "${cfg.package}/bin/xmrig --config=${configFile}";
+ DynamicUser = true;
+ };
+ };
+ };
+
+ meta = with lib; {
+ description = "XMRig Mining Software Service";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ ratsclub ];
+ };
+}
diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix
index 4458da1346b7..b378d9f362fe 100644
--- a/nixos/modules/services/misc/zigbee2mqtt.nix
+++ b/nixos/modules/services/misc/zigbee2mqtt.nix
@@ -25,7 +25,7 @@ in
default = pkgs.zigbee2mqtt.override {
dataDir = cfg.dataDir;
};
- defaultText = literalExample ''
+ defaultText = literalExpression ''
pkgs.zigbee2mqtt {
dataDir = services.zigbee2mqtt.dataDir
}
@@ -42,7 +42,7 @@ in
settings = mkOption {
type = format.type;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
homeassistant = config.services.home-assistant.enable;
permit_join = true;
diff --git a/nixos/modules/services/misc/zoneminder.nix b/nixos/modules/services/misc/zoneminder.nix
index d9d34b7fac9b..378da7b87442 100644
--- a/nixos/modules/services/misc/zoneminder.nix
+++ b/nixos/modules/services/misc/zoneminder.nix
@@ -366,5 +366,5 @@ in {
};
};
- meta.maintainers = with lib.maintainers; [ peterhoeg ];
+ meta.maintainers = with lib.maintainers; [ ];
}
diff --git a/nixos/modules/services/misc/zookeeper.nix b/nixos/modules/services/misc/zookeeper.nix
index 0e5880983e44..3809a93a61e1 100644
--- a/nixos/modules/services/misc/zookeeper.nix
+++ b/nixos/modules/services/misc/zookeeper.nix
@@ -110,7 +110,7 @@ in {
package = mkOption {
description = "The zookeeper package to use";
default = pkgs.zookeeper;
- defaultText = "pkgs.zookeeper";
+ defaultText = literalExpression "pkgs.zookeeper";
type = types.package;
};
diff --git a/nixos/modules/services/monitoring/alerta.nix b/nixos/modules/services/monitoring/alerta.nix
index 7c6eff713cb1..a73d94001f71 100644
--- a/nixos/modules/services/monitoring/alerta.nix
+++ b/nixos/modules/services/monitoring/alerta.nix
@@ -32,7 +32,6 @@ in
bind = mkOption {
type = types.str;
default = "0.0.0.0";
- example = literalExample "0.0.0.0";
description = "Address to bind to. The default is to bind to all addresses";
};
@@ -46,20 +45,17 @@ in
type = types.str;
description = "URL of the MongoDB or PostgreSQL database to connect to";
default = "mongodb://localhost";
- example = "mongodb://localhost";
};
databaseName = mkOption {
type = types.str;
description = "Name of the database instance to connect to";
default = "monitoring";
- example = "monitoring";
};
corsOrigins = mkOption {
type = types.listOf types.str;
description = "List of URLs that can access the API for Cross-Origin Resource Sharing (CORS)";
- example = [ "http://localhost" "http://localhost:5000" ];
default = [ "http://localhost" "http://localhost:5000" ];
};
diff --git a/nixos/modules/services/monitoring/arbtt.nix b/nixos/modules/services/monitoring/arbtt.nix
index b41a3c7b5016..94eead220aed 100644
--- a/nixos/modules/services/monitoring/arbtt.nix
+++ b/nixos/modules/services/monitoring/arbtt.nix
@@ -18,8 +18,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.haskellPackages.arbtt;
- defaultText = "pkgs.haskellPackages.arbtt";
- example = literalExample "pkgs.haskellPackages.arbtt";
+ defaultText = literalExpression "pkgs.haskellPackages.arbtt";
description = ''
The package to use for the arbtt binaries.
'';
diff --git a/nixos/modules/services/monitoring/bosun.nix b/nixos/modules/services/monitoring/bosun.nix
index 04e9da1c81a3..4b278b9c200b 100644
--- a/nixos/modules/services/monitoring/bosun.nix
+++ b/nixos/modules/services/monitoring/bosun.nix
@@ -33,8 +33,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.bosun;
- defaultText = "pkgs.bosun";
- example = literalExample "pkgs.bosun";
+ defaultText = literalExpression "pkgs.bosun";
description = ''
bosun binary to use.
'';
diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix
index ef3663c62e04..6af04d22f0f7 100644
--- a/nixos/modules/services/monitoring/collectd.nix
+++ b/nixos/modules/services/monitoring/collectd.nix
@@ -45,7 +45,7 @@ in {
package = mkOption {
default = pkgs.collectd;
- defaultText = "pkgs.collectd";
+ defaultText = literalExpression "pkgs.collectd";
description = ''
Which collectd package to use.
'';
@@ -57,7 +57,7 @@ in {
description = ''
Build a minimal collectd package with only the configured `services.collectd.plugins`
'';
- type = types.bool;
+ type = bool;
};
user = mkOption {
@@ -98,7 +98,7 @@ in {
description = ''
Attribute set of plugin names to plugin config segments
'';
- type = types.attrsOf types.str;
+ type = attrsOf lines;
};
extraConfig = mkOption {
diff --git a/nixos/modules/services/monitoring/datadog-agent.nix b/nixos/modules/services/monitoring/datadog-agent.nix
index ea9eca180902..6d9d1ef973a4 100644
--- a/nixos/modules/services/monitoring/datadog-agent.nix
+++ b/nixos/modules/services/monitoring/datadog-agent.nix
@@ -59,7 +59,7 @@ in {
package = mkOption {
default = pkgs.datadog-agent;
- defaultText = "pkgs.datadog-agent";
+ defaultText = literalExpression "pkgs.datadog-agent";
description = ''
Which DataDog v7 agent package to use. Note that the provided
package is expected to have an overridable `pythonPackages`-attribute
@@ -135,9 +135,11 @@ in {
package set must be provided.
'';
- example = {
- ntp = (pythonPackages: [ pythonPackages.ntplib ]);
- };
+ example = literalExpression ''
+ {
+ ntp = pythonPackages: [ pythonPackages.ntplib ];
+ }
+ '';
};
extraConfig = mkOption {
diff --git a/nixos/modules/services/monitoring/grafana-reporter.nix b/nixos/modules/services/monitoring/grafana-reporter.nix
index 893c15d568bd..e40d78f538fa 100644
--- a/nixos/modules/services/monitoring/grafana-reporter.nix
+++ b/nixos/modules/services/monitoring/grafana-reporter.nix
@@ -41,8 +41,9 @@ in {
templateDir = mkOption {
description = "Optional template directory to use custom tex templates";
- default = "${pkgs.grafana_reporter}";
- type = types.str;
+ default = pkgs.grafana_reporter;
+ defaultText = literalExpression "pkgs.grafana_reporter";
+ type = types.either types.str types.path;
};
};
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index d46e38e82af1..5067047e9690 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -330,13 +330,14 @@ in {
staticRootPath = mkOption {
description = "Root path for static assets.";
default = "${cfg.package}/share/grafana/public";
+ defaultText = literalExpression ''"''${package}/share/grafana/public"'';
type = types.str;
};
package = mkOption {
description = "Package to use.";
default = pkgs.grafana;
- defaultText = "pkgs.grafana";
+ defaultText = literalExpression "pkgs.grafana";
type = types.package;
};
@@ -344,7 +345,7 @@ in {
type = with types; nullOr (listOf path);
default = null;
description = "If non-null, then a list of packages containing Grafana plugins to install. If set, plugins cannot be manually installed.";
- example = literalExample "with pkgs.grafanaPlugins; [ grafana-piechart-panel ]";
+ example = literalExpression "with pkgs.grafanaPlugins; [ grafana-piechart-panel ]";
# Make sure each plugin is added only once; otherwise building
# the link farm fails, since the same path is added multiple
# times.
@@ -676,15 +677,13 @@ in {
RuntimeDirectory = "grafana";
RuntimeDirectoryMode = "0755";
# Hardening
- CapabilityBoundingSet = [ "" ];
+ AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
+ CapabilityBoundingSet = if (cfg.port < 1024) then [ "CAP_NET_BIND_SERVICE" ] else [ "" ];
DeviceAllow = [ "" ];
LockPersonality = true;
- MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
- PrivateUsers = true;
- ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
@@ -700,6 +699,8 @@ in {
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
+ # Upstream grafana is not setting SystemCallFilter for compatibility
+ # reasons, see https://github.com/grafana/grafana/pull/40176
SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
UMask = "0027";
};
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index 502afce5233b..4690a252c925 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -132,7 +132,7 @@ in {
finders = mkOption {
description = "List of finder plugins to load.";
default = [];
- example = literalExample "[ pkgs.python3Packages.influxgraph ]";
+ example = literalExpression "[ pkgs.python3Packages.influxgraph ]";
type = types.listOf types.package;
};
@@ -160,7 +160,7 @@ in {
package = mkOption {
description = "Package to use for graphite api.";
default = pkgs.python3Packages.graphite_api;
- defaultText = "pkgs.python3Packages.graphite_api";
+ defaultText = literalExpression "pkgs.python3Packages.graphite_api";
type = types.package;
};
@@ -335,7 +335,7 @@ in {
'';
type = types.attrsOf types.str;
- example = literalExample ''
+ example = literalExpression ''
{
GRAPHITE_USERNAME = "user";
GRAPHITE_PASSWORD = "pass";
diff --git a/nixos/modules/services/monitoring/heapster.nix b/nixos/modules/services/monitoring/heapster.nix
index 1bf7203d6823..44f53e1890ac 100644
--- a/nixos/modules/services/monitoring/heapster.nix
+++ b/nixos/modules/services/monitoring/heapster.nix
@@ -33,7 +33,7 @@ in {
package = mkOption {
description = "Package to use by heapster";
default = pkgs.heapster;
- defaultText = "pkgs.heapster";
+ defaultText = literalExpression "pkgs.heapster";
type = types.package;
};
};
diff --git a/nixos/modules/services/monitoring/incron.nix b/nixos/modules/services/monitoring/incron.nix
index 255e1d9e30ba..2681c35d6a01 100644
--- a/nixos/modules/services/monitoring/incron.nix
+++ b/nixos/modules/services/monitoring/incron.nix
@@ -56,7 +56,7 @@ in
extraPackages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.rsync ]";
+ example = literalExpression "[ pkgs.rsync ]";
description = "Extra packages available to the system incrontab.";
};
diff --git a/nixos/modules/services/monitoring/kapacitor.nix b/nixos/modules/services/monitoring/kapacitor.nix
index 9b4ff3c56124..a79c647becfc 100644
--- a/nixos/modules/services/monitoring/kapacitor.nix
+++ b/nixos/modules/services/monitoring/kapacitor.nix
@@ -61,7 +61,6 @@ in
dataDir = mkOption {
type = types.path;
- example = "/var/lib/kapacitor";
default = "/var/lib/kapacitor";
description = "Location where Kapacitor stores its state";
};
@@ -75,7 +74,7 @@ in
bind = mkOption {
type = types.str;
default = "";
- example = literalExample "0.0.0.0";
+ example = "0.0.0.0";
description = "Address to bind to. The default is to bind to all addresses";
};
@@ -101,7 +100,6 @@ in
type = types.str;
description = "Specifies how often to snapshot the task state (in InfluxDB time units)";
default = "1m0s";
- example = "1m0s";
};
loadDirectory = mkOption {
@@ -136,7 +134,6 @@ in
url = mkOption {
description = "The URL to the Alerta REST API";
default = "http://localhost:5000";
- example = "http://localhost:5000";
type = types.str;
};
diff --git a/nixos/modules/services/monitoring/loki.nix b/nixos/modules/services/monitoring/loki.nix
index 51cabaa274a3..ebac70c30c22 100644
--- a/nixos/modules/services/monitoring/loki.nix
+++ b/nixos/modules/services/monitoring/loki.nix
@@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }:
let
- inherit (lib) escapeShellArgs literalExample mkEnableOption mkIf mkOption types;
+ inherit (lib) escapeShellArgs mkEnableOption mkIf mkOption types;
cfg = config.services.loki;
@@ -57,7 +57,7 @@ in {
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample [ "--server.http-listen-port=3101" ];
+ example = [ "--server.http-listen-port=3101" ];
description = ''
Specify a list of additional command line flags,
which get escaped and are then passed to Loki.
diff --git a/nixos/modules/services/monitoring/mackerel-agent.nix b/nixos/modules/services/monitoring/mackerel-agent.nix
index 7046de9d403c..aeb6247abd8b 100644
--- a/nixos/modules/services/monitoring/mackerel-agent.nix
+++ b/nixos/modules/services/monitoring/mackerel-agent.nix
@@ -19,7 +19,6 @@ in {
apiKeyFile = mkOption {
type = types.path;
- default = "";
example = "/run/keys/mackerel-api-key";
description = ''
Path to file containing the Mackerel API key. The file should contain a
diff --git a/nixos/modules/services/monitoring/metricbeat.nix b/nixos/modules/services/monitoring/metricbeat.nix
index b285559eaa9b..e75039daa107 100644
--- a/nixos/modules/services/monitoring/metricbeat.nix
+++ b/nixos/modules/services/monitoring/metricbeat.nix
@@ -3,7 +3,7 @@
let
inherit (lib)
attrValues
- literalExample
+ literalExpression
mkEnableOption
mkIf
mkOption
@@ -24,8 +24,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.metricbeat;
- defaultText = literalExample "pkgs.metricbeat";
- example = literalExample "pkgs.metricbeat7";
+ defaultText = literalExpression "pkgs.metricbeat";
+ example = literalExpression "pkgs.metricbeat7";
description = ''
The metricbeat package to use
'';
@@ -51,7 +51,6 @@ in
module = mkOption {
type = types.str;
default = name;
- defaultText = literalExample '''';
description = ''
The name of the module.
diff --git a/nixos/modules/services/monitoring/munin.nix b/nixos/modules/services/monitoring/munin.nix
index 1ebf7ee6a761..4fddb1e37e2e 100644
--- a/nixos/modules/services/monitoring/munin.nix
+++ b/nixos/modules/services/monitoring/munin.nix
@@ -189,7 +189,7 @@ in
/bin, /usr/bin,
/sbin, and /usr/sbin.
'';
- example = literalExample ''
+ example = literalExpression ''
{
zfs_usage_bigpool = /src/munin-contrib/plugins/zfs/zfs_usage_;
zfs_usage_smallpool = /src/munin-contrib/plugins/zfs/zfs_usage_;
@@ -220,7 +220,7 @@ in
/bin, /usr/bin,
/sbin, and /usr/sbin.
'';
- example = literalExample ''
+ example = literalExpression ''
[
/src/munin-contrib/plugins/zfs
/src/munin-contrib/plugins/ssh
@@ -285,9 +285,11 @@ in
host for cron to succeed. See
'';
- example = ''
- [''${config.networking.hostName}]
- address localhost
+ example = literalExpression ''
+ '''
+ [''${config.networking.hostName}]
+ address localhost
+ '''
'';
};
diff --git a/nixos/modules/services/monitoring/nagios.nix b/nixos/modules/services/monitoring/nagios.nix
index 280a9a001b5b..83020d52fc82 100644
--- a/nixos/modules/services/monitoring/nagios.nix
+++ b/nixos/modules/services/monitoring/nagios.nix
@@ -97,13 +97,13 @@ in
network that you want Nagios to monitor.
";
type = types.listOf types.path;
- example = literalExample "[ ./objects.cfg ]";
+ example = literalExpression "[ ./objects.cfg ]";
};
plugins = mkOption {
type = types.listOf types.package;
default = with pkgs; [ monitoring-plugins ssmtp mailutils ];
- defaultText = "[pkgs.monitoring-plugins pkgs.ssmtp pkgs.mailutils]";
+ defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.ssmtp pkgs.mailutils]";
description = "
Packages to be added to the Nagios PATH.
Typically used to add plugins, but can be anything.
@@ -137,7 +137,7 @@ in
cgiConfigFile = mkOption {
type = types.package;
default = nagiosCGICfgFile;
- defaultText = "nagiosCGICfgFile";
+ defaultText = literalExpression "nagiosCGICfgFile";
description = "
Derivation for the configuration file of Nagios CGI scripts
that can be used in web servers for running the Nagios web interface.
@@ -155,7 +155,7 @@ in
virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
- example = literalExample ''
+ example = literalExpression ''
{ hostName = "example.org";
adminAddr = "webmaster@example.org";
enableSSL = true;
diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix
index e76979fa6d17..00bdd9fcda0d 100644
--- a/nixos/modules/services/monitoring/netdata.nix
+++ b/nixos/modules/services/monitoring/netdata.nix
@@ -9,9 +9,9 @@ let
mkdir -p $out/libexec/netdata/plugins.d
ln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin
ln -s /run/wrappers/bin/cgroup-network $out/libexec/netdata/plugins.d/cgroup-network
- ln -s /run/wrappers/bin/freeipmi.plugin $out/libexec/netdata/plugins.d/freeipmi.plugin
ln -s /run/wrappers/bin/perf.plugin $out/libexec/netdata/plugins.d/perf.plugin
ln -s /run/wrappers/bin/slabinfo.plugin $out/libexec/netdata/plugins.d/slabinfo.plugin
+ ln -s /run/wrappers/bin/freeipmi.plugin $out/libexec/netdata/plugins.d/freeipmi.plugin
'';
plugins = [
@@ -45,7 +45,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.netdata;
- defaultText = "pkgs.netdata";
+ defaultText = literalExpression "pkgs.netdata";
description = "Netdata package to use.";
};
@@ -84,8 +84,8 @@ in {
extraPackages = mkOption {
type = types.functionTo (types.listOf types.package);
default = ps: [];
- defaultText = "ps: []";
- example = literalExample ''
+ defaultText = literalExpression "ps: []";
+ example = literalExpression ''
ps: [
ps.psycopg2
ps.docker
@@ -102,7 +102,7 @@ in {
extraPluginPaths = mkOption {
type = types.listOf types.path;
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
[ "/path/to/plugins.d" ]
'';
description = ''
@@ -121,7 +121,7 @@ in {
type = types.attrsOf types.attrs;
default = {};
description = "netdata.conf configuration as nix attributes. cannot be combined with configText.";
- example = literalExample ''
+ example = literalExpression ''
global = {
"debug log" = "syslog";
"access log" = "syslog";
@@ -211,44 +211,47 @@ in {
systemd.enableCgroupAccounting = true;
- security.wrappers."apps.plugin" = {
- source = "${cfg.package}/libexec/netdata/plugins.d/apps.plugin.org";
- capabilities = "cap_dac_read_search,cap_sys_ptrace+ep";
- owner = cfg.user;
- group = cfg.group;
- permissions = "u+rx,g+x,o-rwx";
- };
+ security.wrappers = {
+ "apps.plugin" = {
+ source = "${cfg.package}/libexec/netdata/plugins.d/apps.plugin.org";
+ capabilities = "cap_dac_read_search,cap_sys_ptrace+ep";
+ owner = cfg.user;
+ group = cfg.group;
+ permissions = "u+rx,g+x,o-rwx";
+ };
- security.wrappers."cgroup-network" = {
- source = "${cfg.package}/libexec/netdata/plugins.d/cgroup-network.org";
- capabilities = "cap_setuid+ep";
- owner = cfg.user;
- group = cfg.group;
- permissions = "u+rx,g+x,o-rwx";
- };
+ "cgroup-network" = {
+ source = "${cfg.package}/libexec/netdata/plugins.d/cgroup-network.org";
+ capabilities = "cap_setuid+ep";
+ owner = cfg.user;
+ group = cfg.group;
+ permissions = "u+rx,g+x,o-rwx";
+ };
- security.wrappers."freeipmi.plugin" = {
- source = "${cfg.package}/libexec/netdata/plugins.d/freeipmi.plugin.org";
- capabilities = "cap_dac_override,cap_fowner+ep";
- owner = cfg.user;
- group = cfg.group;
- permissions = "u+rx,g+x,o-rwx";
- };
+ "perf.plugin" = {
+ source = "${cfg.package}/libexec/netdata/plugins.d/perf.plugin.org";
+ capabilities = "cap_sys_admin+ep";
+ owner = cfg.user;
+ group = cfg.group;
+ permissions = "u+rx,g+x,o-rwx";
+ };
- security.wrappers."perf.plugin" = {
- source = "${cfg.package}/libexec/netdata/plugins.d/perf.plugin.org";
- capabilities = "cap_sys_admin+ep";
- owner = cfg.user;
- group = cfg.group;
- permissions = "u+rx,g+x,o-rwx";
- };
+ "slabinfo.plugin" = {
+ source = "${cfg.package}/libexec/netdata/plugins.d/slabinfo.plugin.org";
+ capabilities = "cap_dac_override+ep";
+ owner = cfg.user;
+ group = cfg.group;
+ permissions = "u+rx,g+x,o-rwx";
+ };
- security.wrappers."slabinfo.plugin" = {
- source = "${cfg.package}/libexec/netdata/plugins.d/slabinfo.plugin.org";
- capabilities = "cap_dac_override+ep";
- owner = cfg.user;
- group = cfg.group;
- permissions = "u+rx,g+x,o-rwx";
+ } // optionalAttrs (cfg.package.withIpmi) {
+ "freeipmi.plugin" = {
+ source = "${cfg.package}/libexec/netdata/plugins.d/freeipmi.plugin.org";
+ capabilities = "cap_dac_override,cap_fowner+ep";
+ owner = cfg.user;
+ group = cfg.group;
+ permissions = "u+rx,g+x,o-rwx";
+ };
};
security.pam.loginLimits = [
diff --git a/nixos/modules/services/monitoring/parsedmarc.nix b/nixos/modules/services/monitoring/parsedmarc.nix
index e6a72dea0260..eeee04b4400c 100644
--- a/nixos/modules/services/monitoring/parsedmarc.nix
+++ b/nixos/modules/services/monitoring/parsedmarc.nix
@@ -39,7 +39,7 @@ in
hostname = lib.mkOption {
type = lib.types.str;
default = config.networking.fqdn;
- defaultText = "config.networking.fqdn";
+ defaultText = lib.literalExpression "config.networking.fqdn";
example = "monitoring.example.com";
description = ''
The hostname to use when configuring Postfix.
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
index 1b02ebf37045..1f396634ae01 100644
--- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix
+++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
@@ -45,7 +45,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.prometheus-alertmanager;
- defaultText = "pkgs.alertmanager";
+ defaultText = literalExpression "pkgs.alertmanager";
description = ''
Package that should be used for alertmanager.
'';
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 1161d18ab14b..f20b8dde1abd 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -7,19 +7,36 @@ let
workingDir = "/var/lib/" + cfg.stateDir;
+ prometheusYmlOut = "${workingDir}/prometheus-substituted.yaml";
+
+ triggerReload = pkgs.writeShellScriptBin "trigger-reload-prometheus" ''
+ PATH="${makeBinPath (with pkgs; [ systemd ])}"
+ if systemctl -q is-active prometheus.service; then
+ systemctl reload prometheus.service
+ fi
+ '';
+
+ reload = pkgs.writeShellScriptBin "reload-prometheus" ''
+ PATH="${makeBinPath (with pkgs; [ systemd coreutils gnugrep ])}"
+ cursor=$(journalctl --show-cursor -n0 | grep -oP "cursor: \K.*")
+ kill -HUP $MAINPID
+ journalctl -u prometheus.service --after-cursor="$cursor" -f \
+ | grep -m 1 "Completed loading of configuration file" > /dev/null
+ '';
+
# a wrapper that verifies that the configuration is valid
promtoolCheck = what: name: file:
if cfg.checkConfig then
pkgs.runCommandLocal
"${name}-${replaceStrings [" "] [""] what}-checked"
{ buildInputs = [ cfg.package ]; } ''
- ln -s ${file} $out
- promtool ${what} $out
- '' else file;
+ ln -s ${file} $out
+ promtool ${what} $out
+ '' else file;
# Pretty-print JSON to a file
writePrettyJSON = name: x:
- pkgs.runCommandLocal name {} ''
+ pkgs.runCommandLocal name { } ''
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
'';
@@ -39,48 +56,111 @@ let
};
};
- prometheusYml = let
- yml = if cfg.configText != null then
- pkgs.writeText "prometheus.yml" cfg.configText
- else generatedPrometheusYml;
- in promtoolCheck "check config" "prometheus.yml" yml;
+ prometheusYml =
+ let
+ yml =
+ if cfg.configText != null then
+ pkgs.writeText "prometheus.yml" cfg.configText
+ else generatedPrometheusYml;
+ in
+ promtoolCheck "check config" "prometheus.yml" yml;
cmdlineArgs = cfg.extraFlags ++ [
"--storage.tsdb.path=${workingDir}/data/"
- "--config.file=/run/prometheus/prometheus-substituted.yaml"
+ "--config.file=${
+ if cfg.enableReload
+ then "/etc/prometheus/prometheus.yaml"
+ else prometheusYml
+ }"
"--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
"--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
"--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
- ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
+ ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
filterValidPrometheus = filterAttrsListRecursive (n: v: !(n == "_module" || v == null));
filterAttrsListRecursive = pred: x:
if isAttrs x then
- listToAttrs (
- concatMap (name:
- let v = x.${name}; in
- if pred name v then [
- (nameValuePair name (filterAttrsListRecursive pred v))
- ] else []
- ) (attrNames x)
- )
+ listToAttrs
+ (
+ concatMap
+ (name:
+ let v = x.${name}; in
+ if pred name v then [
+ (nameValuePair name (filterAttrsListRecursive pred v))
+ ] else [ ]
+ )
+ (attrNames x)
+ )
else if isList x then
map (filterAttrsListRecursive pred) x
else x;
- mkDefOpt = type : defaultStr : description : mkOpt type (description + ''
+ #
+ # Config types: helper functions
+ #
+
+ mkDefOpt = type: defaultStr: description: mkOpt type (description + ''
Defaults to ${defaultStr} in prometheus
when set to null.
'');
- mkOpt = type : description : mkOption {
+ mkOpt = type: description: mkOption {
type = types.nullOr type;
default = null;
inherit description;
};
+ mkSdConfigModule = extraOptions: types.submodule {
+ options = {
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Optional HTTP basic authentication information.
+ '';
+
+ authorization = mkOpt
+ (types.submodule {
+ options = {
+ type = mkDefOpt types.str "Bearer" ''
+ Sets the authentication type.
+ '';
+
+ credentials = mkOpt types.str ''
+ Sets the credentials. It is mutually exclusive with `credentials_file`.
+ '';
+
+ credentials_file = mkOpt types.str ''
+ Sets the credentials to the credentials read from the configured file.
+ It is mutually exclusive with `credentials`.
+ '';
+ };
+ }) ''
+ Optional `Authorization` header configuration.
+ '';
+
+ oauth2 = mkOpt promtypes.oauth2 ''
+ Optional OAuth 2.0 configuration.
+ Cannot be used at the same time as basic_auth or authorization.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ } // extraOptions;
+ };
+
+ #
+ # Config types: general
+ #
+
promTypes.globalConfig = types.submodule {
options = {
scrape_interval = mkDefOpt types.str "1m" ''
@@ -103,153 +183,68 @@ let
};
};
- promTypes.remote_read = types.submodule {
+ promTypes.basic_auth = types.submodule {
options = {
- url = mkOption {
+ username = mkOption {
type = types.str;
description = ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
+ HTTP username
'';
};
- name = mkOpt types.str ''
- Name of the remote read config, which if specified must be unique among remote read configs.
- The name will be used in metrics and logging in place of a generated value to help users distinguish between
- remote read configs.
- '';
- required_matchers = mkOpt (types.attrsOf types.str) ''
- An optional list of equality matchers which have to be
- present in a selector to query the remote read endpoint.
- '';
- remote_timeout = mkOpt types.str ''
- Timeout for requests to the remote read endpoint.
- '';
- read_recent = mkOpt types.bool ''
- Whether reads should be made for queries for time ranges that
- the local storage should have complete data for.
- '';
- basic_auth = mkOpt (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOpt types.str "HTTP password";
- password_file = mkOpt types.str "HTTP password file";
- };
- }) ''
- Sets the `Authorization` header on every remote read request with the
- configured username and password.
- password and password_file are mutually exclusive.
- '';
- bearer_token = mkOpt types.str ''
- Sets the `Authorization` header on every remote read request with
- the configured bearer token. It is mutually exclusive with `bearer_token_file`.
- '';
- bearer_token_file = mkOpt types.str ''
- Sets the `Authorization` header on every remote read request with the bearer token
- read from the configured file. It is mutually exclusive with `bearer_token`.
- '';
- tls_config = mkOpt promTypes.tls_config ''
- Configures the remote read request's TLS settings.
- '';
- proxy_url = mkOpt types.str "Optional Proxy URL.";
+ password = mkOpt types.str "HTTP password";
+ password_file = mkOpt types.str "HTTP password file";
};
};
- promTypes.remote_write = types.submodule {
+ promTypes.tls_config = types.submodule {
options = {
- url = mkOption {
- type = types.str;
- description = ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
- '';
- };
- remote_timeout = mkOpt types.str ''
- Timeout for requests to the remote write endpoint.
+ ca_file = mkOpt types.str ''
+ CA certificate to validate API server certificate with.
'';
- write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
- List of remote write relabel configurations.
+
+ cert_file = mkOpt types.str ''
+ Certificate file for client cert authentication to the server.
'';
- name = mkOpt types.str ''
- Name of the remote write config, which if specified must be unique among remote write configs.
- The name will be used in metrics and logging in place of a generated value to help users distinguish between
- remote write configs.
+
+ key_file = mkOpt types.str ''
+ Key file for client cert authentication to the server.
'';
- basic_auth = mkOpt (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOpt types.str "HTTP password";
- password_file = mkOpt types.str "HTTP password file";
- };
- }) ''
- Sets the `Authorization` header on every remote write request with the
- configured username and password.
- password and password_file are mutually exclusive.
+
+ server_name = mkOpt types.str ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
'';
- bearer_token = mkOpt types.str ''
- Sets the `Authorization` header on every remote write request with
- the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+
+ insecure_skip_verify = mkOpt types.bool ''
+ Disable validation of the server certificate.
'';
- bearer_token_file = mkOpt types.str ''
- Sets the `Authorization` header on every remote write request with the bearer token
- read from the configured file. It is mutually exclusive with `bearer_token`.
+ };
+ };
+
+ promtypes.oauth2 = types.submodule {
+ options = {
+ client_id = mkOpt types.str ''
+ OAuth client ID.
'';
- tls_config = mkOpt promTypes.tls_config ''
- Configures the remote write request's TLS settings.
+
+ client_secret = mkOpt types.str ''
+ OAuth client secret.
'';
- proxy_url = mkOpt types.str "Optional Proxy URL.";
- queue_config = mkOpt (types.submodule {
- options = {
- capacity = mkOpt types.int ''
- Number of samples to buffer per shard before we block reading of more
- samples from the WAL. It is recommended to have enough capacity in each
- shard to buffer several requests to keep throughput up while processing
- occasional slow remote requests.
- '';
- max_shards = mkOpt types.int ''
- Maximum number of shards, i.e. amount of concurrency.
- '';
- min_shards = mkOpt types.int ''
- Minimum number of shards, i.e. amount of concurrency.
- '';
- max_samples_per_send = mkOpt types.int ''
- Maximum number of samples per send.
- '';
- batch_send_deadline = mkOpt types.str ''
- Maximum time a sample will wait in buffer.
- '';
- min_backoff = mkOpt types.str ''
- Initial retry delay. Gets doubled for every retry.
- '';
- max_backoff = mkOpt types.str ''
- Maximum retry delay.
- '';
- };
- }) ''
- Configures the queue used to write to remote storage.
+
+ client_secret_file = mkOpt types.str ''
+ Read the client secret from a file. It is mutually exclusive with `client_secret`.
'';
- metadata_config = mkOpt (types.submodule {
- options = {
- send = mkOpt types.bool ''
- Whether metric metadata is sent to remote storage or not.
- '';
- send_interval = mkOpt types.str ''
- How frequently metric metadata is sent to remote storage.
- '';
- };
- }) ''
- Configures the sending of series metadata to remote storage.
- Metadata configuration is subject to change at any point
- or be removed in future releases.
+
+ scopes = mkOpt (types.listOf types.str) ''
+ Scopes for the token request.
+ '';
+
+ token_url = mkOpt types.str ''
+ The URL to fetch the token from.
+ '';
+
+ endpoint_params = mkOpt (types.attrsOf types.str) ''
+ Optional parameters to append to the token URL.
'';
};
};
@@ -307,7 +302,7 @@ let
by the target will be ignored.
'';
- scheme = mkDefOpt (types.enum ["http" "https"]) "http" ''
+ scheme = mkDefOpt (types.enum [ "http" "https" ]) "http" ''
The URL scheme with which to fetch metrics from targets.
'';
@@ -315,18 +310,7 @@ let
Optional HTTP URL parameters.
'';
- basic_auth = mkOpt (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOpt types.str "HTTP password";
- password_file = mkOpt types.str "HTTP password file";
- };
- }) ''
+ basic_auth = mkOpt promTypes.basic_auth ''
Sets the `Authorization` header on every scrape request with the
configured username and password.
password and password_file are mutually exclusive.
@@ -352,16 +336,36 @@ let
Optional proxy URL.
'';
- ec2_sd_configs = mkOpt (types.listOf promTypes.ec2_sd_config) ''
- List of EC2 service discovery configurations.
+ azure_sd_configs = mkOpt (types.listOf promTypes.azure_sd_config) ''
+ List of Azure service discovery configurations.
+ '';
+
+ consul_sd_configs = mkOpt (types.listOf promTypes.consul_sd_config) ''
+ List of Consul service discovery configurations.
+ '';
+
+ digitalocean_sd_configs = mkOpt (types.listOf promTypes.digitalocean_sd_config) ''
+ List of DigitalOcean service discovery configurations.
+ '';
+
+ docker_sd_configs = mkOpt (types.listOf promTypes.docker_sd_config) ''
+ List of Docker service discovery configurations.
+ '';
+
+ dockerswarm_sd_configs = mkOpt (types.listOf promTypes.dockerswarm_sd_config) ''
+ List of Docker Swarm service discovery configurations.
'';
dns_sd_configs = mkOpt (types.listOf promTypes.dns_sd_config) ''
List of DNS service discovery configurations.
'';
- consul_sd_configs = mkOpt (types.listOf promTypes.consul_sd_config) ''
- List of Consul service discovery configurations.
+ ec2_sd_configs = mkOpt (types.listOf promTypes.ec2_sd_config) ''
+ List of EC2 service discovery configurations.
+ '';
+
+ eureka_sd_configs = mkOpt (types.listOf promTypes.eureka_sd_config) ''
+ List of Eureka service discovery configurations.
'';
file_sd_configs = mkOpt (types.listOf promTypes.file_sd_config) ''
@@ -376,6 +380,62 @@ let
relevant Prometheus configuration docs for more detail.
'';
+ hetzner_sd_configs = mkOpt (types.listOf promTypes.hetzner_sd_config) ''
+ List of Hetzner service discovery configurations.
+ '';
+
+ http_sd_configs = mkOpt (types.listOf promTypes.http_sd_config) ''
+ List of HTTP service discovery configurations.
+ '';
+
+ kubernetes_sd_configs = mkOpt (types.listOf promTypes.kubernetes_sd_config) ''
+ List of Kubernetes service discovery configurations.
+ '';
+
+ kuma_sd_configs = mkOpt (types.listOf promTypes.kuma_sd_config) ''
+ List of Kuma service discovery configurations.
+ '';
+
+ lightsail_sd_configs = mkOpt (types.listOf promTypes.lightsail_sd_config) ''
+ List of Lightsail service discovery configurations.
+ '';
+
+ linode_sd_configs = mkOpt (types.listOf promTypes.linode_sd_config) ''
+ List of Linode service discovery configurations.
+ '';
+
+ marathon_sd_configs = mkOpt (types.listOf promTypes.marathon_sd_config) ''
+ List of Marathon service discovery configurations.
+ '';
+
+ nerve_sd_configs = mkOpt (types.listOf promTypes.nerve_sd_config) ''
+ List of AirBnB's Nerve service discovery configurations.
+ '';
+
+ openstack_sd_configs = mkOpt (types.listOf promTypes.openstack_sd_config) ''
+ List of OpenStack service discovery configurations.
+ '';
+
+ puppetdb_sd_configs = mkOpt (types.listOf promTypes.puppetdb_sd_config) ''
+ List of PuppetDB service discovery configurations.
+ '';
+
+ scaleway_sd_configs = mkOpt (types.listOf promTypes.scaleway_sd_config) ''
+ List of Scaleway service discovery configurations.
+ '';
+
+ serverset_sd_configs = mkOpt (types.listOf promTypes.serverset_sd_config) ''
+ List of Zookeeper Serverset service discovery configurations.
+ '';
+
+ triton_sd_configs = mkOpt (types.listOf promTypes.triton_sd_config) ''
+ List of Triton Serverset service discovery configurations.
+ '';
+
+ uyuni_sd_configs = mkOpt (types.listOf promTypes.uyuni_sd_config) ''
+ List of Uyuni Serverset service discovery configurations.
+ '';
+
static_configs = mkOpt (types.listOf promTypes.static_config) ''
List of labeled target groups for this job.
'';
@@ -388,29 +448,245 @@ let
List of metric relabel configurations.
'';
+ body_size_limit = mkDefOpt types.str "0" ''
+ An uncompressed response body larger than this many bytes will cause the
+ scrape to fail. 0 means no limit. Example: 100MB.
+ This is an experimental feature, this behaviour could
+ change or be removed in the future.
+ '';
+
sample_limit = mkDefOpt types.int "0" ''
Per-scrape limit on number of scraped samples that will be accepted.
If more than this number of samples are present after metric relabelling
the entire scrape will be treated as failed. 0 means no limit.
'';
+
+ label_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on number of labels that will be accepted for a sample. If
+ more than this number of labels are present post metric-relabeling, the
+ entire scrape will be treated as failed. 0 means no limit.
+ '';
+
+ label_name_length_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on length of labels name that will be accepted for a sample.
+ If a label name is longer than this number post metric-relabeling, the entire
+ scrape will be treated as failed. 0 means no limit.
+ '';
+
+ label_value_length_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on length of labels value that will be accepted for a sample.
+ If a label value is longer than this number post metric-relabeling, the
+ entire scrape will be treated as failed. 0 means no limit.
+ '';
+
+ target_limit = mkDefOpt types.int "0" ''
+ Per-scrape config limit on number of unique targets that will be
+ accepted. If more than this number of targets are present after target
+ relabeling, Prometheus will mark the targets as failed without scraping them.
+ 0 means no limit. This is an experimental feature, this behaviour could
+ change in the future.
+ '';
};
};
- promTypes.static_config = types.submodule {
+ #
+ # Config types: service discovery
+ #
+
+ # For this one, the docs actually define all types needed to use mkSdConfigModule, but a bunch
+ # of them are marked with 'currently not support by Azure' so we don't bother adding them in
+ # here.
+ promTypes.azure_sd_config = types.submodule {
options = {
- targets = mkOption {
+ environment = mkDefOpt types.str "AzurePublicCloud" ''
+ The Azure environment.
+ '';
+
+ authentication_method = mkDefOpt (types.enum [ "OAuth" "ManagedIdentity" ]) "OAuth" ''
+ The authentication method, either OAuth or ManagedIdentity.
+ See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview
+ '';
+
+ subscription_id = mkOption {
+ type = types.str;
+ description = ''
+ The subscription ID.
+ '';
+ };
+
+ tenant_id = mkOpt types.str ''
+ Optional tenant ID. Only required with authentication_method OAuth.
+ '';
+
+ client_id = mkOpt types.str ''
+ Optional client ID. Only required with authentication_method OAuth.
+ '';
+
+ client_secret = mkOpt types.str ''
+ Optional client secret. Only required with authentication_method OAuth.
+ '';
+
+ refresh_interval = mkDefOpt types.str "300s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP
+ address, this must instead be specified in the relabeling
+ rule.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ promTypes.consul_sd_config = mkSdConfigModule {
+ server = mkDefOpt types.str "localhost:8500" ''
+ Consul server to query.
+ '';
+
+ token = mkOpt types.str "Consul token";
+
+ datacenter = mkOpt types.str "Consul datacenter";
+
+ scheme = mkDefOpt types.str "http" "Consul scheme";
+
+ username = mkOpt types.str "Consul username";
+
+ password = mkOpt types.str "Consul password";
+
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the Consul request's TLS settings.
+ '';
+
+ services = mkOpt (types.listOf types.str) ''
+ A list of services for which targets are retrieved.
+ '';
+
+ tags = mkOpt (types.listOf types.str) ''
+ An optional list of tags used to filter nodes for a given
+ service. Services must contain all tags in the list.
+ '';
+
+ node_meta = mkOpt (types.attrsOf types.str) ''
+ Node metadata used to filter nodes for a given service.
+ '';
+
+ tag_separator = mkDefOpt types.str "," ''
+ The string by which Consul tags are joined into the tag label.
+ '';
+
+ allow_stale = mkOpt types.bool ''
+ Allow stale Consul results
+ (see ).
+
+ Will reduce load on Consul.
+ '';
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time after which the provided names are refreshed.
+
+ On large setup it might be a good idea to increase this value
+ because the catalog will change all the time.
+ '';
+ };
+
+ promTypes.digitalocean_sd_config = mkSdConfigModule {
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the droplets are refreshed.
+ '';
+ };
+
+ mkDockerSdConfigModule = extraOptions: mkSdConfigModule ({
+ host = mkOption {
+ type = types.str;
+ description = ''
+ Address of the Docker daemon.
+ '';
+ };
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from, when `role` is nodes, and for discovered
+ tasks and services that don't have published ports.
+ '';
+
+ filters = mkOpt
+ (types.listOf (types.submodule {
+ options = {
+ name = mkOption {
+ type = types.str;
+ description = ''
+ Name of the filter. The available filters are listed in the upstream documentation:
+ Services:
+ Tasks:
+ Nodes:
+ '';
+ };
+ values = mkOption {
+ type = types.str;
+ description = ''
+ Value for the filter.
+ '';
+ };
+ };
+ })) ''
+ Optional filters to limit the discovery process to a subset of available resources.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the containers are refreshed.
+ '';
+ } // extraOptions);
+
+ promTypes.docker_sd_config = mkDockerSdConfigModule {
+ host_networking_host = mkDefOpt types.str "localhost" ''
+ The host to use if the container is in host networking mode.
+ '';
+ };
+
+ promTypes.dockerswarm_sd_config = mkDockerSdConfigModule {
+ role = mkOption {
+ type = types.enum [ "services" "tasks" "nodes" ];
+ description = ''
+ Role of the targets to retrieve. Must be `services`, `tasks`, or `nodes`.
+ '';
+ };
+ };
+
+ promTypes.dns_sd_config = types.submodule {
+ options = {
+ names = mkOption {
type = types.listOf types.str;
description = ''
- The targets specified by the target group.
- '';
- };
- labels = mkOption {
- type = types.attrsOf types.str;
- default = {};
- description = ''
- Labels assigned to all metrics scraped from the targets.
+ A list of DNS SRV record names to be queried.
'';
};
+
+ type = mkDefOpt (types.enum [ "SRV" "A" "AAAA" ]) "SRV" ''
+ The type of DNS query to perform. One of SRV, A, or AAAA.
+ '';
+
+ port = mkOpt types.int ''
+ The port number used if the query type is not SRV.
+ '';
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time after which the provided names are refreshed.
+ '';
};
};
@@ -419,7 +695,7 @@ let
region = mkOption {
type = types.str;
description = ''
- The AWS Region.
+ The AWS Region. If blank, the region from the instance metadata is used.
'';
};
endpoint = mkOpt types.str ''
@@ -436,7 +712,7 @@ let
AWS_SECRET_ACCESS_KEY is used.
'';
- profile = mkOpt types.str ''
+ profile = mkOpt types.str ''
Named AWS profile used to connect to the API.
'';
@@ -454,96 +730,36 @@ let
rule.
'';
- filters = mkOpt (types.listOf promTypes.filter) ''
+ filters = mkOpt
+ (types.listOf (types.submodule {
+ options = {
+ name = mkOption {
+ type = types.str;
+ description = ''
+ See this list
+ for the available filters.
+ '';
+ };
+
+ values = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ description = ''
+ Value of the filter.
+ '';
+ };
+ };
+ })) ''
Filters can be used optionally to filter the instance list by other criteria.
'';
};
};
- promTypes.filter = types.submodule {
- options = {
- name = mkOption {
- type = types.str;
- description = ''
- See this list
- for the available filters.
- '';
- };
-
- values = mkOption {
- type = types.listOf types.str;
- default = [];
- description = ''
- Value of the filter.
- '';
- };
- };
- };
-
- promTypes.dns_sd_config = types.submodule {
- options = {
- names = mkOption {
- type = types.listOf types.str;
- description = ''
- A list of DNS SRV record names to be queried.
- '';
- };
-
- refresh_interval = mkDefOpt types.str "30s" ''
- The time after which the provided names are refreshed.
- '';
- };
- };
-
- promTypes.consul_sd_config = types.submodule {
- options = {
- server = mkDefOpt types.str "localhost:8500" ''
- Consul server to query.
- '';
-
- token = mkOpt types.str "Consul token";
-
- datacenter = mkOpt types.str "Consul datacenter";
-
- scheme = mkDefOpt types.str "http" "Consul scheme";
-
- username = mkOpt types.str "Consul username";
-
- password = mkOpt types.str "Consul password";
-
- tls_config = mkOpt promTypes.tls_config ''
- Configures the Consul request's TLS settings.
- '';
-
- services = mkOpt (types.listOf types.str) ''
- A list of services for which targets are retrieved.
- '';
-
- tags = mkOpt (types.listOf types.str) ''
- An optional list of tags used to filter nodes for a given
- service. Services must contain all tags in the list.
- '';
-
- node_meta = mkOpt (types.attrsOf types.str) ''
- Node metadata used to filter nodes for a given service.
- '';
-
- tag_separator = mkDefOpt types.str "," ''
- The string by which Consul tags are joined into the tag label.
- '';
-
- allow_stale = mkOpt types.bool ''
- Allow stale Consul results
- (see ).
-
- Will reduce load on Consul.
- '';
-
- refresh_interval = mkDefOpt types.str "30s" ''
- The time after which the provided names are refreshed.
-
- On large setup it might be a good idea to increase this value
- because the catalog will change all the time.
+ promTypes.eureka_sd_config = mkSdConfigModule {
+ server = mkOption {
+ type = types.str;
+ description = ''
+ The URL to connect to the Eureka server.
'';
};
};
@@ -604,13 +820,563 @@ let
tag_separator = mkDefOpt types.str "," ''
The tag separator used to separate concatenated GCE instance network tags.
- See the GCP documentation on network tags for more information:
+ See the GCP documentation on network tags for more information:
+
'';
};
};
+ promTypes.hetzner_sd_config = mkSdConfigModule {
+ role = mkOption {
+ type = types.enum [ "robot" "hcloud" ];
+ description = ''
+ The Hetzner role of entities that should be discovered.
+ One of robot or hcloud.
+ '';
+ };
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the servers are refreshed.
+ '';
+ };
+
+ promTypes.http_sd_config = types.submodule {
+ options = {
+ url = mkOption {
+ type = types.str;
+ description = ''
+ URL from which the targets are fetched.
+ '';
+ };
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-query the endpoint.
+ '';
+
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Authentication information used to authenticate to the API server.
+ password and password_file are mutually exclusive.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the scrape request's TLS settings.
+ '';
+ };
+ };
+
+ promTypes.kubernetes_sd_config = mkSdConfigModule {
+ api_server = mkOpt types.str ''
+ The API server addresses. If left empty, Prometheus is assumed to run inside
+ of the cluster and will discover API servers automatically and use the pod's
+ CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
+ '';
+
+ role = mkOption {
+ type = types.enum [ "endpoints" "service" "pod" "node" "ingress" ];
+ description = ''
+ The Kubernetes role of entities that should be discovered.
+ One of endpoints, service, pod, node, or ingress.
+ '';
+ };
+
+ kubeconfig_file = mkOpt types.str ''
+ Optional path to a kubeconfig file.
+ Note that api_server and kube_config are mutually exclusive.
+ '';
+
+ namespaces = mkOpt
+ (
+ types.submodule {
+ options = {
+ names = mkOpt (types.listOf types.str) ''
+ Namespace name.
+ '';
+ };
+ }
+ ) ''
+ Optional namespace discovery. If omitted, all namespaces are used.
+ '';
+
+ selectors = mkOpt
+ (
+ types.listOf (
+ types.submodule {
+ options = {
+ role = mkOption {
+ type = types.str;
+ description = ''
+ Selector role
+ '';
+ };
+
+ label = mkOpt types.str ''
+ Selector label
+ '';
+
+ field = mkOpt types.str ''
+ Selector field
+ '';
+ };
+ }
+ )
+ ) ''
+ Optional label and field selectors to limit the discovery process to a subset of available resources.
+ See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
+ and https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ to learn more about the possible
+ filters that can be used. Endpoints role supports pod, service and endpoints selectors, other roles
+ only support selectors matching the role itself (e.g. node role can only contain node selectors).
+
+ Note: When making decision about using field/label selector make sure that this
+ is the best approach - it will prevent Prometheus from reusing single list/watch
+ for all scrape configs. This might result in a bigger load on the Kubernetes API,
+ because per each selector combination there will be additional LIST/WATCH. On the other hand,
+ if you just want to monitor small subset of pods in large cluster it's recommended to use selectors.
+ Decision, if selectors should be used or not depends on the particular situation.
+ '';
+ };
+
+ promTypes.kuma_sd_config = mkSdConfigModule {
+ server = mkOption {
+ type = types.str;
+ description = ''
+ Address of the Kuma Control Plane's MADS xDS server.
+ '';
+ };
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time to wait between polling update requests.
+ '';
+
+ fetch_timeout = mkDefOpt types.str "2m" ''
+ The time after which the monitoring assignments are refreshed.
+ '';
+ };
+
+ promTypes.lightsail_sd_config = types.submodule {
+ options = {
+ region = mkOpt types.str ''
+ The AWS region. If blank, the region from the instance metadata is used.
+ '';
+
+ endpoint = mkOpt types.str ''
+ Custom endpoint to be used.
+ '';
+
+ access_key = mkOpt types.str ''
+ The AWS API keys. If blank, the environment variable AWS_ACCESS_KEY_ID is used.
+ '';
+
+ secret_key = mkOpt types.str ''
+ The AWS API keys. If blank, the environment variable AWS_SECRET_ACCESS_KEY is used.
+ '';
+
+ profile = mkOpt types.str ''
+ Named AWS profile used to connect to the API.
+ '';
+
+ role_arn = mkOpt types.str ''
+ AWS Role ARN, an alternative to using AWS API keys.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ '';
+ };
+ };
+
+ promTypes.linode_sd_config = mkSdConfigModule {
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ tag_separator = mkDefOpt types.str "," ''
+ The string by which Linode Instance tags are joined into the tag label.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the linode instances are refreshed.
+ '';
+ };
+
+ promTypes.marathon_sd_config = mkSdConfigModule {
+ servers = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ List of URLs to be used to contact Marathon servers. You need to provide at least one server URL.
+ '';
+ };
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ Polling interval.
+ '';
+
+ auth_token = mkOpt types.str ''
+ Optional authentication information for token-based authentication:
+
+ It is mutually exclusive with auth_token_file and other authentication mechanisms.
+ '';
+
+ auth_token_file = mkOpt types.str ''
+ Optional authentication information for token-based authentication:
+
+ It is mutually exclusive with auth_token and other authentication mechanisms.
+ '';
+ };
+
+ promTypes.nerve_sd_config = types.submodule {
+ options = {
+ servers = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ The Zookeeper servers.
+ '';
+ };
+
+ paths = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ Paths can point to a single service, or the root of a tree of services.
+ '';
+ };
+
+ timeout = mkDefOpt types.str "10s" ''
+ Timeout value.
+ '';
+ };
+ };
+
+ promTypes.openstack_sd_config = types.submodule {
+ options =
+ let
+ userDescription = ''
+ username is required if using Identity V2 API. Consult with your provider's
+ control panel to discover your account's username. In Identity V3, either
+ userid or a combination of username and domain_id or domain_name are needed.
+ '';
+
+ domainDescription = ''
+ At most one of domain_id and domain_name must be provided if using username
+ with Identity V3. Otherwise, either are optional.
+ '';
+
+ projectDescription = ''
+ The project_id and project_name fields are optional for the Identity V2 API.
+ Some providers allow you to specify a project_name instead of the project_id.
+ Some require both. Your provider's authentication policies will determine
+ how these fields influence authentication.
+ '';
+
+ applicationDescription = ''
+ The application_credential_id or application_credential_name fields are
+ required if using an application credential to authenticate. Some providers
+ allow you to create an application credential to authenticate rather than a
+ password.
+ '';
+ in
+ {
+ role = mkOption {
+ type = types.str;
+ description = ''
+ The OpenStack role of entities that should be discovered.
+ '';
+ };
+
+ region = mkOption {
+ type = types.str;
+ description = ''
+ The OpenStack Region.
+ '';
+ };
+
+ identity_endpoint = mkOpt types.str ''
+ identity_endpoint specifies the HTTP endpoint that is required to work with
+ the Identity API of the appropriate version. While it's ultimately needed by
+ all of the identity services, it will often be populated by a provider-level
+ function.
+ '';
+
+ username = mkOpt types.str userDescription;
+ userid = mkOpt types.str userDescription;
+
+ password = mkOpt types.str ''
+ password for the Identity V2 and V3 APIs. Consult with your provider's
+ control panel to discover your account's preferred method of authentication.
+ '';
+
+ domain_name = mkOpt types.str domainDescription;
+ domain_id = mkOpt types.str domainDescription;
+
+ project_name = mkOpt types.str projectDescription;
+ project_id = mkOpt types.str projectDescription;
+
+ application_credential_name = mkOpt types.str applicationDescription;
+ application_credential_id = mkOpt types.str applicationDescription;
+
+ application_credential_secret = mkOpt types.str ''
+ The application_credential_secret field is required if using an application
+ credential to authenticate.
+ '';
+
+ all_tenants = mkDefOpt types.bool "false" ''
+ Whether the service discovery should list all instances for all projects.
+ It is only relevant for the 'instance' role and usually requires admin permissions.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ '';
+
+ availability = mkDefOpt (types.enum [ "public" "admin" "internal" ]) "public" ''
+ The availability of the endpoint to connect to. Must be one of public, admin or internal.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ promTypes.puppetdb_sd_config = mkSdConfigModule {
+ url = mkOption {
+ type = types.str;
+ description = ''
+ The URL of the PuppetDB root query endpoint.
+ '';
+ };
+
+ query = mkOption {
+ type = types.str;
+ description = ''
+ Puppet Query Language (PQL) query. Only resources are supported.
+ https://puppet.com/docs/puppetdb/latest/api/query/v4/pql.html
+ '';
+ };
+
+ include_parameters = mkDefOpt types.bool "false" ''
+ Whether to include the parameters as meta labels.
+ Due to the differences between parameter types and Prometheus labels,
+ some parameters might not be rendered. The format of the parameters might
+ also change in future releases.
+
+ Note: Enabling this exposes parameters in the Prometheus UI and API. Make sure
+ that you don't have secrets exposed as parameters if you enable this.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the resources list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+ };
+
+ promTypes.scaleway_sd_config = types.submodule {
+ options = {
+ access_key = mkOption {
+ type = types.str;
+ description = ''
+ Access key to use. https://console.scaleway.com/project/credentials
+ '';
+ };
+
+ secret_key = mkOpt types.str ''
+ Secret key to use when listing targets. https://console.scaleway.com/project/credentials
+ It is mutually exclusive with `secret_key_file`.
+ '';
+
+ secret_key_file = mkOpt types.str ''
+ Sets the secret key with the credentials read from the configured file.
+ It is mutually exclusive with `secret_key`.
+ '';
+
+ project_id = mkOption {
+ type = types.str;
+ description = ''
+ Project ID of the targets.
+ '';
+ };
+
+ role = mkOption {
+ type = types.enum [ "instance" "baremetal" ];
+ description = ''
+ Role of the targets to retrieve. Must be `instance` or `baremetal`.
+ '';
+ };
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ api_url = mkDefOpt types.str "https://api.scaleway.com" ''
+ API URL to use when doing the server listing requests.
+ '';
+
+ zone = mkDefOpt types.str "fr-par-1" ''
+ Zone is the availability zone of your targets (e.g. fr-par-1).
+ '';
+
+ name_filter = mkOpt types.str ''
+ Specify a name filter (works as a LIKE) to apply on the server listing request.
+ '';
+
+ tags_filter = mkOpt (types.listOf types.str) ''
+ Specify a tag filter (a server needs to have all defined tags to be listed) to apply on the server listing request.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the managed targets list.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ # These are exactly the same.
+ promTypes.serverset_sd_config = promTypes.nerve_sd_config;
+
+ promTypes.triton_sd_config = types.submodule {
+ options = {
+ account = mkOption {
+ type = types.str;
+ description = ''
+ The account to use for discovering new targets.
+ '';
+ };
+
+ role = mkDefOpt (types.enum [ "container" "cn" ]) "container" ''
+ The type of targets to discover, can be set to:
+ - "container" to discover virtual machines (SmartOS zones, lx/KVM/bhyve branded zones) running on Triton
+ - "cn" to discover compute nodes (servers/global zones) making up the Triton infrastructure
+ '';
+
+ dns_suffix = mkOption {
+ type = types.str;
+ description = ''
+ The DNS suffix which should be applied to target.
+ '';
+ };
+
+ endpoint = mkOption {
+ type = types.str;
+ description = ''
+ The Triton discovery endpoint (e.g. cmon.us-east-3b.triton.zone). This is
+ often the same value as dns_suffix.
+ '';
+ };
+
+ groups = mkOpt (types.listOf types.str) ''
+ A list of groups for which targets are retrieved, only supported when targeting the container role.
+ If omitted all containers owned by the requesting account are scraped.
+ '';
+
+ port = mkDefOpt types.int "9163" ''
+ The port to use for discovery and metric scraping.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The interval which should be used for refreshing targets.
+ '';
+
+ version = mkDefOpt types.int "1" ''
+ The Triton discovery API version.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ promTypes.uyuni_sd_config = mkSdConfigModule {
+ server = mkOption {
+ type = types.str;
+ description = ''
+ The URL to connect to the Uyuni server.
+ '';
+ };
+
+ username = mkOption {
+ type = types.str;
+ description = ''
+ Credentials are used to authenticate the requests to Uyuni API.
+ '';
+ };
+
+ password = mkOption {
+ type = types.str;
+ description = ''
+ Credentials are used to authenticate the requests to Uyuni API.
+ '';
+ };
+
+ entitlement = mkDefOpt types.str "monitoring_entitled" ''
+ The entitlement string to filter eligible systems.
+ '';
+
+ separator = mkDefOpt types.str "," ''
+ The string by which Uyuni group names are joined into the groups label
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the managed targets list.
+ '';
+ };
+
+ promTypes.static_config = types.submodule {
+ options = {
+ targets = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ The targets specified by the target group.
+ '';
+ };
+ labels = mkOption {
+ type = types.attrsOf types.str;
+ default = { };
+ description = ''
+ Labels assigned to all metrics scraped from the targets.
+ '';
+ };
+ };
+ };
+
+ #
+ # Config types: relabling
+ #
+
promTypes.relabel_config = types.submodule {
options = {
source_labels = mkOpt (types.listOf types.str) ''
@@ -642,41 +1408,154 @@ let
'';
action =
- mkDefOpt (types.enum ["replace" "keep" "drop" "hashmod" "labelmap" "labeldrop" "labelkeep"]) "replace" ''
- Action to perform based on regex matching.
- '';
+ mkDefOpt (types.enum [ "replace" "keep" "drop" "hashmod" "labelmap" "labeldrop" "labelkeep" ]) "replace" ''
+ Action to perform based on regex matching.
+ '';
};
};
- promTypes.tls_config = types.submodule {
+ #
+ # Config types : remote read / write
+ #
+
+ promTypes.remote_write = types.submodule {
options = {
- ca_file = mkOpt types.str ''
- CA certificate to validate API server certificate with.
+ url = mkOption {
+ type = types.str;
+ description = ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
+ '';
+ };
+ remote_timeout = mkOpt types.str ''
+ Timeout for requests to the remote write endpoint.
'';
-
- cert_file = mkOpt types.str ''
- Certificate file for client cert authentication to the server.
+ write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
+ List of remote write relabel configurations.
'';
-
- key_file = mkOpt types.str ''
- Key file for client cert authentication to the server.
+ name = mkOpt types.str ''
+ Name of the remote write config, which if specified must be unique among remote write configs.
+ The name will be used in metrics and logging in place of a generated value to help users distinguish between
+ remote write configs.
'';
-
- server_name = mkOpt types.str ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Sets the `Authorization` header on every remote write request with the
+ configured username and password.
+ password and password_file are mutually exclusive.
'';
-
- insecure_skip_verify = mkOpt types.bool ''
- Disable validation of the server certificate.
+ bearer_token = mkOpt types.str ''
+ Sets the `Authorization` header on every remote write request with
+ the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+ '';
+ bearer_token_file = mkOpt types.str ''
+ Sets the `Authorization` header on every remote write request with the bearer token
+ read from the configured file. It is mutually exclusive with `bearer_token`.
+ '';
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the remote write request's TLS settings.
+ '';
+ proxy_url = mkOpt types.str "Optional Proxy URL.";
+ queue_config = mkOpt
+ (types.submodule {
+ options = {
+ capacity = mkOpt types.int ''
+ Number of samples to buffer per shard before we block reading of more
+ samples from the WAL. It is recommended to have enough capacity in each
+ shard to buffer several requests to keep throughput up while processing
+ occasional slow remote requests.
+ '';
+ max_shards = mkOpt types.int ''
+ Maximum number of shards, i.e. amount of concurrency.
+ '';
+ min_shards = mkOpt types.int ''
+ Minimum number of shards, i.e. amount of concurrency.
+ '';
+ max_samples_per_send = mkOpt types.int ''
+ Maximum number of samples per send.
+ '';
+ batch_send_deadline = mkOpt types.str ''
+ Maximum time a sample will wait in buffer.
+ '';
+ min_backoff = mkOpt types.str ''
+ Initial retry delay. Gets doubled for every retry.
+ '';
+ max_backoff = mkOpt types.str ''
+ Maximum retry delay.
+ '';
+ };
+ }) ''
+ Configures the queue used to write to remote storage.
+ '';
+ metadata_config = mkOpt
+ (types.submodule {
+ options = {
+ send = mkOpt types.bool ''
+ Whether metric metadata is sent to remote storage or not.
+ '';
+ send_interval = mkOpt types.str ''
+ How frequently metric metadata is sent to remote storage.
+ '';
+ };
+ }) ''
+ Configures the sending of series metadata to remote storage.
+ Metadata configuration is subject to change at any point
+ or be removed in future releases.
'';
};
};
-in {
+ promTypes.remote_read = types.submodule {
+ options = {
+ url = mkOption {
+ type = types.str;
+ description = ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
+ '';
+ };
+ name = mkOpt types.str ''
+ Name of the remote read config, which if specified must be unique among remote read configs.
+ The name will be used in metrics and logging in place of a generated value to help users distinguish between
+ remote read configs.
+ '';
+ required_matchers = mkOpt (types.attrsOf types.str) ''
+ An optional list of equality matchers which have to be
+ present in a selector to query the remote read endpoint.
+ '';
+ remote_timeout = mkOpt types.str ''
+ Timeout for requests to the remote read endpoint.
+ '';
+ read_recent = mkOpt types.bool ''
+ Whether reads should be made for queries for time ranges that
+ the local storage should have complete data for.
+ '';
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Sets the `Authorization` header on every remote read request with the
+ configured username and password.
+ password and password_file are mutually exclusive.
+ '';
+ bearer_token = mkOpt types.str ''
+ Sets the `Authorization` header on every remote read request with
+ the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+ '';
+ bearer_token_file = mkOpt types.str ''
+ Sets the `Authorization` header on every remote read request with the bearer token
+ read from the configured file. It is mutually exclusive with `bearer_token`.
+ '';
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the remote read request's TLS settings.
+ '';
+ proxy_url = mkOpt types.str "Optional Proxy URL.";
+ };
+ };
+
+in
+{
imports = [
(mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
+ (mkRemovedOptionModule [ "services" "prometheus" "environmentFile" ]
+ "It has been removed since it was causing issues (https://github.com/NixOS/nixpkgs/issues/126083) and Prometheus now has native support for secret files, i.e. `basic_auth.password_file` and `authorization.credentials_file`.")
];
options.services.prometheus = {
@@ -692,7 +1571,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.prometheus;
- defaultText = "pkgs.prometheus";
+ defaultText = literalExpression "pkgs.prometheus";
description = ''
The prometheus package that should be used.
'';
@@ -725,48 +1604,22 @@ in {
extraFlags = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Extra commandline options when launching Prometheus.
'';
};
- environmentFile = mkOption {
- type = types.nullOr types.path;
- default = null;
- example = "/root/prometheus.env";
+ enableReload = mkOption {
+ default = false;
+ type = types.bool;
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Reload prometheus when configuration file changes (instead of restart).
- Secrets may be passed to the service without adding them to the
- world-readable Nix store, by specifying placeholder variables as
- the option value in Nix and setting these variables accordingly in the
- environment file.
-
- Environment variables from this file will be interpolated into the
- config file using envsubst with this syntax:
- $ENVIRONMENT ''${VARIABLE}
-
-
- # Example scrape config entry handling an OAuth bearer token
- {
- job_name = "home_assistant";
- metrics_path = "/api/prometheus";
- scheme = "https";
- bearer_token = "\''${HOME_ASSISTANT_BEARER_TOKEN}";
- [...]
- }
-
-
-
- # Content of the environment file
- HOME_ASSISTANT_BEARER_TOKEN=someoauthbearertoken
-
-
- Note that this file needs to be available on the host on which
- Prometheus is running.
+ The following property holds: switching to a configuration
+ (switch-to-configuration) that changes the prometheus
+ configuration only finishes successully when prometheus has finished
+ loading the new configuration.
'';
};
@@ -782,7 +1635,7 @@ in {
globalConfig = mkOption {
type = promTypes.globalConfig;
- default = {};
+ default = { };
description = ''
Parameters that are valid in all configuration contexts. They
also serve as defaults for other configuration sections
@@ -791,7 +1644,7 @@ in {
remoteRead = mkOption {
type = types.listOf promTypes.remote_read;
- default = [];
+ default = [ ];
description = ''
Parameters of the endpoints to query from.
See the official documentation for more information.
@@ -800,7 +1653,7 @@ in {
remoteWrite = mkOption {
type = types.listOf promTypes.remote_write;
- default = [];
+ default = [ ];
description = ''
Parameters of the endpoints to send samples to.
See the official documentation for more information.
@@ -809,7 +1662,7 @@ in {
rules = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Alerting and/or Recording rules to evaluate at runtime.
'';
@@ -817,7 +1670,7 @@ in {
ruleFiles = mkOption {
type = types.listOf types.path;
- default = [];
+ default = [ ];
description = ''
Any additional rules files to include in this configuration.
'';
@@ -825,7 +1678,7 @@ in {
scrapeConfigs = mkOption {
type = types.listOf promTypes.scrape_config;
- default = [];
+ default = [ ];
description = ''
A list of scrape configurations.
'';
@@ -833,7 +1686,7 @@ in {
alertmanagers = mkOption {
type = types.listOf types.attrs;
- example = literalExample ''
+ example = literalExpression ''
[ {
scheme = "https";
path_prefix = "/alertmanager";
@@ -844,7 +1697,7 @@ in {
} ];
} ]
'';
- default = [];
+ default = [ ];
description = ''
A list of alertmanagers to send alerts to.
See the official documentation for more information.
@@ -903,11 +1756,13 @@ in {
config = mkIf cfg.enable {
assertions = [
- ( let
+ (
+ let
# Match something with dots (an IPv4 address) or something ending in
# a square bracket (an IPv6 addresses) followed by a port number.
legacy = builtins.match "(.*\\..*|.*]):([[:digit:]]+)" cfg.listenAddress;
- in {
+ in
+ {
assertion = legacy == null;
message = ''
Do not specify the port for Prometheus to listen on in the
@@ -925,20 +1780,19 @@ in {
uid = config.ids.uids.prometheus;
group = "prometheus";
};
+ environment.etc."prometheus/prometheus.yaml" = mkIf cfg.enableReload {
+ source = prometheusYml;
+ };
systemd.services.prometheus = {
wantedBy = [ "multi-user.target" ];
- after = [ "network.target" ];
- preStart = ''
- ${lib.getBin pkgs.envsubst}/bin/envsubst -o "/run/prometheus/prometheus-substituted.yaml" \
- -i "${prometheusYml}"
- '';
+ after = [ "network.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/prometheus" +
optionalString (length cmdlineArgs != 0) (" \\\n " +
concatStringsSep " \\\n " cmdlineArgs);
+ ExecReload = mkIf cfg.enableReload "+${reload}/bin/reload-prometheus";
User = "prometheus";
- Restart = "always";
- EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
+ Restart = "always";
RuntimeDirectory = "prometheus";
RuntimeDirectoryMode = "0700";
WorkingDirectory = workingDir;
@@ -946,5 +1800,29 @@ in {
StateDirectoryMode = "0700";
};
};
+ # prometheus-config-reload will activate after prometheus. However, what we
+ # don't want is that on startup it immediately reloads prometheus because
+ # prometheus itself might have just started.
+ #
+ # Instead we only want to reload prometheus when the config file has
+ # changed. So on startup prometheus-config-reload will just output a
+ # harmless message and then stay active (RemainAfterExit).
+ #
+ # Then, when the config file has changed, switch-to-configuration notices
+ # that this service has changed (restartTriggers) and needs to be reloaded
+ # (reloadIfChanged). The reload command then reloads prometheus.
+ systemd.services.prometheus-config-reload = mkIf cfg.enableReload {
+ wantedBy = [ "prometheus.service" ];
+ after = [ "prometheus.service" ];
+ reloadIfChanged = true;
+ restartTriggers = [ prometheusYml ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ TimeoutSec = 60;
+ ExecStart = "${pkgs.logger}/bin/logger 'prometheus-config-reload will only reload prometheus when reloaded itself.'";
+ ExecReload = [ "${triggerReload}/bin/trigger-reload-prometheus" ];
+ };
+ };
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index 9182c2f2ed87..62e90232e114 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -1,7 +1,7 @@
{ config, pkgs, lib, options, ... }:
let
- inherit (lib) concatStrings foldl foldl' genAttrs literalExample maintainers
+ inherit (lib) concatStrings foldl foldl' genAttrs literalExpression maintainers
mapAttrsToList mkDefault mkEnableOption mkIf mkMerge mkOption
optional types mkOptionDefault flip attrNames;
@@ -32,6 +32,7 @@ let
"dnsmasq"
"domain"
"dovecot"
+ "fastly"
"fritzbox"
"influxdb"
"json"
@@ -108,7 +109,7 @@ let
firewallFilter = mkOption {
type = types.nullOr types.str;
default = null;
- example = literalExample ''
+ example = literalExpression ''
"-i eth0 -p tcp -m tcp --dport ${toString port}"
'';
description = ''
@@ -184,6 +185,28 @@ let
serviceConfig.DynamicUser = mkDefault enableDynamicUser;
serviceConfig.User = mkDefault conf.user;
serviceConfig.Group = conf.group;
+ # Hardening
+ serviceConfig.CapabilityBoundingSet = mkDefault [ "" ];
+ serviceConfig.DeviceAllow = [ "" ];
+ serviceConfig.LockPersonality = true;
+ serviceConfig.MemoryDenyWriteExecute = true;
+ serviceConfig.NoNewPrivileges = true;
+ serviceConfig.PrivateDevices = true;
+ serviceConfig.ProtectClock = mkDefault true;
+ serviceConfig.ProtectControlGroups = true;
+ serviceConfig.ProtectHome = true;
+ serviceConfig.ProtectHostname = true;
+ serviceConfig.ProtectKernelLogs = true;
+ serviceConfig.ProtectKernelModules = true;
+ serviceConfig.ProtectKernelTunables = true;
+ serviceConfig.ProtectSystem = mkDefault "strict";
+ serviceConfig.RemoveIPC = true;
+ serviceConfig.RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+ serviceConfig.RestrictNamespaces = true;
+ serviceConfig.RestrictRealtime = true;
+ serviceConfig.RestrictSUIDSGID = true;
+ serviceConfig.SystemCallArchitectures = "native";
+ serviceConfig.UMask = "0077";
} serviceOpts ]);
};
in
@@ -203,7 +226,7 @@ in
};
description = "Prometheus exporter configuration";
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
node = {
enable = true;
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/bird.nix b/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
index d8a526eafcea..1ef264fc86e5 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
@@ -41,6 +41,10 @@ in
-format.new=${if cfg.newMetricFormat then "true" else "false"} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix b/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
index 7557480ac062..e9be39608fcb 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
@@ -36,7 +36,7 @@ in
queues = mkOption {
type = with types; nullOr (listOf str);
default = null;
- example = literalExample ''[ "my-queue1" "my-queue2" ]'';
+ example = literalExpression ''[ "my-queue1" "my-queue2" ]'';
description = ''
Which specific queues to process.
'';
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix b/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
index 472652fe8a7a..092ac6fea7d7 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
@@ -83,6 +83,10 @@ in
--dovecot.scopes ${concatStringsSep "," cfg.scopes} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix b/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
new file mode 100644
index 000000000000..5b35bb29a301
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let cfg = config.services.prometheus.exporters.fastly;
+in
+{
+ port = 9118;
+ extraOpts = {
+ debug = mkEnableOption "Debug logging mode for fastly-exporter";
+
+ configFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Path to a fastly-exporter configuration file.
+ Example one can be generated with fastly-exporter --config-file-example.
+ '';
+ example = "./fastly-exporter-config.txt";
+ };
+
+ tokenPath = mkOption {
+ type = types.nullOr types.path;
+ apply = final: if final == null then null else toString final;
+ description = ''
+ A run-time path to the token file, which is supposed to be provisioned
+ outside of Nix store.
+ '';
+ };
+ };
+ serviceOpts = {
+ script = ''
+ ${optionalString (cfg.tokenPath != null)
+ "export FASTLY_API_TOKEN=$(cat ${toString cfg.tokenPath})"}
+ ${pkgs.fastly-exporter}/bin/fastly-exporter \
+ -endpoint http://${cfg.listenAddress}:${cfg.port}/metrics
+ ${optionalString cfg.debug "-debug true"} \
+ ${optionalString cfg.configFile "-config-file ${cfg.configFile}"}
+ '';
+ };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/flow.nix b/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
index 6a35f46308fe..b85e5461f218 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
@@ -9,7 +9,7 @@ in {
extraOpts = {
brokers = mkOption {
type = types.listOf types.str;
- example = literalExample ''[ "kafka.example.org:19092" ]'';
+ example = literalExpression ''[ "kafka.example.org:19092" ]'';
description = "List of Kafka brokers to connect to.";
};
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/kea.nix b/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
index 9677281f8772..27aeb9096243 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
@@ -13,7 +13,7 @@ in {
extraOpts = {
controlSocketPaths = mkOption {
type = types.listOf types.str;
- example = literalExample ''
+ example = literalExpression ''
[
"/run/kea/kea-dhcp4.socket"
"/run/kea/kea-dhcp6.socket"
@@ -34,6 +34,10 @@ in {
${concatStringsSep " \\n" cfg.controlSocketPaths}
'';
SupplementaryGroups = [ "kea" ];
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/knot.nix b/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
index 46c28fe0a578..29e543f1013b 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
@@ -10,7 +10,7 @@ in {
knotLibraryPath = mkOption {
type = types.str;
default = "${pkgs.knot-dns.out}/lib/libknot.so";
- defaultText = "\${pkgs.knot-dns}/lib/libknot.so";
+ defaultText = literalExpression ''"''${pkgs.knot-dns.out}/lib/libknot.so"'';
description = ''
Path to the library of knot-dns.
'';
@@ -45,6 +45,10 @@ in {
${concatStringsSep " \\\n " cfg.extraFlags}
'';
SupplementaryGroups = [ "knot" ];
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/mail.nix b/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
index 7e196149fbb3..956bd96aa454 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
@@ -100,7 +100,7 @@ let
servers = mkOption {
type = types.listOf (types.submodule serverOptions);
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ {
name = "testserver";
server = "smtp.domain.tld";
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix b/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
index 62c2cc568476..8f9536b702a5 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
@@ -15,7 +15,7 @@ in
Path to a mikrotik exporter configuration file. Mutually exclusive with
option.
'';
- example = literalExample "./mikrotik.yml";
+ example = literalExpression "./mikrotik.yml";
};
configuration = mkOption {
@@ -28,7 +28,7 @@ in
See
for the description of the configuration file format.
'';
- example = literalExample ''
+ example = literalExpression ''
{
devices = [
{
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix b/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
index 86ea98b94e4c..afd03f6c270e 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
@@ -28,6 +28,10 @@ in
-rate ${cfg.refreshRate} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/node.nix b/nixos/modules/services/monitoring/prometheus/exporters/node.nix
index adc2abe0b91c..5e5fc7cd5524 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/node.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/node.nix
@@ -11,7 +11,7 @@ in
enabledCollectors = mkOption {
type = types.listOf types.str;
default = [];
- example = ''[ "systemd" ]'';
+ example = [ "systemd" ];
description = ''
Collectors to enable. The collectors listed here are enabled in addition to the default ones.
'';
@@ -19,7 +19,7 @@ in
disabledCollectors = mkOption {
type = types.listOf types.str;
default = [];
- example = ''[ "timex" ]'';
+ example = [ "timex" ];
description = ''
Collectors to disable which are enabled by default.
'';
@@ -35,6 +35,15 @@ in
${concatMapStringsSep " " (x: "--no-collector." + x) cfg.disabledCollectors} \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags}
'';
+ RestrictAddressFamilies = optionals (any (collector: (collector == "logind" || collector == "systemd")) cfg.enabledCollectors) [
+ # needs access to dbus via unix sockets (logind/systemd)
+ "AF_UNIX"
+ ] ++ optionals (any (collector: (collector == "network_route" || collector == "wifi")) cfg.enabledCollectors) [
+ # needs netlink sockets for wireless collector
+ "AF_NETLINK"
+ ];
+ # The timex collector needs to access clock APIs
+ ProtectClock = any (collector: collector == "timex") cfg.disabledCollectors;
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix b/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
index 21c2e5eab4ca..4bc27ebc32f8 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
@@ -42,8 +42,8 @@ in
};
piholePort = mkOption {
type = types.port;
- default = "80";
- example = "443";
+ default = 80;
+ example = 443;
description = ''
The port pihole webinterface is reachable on
'';
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix b/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
index dd3bec8ec16c..3f9a32ef3995 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
@@ -79,6 +79,10 @@ in
--web.telemetry-path ${cfg.telemetryPath} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/process.nix b/nixos/modules/services/monitoring/prometheus/exporters/process.nix
index e3b3d18367fd..1e9c402fb55b 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/process.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/process.nix
@@ -11,14 +11,12 @@ in
extraOpts = {
settings.process_names = mkOption {
type = types.listOf types.anything;
- default = {};
- example = literalExample ''
- {
- process_names = [
- # Remove nix store path from process name
- { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P[^ /]*) (?P.*)" ]; }
- ];
- }
+ default = [];
+ example = literalExpression ''
+ [
+ # Remove nix store path from process name
+ { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P[^ /]*) (?P.*)" ]; }
+ ]
'';
description = ''
All settings expressed as an Nix attrset.
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
index 994670a376e7..ed985751e428 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -62,8 +62,8 @@ in
default = {
host = config.networking.hostName;
};
- defaultText = "{ host = config.networking.hostName; }";
- example = literalExample ''
+ defaultText = literalExpression "{ host = config.networking.hostName; }";
+ example = literalExpression ''
{
host = config.networking.hostName;
custom_label = "some_value";
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix b/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
index 01e420db3897..ef829a1b7d02 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
@@ -61,6 +61,11 @@ in
serviceConfig = {
# rtl-sdr udev rules make supported USB devices +rw by plugdev.
SupplementaryGroups = "plugdev";
+ # rtl_433 needs rw access to the USB radio.
+ PrivateDevices = lib.mkForce false;
+ DeviceAllow = lib.mkForce "char-usb_device rw";
+ RestrictAddressFamilies = [ "AF_NETLINK" ];
+
ExecStart = let
matchers = (map (m:
"--channel_matcher '${m.name},${toString m.channel},${m.location}'"
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/script.nix b/nixos/modules/services/monitoring/prometheus/exporters/script.nix
index 104ab859f2ee..a805a0ad335d 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/script.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/script.nix
@@ -30,7 +30,7 @@ in
};
};
});
- example = literalExample ''
+ example = literalExpression ''
{
scripts = [
{ name = "sleep"; script = "sleep 5"; }
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix b/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
index 0a7bb9c27be2..0181c341a7ef 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
@@ -45,6 +45,7 @@ in
serviceOpts = {
serviceConfig = {
AmbientCapabilities = [ "CAP_NET_RAW" ];
+ CapabilityBoundingSet = [ "CAP_NET_RAW" ];
ExecStart = ''
${pkgs.prometheus-smokeping-prober}/bin/smokeping_prober \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
index 01276366e97b..de42663e67f4 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
@@ -14,7 +14,7 @@ in
description = ''
Path to a snmp exporter configuration file. Mutually exclusive with 'configuration' option.
'';
- example = "./snmp.yml";
+ example = literalExpression "./snmp.yml";
};
configuration = mkOption {
@@ -23,16 +23,14 @@ in
description = ''
Snmp exporter configuration as nix attribute set. Mutually exclusive with 'configurationPath' option.
'';
- example = ''
- {
- "default" = {
- "version" = 2;
- "auth" = {
- "community" = "public";
- };
+ example = {
+ "default" = {
+ "version" = 2;
+ "auth" = {
+ "community" = "public";
};
};
- '';
+ };
};
logFormat = mkOption {
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/sql.nix b/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
index d9be724ebc03..3496fd9541f3 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
@@ -99,6 +99,10 @@ in
-config.file ${configFile} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix b/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
index 0514469b8a61..c0a50f07d717 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
@@ -13,6 +13,10 @@ in {
${pkgs.prometheus-systemd-exporter}/bin/systemd_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix b/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
index 56a559531c14..cf0efddd340a 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
@@ -49,6 +49,10 @@ in
${optionalString (cfg.controlInterface != null) "--control-interface ${cfg.controlInterface}"} \
${toString cfg.extraFlags}
'';
+ RestrictAddressFamilies = [
+ # Need AF_UNIX to collect data
+ "AF_UNIX"
+ ];
};
}] ++ [
(mkIf config.services.unbound.enable {
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
index 04421fc2d25a..d4aa69629ec8 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
@@ -52,6 +52,7 @@ in {
serviceConfig = {
AmbientCapabilities = [ "CAP_NET_ADMIN" ];
+ CapabilityBoundingSet = [ "CAP_NET_ADMIN" ];
ExecStart = ''
${pkgs.prometheus-wireguard-exporter}/bin/prometheus_wireguard_exporter \
-p ${toString cfg.port} \
@@ -61,6 +62,10 @@ in {
${optionalString cfg.withRemoteIp "-r"} \
${optionalString (cfg.wireguardConfig != null) "-n ${escapeShellArg cfg.wireguardConfig}"}
'';
+ RestrictAddressFamilies = [
+ # Need AF_NETLINK to collect data
+ "AF_NETLINK"
+ ];
};
};
}
diff --git a/nixos/modules/services/monitoring/prometheus/pushgateway.nix b/nixos/modules/services/monitoring/prometheus/pushgateway.nix
index f8fcc3eb97ef..01b993762436 100644
--- a/nixos/modules/services/monitoring/prometheus/pushgateway.nix
+++ b/nixos/modules/services/monitoring/prometheus/pushgateway.nix
@@ -26,7 +26,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.prometheus-pushgateway;
- defaultText = "pkgs.prometheus-pushgateway";
+ defaultText = literalExpression "pkgs.prometheus-pushgateway";
description = ''
Package that should be used for the prometheus pushgateway.
'';
diff --git a/nixos/modules/services/monitoring/scollector.nix b/nixos/modules/services/monitoring/scollector.nix
index ef535585e9be..6a6fe110f940 100644
--- a/nixos/modules/services/monitoring/scollector.nix
+++ b/nixos/modules/services/monitoring/scollector.nix
@@ -43,8 +43,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.scollector;
- defaultText = "pkgs.scollector";
- example = literalExample "pkgs.scollector";
+ defaultText = literalExpression "pkgs.scollector";
description = ''
scollector binary to use.
'';
@@ -78,7 +77,7 @@ in {
collectors = mkOption {
type = with types; attrsOf (listOf path);
default = {};
- example = literalExample "{ \"0\" = [ \"\${postgresStats}/bin/collect-stats\" ]; }";
+ example = literalExpression ''{ "0" = [ "''${postgresStats}/bin/collect-stats" ]; }'';
description = ''
An attribute set mapping the frequency of collection to a list of
binaries that should be executed at that frequency. You can use "0"
diff --git a/nixos/modules/services/monitoring/teamviewer.nix b/nixos/modules/services/monitoring/teamviewer.nix
index ce9e57a187cd..e2271e571c40 100644
--- a/nixos/modules/services/monitoring/teamviewer.nix
+++ b/nixos/modules/services/monitoring/teamviewer.nix
@@ -24,18 +24,21 @@ in
environment.systemPackages = [ pkgs.teamviewer ];
+ services.dbus.packages = [ pkgs.teamviewer ];
+
systemd.services.teamviewerd = {
description = "TeamViewer remote control daemon";
wantedBy = [ "multi-user.target" ];
- after = [ "NetworkManager-wait-online.service" "network.target" ];
+ after = [ "NetworkManager-wait-online.service" "network.target" "dbus.service" ];
+ requires = [ "dbus.service" ];
preStart = "mkdir -pv /var/lib/teamviewer /var/log/teamviewer";
startLimitIntervalSec = 60;
startLimitBurst = 10;
serviceConfig = {
- Type = "forking";
- ExecStart = "${pkgs.teamviewer}/bin/teamviewerd -d";
+ Type = "simple";
+ ExecStart = "${pkgs.teamviewer}/bin/teamviewerd -f";
PIDFile = "/run/teamviewerd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
Restart = "on-abort";
diff --git a/nixos/modules/services/monitoring/telegraf.nix b/nixos/modules/services/monitoring/telegraf.nix
index 4046260c1649..13aae58d0f37 100644
--- a/nixos/modules/services/monitoring/telegraf.nix
+++ b/nixos/modules/services/monitoring/telegraf.nix
@@ -15,7 +15,7 @@ in {
package = mkOption {
default = pkgs.telegraf;
- defaultText = "pkgs.telegraf";
+ defaultText = literalExpression "pkgs.telegraf";
description = "Which telegraf derivation to use";
type = types.package;
};
@@ -23,7 +23,7 @@ in {
environmentFiles = mkOption {
type = types.listOf types.path;
default = [];
- example = "/run/keys/telegraf.env";
+ example = [ "/run/keys/telegraf.env" ];
description = ''
File to load as environment file. Environment variables from this file
will be interpolated into the config file using envsubst with this
diff --git a/nixos/modules/services/monitoring/thanos.nix b/nixos/modules/services/monitoring/thanos.nix
index 96addf392bd7..da626788d827 100644
--- a/nixos/modules/services/monitoring/thanos.nix
+++ b/nixos/modules/services/monitoring/thanos.nix
@@ -120,7 +120,7 @@ let
type = with types; nullOr str;
default = if cfg.tracing.config == null then null
else toString (toYAML "tracing.yaml" cfg.tracing.config);
- defaultText = ''
+ defaultText = literalExpression ''
if config.services.thanos..tracing.config == null then null
else toString (toYAML "tracing.yaml" config.services.thanos..tracing.config);
'';
@@ -185,7 +185,7 @@ let
type = with types; nullOr str;
default = if cfg.objstore.config == null then null
else toString (toYAML "objstore.yaml" cfg.objstore.config);
- defaultText = ''
+ defaultText = literalExpression ''
if config.services.thanos..objstore.config == null then null
else toString (toYAML "objstore.yaml" config.services.thanos..objstore.config);
'';
@@ -227,7 +227,7 @@ let
option = mkOption {
type = types.str;
default = "/var/lib/${config.services.prometheus.stateDir}/data";
- defaultText = "/var/lib/\${config.services.prometheus.stateDir}/data";
+ defaultText = literalExpression ''"/var/lib/''${config.services.prometheus.stateDir}/data"'';
description = ''
Data directory of TSDB.
'';
@@ -656,7 +656,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.thanos;
- defaultText = "pkgs.thanos";
+ defaultText = literalExpression "pkgs.thanos";
description = ''
The thanos package that should be used.
'';
diff --git a/nixos/modules/services/monitoring/unifi-poller.nix b/nixos/modules/services/monitoring/unifi-poller.nix
index 208f5e4875b4..cca4a0e72071 100644
--- a/nixos/modules/services/monitoring/unifi-poller.nix
+++ b/nixos/modules/services/monitoring/unifi-poller.nix
@@ -6,7 +6,7 @@ let
cfg = config.services.unifi-poller;
configFile = pkgs.writeText "unifi-poller.json" (generators.toJSON {} {
- inherit (cfg) poller influxdb prometheus unifi;
+ inherit (cfg) poller influxdb loki prometheus unifi;
});
in {
@@ -87,7 +87,7 @@ in {
pass = mkOption {
type = types.path;
default = pkgs.writeText "unifi-poller-influxdb-default.password" "unifipoller";
- defaultText = "unifi-poller-influxdb-default.password";
+ defaultText = literalExpression "unifi-poller-influxdb-default.password";
description = ''
Path of a file containing the password for influxdb.
This file needs to be readable by the unifi-poller user.
@@ -118,6 +118,61 @@ in {
};
};
+ loki = {
+ url = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ URL of the Loki host.
+ '';
+ };
+ user = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ Username for Loki.
+ '';
+ };
+ pass = mkOption {
+ type = types.path;
+ default = pkgs.writeText "unifi-poller-loki-default.password" "";
+ defaultText = "unifi-poller-influxdb-default.password";
+ description = ''
+ Path of a file containing the password for Loki.
+ This file needs to be readable by the unifi-poller user.
+ '';
+ apply = v: "file://${v}";
+ };
+ verify_ssl = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Verify Loki's certificate.
+ '';
+ };
+ tenant_id = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ Tenant ID to use in Loki.
+ '';
+ };
+ interval = mkOption {
+ type = types.str;
+ default = "2m";
+ description = ''
+ How often the events are polled and pushed to Loki.
+ '';
+ };
+ timeout = mkOption {
+ type = types.str;
+ default = "10s";
+ description = ''
+ Should be increased in case of timeout errors.
+ '';
+ };
+ };
+
unifi = let
controllerOptions = {
user = mkOption {
@@ -130,7 +185,7 @@ in {
pass = mkOption {
type = types.path;
default = pkgs.writeText "unifi-poller-unifi-default.password" "unifi";
- defaultText = "unifi-poller-unifi-default.password";
+ defaultText = literalExpression "unifi-poller-unifi-default.password";
description = ''
Path of a file containing the password for the unifi service user.
This file needs to be readable by the unifi-poller user.
@@ -157,7 +212,28 @@ in {
type = types.bool;
default = false;
description = ''
- Collect and save data from the intrusion detection system to influxdb.
+ Collect and save data from the intrusion detection system to influxdb and Loki.
+ '';
+ };
+ save_events = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Collect and save data from UniFi events to influxdb and Loki.
+ '';
+ };
+ save_alarms = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Collect and save data from UniFi alarms to influxdb and Loki.
+ '';
+ };
+ save_anomalies = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Collect and save data from UniFi anomalies to influxdb and Loki.
'';
};
save_dpi = mkOption {
diff --git a/nixos/modules/services/monitoring/zabbix-agent.nix b/nixos/modules/services/monitoring/zabbix-agent.nix
index 7eb6449e384d..c48b973f1ef7 100644
--- a/nixos/modules/services/monitoring/zabbix-agent.nix
+++ b/nixos/modules/services/monitoring/zabbix-agent.nix
@@ -4,7 +4,7 @@ let
cfg = config.services.zabbixAgent;
inherit (lib) mkDefault mkEnableOption mkIf mkMerge mkOption;
- inherit (lib) attrValues concatMapStringsSep literalExample optionalString types;
+ inherit (lib) attrValues concatMapStringsSep literalExpression optionalString types;
inherit (lib.generators) toKeyValue;
user = "zabbix-agent";
@@ -34,15 +34,15 @@ in
package = mkOption {
type = types.package;
default = pkgs.zabbix.agent;
- defaultText = "pkgs.zabbix.agent";
+ defaultText = literalExpression "pkgs.zabbix.agent";
description = "The Zabbix package to use.";
};
extraPackages = mkOption {
type = types.listOf types.package;
default = with pkgs; [ nettools ];
- defaultText = "[ nettools ]";
- example = "[ nettools mysql ]";
+ defaultText = literalExpression "with pkgs; [ nettools ]";
+ example = literalExpression "with pkgs; [ nettools mysql ]";
description = ''
Packages to be added to the Zabbix PATH.
Typically used to add executables for scripts, but can be anything.
@@ -53,7 +53,7 @@ in
type = types.attrsOf types.package;
description = "A set of modules to load.";
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"dummy.so" = pkgs.stdenv.mkDerivation {
name = "zabbix-dummy-module-''${cfg.package.version}";
diff --git a/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixos/modules/services/monitoring/zabbix-proxy.nix
index 8c7a2970e9b3..b5009f47f175 100644
--- a/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -6,7 +6,7 @@ let
mysql = config.services.mysql;
inherit (lib) mkAfter mkDefault mkEnableOption mkIf mkMerge mkOption;
- inherit (lib) attrValues concatMapStringsSep getName literalExample optional optionalAttrs optionalString types;
+ inherit (lib) attrValues concatMapStringsSep getName literalExpression optional optionalAttrs optionalString types;
inherit (lib.generators) toKeyValue;
user = "zabbix";
@@ -52,14 +52,14 @@ in
if cfg.database.type == "mysql" then pkgs.zabbix.proxy-mysql
else if cfg.database.type == "pgsql" then pkgs.zabbix.proxy-pgsql
else pkgs.zabbix.proxy-sqlite;
- defaultText = "pkgs.zabbix.proxy-pgsql";
+ defaultText = literalExpression "pkgs.zabbix.proxy-pgsql";
description = "The Zabbix package to use.";
};
extraPackages = mkOption {
type = types.listOf types.package;
default = with pkgs; [ nettools nmap traceroute ];
- defaultText = "[ nettools nmap traceroute ]";
+ defaultText = literalExpression "[ nettools nmap traceroute ]";
description = ''
Packages to be added to the Zabbix PATH.
Typically used to add executables for scripts, but can be anything.
@@ -70,7 +70,7 @@ in
type = types.attrsOf types.package;
description = "A set of modules to load.";
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"dummy.so" = pkgs.stdenv.mkDerivation {
name = "zabbix-dummy-module-''${cfg.package.version}";
@@ -109,7 +109,7 @@ in
name = mkOption {
type = types.str;
default = if cfg.database.type == "sqlite" then "${stateDir}/zabbix.db" else "zabbix";
- defaultText = "zabbix";
+ defaultText = literalExpression "zabbix";
description = "Database name.";
};
diff --git a/nixos/modules/services/monitoring/zabbix-server.nix b/nixos/modules/services/monitoring/zabbix-server.nix
index c8658634ecb6..9b0fd9dbff13 100644
--- a/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixos/modules/services/monitoring/zabbix-server.nix
@@ -6,7 +6,7 @@ let
mysql = config.services.mysql;
inherit (lib) mkAfter mkDefault mkEnableOption mkIf mkMerge mkOption;
- inherit (lib) attrValues concatMapStringsSep getName literalExample optional optionalAttrs optionalString types;
+ inherit (lib) attrValues concatMapStringsSep getName literalExpression optional optionalAttrs optionalString types;
inherit (lib.generators) toKeyValue;
user = "zabbix";
@@ -44,14 +44,14 @@ in
package = mkOption {
type = types.package;
default = if cfg.database.type == "mysql" then pkgs.zabbix.server-mysql else pkgs.zabbix.server-pgsql;
- defaultText = "pkgs.zabbix.server-pgsql";
+ defaultText = literalExpression "pkgs.zabbix.server-pgsql";
description = "The Zabbix package to use.";
};
extraPackages = mkOption {
type = types.listOf types.package;
default = with pkgs; [ nettools nmap traceroute ];
- defaultText = "[ nettools nmap traceroute ]";
+ defaultText = literalExpression "[ nettools nmap traceroute ]";
description = ''
Packages to be added to the Zabbix PATH.
Typically used to add executables for scripts, but can be anything.
@@ -62,7 +62,7 @@ in
type = types.attrsOf types.package;
description = "A set of modules to load.";
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"dummy.so" = pkgs.stdenv.mkDerivation {
name = "zabbix-dummy-module-''${cfg.package.version}";
diff --git a/nixos/modules/services/network-filesystems/ceph.nix b/nixos/modules/services/network-filesystems/ceph.nix
index d833062c4737..e313589134f1 100644
--- a/nixos/modules/services/network-filesystems/ceph.nix
+++ b/nixos/modules/services/network-filesystems/ceph.nix
@@ -97,6 +97,7 @@ in
mgrModulePath = mkOption {
type = types.path;
default = "${pkgs.ceph.lib}/lib/ceph/mgr";
+ defaultText = literalExpression ''"''${pkgs.ceph.lib}/lib/ceph/mgr"'';
description = ''
Path at which to find ceph-mgr modules.
'';
@@ -181,6 +182,7 @@ in
rgwMimeTypesFile = mkOption {
type = with types; nullOr path;
default = "${pkgs.mime-types}/etc/mime.types";
+ defaultText = literalExpression ''"''${pkgs.mime-types}/etc/mime.types"'';
description = ''
Path to mime types used by radosgw.
'';
@@ -190,11 +192,9 @@ in
extraConfig = mkOption {
type = with types; attrsOf str;
default = {};
- example = ''
- {
- "ms bind ipv6" = "true";
- };
- '';
+ example = {
+ "ms bind ipv6" = "true";
+ };
description = ''
Extra configuration to add to the global section. Use for setting values that are common for all daemons in the cluster.
'';
@@ -205,9 +205,7 @@ in
daemons = mkOption {
type = with types; listOf str;
default = [];
- example = ''
- [ "name1" "name2" ];
- '';
+ example = [ "name1" "name2" ];
description = ''
A list of names for manager daemons that should have a service created. The names correspond
to the id part in ceph i.e. [ "name1" ] would result in mgr.name1
@@ -227,9 +225,7 @@ in
daemons = mkOption {
type = with types; listOf str;
default = [];
- example = ''
- [ "name1" "name2" ];
- '';
+ example = [ "name1" "name2" ];
description = ''
A list of monitor daemons that should have a service created. The names correspond
to the id part in ceph i.e. [ "name1" ] would result in mon.name1
@@ -249,9 +245,7 @@ in
daemons = mkOption {
type = with types; listOf str;
default = [];
- example = ''
- [ "name1" "name2" ];
- '';
+ example = [ "name1" "name2" ];
description = ''
A list of OSD daemons that should have a service created. The names correspond
to the id part in ceph i.e. [ "name1" ] would result in osd.name1
@@ -279,9 +273,7 @@ in
daemons = mkOption {
type = with types; listOf str;
default = [];
- example = ''
- [ "name1" "name2" ];
- '';
+ example = [ "name1" "name2" ];
description = ''
A list of metadata service daemons that should have a service created. The names correspond
to the id part in ceph i.e. [ "name1" ] would result in mds.name1
@@ -301,9 +293,7 @@ in
daemons = mkOption {
type = with types; listOf str;
default = [];
- example = ''
- [ "name1" "name2" ];
- '';
+ example = [ "name1" "name2" ];
description = ''
A list of rados gateway daemons that should have a service created. The names correspond
to the id part in ceph i.e. [ "name1" ] would result in client.name1, radosgw daemons
@@ -318,7 +308,7 @@ in
extraConfig = mkOption {
type = with types; attrsOf (attrsOf str);
default = {};
- example = ''
+ example = literalExpression ''
{
# This would create a section for a radosgw daemon named node0 and related
# configuration for it
diff --git a/nixos/modules/services/network-filesystems/glusterfs.nix b/nixos/modules/services/network-filesystems/glusterfs.nix
index d70092999f67..bc8be05ca8cb 100644
--- a/nixos/modules/services/network-filesystems/glusterfs.nix
+++ b/nixos/modules/services/network-filesystems/glusterfs.nix
@@ -113,19 +113,16 @@ in
type = types.nullOr (types.submodule {
options = {
tlsKeyPath = mkOption {
- default = null;
type = types.str;
description = "Path to the private key used for TLS.";
};
tlsPem = mkOption {
- default = null;
type = types.path;
description = "Path to the certificate used for TLS.";
};
caCert = mkOption {
- default = null;
type = types.path;
description = "Path certificate authority used to sign the cluster certificates.";
};
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index faa515835b67..36b72ca48b2c 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -57,7 +57,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.ipfs;
- defaultText = "pkgs.ipfs";
+ defaultText = literalExpression "pkgs.ipfs";
description = "Which IPFS package to use.";
};
diff --git a/nixos/modules/services/network-filesystems/litestream/default.nix b/nixos/modules/services/network-filesystems/litestream/default.nix
index f1806c5af0a9..51eb920d778d 100644
--- a/nixos/modules/services/network-filesystems/litestream/default.nix
+++ b/nixos/modules/services/network-filesystems/litestream/default.nix
@@ -13,7 +13,7 @@ in
package = mkOption {
description = "Package to use.";
default = pkgs.litestream;
- defaultText = "pkgs.litestream";
+ defaultText = literalExpression "pkgs.litestream";
type = types.package;
};
diff --git a/nixos/modules/services/network-filesystems/openafs/client.nix b/nixos/modules/services/network-filesystems/openafs/client.nix
index 03884cb72976..c8cc5052c2ac 100644
--- a/nixos/modules/services/network-filesystems/openafs/client.nix
+++ b/nixos/modules/services/network-filesystems/openafs/client.nix
@@ -4,7 +4,7 @@
with import ./lib.nix { inherit config lib pkgs; };
let
- inherit (lib) getBin mkOption mkIf optionalString singleton types;
+ inherit (lib) getBin literalExpression mkOption mkIf optionalString singleton types;
cfg = config.services.openafsClient;
@@ -57,11 +57,10 @@ in
CellServDB. See CellServDB(5) man page for syntax. Ignored when
afsdb is set to true.
'';
- example = ''
- [ { ip = "1.2.3.4"; dnsname = "first.afsdb.server.dns.fqdn.org"; }
- { ip = "2.3.4.5"; dnsname = "second.afsdb.server.dns.fqdn.org"; }
- ]
- '';
+ example = [
+ { ip = "1.2.3.4"; dnsname = "first.afsdb.server.dns.fqdn.org"; }
+ { ip = "2.3.4.5"; dnsname = "second.afsdb.server.dns.fqdn.org"; }
+ ];
};
cache = {
@@ -149,13 +148,13 @@ in
packages = {
module = mkOption {
default = config.boot.kernelPackages.openafs;
- defaultText = "config.boot.kernelPackages.openafs";
+ defaultText = literalExpression "config.boot.kernelPackages.openafs";
type = types.package;
description = "OpenAFS kernel module package. MUST match the userland package!";
};
programs = mkOption {
default = getBin pkgs.openafs;
- defaultText = "getBin pkgs.openafs";
+ defaultText = literalExpression "getBin pkgs.openafs";
type = types.package;
description = "OpenAFS programs package. MUST match the kernel module package!";
};
diff --git a/nixos/modules/services/network-filesystems/openafs/server.nix b/nixos/modules/services/network-filesystems/openafs/server.nix
index 4fce650b0133..c1bf83be77b9 100644
--- a/nixos/modules/services/network-filesystems/openafs/server.nix
+++ b/nixos/modules/services/network-filesystems/openafs/server.nix
@@ -4,7 +4,7 @@
with import ./lib.nix { inherit config lib pkgs; };
let
- inherit (lib) concatStringsSep mkIf mkOption optionalString types;
+ inherit (lib) concatStringsSep literalExpression mkIf mkOption optionalString types;
bosConfig = pkgs.writeText "BosConfig" (''
restrictmode 1
@@ -81,7 +81,7 @@ in {
package = mkOption {
default = pkgs.openafs.server or pkgs.openafs;
- defaultText = "pkgs.openafs.server or pkgs.openafs";
+ defaultText = literalExpression "pkgs.openafs.server or pkgs.openafs";
type = types.package;
description = "OpenAFS package for the server binaries";
};
diff --git a/nixos/modules/services/network-filesystems/orangefs/client.nix b/nixos/modules/services/network-filesystems/orangefs/client.nix
index b69d9e713c3d..36ea5af2168d 100644
--- a/nixos/modules/services/network-filesystems/orangefs/client.nix
+++ b/nixos/modules/services/network-filesystems/orangefs/client.nix
@@ -47,7 +47,6 @@ in {
target = mkOption {
type = types.str;
- default = null;
example = "tcp://server:3334/orangefs";
description = "Target URL";
};
diff --git a/nixos/modules/services/network-filesystems/orangefs/server.nix b/nixos/modules/services/network-filesystems/orangefs/server.nix
index 8c55ccf5ffb0..621c2fe8f78d 100644
--- a/nixos/modules/services/network-filesystems/orangefs/server.nix
+++ b/nixos/modules/services/network-filesystems/orangefs/server.nix
@@ -118,12 +118,10 @@ in {
servers = mkOption {
type = with types; attrsOf types.str;
default = {};
- example = ''
- {
- node1="tcp://node1:3334";
- node2="tcp://node2:3334";
- }
- '';
+ example = {
+ node1 = "tcp://node1:3334";
+ node2 = "tcp://node2:3334";
+ };
description = "URLs for storage server including port. The attribute names define the server alias.";
};
@@ -132,8 +130,7 @@ in {
These options will create the <FileSystem> sections of config file.
'';
default = { orangefs = {}; };
- defaultText = literalExample "{ orangefs = {}; }";
- example = literalExample ''
+ example = literalExpression ''
{
fs1 = {
id = 101;
diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix
index 78ea245cb351..9ed755d0465c 100644
--- a/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixos/modules/services/network-filesystems/samba.nix
@@ -87,13 +87,20 @@ in
If you use the firewall consider adding the following:
- networking.firewall.allowedTCPPorts = [ 139 445 ];
- networking.firewall.allowedUDPPorts = [ 137 138 ];
+ services.samba.openFirewall = true;
'';
};
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to automatically open the necessary ports in the firewall.
+ '';
+ };
+
enableNmbd = mkOption {
type = types.bool;
default = true;
@@ -117,8 +124,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.samba;
- defaultText = "pkgs.samba";
- example = literalExample "pkgs.samba4Full";
+ defaultText = literalExpression "pkgs.samba";
+ example = literalExpression "pkgs.samba4Full";
description = ''
Defines which package should be used for the samba server.
'';
@@ -176,7 +183,7 @@ in
See man smb.conf for options.
'';
type = types.attrsOf (types.attrsOf types.unspecified);
- example = literalExample ''
+ example = literalExpression ''
{ public =
{ path = "/srv/public";
"read only" = true;
@@ -235,7 +242,10 @@ in
};
security.pam.services.samba = {};
- environment.systemPackages = [ config.services.samba.package ];
+ environment.systemPackages = [ cfg.package ];
+
+ networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ 139 445 ];
+ networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall [ 137 138 ];
})
];
diff --git a/nixos/modules/services/network-filesystems/tahoe.nix b/nixos/modules/services/network-filesystems/tahoe.nix
index 7d75eb286106..5426463dffac 100644
--- a/nixos/modules/services/network-filesystems/tahoe.nix
+++ b/nixos/modules/services/network-filesystems/tahoe.nix
@@ -34,9 +34,8 @@ in
};
package = mkOption {
default = pkgs.tahoelafs;
- defaultText = "pkgs.tahoelafs";
+ defaultText = literalExpression "pkgs.tahoelafs";
type = types.package;
- example = literalExample "pkgs.tahoelafs";
description = ''
The package to use for the Tahoe LAFS daemon.
'';
@@ -179,9 +178,8 @@ in
};
package = mkOption {
default = pkgs.tahoelafs;
- defaultText = "pkgs.tahoelafs";
+ defaultText = literalExpression "pkgs.tahoelafs";
type = types.package;
- example = literalExample "pkgs.tahoelafs";
description = ''
The package to use for the Tahoe LAFS daemon.
'';
diff --git a/nixos/modules/services/network-filesystems/xtreemfs.nix b/nixos/modules/services/network-filesystems/xtreemfs.nix
index 6cc8a05ee00b..fc0723115787 100644
--- a/nixos/modules/services/network-filesystems/xtreemfs.nix
+++ b/nixos/modules/services/network-filesystems/xtreemfs.nix
@@ -142,7 +142,7 @@ in
'';
};
syncMode = mkOption {
- type = types.enum [ "ASYNC" "SYNC_WRITE_METADATA" "SYNC_WRITE" "FDATASYNC" "ASYNC" ];
+ type = types.enum [ "ASYNC" "SYNC_WRITE_METADATA" "SYNC_WRITE" "FDATASYNC" "FSYNC" ];
default = "FSYNC";
example = "FDATASYNC";
description = ''
@@ -268,7 +268,7 @@ in
};
syncMode = mkOption {
default = "FSYNC";
- type = types.enum [ "ASYNC" "SYNC_WRITE_METADATA" "SYNC_WRITE" "FDATASYNC" "ASYNC" ];
+ type = types.enum [ "ASYNC" "SYNC_WRITE_METADATA" "SYNC_WRITE" "FDATASYNC" "FSYNC" ];
example = "FDATASYNC";
description = ''
The sync mode influences how operations are committed to the disk
diff --git a/nixos/modules/services/networking/3proxy.nix b/nixos/modules/services/networking/3proxy.nix
index 37a48657c1cc..326a8671fcca 100644
--- a/nixos/modules/services/networking/3proxy.nix
+++ b/nixos/modules/services/networking/3proxy.nix
@@ -205,7 +205,7 @@ in {
};
});
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
[
{
rule = "allow";
@@ -244,7 +244,7 @@ in {
};
});
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
[
{
type = "proxy";
@@ -290,17 +290,6 @@ in {
"::1"
"fc00::/7"
];
- example = [
- "0.0.0.0/8"
- "127.0.0.0/8"
- "10.0.0.0/8"
- "100.64.0.0/10"
- "172.16.0.0/12"
- "192.168.0.0/16"
- "::"
- "::1"
- "fc00::/7"
- ];
description = ''
What IP ranges to deny access when denyPrivate is set tu true.
'';
@@ -322,19 +311,17 @@ in {
nscache = mkOption {
type = types.int;
default = 65535;
- example = 65535;
description = "Set name cache size for IPv4.";
};
nscache6 = mkOption {
type = types.int;
default = 65535;
- example = 65535;
description = "Set name cache size for IPv6.";
};
nsrecord = mkOption {
type = types.attrsOf types.str;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"files.local" = "192.168.1.12";
"site.local" = "192.168.1.43";
diff --git a/nixos/modules/services/networking/antennas.nix b/nixos/modules/services/networking/antennas.nix
new file mode 100644
index 000000000000..ef98af22f20f
--- /dev/null
+++ b/nixos/modules/services/networking/antennas.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.services.antennas;
+in
+
+{
+ options = {
+ services.antennas = {
+ enable = mkEnableOption "Antennas";
+
+ tvheadendUrl = mkOption {
+ type = types.str;
+ default = "http://localhost:9981";
+ description = "URL of Tvheadend.";
+ };
+
+ antennasUrl = mkOption {
+ type = types.str;
+ default = "http://127.0.0.1:5004";
+ description = "URL of Antennas.";
+ };
+
+ tunerCount = mkOption {
+ type = types.int;
+ default = 6;
+ description = "Numbers of tuners in tvheadend.";
+ };
+
+ deviceUUID = mkOption {
+ type = types.str;
+ default = "2f70c0d7-90a3-4429-8275-cbeeee9cd605";
+ description = "Device tuner UUID. Change this if you are running multiple instances.";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.antennas = {
+ description = "Antennas HDHomeRun emulator for Tvheadend. ";
+ wantedBy = [ "multi-user.target" ];
+
+ # Config
+ environment = {
+ TVHEADEND_URL = cfg.tvheadendUrl;
+ ANTENNAS_URL = cfg.antennasUrl;
+ TUNER_COUNT = toString cfg.tunerCount;
+ DEVICE_UUID = cfg.deviceUUID;
+ };
+
+ serviceConfig = {
+ ExecStart = "${pkgs.antennas}/bin/antennas";
+
+ # Antennas expects all resources like html and config to be relative to it's working directory
+ WorkingDirectory = "${pkgs.antennas}/libexec/antennas/deps/antennas/";
+
+ # Hardening
+ CapabilityBoundingSet = [ "" ];
+ DynamicUser = true;
+ LockPersonality = true;
+ ProcSubset = "pid";
+ PrivateDevices = true;
+ PrivateUsers = true;
+ PrivateTmp = true;
+ ProtectClock = true;
+ ProtectControlGroups = true;
+ ProtectHome = true;
+ ProtectHostname = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectProc = "invisible";
+ ProtectSystem = "strict";
+ RestrictNamespaces = true;
+ RestrictRealtime = true;
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/networking/asterisk.nix b/nixos/modules/services/networking/asterisk.nix
index 03a2544b9a7e..af091d55c01b 100644
--- a/nixos/modules/services/networking/asterisk.nix
+++ b/nixos/modules/services/networking/asterisk.nix
@@ -115,7 +115,7 @@ in
confFiles = mkOption {
default = {};
type = types.attrsOf types.str;
- example = literalExample
+ example = literalExpression
''
{
"extensions.conf" = '''
@@ -200,7 +200,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.asterisk;
- defaultText = "pkgs.asterisk";
+ defaultText = literalExpression "pkgs.asterisk";
description = "The Asterisk package to use.";
};
};
diff --git a/nixos/modules/services/networking/atftpd.nix b/nixos/modules/services/networking/atftpd.nix
index e7fd48c99a85..da5e305201f8 100644
--- a/nixos/modules/services/networking/atftpd.nix
+++ b/nixos/modules/services/networking/atftpd.nix
@@ -28,7 +28,7 @@ in
extraOptions = mkOption {
default = [];
type = types.listOf types.str;
- example = literalExample ''
+ example = literalExpression ''
[ "--bind-address 192.168.9.1"
"--verbose=7"
]
diff --git a/nixos/modules/services/networking/avahi-daemon.nix b/nixos/modules/services/networking/avahi-daemon.nix
index 020a817f2596..50c4ffdedce8 100644
--- a/nixos/modules/services/networking/avahi-daemon.nix
+++ b/nixos/modules/services/networking/avahi-daemon.nix
@@ -54,7 +54,7 @@ in
hostName = mkOption {
type = types.str;
default = config.networking.hostName;
- defaultText = literalExample "config.networking.hostName";
+ defaultText = literalExpression "config.networking.hostName";
description = ''
Host name advertised on the LAN. If not set, avahi will use the value
of .
@@ -87,7 +87,7 @@ in
ipv6 = mkOption {
type = types.bool;
default = config.networking.enableIPv6;
- defaultText = "config.networking.enableIPv6";
+ defaultText = literalExpression "config.networking.enableIPv6";
description = "Whether to use IPv6.";
};
@@ -134,7 +134,7 @@ in
extraServiceFiles = mkOption {
type = with types; attrsOf (either str path);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
ssh = "''${pkgs.avahi}/etc/avahi/services/ssh.service";
smb = '''
diff --git a/nixos/modules/services/networking/bee.nix b/nixos/modules/services/networking/bee.nix
index 8a77ce23ab4d..d6efade0630f 100644
--- a/nixos/modules/services/networking/bee.nix
+++ b/nixos/modules/services/networking/bee.nix
@@ -20,8 +20,8 @@ in {
package = mkOption {
type = types.package;
default = pkgs.bee;
- defaultText = "pkgs.bee";
- example = "pkgs.bee-unstable";
+ defaultText = literalExpression "pkgs.bee";
+ example = literalExpression "pkgs.bee-unstable";
description = "The package providing the bee binary for the service.";
};
diff --git a/nixos/modules/services/networking/biboumi.nix b/nixos/modules/services/networking/biboumi.nix
index 66ddca93d818..3f46b95eaf0c 100644
--- a/nixos/modules/services/networking/biboumi.nix
+++ b/nixos/modules/services/networking/biboumi.nix
@@ -107,6 +107,7 @@ in
options.policy_directory = mkOption {
type = types.path;
default = "${pkgs.biboumi}/etc/biboumi";
+ defaultText = literalExpression ''"''${pkgs.biboumi}/etc/biboumi"'';
description = ''
A directory that should contain the policy files,
used to customize Botan’s behaviour
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index 0c23fb7e40f0..f2b2e4c4d5d4 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -110,7 +110,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.bind;
- defaultText = "pkgs.bind";
+ defaultText = literalExpression "pkgs.bind";
description = "The BIND package to use.";
};
@@ -209,7 +209,7 @@ in
configFile = mkOption {
type = types.path;
default = confFile;
- defaultText = "confFile";
+ defaultText = literalExpression "confFile";
description = "
Overridable config file to use for named. By default, that
generated by nixos.
diff --git a/nixos/modules/services/networking/bitcoind.nix b/nixos/modules/services/networking/bitcoind.nix
index bc9aa53f49aa..80033d958609 100644
--- a/nixos/modules/services/networking/bitcoind.nix
+++ b/nixos/modules/services/networking/bitcoind.nix
@@ -40,7 +40,7 @@ let
package = mkOption {
type = types.package;
default = pkgs.bitcoind;
- defaultText = "pkgs.bitcoind";
+ defaultText = literalExpression "pkgs.bitcoind";
description = "The package providing bitcoin binaries.";
};
@@ -88,7 +88,7 @@ let
};
users = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
alice.passwordHMAC = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
bob.passwordHMAC = "b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99";
diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix
index 59ad9e546863..8bf04e3a1a23 100644
--- a/nixos/modules/services/networking/bitlbee.nix
+++ b/nixos/modules/services/networking/bitlbee.nix
@@ -16,7 +16,6 @@ let
''
[settings]
RunMode = Daemon
- User = bitlbee
ConfigDir = ${cfg.configDir}
DaemonInterface = ${cfg.interface}
DaemonPort = ${toString cfg.portNumber}
@@ -109,7 +108,7 @@ in
plugins = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.bitlbee-facebook ]";
+ example = literalExpression "[ pkgs.bitlbee-facebook ]";
description = ''
The list of bitlbee plugins to install.
'';
@@ -118,7 +117,7 @@ in
libpurple_plugins = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.purple-matrix ]";
+ example = literalExpression "[ pkgs.purple-matrix ]";
description = ''
The list of libpurple plugins to install.
'';
@@ -166,24 +165,17 @@ in
config = mkMerge [
(mkIf config.services.bitlbee.enable {
- users.users.bitlbee = {
- uid = bitlbeeUid;
- description = "BitlBee user";
- home = "/var/lib/bitlbee";
- createHome = true;
- };
-
- users.groups.bitlbee = {
- gid = config.ids.gids.bitlbee;
- };
-
systemd.services.bitlbee = {
environment.PURPLE_PLUGIN_PATH = purple_plugin_path;
description = "BitlBee IRC to other chat networks gateway";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- serviceConfig.User = "bitlbee";
- serviceConfig.ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}";
+
+ serviceConfig = {
+ DynamicUser = true;
+ StateDirectory = "bitlbee";
+ ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}";
+ };
};
environment.systemPackages = [ bitlbeePkg ];
diff --git a/nixos/modules/services/networking/blockbook-frontend.nix b/nixos/modules/services/networking/blockbook-frontend.nix
index ca323e495ec1..eeea521c8d51 100644
--- a/nixos/modules/services/networking/blockbook-frontend.nix
+++ b/nixos/modules/services/networking/blockbook-frontend.nix
@@ -15,6 +15,7 @@ let
package = mkOption {
type = types.package;
default = pkgs.blockbook;
+ defaultText = literalExpression "pkgs.blockbook";
description = "Which blockbook package to use.";
};
@@ -50,7 +51,6 @@ let
coinName = mkOption {
type = types.str;
default = "Bitcoin";
- example = "Bitcoin";
description = ''
See
for current of coins supported in master (Note: may differ from release).
@@ -60,7 +60,8 @@ let
cssDir = mkOption {
type = types.path;
default = "${config.package}/share/css/";
- example = "${config.dataDir}/static/css/";
+ defaultText = literalExpression ''"''${package}/share/css/"'';
+ example = literalExpression ''"''${dataDir}/static/css/"'';
description = ''
Location of the dir with main.css CSS file.
By default, the one shipped with the package is used.
@@ -82,21 +83,18 @@ let
internal = mkOption {
type = types.nullOr types.str;
default = ":9030";
- example = ":9030";
description = "Internal http server binding [address]:port.";
};
messageQueueBinding = mkOption {
type = types.str;
default = "tcp://127.0.0.1:38330";
- example = "tcp://127.0.0.1:38330";
description = "Message Queue Binding address:port.";
};
public = mkOption {
type = types.nullOr types.str;
default = ":9130";
- example = ":9130";
description = "Public http server binding [address]:port.";
};
@@ -116,14 +114,12 @@ let
user = mkOption {
type = types.str;
default = "rpc";
- example = "rpc";
description = "Username for JSON-RPC connections.";
};
password = mkOption {
type = types.str;
default = "rpc";
- example = "rpc";
description = ''
RPC password for JSON-RPC connections.
Warning: this is stored in cleartext in the Nix store!!!
@@ -150,14 +146,15 @@ let
templateDir = mkOption {
type = types.path;
default = "${config.package}/share/templates/";
- example = "${config.dataDir}/templates/static/";
+ defaultText = literalExpression ''"''${package}/share/templates/"'';
+ example = literalExpression ''"''${dataDir}/templates/static/"'';
description = "Location of the HTML templates. By default, ones shipped with the package are used.";
};
extraConfig = mkOption {
type = types.attrs;
default = {};
- example = literalExample '' {
+ example = literalExpression '' {
"alternative_estimate_fee" = "whatthefee-disabled";
"alternative_estimate_fee_params" = "{\"url\": \"https://whatthefee.io/data.json\", \"periodSeconds\": 60}";
"fiat_rates" = "coingecko";
diff --git a/nixos/modules/services/networking/cjdns.nix b/nixos/modules/services/networking/cjdns.nix
index ca95d00c2ff8..0d97d379e907 100644
--- a/nixos/modules/services/networking/cjdns.nix
+++ b/nixos/modules/services/networking/cjdns.nix
@@ -150,7 +150,7 @@ in
connectTo = mkOption {
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"192.168.1.1:27313" = {
hostname = "homer.hype";
@@ -197,7 +197,7 @@ in
connectTo = mkOption {
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"01:02:03:04:05:06" = {
hostname = "homer.hype";
diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix
index 608672c6446c..8886e7a30f1f 100644
--- a/nixos/modules/services/networking/connman.nix
+++ b/nixos/modules/services/networking/connman.nix
@@ -77,10 +77,11 @@ in {
};
package = mkOption {
- type = types.path;
+ type = types.package;
description = "The connman package / build flavor";
default = connman;
- example = literalExample "pkgs.connmanFull";
+ defaultText = literalExpression "pkgs.connman";
+ example = literalExpression "pkgs.connmanFull";
};
};
diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index 476ca738dd1b..792b2e7f5dfe 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -34,7 +34,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.consul;
- defaultText = "pkgs.consul";
+ defaultText = literalExpression "pkgs.consul";
description = ''
The package used for the Consul agent and CLI.
'';
@@ -121,7 +121,7 @@ in
package = mkOption {
description = "Package to use for consul-alerts.";
default = pkgs.consul-alerts;
- defaultText = "pkgs.consul-alerts";
+ defaultText = literalExpression "pkgs.consul-alerts";
type = types.package;
};
diff --git a/nixos/modules/services/networking/coredns.nix b/nixos/modules/services/networking/coredns.nix
index afb2b547a465..88615d8e610f 100644
--- a/nixos/modules/services/networking/coredns.nix
+++ b/nixos/modules/services/networking/coredns.nix
@@ -22,7 +22,7 @@ in {
package = mkOption {
default = pkgs.coredns;
- defaultText = "pkgs.coredns";
+ defaultText = literalExpression "pkgs.coredns";
type = types.package;
description = "Coredns package to use.";
};
diff --git a/nixos/modules/services/networking/corerad.nix b/nixos/modules/services/networking/corerad.nix
index e76ba9a2d00d..9d79d5d7686b 100644
--- a/nixos/modules/services/networking/corerad.nix
+++ b/nixos/modules/services/networking/corerad.nix
@@ -14,7 +14,7 @@ in {
settings = mkOption {
type = settingsFormat.type;
- example = literalExample ''
+ example = literalExpression ''
{
interfaces = [
# eth0 is an upstream interface monitoring for IPv6 router advertisements.
@@ -44,13 +44,13 @@ in {
configFile = mkOption {
type = types.path;
- example = literalExample "\"\${pkgs.corerad}/etc/corerad/corerad.toml\"";
+ example = literalExpression ''"''${pkgs.corerad}/etc/corerad/corerad.toml"'';
description = "Path to CoreRAD TOML configuration file.";
};
package = mkOption {
default = pkgs.corerad;
- defaultText = literalExample "pkgs.corerad";
+ defaultText = literalExpression "pkgs.corerad";
type = types.package;
description = "CoreRAD package to use.";
};
diff --git a/nixos/modules/services/networking/coturn.nix b/nixos/modules/services/networking/coturn.nix
index 12098ec6d338..610754e9bd39 100644
--- a/nixos/modules/services/networking/coturn.nix
+++ b/nixos/modules/services/networking/coturn.nix
@@ -68,7 +68,7 @@ in {
alt-listening-port = mkOption {
type = types.int;
default = cfg.listening-port + 1;
- defaultText = "listening-port + 1";
+ defaultText = literalExpression "listening-port + 1";
description = ''
Alternative listening port for UDP and TCP listeners;
default (or zero) value means "listening port plus one".
@@ -83,7 +83,7 @@ in {
alt-tls-listening-port = mkOption {
type = types.int;
default = cfg.tls-listening-port + 1;
- defaultText = "tls-listening-port + 1";
+ defaultText = literalExpression "tls-listening-port + 1";
description = ''
Alternative listening port for TLS and DTLS protocols.
'';
diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix
index 7820eedd9327..fd9c216b0602 100644
--- a/nixos/modules/services/networking/ddclient.nix
+++ b/nixos/modules/services/networking/ddclient.nix
@@ -4,14 +4,16 @@ let
cfg = config.services.ddclient;
boolToStr = bool: if bool then "yes" else "no";
dataDir = "/var/lib/ddclient";
+ StateDirectory = builtins.baseNameOf dataDir;
+ RuntimeDirectory = StateDirectory;
- configText = ''
+ configFile' = pkgs.writeText "ddclient.conf" ''
# This file can be used as a template for configFile or is automatically generated by Nix options.
cache=${dataDir}/ddclient.cache
foreground=YES
use=${cfg.use}
login=${cfg.username}
- password=${cfg.password}
+ password=
protocol=${cfg.protocol}
${lib.optionalString (cfg.script != "") "script=${cfg.script}"}
${lib.optionalString (cfg.server != "") "server=${cfg.server}"}
@@ -24,6 +26,17 @@ let
${cfg.extraConfig}
${lib.concatStringsSep "," cfg.domains}
'';
+ configFile = if (cfg.configFile != null) then cfg.configFile else configFile';
+
+ preStart = ''
+ install ${configFile} /run/${RuntimeDirectory}/ddclient.conf
+ ${lib.optionalString (cfg.configFile == null) (if (cfg.passwordFile != null) then ''
+ password=$(head -n 1 ${cfg.passwordFile})
+ sed -i "s/^password=$/password=$password/" /run/${RuntimeDirectory}/ddclient.conf
+ '' else ''
+ sed -i '/^password=$/d' /run/${RuntimeDirectory}/ddclient.conf
+ '')}
+ '';
in
@@ -37,6 +50,7 @@ with lib;
let value = getAttrFromPath [ "services" "ddclient" "domain" ] config;
in if value != "" then [ value ] else []))
(mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "")
+ (mkRemovedOptionModule [ "services" "ddclient" "password" ] "Use services.ddclient.passwordFile instead.")
];
###### interface
@@ -53,6 +67,15 @@ with lib;
'';
};
+ package = mkOption {
+ type = package;
+ default = pkgs.ddclient;
+ defaultText = "pkgs.ddclient";
+ description = ''
+ The ddclient executable package run by the service.
+ '';
+ };
+
domains = mkOption {
default = [ "" ];
type = listOf str;
@@ -69,11 +92,11 @@ with lib;
'';
};
- password = mkOption {
- default = "";
- type = str;
+ passwordFile = mkOption {
+ default = null;
+ type = nullOr str;
description = ''
- Password. WARNING: The password becomes world readable in the Nix store.
+ A file containing the password.
'';
};
@@ -87,12 +110,11 @@ with lib;
};
configFile = mkOption {
- default = "/etc/ddclient.conf";
- type = path;
+ default = null;
+ type = nullOr path;
description = ''
Path to configuration file.
- When set to the default '/etc/ddclient.conf' it will be populated with the various other options in this module. When it is changed (for example: '/root/nixos/secrets/ddclient.conf') the file read directly to configure ddclient. This is a source of impurity.
- The purpose of this is to avoid placing secrets into the store.
+ When set this overrides the generated configuration from module options.
'';
example = "/root/nixos/secrets/ddclient.conf";
};
@@ -184,25 +206,20 @@ with lib;
###### implementation
config = mkIf config.services.ddclient.enable {
- environment.etc."ddclient.conf" = {
- enable = cfg.configFile == "/etc/ddclient.conf";
- mode = "0600";
- text = configText;
- };
-
systemd.services.ddclient = {
description = "Dynamic DNS Client";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
- restartTriggers = [ config.environment.etc."ddclient.conf".source ];
+ restartTriggers = optional (cfg.configFile != null) cfg.configFile;
- serviceConfig = rec {
+ serviceConfig = {
DynamicUser = true;
- RuntimeDirectory = StateDirectory;
- StateDirectory = builtins.baseNameOf dataDir;
+ RuntimeDirectoryMode = "0700";
+ inherit RuntimeDirectory;
+ inherit StateDirectory;
Type = "oneshot";
- ExecStartPre = "!${lib.getBin pkgs.coreutils}/bin/install -m666 ${cfg.configFile} /run/${RuntimeDirectory}/ddclient.conf";
- ExecStart = "${lib.getBin pkgs.ddclient}/bin/ddclient -file /run/${RuntimeDirectory}/ddclient.conf";
+ ExecStartPre = "!${pkgs.writeShellScript "ddclient-prestart" preStart}";
+ ExecStart = "${lib.getBin cfg.package}/bin/ddclient -file /run/${RuntimeDirectory}/ddclient.conf";
};
};
diff --git a/nixos/modules/services/networking/dnscache.nix b/nixos/modules/services/networking/dnscache.nix
index d06032daecc7..7452210de47f 100644
--- a/nixos/modules/services/networking/dnscache.nix
+++ b/nixos/modules/services/networking/dnscache.nix
@@ -61,7 +61,7 @@ in {
Table of {hostname: server} pairs to use as authoritative servers for hosts (and subhosts).
If entry for @ is not specified predefined list of root servers is used.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"@" = ["8.8.8.8" "8.8.4.4"];
"example.com" = ["192.168.100.100"];
diff --git a/nixos/modules/services/networking/dnscrypt-proxy2.nix b/nixos/modules/services/networking/dnscrypt-proxy2.nix
index 72965c267a86..dc6a019e9b77 100644
--- a/nixos/modules/services/networking/dnscrypt-proxy2.nix
+++ b/nixos/modules/services/networking/dnscrypt-proxy2.nix
@@ -13,7 +13,7 @@ in
Attrset that is converted and passed as TOML config file.
For available params, see:
'';
- example = literalExample ''
+ example = literalExpression ''
{
sources.public-resolvers = {
urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ];
@@ -29,7 +29,7 @@ in
upstreamDefaults = mkOption {
description = ''
- Whether to base the config declared in services.dnscrypt-proxy2.settings on the upstream example config ()
+ Whether to base the config declared in on the upstream example config ()
Disable this if you want to declare your dnscrypt config from scratch.
'';
@@ -56,7 +56,7 @@ in
''}
${pkgs.remarshal}/bin/json2toml < config.json > $out
'';
- defaultText = literalExample "TOML file generated from services.dnscrypt-proxy2.settings";
+ defaultText = literalDocBook "TOML file generated from ";
};
};
diff --git a/nixos/modules/services/networking/dnscrypt-wrapper.nix b/nixos/modules/services/networking/dnscrypt-wrapper.nix
index 89360f4bf373..400d6e67044e 100644
--- a/nixos/modules/services/networking/dnscrypt-wrapper.nix
+++ b/nixos/modules/services/networking/dnscrypt-wrapper.nix
@@ -217,6 +217,7 @@ in {
home = "${dataDir}";
createHome = true;
isSystemUser = true;
+ group = "dnscrypt-wrapper";
};
users.groups.dnscrypt-wrapper = { };
diff --git a/nixos/modules/services/networking/doh-proxy-rust.nix b/nixos/modules/services/networking/doh-proxy-rust.nix
index 0e55bc386653..efd492e23f8c 100644
--- a/nixos/modules/services/networking/doh-proxy-rust.nix
+++ b/nixos/modules/services/networking/doh-proxy-rust.nix
@@ -15,7 +15,7 @@ in {
flags = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample [ "--server-address=9.9.9.9:53" ];
+ example = [ "--server-address=9.9.9.9:53" ];
description = ''
A list of command-line flags to pass to doh-proxy. For details on the
available options, see .
diff --git a/nixos/modules/services/networking/ejabberd.nix b/nixos/modules/services/networking/ejabberd.nix
index a5af25b983b9..daf8d5c42475 100644
--- a/nixos/modules/services/networking/ejabberd.nix
+++ b/nixos/modules/services/networking/ejabberd.nix
@@ -32,7 +32,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.ejabberd;
- defaultText = "pkgs.ejabberd";
+ defaultText = literalExpression "pkgs.ejabberd";
description = "ejabberd server package to use";
};
@@ -76,7 +76,7 @@ in {
type = types.listOf types.path;
default = [];
description = "Configuration dumps that should be loaded on the first startup";
- example = literalExample "[ ./myejabberd.dump ]";
+ example = literalExpression "[ ./myejabberd.dump ]";
};
imagemagick = mkOption {
diff --git a/nixos/modules/services/networking/epmd.nix b/nixos/modules/services/networking/epmd.nix
index 3899d164f16a..75d78476e578 100644
--- a/nixos/modules/services/networking/epmd.nix
+++ b/nixos/modules/services/networking/epmd.nix
@@ -20,6 +20,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.erlang;
+ defaultText = literalExpression "pkgs.erlang";
description = ''
The Erlang package to use to get epmd binary. That way you can re-use
an Erlang runtime that is already installed for other purposes.
diff --git a/nixos/modules/services/networking/ferm.nix b/nixos/modules/services/networking/ferm.nix
index 07338ccf4d9c..8e03f30efc00 100644
--- a/nixos/modules/services/networking/ferm.nix
+++ b/nixos/modules/services/networking/ferm.nix
@@ -30,14 +30,14 @@ in {
config = mkOption {
description = "Verbatim ferm.conf configuration.";
default = "";
- defaultText = "empty firewall, allows any traffic";
+ defaultText = literalDocBook "empty firewall, allows any traffic";
type = types.lines;
};
package = mkOption {
description = "The ferm package.";
type = types.package;
default = pkgs.ferm;
- defaultText = "pkgs.ferm";
+ defaultText = literalExpression "pkgs.ferm";
};
};
};
diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix
index f982621e2328..b5b46fe6042c 100644
--- a/nixos/modules/services/networking/firewall.nix
+++ b/nixos/modules/services/networking/firewall.nix
@@ -325,8 +325,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.iptables;
- defaultText = "pkgs.iptables";
- example = literalExample "pkgs.iptables-nftables-compat";
+ defaultText = literalExpression "pkgs.iptables";
+ example = literalExpression "pkgs.iptables-nftables-compat";
description =
''
The iptables package to use for running the firewall service."
@@ -500,7 +500,7 @@ in
extraPackages = mkOption {
type = types.listOf types.package;
default = [ ];
- example = literalExample "[ pkgs.ipset ]";
+ example = literalExpression "[ pkgs.ipset ]";
description =
''
Additional packages to be included in the environment of the system
diff --git a/nixos/modules/services/networking/flannel.nix b/nixos/modules/services/networking/flannel.nix
index 32a7eb3ed69e..b15339870ee2 100644
--- a/nixos/modules/services/networking/flannel.nix
+++ b/nixos/modules/services/networking/flannel.nix
@@ -20,7 +20,7 @@ in {
description = "Package to use for flannel";
type = types.package;
default = pkgs.flannel;
- defaultText = "pkgs.flannel";
+ defaultText = literalExpression "pkgs.flannel";
};
publicIp = mkOption {
@@ -164,7 +164,7 @@ in {
path = [ pkgs.iptables ];
preStart = optionalString (cfg.storageBackend == "etcd") ''
echo "setting network configuration"
- until ${pkgs.etcdctl}/bin/etcdctl set /coreos.com/network/config '${builtins.toJSON networkConfig}'
+ until ${pkgs.etcd}/bin/etcdctl set /coreos.com/network/config '${builtins.toJSON networkConfig}'
do
echo "setting network configuration, retry"
sleep 1
diff --git a/nixos/modules/services/networking/ghostunnel.nix b/nixos/modules/services/networking/ghostunnel.nix
index 58a51df6cca2..7a62d378e2c6 100644
--- a/nixos/modules/services/networking/ghostunnel.nix
+++ b/nixos/modules/services/networking/ghostunnel.nix
@@ -5,7 +5,7 @@ let
concatMap
concatStringsSep
escapeShellArg
- literalExample
+ literalExpression
mapAttrs'
mkDefault
mkEnableOption
@@ -219,7 +219,7 @@ in
description = "The ghostunnel package to use.";
type = types.package;
default = pkgs.ghostunnel;
- defaultText = literalExample ''pkgs.ghostunnel'';
+ defaultText = literalExpression "pkgs.ghostunnel";
};
services.ghostunnel.servers = mkOption {
diff --git a/nixos/modules/services/networking/globalprotect-vpn.nix b/nixos/modules/services/networking/globalprotect-vpn.nix
index 367a42687e13..976fdf2b962a 100644
--- a/nixos/modules/services/networking/globalprotect-vpn.nix
+++ b/nixos/modules/services/networking/globalprotect-vpn.nix
@@ -21,7 +21,7 @@ in
as described at
'';
default = null;
- example = literalExample "\${pkgs.openconnect}/libexec/openconnect/hipreport.sh";
+ example = literalExpression ''"''${pkgs.openconnect}/libexec/openconnect/hipreport.sh"'';
type = types.nullOr types.path;
};
};
diff --git a/nixos/modules/services/networking/gnunet.nix b/nixos/modules/services/networking/gnunet.nix
index cf3d1841a979..5c41967d279b 100644
--- a/nixos/modules/services/networking/gnunet.nix
+++ b/nixos/modules/services/networking/gnunet.nix
@@ -115,9 +115,9 @@ in
package = mkOption {
type = types.package;
default = pkgs.gnunet;
- defaultText = "pkgs.gnunet";
+ defaultText = literalExpression "pkgs.gnunet";
description = "Overridable attribute of the gnunet package to use.";
- example = literalExample "pkgs.gnunet_git";
+ example = literalExpression "pkgs.gnunet_git";
};
extraOptions = mkOption {
diff --git a/nixos/modules/services/networking/gobgpd.nix b/nixos/modules/services/networking/gobgpd.nix
index d3b03471f4eb..29ef9a5cf1e3 100644
--- a/nixos/modules/services/networking/gobgpd.nix
+++ b/nixos/modules/services/networking/gobgpd.nix
@@ -18,7 +18,7 @@ in {
for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
global = {
config = {
diff --git a/nixos/modules/services/networking/hans.nix b/nixos/modules/services/networking/hans.nix
index 84147db00f61..2639b4b68001 100644
--- a/nixos/modules/services/networking/hans.nix
+++ b/nixos/modules/services/networking/hans.nix
@@ -27,7 +27,7 @@ in
where name is the name of the
corresponding attribute name.
'';
- example = literalExample ''
+ example = literalExpression ''
{
foo = {
server = "192.0.2.1";
diff --git a/nixos/modules/services/networking/hylafax/options.nix b/nixos/modules/services/networking/hylafax/options.nix
index 74960e69b9ac..8e59c68054d2 100644
--- a/nixos/modules/services/networking/hylafax/options.nix
+++ b/nixos/modules/services/networking/hylafax/options.nix
@@ -2,7 +2,7 @@
let
- inherit (lib.options) literalExample mkEnableOption mkOption;
+ inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.types) bool enum ints lines attrsOf nullOr path str submodule;
inherit (lib.modules) mkDefault mkIf mkMerge;
@@ -197,7 +197,7 @@ in
sendmailPath = mkOption {
type = path;
- example = literalExample "''${pkgs.postfix}/bin/sendmail";
+ example = literalExpression ''"''${pkgs.postfix}/bin/sendmail"'';
# '' ; # fix vim
description = ''
Path to sendmail program.
@@ -344,7 +344,7 @@ in
faxqclean.doneqMinutes = mkOption {
type = ints.positive;
default = 15;
- example = literalExample "24*60";
+ example = literalExpression "24*60";
description = ''
Set the job
age threshold (in minutes) that controls how long
@@ -354,7 +354,7 @@ in
faxqclean.docqMinutes = mkOption {
type = ints.positive;
default = 60;
- example = literalExample "24*60";
+ example = literalExpression "24*60";
description = ''
Set the document
age threshold (in minutes) that controls how long
diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix
index fba0d817006e..17828ca44ff2 100644
--- a/nixos/modules/services/networking/i2pd.nix
+++ b/nixos/modules/services/networking/i2pd.nix
@@ -481,7 +481,7 @@ in
exploratory.inbound = i2cpOpts "exploratory";
exploratory.outbound = i2cpOpts "exploratory";
- ntcp2.enable = mkEnableTrueOption "NTCP2.";
+ ntcp2.enable = mkEnableTrueOption "NTCP2";
ntcp2.published = mkEnableOption "NTCP2 publication";
ntcp2.port = mkOption {
type = types.int;
diff --git a/nixos/modules/services/networking/icecream/daemon.nix b/nixos/modules/services/networking/icecream/daemon.nix
index 2975696f9c24..8593c94e34dc 100644
--- a/nixos/modules/services/networking/icecream/daemon.nix
+++ b/nixos/modules/services/networking/icecream/daemon.nix
@@ -101,7 +101,7 @@ in {
package = mkOption {
default = pkgs.icecream;
- defaultText = "pkgs.icecream";
+ defaultText = literalExpression "pkgs.icecream";
type = types.package;
description = "Icecream package to use.";
};
diff --git a/nixos/modules/services/networking/icecream/scheduler.nix b/nixos/modules/services/networking/icecream/scheduler.nix
index 4ccbf27015d7..14fbc966b989 100644
--- a/nixos/modules/services/networking/icecream/scheduler.nix
+++ b/nixos/modules/services/networking/icecream/scheduler.nix
@@ -56,7 +56,7 @@ in {
package = mkOption {
default = pkgs.icecream;
- defaultText = "pkgs.icecream";
+ defaultText = literalExpression "pkgs.icecream";
type = types.package;
description = "Icecream package to use.";
};
diff --git a/nixos/modules/services/networking/inspircd.nix b/nixos/modules/services/networking/inspircd.nix
index 8cb2b406ee28..81c367ec8f7d 100644
--- a/nixos/modules/services/networking/inspircd.nix
+++ b/nixos/modules/services/networking/inspircd.nix
@@ -17,8 +17,8 @@ in {
package = lib.mkOption {
type = lib.types.package;
default = pkgs.inspircd;
- defaultText = lib.literalExample "pkgs.inspircd";
- example = lib.literalExample "pkgs.inspircdMinimal";
+ defaultText = lib.literalExpression "pkgs.inspircd";
+ example = lib.literalExpression "pkgs.inspircdMinimal";
description = ''
The InspIRCd package to use. This is mainly useful
to specify an overridden version of the
diff --git a/nixos/modules/services/networking/iodine.nix b/nixos/modules/services/networking/iodine.nix
index f67e2d9a5e71..e241afe3269b 100644
--- a/nixos/modules/services/networking/iodine.nix
+++ b/nixos/modules/services/networking/iodine.nix
@@ -36,7 +36,7 @@ in
where name is the name of the
corresponding attribute name.
'';
- example = literalExample ''
+ example = literalExpression ''
{
foo = {
server = "tunnel.mdomain.com";
diff --git a/nixos/modules/services/networking/ircd-hybrid/default.nix b/nixos/modules/services/networking/ircd-hybrid/default.nix
index 1f5636e4e3a9..f659f3f3e8c1 100644
--- a/nixos/modules/services/networking/ircd-hybrid/default.nix
+++ b/nixos/modules/services/networking/ircd-hybrid/default.nix
@@ -64,7 +64,7 @@ in
rsaKey = mkOption {
default = null;
- example = literalExample "/root/certificates/irc.key";
+ example = literalExpression "/root/certificates/irc.key";
type = types.nullOr types.path;
description = "
IRCD server RSA key.
@@ -73,7 +73,7 @@ in
certificate = mkOption {
default = null;
- example = literalExample "/root/certificates/irc.pem";
+ example = literalExpression "/root/certificates/irc.pem";
type = types.nullOr types.path;
description = "
IRCD server SSL certificate. There are some limitations - read manual.
diff --git a/nixos/modules/services/networking/iscsi/initiator.nix b/nixos/modules/services/networking/iscsi/initiator.nix
index cbc919a2f76c..051c9c7bff3c 100644
--- a/nixos/modules/services/networking/iscsi/initiator.nix
+++ b/nixos/modules/services/networking/iscsi/initiator.nix
@@ -23,7 +23,7 @@ in
type = package;
description = "openiscsi package to use";
default = pkgs.openiscsi;
- defaultText = "pkgs.openiscsi";
+ defaultText = literalExpression "pkgs.openiscsi";
};
extraConfig = mkOption {
diff --git a/nixos/modules/services/networking/iscsi/root-initiator.nix b/nixos/modules/services/networking/iscsi/root-initiator.nix
index 3274878c4fae..c12aca1bc24d 100644
--- a/nixos/modules/services/networking/iscsi/root-initiator.nix
+++ b/nixos/modules/services/networking/iscsi/root-initiator.nix
@@ -64,6 +64,12 @@ in
default = false;
};
+ extraIscsiCommands = mkOption {
+ description = "Extra iscsi commands to run in the initrd.";
+ default = "";
+ type = lines;
+ };
+
extraConfig = mkOption {
description = "Extra lines to append to /etc/iscsid.conf";
default = null;
@@ -162,6 +168,9 @@ in
'' else ''
iscsiadm --mode node --targetname ${escapeShellArg cfg.target} --login
''}
+
+ ${cfg.extraIscsiCommands}
+
pkill -9 iscsid
'';
};
diff --git a/nixos/modules/services/networking/jibri/default.nix b/nixos/modules/services/networking/jibri/default.nix
new file mode 100644
index 000000000000..96832b0eb552
--- /dev/null
+++ b/nixos/modules/services/networking/jibri/default.nix
@@ -0,0 +1,417 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.jibri;
+
+ # Copied from the jitsi-videobridge.nix file.
+ toHOCON = x:
+ if isAttrs x && x ? __hocon_envvar then ("\${" + x.__hocon_envvar + "}")
+ else if isAttrs x then "{${ concatStringsSep "," (mapAttrsToList (k: v: ''"${k}":${toHOCON v}'') x) }}"
+ else if isList x then "[${ concatMapStringsSep "," toHOCON x }]"
+ else builtins.toJSON x;
+
+ # We're passing passwords in environment variables that have names generated
+ # from an attribute name, which may not be a valid bash identifier.
+ toVarName = s: "XMPP_PASSWORD_" + stringAsChars (c: if builtins.match "[A-Za-z0-9]" c != null then c else "_") s;
+
+ defaultJibriConfig = {
+ id = "";
+ single-use-mode = false;
+
+ api = {
+ http.external-api-port = 2222;
+ http.internal-api-port = 3333;
+
+ xmpp.environments = flip mapAttrsToList cfg.xmppEnvironments (name: env: {
+ inherit name;
+
+ xmpp-server-hosts = env.xmppServerHosts;
+ xmpp-domain = env.xmppDomain;
+ control-muc = {
+ domain = env.control.muc.domain;
+ room-name = env.control.muc.roomName;
+ nickname = env.control.muc.nickname;
+ };
+
+ control-login = {
+ domain = env.control.login.domain;
+ username = env.control.login.username;
+ password.__hocon_envvar = toVarName "${name}_control";
+ };
+
+ call-login = {
+ domain = env.call.login.domain;
+ username = env.call.login.username;
+ password.__hocon_envvar = toVarName "${name}_call";
+ };
+
+ strip-from-room-domain = env.stripFromRoomDomain;
+ usage-timeout = env.usageTimeout;
+ trust-all-xmpp-certs = env.disableCertificateVerification;
+ });
+ };
+
+ recording = {
+ recordings-directory = "/tmp/recordings";
+ finalize-script = "${cfg.finalizeScript}";
+ };
+
+ streaming.rtmp-allow-list = [ ".*" ];
+
+ chrome.flags = [
+ "--use-fake-ui-for-media-stream"
+ "--start-maximized"
+ "--kiosk"
+ "--enabled"
+ "--disable-infobars"
+ "--autoplay-policy=no-user-gesture-required"
+ ]
+ ++ lists.optional cfg.ignoreCert
+ "--ignore-certificate-errors";
+
+
+ stats.enable-stats-d = true;
+ webhook.subscribers = [ ];
+
+ jwt-info = { };
+
+ call-status-checks = {
+ no-media-timout = "30 seconds";
+ all-muted-timeout = "10 minutes";
+ default-call-empty-timout = "30 seconds";
+ };
+ };
+ # Allow overriding leaves of the default config despite types.attrs not doing any merging.
+ jibriConfig = recursiveUpdate defaultJibriConfig cfg.config;
+ configFile = pkgs.writeText "jibri.conf" (toHOCON { jibri = jibriConfig; });
+in
+{
+ options.services.jibri = with types; {
+ enable = mkEnableOption "Jitsi BRoadcasting Infrastructure. Currently Jibri must be run on a host that is also running , so for most use cases it will be simpler to run ";
+ config = mkOption {
+ type = attrs;
+ default = { };
+ description = ''
+ Jibri configuration.
+ See
+ for default configuration with comments.
+ '';
+ };
+
+ finalizeScript = mkOption {
+ type = types.path;
+ default = pkgs.writeScript "finalize_recording.sh" ''
+ #!/bin/sh
+
+ RECORDINGS_DIR=$1
+
+ echo "This is a dummy finalize script" > /tmp/finalize.out
+ echo "The script was invoked with recordings directory $RECORDINGS_DIR." >> /tmp/finalize.out
+ echo "You should put any finalize logic (renaming, uploading to a service" >> /tmp/finalize.out
+ echo "or storage provider, etc.) in this script" >> /tmp/finalize.out
+
+ exit 0
+ '';
+ defaultText = literalExpression ''
+ pkgs.writeScript "finalize_recording.sh" ''''''
+ #!/bin/sh
+
+ RECORDINGS_DIR=$1
+
+ echo "This is a dummy finalize script" > /tmp/finalize.out
+ echo "The script was invoked with recordings directory $RECORDINGS_DIR." >> /tmp/finalize.out
+ echo "You should put any finalize logic (renaming, uploading to a service" >> /tmp/finalize.out
+ echo "or storage provider, etc.) in this script" >> /tmp/finalize.out
+
+ exit 0
+ '''''';
+ '';
+ example = literalExpression ''
+ pkgs.writeScript "finalize_recording.sh" ''''''
+ #!/bin/sh
+ RECORDINGS_DIR=$1
+ ${pkgs.rclone}/bin/rclone copy $RECORDINGS_DIR RCLONE_REMOTE:jibri-recordings/ -v --log-file=/var/log/jitsi/jibri/recording-upload.txt
+ exit 0
+ '''''';
+ '';
+ description = ''
+ This script runs when jibri finishes recording a video of a conference.
+ '';
+ };
+
+ ignoreCert = mkOption {
+ type = bool;
+ default = false;
+ example = true;
+ description = ''
+ Whether to enable the flag "--ignore-certificate-errors" for the Chromium browser opened by Jibri.
+ Intended for use in automated tests or anywhere else where using a verified cert for Jitsi-Meet is not possible.
+ '';
+ };
+
+ xmppEnvironments = mkOption {
+ description = ''
+ XMPP servers to connect to.
+ '';
+ example = literalExpression ''
+ "jitsi-meet" = {
+ xmppServerHosts = [ "localhost" ];
+ xmppDomain = config.services.jitsi-meet.hostName;
+
+ control.muc = {
+ domain = "internal.''${config.services.jitsi-meet.hostName}";
+ roomName = "JibriBrewery";
+ nickname = "jibri";
+ };
+
+ control.login = {
+ domain = "auth.''${config.services.jitsi-meet.hostName}";
+ username = "jibri";
+ passwordFile = "/var/lib/jitsi-meet/jibri-auth-secret";
+ };
+
+ call.login = {
+ domain = "recorder.''${config.services.jitsi-meet.hostName}";
+ username = "recorder";
+ passwordFile = "/var/lib/jitsi-meet/jibri-recorder-secret";
+ };
+
+ usageTimeout = "0";
+ disableCertificateVerification = true;
+ stripFromRoomDomain = "conference.";
+ };
+ '';
+ default = { };
+ type = attrsOf (submodule ({ name, ... }: {
+ options = {
+ xmppServerHosts = mkOption {
+ type = listOf str;
+ example = [ "xmpp.example.org" ];
+ description = ''
+ Hostnames of the XMPP servers to connect to.
+ '';
+ };
+ xmppDomain = mkOption {
+ type = str;
+ example = "xmpp.example.org";
+ description = ''
+ The base XMPP domain.
+ '';
+ };
+ control.muc.domain = mkOption {
+ type = str;
+ description = ''
+ The domain part of the MUC to connect to for control.
+ '';
+ };
+ control.muc.roomName = mkOption {
+ type = str;
+ default = "JibriBrewery";
+ description = ''
+ The room name of the MUC to connect to for control.
+ '';
+ };
+ control.muc.nickname = mkOption {
+ type = str;
+ default = "jibri";
+ description = ''
+ The nickname for this Jibri instance in the MUC.
+ '';
+ };
+ control.login.domain = mkOption {
+ type = str;
+ description = ''
+ The domain part of the JID for this Jibri instance.
+ '';
+ };
+ control.login.username = mkOption {
+ type = str;
+ default = "jvb";
+ description = ''
+ User part of the JID.
+ '';
+ };
+ control.login.passwordFile = mkOption {
+ type = str;
+ example = "/run/keys/jibri-xmpp1";
+ description = ''
+ File containing the password for the user.
+ '';
+ };
+
+ call.login.domain = mkOption {
+ type = str;
+ example = "recorder.xmpp.example.org";
+ description = ''
+ The domain part of the JID for the recorder.
+ '';
+ };
+ call.login.username = mkOption {
+ type = str;
+ default = "recorder";
+ description = ''
+ User part of the JID for the recorder.
+ '';
+ };
+ call.login.passwordFile = mkOption {
+ type = str;
+ example = "/run/keys/jibri-recorder-xmpp1";
+ description = ''
+ File containing the password for the user.
+ '';
+ };
+ disableCertificateVerification = mkOption {
+ type = bool;
+ default = false;
+ description = ''
+ Whether to skip validation of the server's certificate.
+ '';
+ };
+
+ stripFromRoomDomain = mkOption {
+ type = str;
+ default = "0";
+ example = "conference.";
+ description = ''
+ The prefix to strip from the room's JID domain to derive the call URL.
+ '';
+ };
+ usageTimeout = mkOption {
+ type = str;
+ default = "0";
+ example = "1 hour";
+ description = ''
+ The duration that the Jibri session can be.
+ A value of zero means indefinitely.
+ '';
+ };
+ };
+
+ config =
+ let
+ nick = mkDefault (builtins.replaceStrings [ "." ] [ "-" ] (
+ config.networking.hostName + optionalString (config.networking.domain != null) ".${config.networking.domain}"
+ ));
+ in
+ {
+ call.login.username = nick;
+ control.muc.nickname = nick;
+ };
+ }));
+ };
+ };
+
+ config = mkIf cfg.enable {
+ users.groups.jibri = { };
+ users.groups.plugdev = { };
+ users.users.jibri = {
+ isSystemUser = true;
+ group = "jibri";
+ home = "/var/lib/jibri";
+ extraGroups = [ "jitsi-meet" "adm" "audio" "video" "plugdev" ];
+ };
+
+ systemd.services.jibri-xorg = {
+ description = "Jitsi Xorg Process";
+
+ after = [ "network.target" ];
+ wantedBy = [ "jibri.service" "jibri-icewm.service" ];
+
+ preStart = ''
+ cp --no-preserve=mode,ownership ${pkgs.jibri}/etc/jitsi/jibri/* /var/lib/jibri
+ mv /var/lib/jibri/{,.}asoundrc
+ '';
+
+ environment.DISPLAY = ":0";
+ serviceConfig = {
+ Type = "simple";
+
+ User = "jibri";
+ Group = "jibri";
+ KillMode = "process";
+ Restart = "on-failure";
+ RestartPreventExitStatus = 255;
+
+ StateDirectory = "jibri";
+
+ ExecStart = "${pkgs.xorg.xorgserver}/bin/Xorg -nocursor -noreset +extension RANDR +extension RENDER -config ${pkgs.jibri}/etc/jitsi/jibri/xorg-video-dummy.conf -logfile /dev/null :0";
+ };
+ };
+
+ systemd.services.jibri-icewm = {
+ description = "Jitsi Window Manager";
+
+ requires = [ "jibri-xorg.service" ];
+ after = [ "jibri-xorg.service" ];
+ wantedBy = [ "jibri.service" ];
+
+ environment.DISPLAY = ":0";
+ serviceConfig = {
+ Type = "simple";
+
+ User = "jibri";
+ Group = "jibri";
+ Restart = "on-failure";
+ RestartPreventExitStatus = 255;
+
+ StateDirectory = "jibri";
+
+ ExecStart = "${pkgs.icewm}/bin/icewm-session";
+ };
+ };
+
+ systemd.services.jibri = {
+ description = "Jibri Process";
+
+ requires = [ "jibri-icewm.service" "jibri-xorg.service" ];
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ path = with pkgs; [ chromedriver chromium ffmpeg-full ];
+
+ script = (concatStrings (mapAttrsToList
+ (name: env: ''
+ export ${toVarName "${name}_control"}=$(cat ${env.control.login.passwordFile})
+ export ${toVarName "${name}_call"}=$(cat ${env.call.login.passwordFile})
+ '')
+ cfg.xmppEnvironments))
+ + ''
+ ${pkgs.jre8_headless}/bin/java -Djava.util.logging.config.file=${./logging.properties-journal} -Dconfig.file=${configFile} -jar ${pkgs.jibri}/opt/jitsi/jibri/jibri.jar --config /var/lib/jibri/jibri.json
+ '';
+
+ environment.HOME = "/var/lib/jibri";
+
+ serviceConfig = {
+ Type = "simple";
+
+ User = "jibri";
+ Group = "jibri";
+ Restart = "always";
+ RestartPreventExitStatus = 255;
+
+ StateDirectory = "jibri";
+ };
+ };
+
+ systemd.tmpfiles.rules = [
+ "d /var/log/jitsi/jibri 755 jibri jibri"
+ ];
+
+
+
+ # Configure Chromium to not show the "Chrome is being controlled by automatic test software" message.
+ environment.etc."chromium/policies/managed/managed_policies.json".text = builtins.toJSON { CommandLineFlagSecurityWarningsEnabled = false; };
+ warnings = [ "All security warnings for Chromium have been disabled. This is necessary for Jibri, but it also impacts all other uses of Chromium on this system." ];
+
+ boot = {
+ extraModprobeConfig = ''
+ options snd-aloop enable=1,1,1,1,1,1,1,1
+ '';
+ kernelModules = [ "snd-aloop" ];
+ };
+ };
+
+ meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixos/modules/services/networking/jibri/logging.properties-journal b/nixos/modules/services/networking/jibri/logging.properties-journal
new file mode 100644
index 000000000000..61eadbfddcb3
--- /dev/null
+++ b/nixos/modules/services/networking/jibri/logging.properties-journal
@@ -0,0 +1,32 @@
+handlers = java.util.logging.FileHandler
+
+java.util.logging.FileHandler.level = FINE
+java.util.logging.FileHandler.pattern = /var/log/jitsi/jibri/log.%g.txt
+java.util.logging.FileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+java.util.logging.FileHandler.count = 10
+java.util.logging.FileHandler.limit = 10000000
+
+org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.level = FINE
+org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.pattern = /var/log/jitsi/jibri/ffmpeg.%g.txt
+org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.count = 10
+org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.limit = 10000000
+
+org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.level = FINE
+org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.pattern = /var/log/jitsi/jibri/pjsua.%g.txt
+org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.count = 10
+org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.limit = 10000000
+
+org.jitsi.jibri.selenium.util.BrowserFileHandler.level = FINE
+org.jitsi.jibri.selenium.util.BrowserFileHandler.pattern = /var/log/jitsi/jibri/browser.%g.txt
+org.jitsi.jibri.selenium.util.BrowserFileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+org.jitsi.jibri.selenium.util.BrowserFileHandler.count = 10
+org.jitsi.jibri.selenium.util.BrowserFileHandler.limit = 10000000
+
+org.jitsi.level = FINE
+org.jitsi.jibri.config.level = INFO
+
+org.glassfish.level = INFO
+org.osgi.level = INFO
+org.jitsi.xmpp.level = INFO
diff --git a/nixos/modules/services/networking/jicofo.nix b/nixos/modules/services/networking/jicofo.nix
index 160a5fea91a0..647119b9039e 100644
--- a/nixos/modules/services/networking/jicofo.nix
+++ b/nixos/modules/services/networking/jicofo.nix
@@ -70,7 +70,7 @@ in
config = mkOption {
type = attrsOf str;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"org.jitsi.jicofo.auth.URL" = "XMPP:jitsi-meet.example.com";
}
diff --git a/nixos/modules/services/networking/jitsi-videobridge.nix b/nixos/modules/services/networking/jitsi-videobridge.nix
index 80f35d56e2db..dd06ad98a973 100644
--- a/nixos/modules/services/networking/jitsi-videobridge.nix
+++ b/nixos/modules/services/networking/jitsi-videobridge.nix
@@ -56,7 +56,7 @@ in
config = mkOption {
type = attrs;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
videobridge = {
ice.udp.port = 5000;
@@ -82,7 +82,7 @@ in
See for more information.
'';
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"localhost" = {
hostName = "localhost";
@@ -199,7 +199,7 @@ in
Needed for monitoring jitsi.
'';
default = [];
- example = literalExample "[ \"colibri\" \"rest\" ]";
+ example = literalExpression "[ \"colibri\" \"rest\" ]";
};
};
diff --git a/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix b/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix
index 85b9bc337726..e96dde5fa89f 100644
--- a/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix
+++ b/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix
@@ -102,9 +102,7 @@ with lib;
inherit lib;
}));
default = [];
- example = literalExample ''
- TODO: Example
- '';
+ # TODO: example
description = "Declarative vhost config";
};
diff --git a/nixos/modules/services/networking/keepalived/vrrp-script-options.nix b/nixos/modules/services/networking/keepalived/vrrp-script-options.nix
index a3f794c40a89..df7a89cff8cd 100644
--- a/nixos/modules/services/networking/keepalived/vrrp-script-options.nix
+++ b/nixos/modules/services/networking/keepalived/vrrp-script-options.nix
@@ -7,7 +7,7 @@ with lib.types;
script = mkOption {
type = str;
- example = "\${pkgs.curl} -f http://localhost:80";
+ example = literalExpression ''"''${pkgs.curl} -f http://localhost:80"'';
description = "(Path of) Script command to execute followed by args, i.e. cmd [args]...";
};
diff --git a/nixos/modules/services/networking/kippo.nix b/nixos/modules/services/networking/kippo.nix
deleted file mode 100644
index 6fedb0a270f4..000000000000
--- a/nixos/modules/services/networking/kippo.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-# NixOS module for kippo honeypot ssh server
-# See all the options for configuration details.
-#
-# Default port is 2222. Recommend using something like this for port redirection to default SSH port:
-# networking.firewall.extraCommands = ''
-# iptables -t nat -A PREROUTING -i IN_IFACE -p tcp --dport 22 -j REDIRECT --to-port 2222'';
-#
-# Lastly: use this service at your own risk. I am working on a way to run this inside a VM.
-{ config, lib, pkgs, ... }:
-with lib;
-let
- cfg = config.services.kippo;
-in
-{
- options = {
- services.kippo = {
- enable = mkOption {
- default = false;
- type = types.bool;
- description = "Enable the kippo honeypot ssh server.";
- };
- port = mkOption {
- default = 2222;
- type = types.int;
- description = "TCP port number for kippo to bind to.";
- };
- hostname = mkOption {
- default = "nas3";
- type = types.str;
- description = "Hostname for kippo to present to SSH login";
- };
- varPath = mkOption {
- default = "/var/lib/kippo";
- type = types.path;
- description = "Path of read/write files needed for operation and configuration.";
- };
- logPath = mkOption {
- default = "/var/log/kippo";
- type = types.path;
- description = "Path of log files needed for operation and configuration.";
- };
- pidPath = mkOption {
- default = "/run/kippo";
- type = types.path;
- description = "Path of pid files needed for operation.";
- };
- extraConfig = mkOption {
- default = "";
- type = types.lines;
- description = "Extra verbatim configuration added to the end of kippo.cfg.";
- };
- };
-
- };
- config = mkIf cfg.enable {
- environment.systemPackages = with pkgs.pythonPackages; [
- python pkgs.kippo.twisted pycrypto pyasn1 ];
-
- environment.etc."kippo.cfg".text = ''
- # Automatically generated by NixOS.
- # See ${pkgs.kippo}/src/kippo.cfg for details.
- [honeypot]
- log_path = ${cfg.logPath}
- download_path = ${cfg.logPath}/dl
- filesystem_file = ${cfg.varPath}/honeyfs
- filesystem_file = ${cfg.varPath}/fs.pickle
- data_path = ${cfg.varPath}/data
- txtcmds_path = ${cfg.varPath}/txtcmds
- public_key = ${cfg.varPath}/keys/public.key
- private_key = ${cfg.varPath}/keys/private.key
- ssh_port = ${toString cfg.port}
- hostname = ${cfg.hostname}
- ${cfg.extraConfig}
- '';
-
- users.users.kippo = {
- description = "kippo web server privilege separation user";
- uid = 108; # why does config.ids.uids.kippo give an error?
- };
- users.groups.kippo.gid = 108;
-
- systemd.services.kippo = with pkgs; {
- description = "Kippo Web Server";
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
- environment.PYTHONPATH = "${pkgs.kippo}/src/:${pkgs.pythonPackages.pycrypto}/lib/python2.7/site-packages/:${pkgs.pythonPackages.pyasn1}/lib/python2.7/site-packages/:${pkgs.pythonPackages.python}/lib/python2.7/site-packages/:${pkgs.kippo.twisted}/lib/python2.7/site-packages/:.";
- preStart = ''
- if [ ! -d ${cfg.varPath}/ ] ; then
- mkdir -p ${cfg.logPath}/tty
- mkdir -p ${cfg.logPath}/dl
- mkdir -p ${cfg.varPath}/keys
- cp ${pkgs.kippo}/src/honeyfs ${cfg.varPath} -r
- cp ${pkgs.kippo}/src/fs.pickle ${cfg.varPath}/fs.pickle
- cp ${pkgs.kippo}/src/data ${cfg.varPath} -r
- cp ${pkgs.kippo}/src/txtcmds ${cfg.varPath} -r
-
- chmod u+rw ${cfg.varPath} -R
- chown kippo.kippo ${cfg.varPath} -R
- chown kippo.kippo ${cfg.logPath} -R
- chmod u+rw ${cfg.logPath} -R
- fi
- if [ ! -d ${cfg.pidPath}/ ] ; then
- mkdir -p ${cfg.pidPath}
- chmod u+rw ${cfg.pidPath}
- chown kippo.kippo ${cfg.pidPath}
- fi
- '';
-
- serviceConfig.ExecStart = "${pkgs.kippo.twisted}/bin/twistd -y ${pkgs.kippo}/src/kippo.tac --syslog --rundir=${cfg.varPath}/ --pidfile=${cfg.pidPath}/kippo.pid --prefix=kippo -n";
- serviceConfig.PermissionsStartOnly = true;
- serviceConfig.User = "kippo";
- serviceConfig.Group = "kippo";
- };
-};
-}
-
-
diff --git a/nixos/modules/services/networking/knot.nix b/nixos/modules/services/networking/knot.nix
index 12ff89fe8492..67eadbd76702 100644
--- a/nixos/modules/services/networking/knot.nix
+++ b/nixos/modules/services/networking/knot.nix
@@ -71,7 +71,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.knot-dns;
- defaultText = "pkgs.knot-dns";
+ defaultText = literalExpression "pkgs.knot-dns";
description = ''
Which Knot DNS package to use
'';
diff --git a/nixos/modules/services/networking/kresd.nix b/nixos/modules/services/networking/kresd.nix
index 6882a315f616..3a36ac7e6670 100644
--- a/nixos/modules/services/networking/kresd.nix
+++ b/nixos/modules/services/networking/kresd.nix
@@ -62,8 +62,8 @@ in {
knot-resolver package to use.
";
default = pkgs.knot-resolver;
- defaultText = "pkgs.knot-resolver";
- example = literalExample "pkgs.knot-resolver.override { extraFeatures = true; }";
+ defaultText = literalExpression "pkgs.knot-resolver";
+ example = literalExpression "pkgs.knot-resolver.override { extraFeatures = true; }";
};
extraConfig = mkOption {
type = types.lines;
diff --git a/nixos/modules/services/networking/lambdabot.nix b/nixos/modules/services/networking/lambdabot.nix
index b7c8bd008fe1..3005e5824554 100644
--- a/nixos/modules/services/networking/lambdabot.nix
+++ b/nixos/modules/services/networking/lambdabot.nix
@@ -27,7 +27,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.lambdabot;
- defaultText = "pkgs.lambdabot";
+ defaultText = literalExpression "pkgs.lambdabot";
description = "Used lambdabot package";
};
diff --git a/nixos/modules/services/networking/libreswan.nix b/nixos/modules/services/networking/libreswan.nix
index 1f0423ac3d84..429167aed9d7 100644
--- a/nixos/modules/services/networking/libreswan.nix
+++ b/nixos/modules/services/networking/libreswan.nix
@@ -66,7 +66,7 @@ in
connections = mkOption {
type = types.attrsOf types.lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ myconnection = '''
auto=add
left=%defaultroute
@@ -85,7 +85,7 @@ in
policies = mkOption {
type = types.attrsOf types.lines;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ private-or-clear = '''
# Attempt opportunistic IPsec for the entire Internet
0.0.0.0/0
diff --git a/nixos/modules/services/networking/lxd-image-server.nix b/nixos/modules/services/networking/lxd-image-server.nix
new file mode 100644
index 000000000000..5ec6cacffa49
--- /dev/null
+++ b/nixos/modules/services/networking/lxd-image-server.nix
@@ -0,0 +1,138 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ cfg = config.services.lxd-image-server;
+ format = pkgs.formats.toml {};
+
+ location = "/var/www/simplestreams";
+in
+{
+ options = {
+ services.lxd-image-server = {
+ enable = mkEnableOption "lxd-image-server";
+
+ group = mkOption {
+ type = types.str;
+ description = "Group assigned to the user and the webroot directory.";
+ default = "nginx";
+ example = "www-data";
+ };
+
+ settings = mkOption {
+ type = format.type;
+ description = ''
+ Configuration for lxd-image-server.
+
+ Example see .
+ '';
+ default = {};
+ };
+
+ nginx = {
+ enable = mkEnableOption "nginx";
+ domain = mkOption {
+ type = types.str;
+ description = "Domain to use for nginx virtual host.";
+ example = "images.example.org";
+ };
+ };
+ };
+ };
+
+ config = mkMerge [
+ (mkIf (cfg.enable) {
+ users.users.lxd-image-server = {
+ isSystemUser = true;
+ group = cfg.group;
+ };
+ users.groups.${cfg.group} = {};
+
+ environment.etc."lxd-image-server/config.toml".source = format.generate "config.toml" cfg.settings;
+
+ services.logrotate.paths.lxd-image-server = {
+ path = "/var/log/lxd-image-server/lxd-image-server.log";
+ frequency = "daily";
+ keep = 21;
+ user = "lxd-image-server";
+ group = cfg.group;
+ extraConfig = ''
+ missingok
+ compress
+ delaycompress
+ copytruncate
+ notifempty
+ '';
+ };
+
+ systemd.tmpfiles.rules = [
+ "d /var/www/simplestreams 0755 lxd-image-server ${cfg.group}"
+ ];
+
+ systemd.services.lxd-image-server = {
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ description = "LXD Image Server";
+
+ script = ''
+ ${pkgs.lxd-image-server}/bin/lxd-image-server init
+ ${pkgs.lxd-image-server}/bin/lxd-image-server watch
+ '';
+
+ serviceConfig = {
+ User = "lxd-image-server";
+ Group = cfg.group;
+ DynamicUser = true;
+ LogsDirectory = "lxd-image-server";
+ RuntimeDirectory = "lxd-image-server";
+ ExecReload = "${pkgs.lxd-image-server}/bin/lxd-image-server reload";
+ ReadWritePaths = [ location ];
+ };
+ };
+ })
+ # this is seperate so it can be enabled on mirrored hosts
+ (mkIf (cfg.nginx.enable) {
+ # https://github.com/Avature/lxd-image-server/blob/master/resources/nginx/includes/lxd-image-server.pkg.conf
+ services.nginx.virtualHosts = {
+ "${cfg.nginx.domain}" = {
+ forceSSL = true;
+ enableACME = mkDefault true;
+
+ root = location;
+
+ locations = {
+ "/streams/v1/" = {
+ index = "index.json";
+ };
+
+ # Serve json files with content type header application/json
+ "~ \.json$" = {
+ extraConfig = ''
+ add_header Content-Type application/json;
+ '';
+ };
+
+ "~ \.tar.xz$" = {
+ extraConfig = ''
+ add_header Content-Type application/octet-stream;
+ '';
+ };
+
+ "~ \.tar.gz$" = {
+ extraConfig = ''
+ add_header Content-Type application/octet-stream;
+ '';
+ };
+
+ # Deny access to document root and the images folder
+ "~ ^/(images/)?$" = {
+ return = "403";
+ };
+ };
+ };
+ };
+ })
+ ];
+}
diff --git a/nixos/modules/services/networking/minidlna.nix b/nixos/modules/services/networking/minidlna.nix
index c580ba47dad3..c860f63efa67 100644
--- a/nixos/modules/services/networking/minidlna.nix
+++ b/nixos/modules/services/networking/minidlna.nix
@@ -39,7 +39,7 @@ in
services.minidlna.friendlyName = mkOption {
type = types.str;
default = "${config.networking.hostName} MiniDLNA";
- defaultText = "$HOSTNAME MiniDLNA";
+ defaultText = literalExpression ''"''${config.networking.hostName} MiniDLNA"'';
example = "rpi3";
description =
''
diff --git a/nixos/modules/services/networking/miredo.nix b/nixos/modules/services/networking/miredo.nix
index 2c8393fb5b41..b7f657efb712 100644
--- a/nixos/modules/services/networking/miredo.nix
+++ b/nixos/modules/services/networking/miredo.nix
@@ -25,7 +25,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.miredo;
- defaultText = "pkgs.miredo";
+ defaultText = literalExpression "pkgs.miredo";
description = ''
The package to use for the miredo daemon's binary.
'';
diff --git a/nixos/modules/services/networking/morty.nix b/nixos/modules/services/networking/morty.nix
index c627feb527b6..dff2f482ca6b 100644
--- a/nixos/modules/services/networking/morty.nix
+++ b/nixos/modules/services/networking/morty.nix
@@ -23,7 +23,6 @@ in
type = types.bool;
default = true;
description = "Allow IPv6 HTTP requests?";
- defaultText = "Allow IPv6 HTTP requests.";
};
key = mkOption {
@@ -33,21 +32,20 @@ in
HMAC url validation key (hexadecimal encoded).
Leave blank to disable. Without validation key, anyone can
submit proxy requests. Leave blank to disable.
+ Generate with printf %s somevalue | openssl dgst -sha1 -hmac somekey
'';
- defaultText = "No HMAC url validation. Generate with echo -n somevalue | openssl dgst -sha1 -hmac somekey";
};
timeout = mkOption {
type = types.int;
default = 2;
description = "Request timeout in seconds.";
- defaultText = "A resource now gets 2 seconds to respond.";
};
package = mkOption {
type = types.package;
default = pkgs.morty;
- defaultText = "pkgs.morty";
+ defaultText = literalExpression "pkgs.morty";
description = "morty package to use.";
};
@@ -61,7 +59,6 @@ in
type = types.str;
default = "127.0.0.1";
description = "The address on which the service listens";
- defaultText = "127.0.0.1 (localhost)";
};
};
diff --git a/nixos/modules/services/networking/mosquitto.md b/nixos/modules/services/networking/mosquitto.md
new file mode 100644
index 000000000000..5cdb598151e5
--- /dev/null
+++ b/nixos/modules/services/networking/mosquitto.md
@@ -0,0 +1,102 @@
+# Mosquitto {#module-services-mosquitto}
+
+Mosquitto is a MQTT broker often used for IoT or home automation data transport.
+
+## Quickstart {#module-services-mosquitto-quickstart}
+
+A minimal configuration for Mosquitto is
+
+```nix
+services.mosquitto = {
+ enable = true;
+ listeners = [ {
+ acl = [ "pattern readwrite #" ];
+ omitPasswordAuth = true;
+ settings.allow_anonymous = true;
+ } ];
+};
+```
+
+This will start a broker on port 1883, listening on all interfaces of the machine, allowing
+read/write access to all topics to any user without password requirements.
+
+User authentication can be configured with the `users` key of listeners. A config that gives
+full read access to a user `monitor` and restricted write access to a user `service` could look
+like
+
+```nix
+services.mosquitto = {
+ enable = true;
+ listeners = [ {
+ users = {
+ monitor = {
+ acl = [ "read #" ];
+ password = "monitor";
+ };
+ service = {
+ acl = [ "write service/#" ];
+ password = "service";
+ };
+ };
+ } ];
+};
+```
+
+TLS authentication is configured by setting TLS-related options of the listener:
+
+```nix
+services.mosquitto = {
+ enable = true;
+ listeners = [ {
+ port = 8883; # port change is not required, but helpful to avoid mistakes
+ # ...
+ settings = {
+ cafile = "/path/to/mqtt.ca.pem";
+ certfile = "/path/to/mqtt.pem";
+ keyfile = "/path/to/mqtt.key";
+ };
+ } ];
+```
+
+## Configuration {#module-services-mosquitto-config}
+
+The Mosquitto configuration has four distinct types of settings:
+the global settings of the daemon, listeners, plugins, and bridges.
+Bridges and listeners are part of the global configuration, plugins are part of listeners.
+Users of the broker are configured as parts of listeners rather than globally, allowing
+configurations in which a given user is only allowed to log in to the broker using specific
+listeners (eg to configure an admin user with full access to all topics, but restricted to
+localhost).
+
+Almost all options of Mosquitto are available for configuration at their appropriate levels, some
+as NixOS options written in camel case, the remainders under `settings` with their exact names in
+the Mosquitto config file. The exceptions are `acl_file` (which is always set according to the
+`acl` attributes of a listener and its users) and `per_listener_settings` (which is always set to
+`true`).
+
+### Password authentication {#module-services-mosquitto-config-passwords}
+
+Mosquitto can be run in two modes, with a password file or without. Each listener has its own
+password file, and different listeners may use different password files. Password file generation
+can be disabled by setting `omitPasswordAuth = true` for a listener; in this case it is necessary
+to either set `settings.allow_anonymous = true` to allow all logins, or to configure other
+authentication methods like TLS client certificates with `settings.use_identity_as_username = true`.
+
+The default is to generate a password file for each listener from the users configured to that
+listener. Users with no configured password will not be added to the password file and thus
+will not be able to use the broker.
+
+### ACL format {#module-services-mosquitto-config-acl}
+
+Every listener has a Mosquitto `acl_file` attached to it. This ACL is configured via two
+attributes of the config:
+
+ * the `acl` attribute of the listener configures pattern ACL entries and topic ACL entries
+ for anonymous users. Each entry must be prefixed with `pattern` or `topic` to distinguish
+ between these two cases.
+ * the `acl` attribute of every user configures in the listener configured the ACL for that
+ given user. Only topic ACLs are supported by Mosquitto in this setting, so no prefix is
+ required or allowed.
+
+The default ACL for a listener is empty, disallowing all accesses from all clients. To configure
+a completely open ACL, set `acl = [ "pattern readwrite #" ]` in the listener.
diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix
index 8e814ffd0b9b..2d498d4dbbcf 100644
--- a/nixos/modules/services/networking/mosquitto.nix
+++ b/nixos/modules/services/networking/mosquitto.nix
@@ -5,35 +5,539 @@ with lib;
let
cfg = config.services.mosquitto;
- listenerConf = optionalString cfg.ssl.enable ''
- listener ${toString cfg.ssl.port} ${cfg.ssl.host}
- cafile ${cfg.ssl.cafile}
- certfile ${cfg.ssl.certfile}
- keyfile ${cfg.ssl.keyfile}
- '';
+ # note that mosquitto config parsing is very simplistic as of may 2021.
+ # often times they'll e.g. strtok() a line, check the first two tokens, and ignore the rest.
+ # there's no escaping available either, so we have to prevent any being necessary.
+ str = types.strMatching "[^\r\n]*" // {
+ description = "single-line string";
+ };
+ path = types.addCheck types.path (p: str.check "${p}");
+ configKey = types.strMatching "[^\r\n\t ]+";
+ optionType = with types; oneOf [ str path bool int ] // {
+ description = "string, path, bool, or integer";
+ };
+ optionToString = v:
+ if isBool v then boolToString v
+ else if path.check v then "${v}"
+ else toString v;
- passwordConf = optionalString cfg.checkPasswords ''
- password_file ${cfg.dataDir}/passwd
- '';
+ assertKeysValid = prefix: valid: config:
+ mapAttrsToList
+ (n: _: {
+ assertion = valid ? ${n};
+ message = "Invalid config key ${prefix}.${n}.";
+ })
+ config;
- mosquittoConf = pkgs.writeText "mosquitto.conf" ''
- acl_file ${aclFile}
- persistence true
- allow_anonymous ${boolToString cfg.allowAnonymous}
- listener ${toString cfg.port} ${cfg.host}
- ${passwordConf}
- ${listenerConf}
- ${cfg.extraConf}
- '';
+ formatFreeform = { prefix ? "" }: mapAttrsToList (n: v: "${prefix}${n} ${optionToString v}");
- userAcl = (concatStringsSep "\n\n" (mapAttrsToList (n: c:
- "user ${n}\n" + (concatStringsSep "\n" c.acl)) cfg.users
- ));
+ userOptions = with types; submodule {
+ options = {
+ password = mkOption {
+ type = uniq (nullOr str);
+ default = null;
+ description = ''
+ Specifies the (clear text) password for the MQTT User.
+ '';
+ };
- aclFile = pkgs.writeText "mosquitto.acl" ''
- ${cfg.aclExtraConf}
- ${userAcl}
- '';
+ passwordFile = mkOption {
+ type = uniq (nullOr types.path);
+ example = "/path/to/file";
+ default = null;
+ description = ''
+ Specifies the path to a file containing the
+ clear text password for the MQTT user.
+ '';
+ };
+
+ hashedPassword = mkOption {
+ type = uniq (nullOr str);
+ default = null;
+ description = ''
+ Specifies the hashed password for the MQTT User.
+ To generate hashed password install mosquitto
+ package and use mosquitto_passwd.
+ '';
+ };
+
+ hashedPasswordFile = mkOption {
+ type = uniq (nullOr types.path);
+ example = "/path/to/file";
+ default = null;
+ description = ''
+ Specifies the path to a file containing the
+ hashed password for the MQTT user.
+ To generate hashed password install mosquitto
+ package and use mosquitto_passwd.
+ '';
+ };
+
+ acl = mkOption {
+ type = listOf str;
+ example = [ "read A/B" "readwrite A/#" ];
+ default = [];
+ description = ''
+ Control client access to topics on the broker.
+ '';
+ };
+ };
+ };
+
+ userAsserts = prefix: users:
+ mapAttrsToList
+ (n: _: {
+ assertion = builtins.match "[^:\r\n]+" n != null;
+ message = "Invalid user name ${n} in ${prefix}";
+ })
+ users
+ ++ mapAttrsToList
+ (n: u: {
+ assertion = count (s: s != null) [
+ u.password u.passwordFile u.hashedPassword u.hashedPasswordFile
+ ] <= 1;
+ message = "Cannot set more than one password option for user ${n} in ${prefix}";
+ }) users;
+
+ makePasswordFile = users: path:
+ let
+ makeLines = store: file:
+ mapAttrsToList
+ (n: u: "addLine ${escapeShellArg n} ${escapeShellArg u.${store}}")
+ (filterAttrs (_: u: u.${store} != null) users)
+ ++ mapAttrsToList
+ (n: u: "addFile ${escapeShellArg n} ${escapeShellArg "${u.${file}}"}")
+ (filterAttrs (_: u: u.${file} != null) users);
+ plainLines = makeLines "password" "passwordFile";
+ hashedLines = makeLines "hashedPassword" "hashedPasswordFile";
+ in
+ pkgs.writeScript "make-mosquitto-passwd"
+ (''
+ #! ${pkgs.runtimeShell}
+
+ set -eu
+
+ file=${escapeShellArg path}
+
+ rm -f "$file"
+ touch "$file"
+
+ addLine() {
+ echo "$1:$2" >> "$file"
+ }
+ addFile() {
+ if [ $(wc -l <"$2") -gt 1 ]; then
+ echo "invalid mosquitto password file $2" >&2
+ return 1
+ fi
+ echo "$1:$(cat "$2")" >> "$file"
+ }
+ ''
+ + concatStringsSep "\n"
+ (plainLines
+ ++ optional (plainLines != []) ''
+ ${pkgs.mosquitto}/bin/mosquitto_passwd -U "$file"
+ ''
+ ++ hashedLines));
+
+ makeACLFile = idx: users: supplement:
+ pkgs.writeText "mosquitto-acl-${toString idx}.conf"
+ (concatStringsSep
+ "\n"
+ (flatten [
+ supplement
+ (mapAttrsToList
+ (n: u: [ "user ${n}" ] ++ map (t: "topic ${t}") u.acl)
+ users)
+ ]));
+
+ authPluginOptions = with types; submodule {
+ options = {
+ plugin = mkOption {
+ type = path;
+ description = ''
+ Plugin path to load, should be a .so file.
+ '';
+ };
+
+ denySpecialChars = mkOption {
+ type = bool;
+ description = ''
+ Automatically disallow all clients using #
+ or + in their name/id.
+ '';
+ default = true;
+ };
+
+ options = mkOption {
+ type = attrsOf optionType;
+ description = ''
+ Options for the auth plugin. Each key turns into a auth_opt_*
+ line in the config.
+ '';
+ default = {};
+ };
+ };
+ };
+
+ authAsserts = prefix: auth:
+ mapAttrsToList
+ (n: _: {
+ assertion = configKey.check n;
+ message = "Invalid auth plugin key ${prefix}.${n}";
+ })
+ auth;
+
+ formatAuthPlugin = plugin:
+ [
+ "auth_plugin ${plugin.plugin}"
+ "auth_plugin_deny_special_chars ${optionToString plugin.denySpecialChars}"
+ ]
+ ++ formatFreeform { prefix = "auth_opt_"; } plugin.options;
+
+ freeformListenerKeys = {
+ allow_anonymous = 1;
+ allow_zero_length_clientid = 1;
+ auto_id_prefix = 1;
+ cafile = 1;
+ capath = 1;
+ certfile = 1;
+ ciphers = 1;
+ "ciphers_tls1.3" = 1;
+ crlfile = 1;
+ dhparamfile = 1;
+ http_dir = 1;
+ keyfile = 1;
+ max_connections = 1;
+ max_qos = 1;
+ max_topic_alias = 1;
+ mount_point = 1;
+ protocol = 1;
+ psk_file = 1;
+ psk_hint = 1;
+ require_certificate = 1;
+ socket_domain = 1;
+ tls_engine = 1;
+ tls_engine_kpass_sha1 = 1;
+ tls_keyform = 1;
+ tls_version = 1;
+ use_identity_as_username = 1;
+ use_subject_as_username = 1;
+ use_username_as_clientid = 1;
+ };
+
+ listenerOptions = with types; submodule {
+ options = {
+ port = mkOption {
+ type = port;
+ description = ''
+ Port to listen on. Must be set to 0 to listen on a unix domain socket.
+ '';
+ default = 1883;
+ };
+
+ address = mkOption {
+ type = nullOr str;
+ description = ''
+ Address to listen on. Listen on 0.0.0.0/::
+ when unset.
+ '';
+ default = null;
+ };
+
+ authPlugins = mkOption {
+ type = listOf authPluginOptions;
+ description = ''
+ Authentication plugin to attach to this listener.
+ Refer to the
+ mosquitto.conf documentation for details on authentication plugins.
+ '';
+ default = [];
+ };
+
+ users = mkOption {
+ type = attrsOf userOptions;
+ example = { john = { password = "123456"; acl = [ "readwrite john/#" ]; }; };
+ description = ''
+ A set of users and their passwords and ACLs.
+ '';
+ default = {};
+ };
+
+ omitPasswordAuth = mkOption {
+ type = bool;
+ description = ''
+ Omits password checking, allowing anyone to log in with any user name unless
+ other mandatory authentication methods (eg TLS client certificates) are configured.
+ '';
+ default = false;
+ };
+
+ acl = mkOption {
+ type = listOf str;
+ description = ''
+ Additional ACL items to prepend to the generated ACL file.
+ '';
+ example = [ "pattern read #" "topic readwrite anon/report/#" ];
+ default = [];
+ };
+
+ settings = mkOption {
+ type = submodule {
+ freeformType = attrsOf optionType;
+ };
+ description = ''
+ Additional settings for this listener.
+ '';
+ default = {};
+ };
+ };
+ };
+
+ listenerAsserts = prefix: listener:
+ assertKeysValid prefix freeformListenerKeys listener.settings
+ ++ userAsserts prefix listener.users
+ ++ imap0
+ (i: v: authAsserts "${prefix}.authPlugins.${toString i}" v)
+ listener.authPlugins;
+
+ formatListener = idx: listener:
+ [
+ "listener ${toString listener.port} ${toString listener.address}"
+ "acl_file ${makeACLFile idx listener.users listener.acl}"
+ ]
+ ++ optional (! listener.omitPasswordAuth) "password_file ${cfg.dataDir}/passwd-${toString idx}"
+ ++ formatFreeform {} listener.settings
+ ++ concatMap formatAuthPlugin listener.authPlugins;
+
+ freeformBridgeKeys = {
+ bridge_alpn = 1;
+ bridge_attempt_unsubscribe = 1;
+ bridge_bind_address = 1;
+ bridge_cafile = 1;
+ bridge_capath = 1;
+ bridge_certfile = 1;
+ bridge_identity = 1;
+ bridge_insecure = 1;
+ bridge_keyfile = 1;
+ bridge_max_packet_size = 1;
+ bridge_outgoing_retain = 1;
+ bridge_protocol_version = 1;
+ bridge_psk = 1;
+ bridge_require_ocsp = 1;
+ bridge_tls_version = 1;
+ cleansession = 1;
+ idle_timeout = 1;
+ keepalive_interval = 1;
+ local_cleansession = 1;
+ local_clientid = 1;
+ local_password = 1;
+ local_username = 1;
+ notification_topic = 1;
+ notifications = 1;
+ notifications_local_only = 1;
+ remote_clientid = 1;
+ remote_password = 1;
+ remote_username = 1;
+ restart_timeout = 1;
+ round_robin = 1;
+ start_type = 1;
+ threshold = 1;
+ try_private = 1;
+ };
+
+ bridgeOptions = with types; submodule {
+ options = {
+ addresses = mkOption {
+ type = listOf (submodule {
+ options = {
+ address = mkOption {
+ type = str;
+ description = ''
+ Address of the remote MQTT broker.
+ '';
+ };
+
+ port = mkOption {
+ type = port;
+ description = ''
+ Port of the remote MQTT broker.
+ '';
+ default = 1883;
+ };
+ };
+ });
+ default = [];
+ description = ''
+ Remote endpoints for the bridge.
+ '';
+ };
+
+ topics = mkOption {
+ type = listOf str;
+ description = ''
+ Topic patterns to be shared between the two brokers.
+ Refer to the
+ mosquitto.conf documentation for details on the format.
+ '';
+ default = [];
+ example = [ "# both 2 local/topic/ remote/topic/" ];
+ };
+
+ settings = mkOption {
+ type = submodule {
+ freeformType = attrsOf optionType;
+ };
+ description = ''
+ Additional settings for this bridge.
+ '';
+ default = {};
+ };
+ };
+ };
+
+ bridgeAsserts = prefix: bridge:
+ assertKeysValid prefix freeformBridgeKeys bridge.settings
+ ++ [ {
+ assertion = length bridge.addresses > 0;
+ message = "Bridge ${prefix} needs remote broker addresses";
+ } ];
+
+ formatBridge = name: bridge:
+ [
+ "connection ${name}"
+ "addresses ${concatMapStringsSep " " (a: "${a.address}:${toString a.port}") bridge.addresses}"
+ ]
+ ++ map (t: "topic ${t}") bridge.topics
+ ++ formatFreeform {} bridge.settings;
+
+ freeformGlobalKeys = {
+ allow_duplicate_messages = 1;
+ autosave_interval = 1;
+ autosave_on_changes = 1;
+ check_retain_source = 1;
+ connection_messages = 1;
+ log_facility = 1;
+ log_timestamp = 1;
+ log_timestamp_format = 1;
+ max_inflight_bytes = 1;
+ max_inflight_messages = 1;
+ max_keepalive = 1;
+ max_packet_size = 1;
+ max_queued_bytes = 1;
+ max_queued_messages = 1;
+ memory_limit = 1;
+ message_size_limit = 1;
+ persistence_file = 1;
+ persistence_location = 1;
+ persistent_client_expiration = 1;
+ pid_file = 1;
+ queue_qos0_messages = 1;
+ retain_available = 1;
+ set_tcp_nodelay = 1;
+ sys_interval = 1;
+ upgrade_outgoing_qos = 1;
+ websockets_headers_size = 1;
+ websockets_log_level = 1;
+ };
+
+ globalOptions = with types; {
+ enable = mkEnableOption "the MQTT Mosquitto broker";
+
+ bridges = mkOption {
+ type = attrsOf bridgeOptions;
+ default = {};
+ description = ''
+ Bridges to build to other MQTT brokers.
+ '';
+ };
+
+ listeners = mkOption {
+ type = listOf listenerOptions;
+ default = {};
+ description = ''
+ Listeners to configure on this broker.
+ '';
+ };
+
+ includeDirs = mkOption {
+ type = listOf path;
+ description = ''
+ Directories to be scanned for further config files to include.
+ Directories will processed in the order given,
+ *.conf files in the directory will be
+ read in case-sensistive alphabetical order.
+ '';
+ default = [];
+ };
+
+ logDest = mkOption {
+ type = listOf (either path (enum [ "stdout" "stderr" "syslog" "topic" "dlt" ]));
+ description = ''
+ Destinations to send log messages to.
+ '';
+ default = [ "stderr" ];
+ };
+
+ logType = mkOption {
+ type = listOf (enum [ "debug" "error" "warning" "notice" "information"
+ "subscribe" "unsubscribe" "websockets" "none" "all" ]);
+ description = ''
+ Types of messages to log.
+ '';
+ default = [];
+ };
+
+ persistence = mkOption {
+ type = bool;
+ description = ''
+ Enable persistent storage of subscriptions and messages.
+ '';
+ default = true;
+ };
+
+ dataDir = mkOption {
+ default = "/var/lib/mosquitto";
+ type = types.path;
+ description = ''
+ The data directory.
+ '';
+ };
+
+ settings = mkOption {
+ type = submodule {
+ freeformType = attrsOf optionType;
+ };
+ description = ''
+ Global configuration options for the mosquitto broker.
+ '';
+ default = {};
+ };
+ };
+
+ globalAsserts = prefix: cfg:
+ flatten [
+ (assertKeysValid prefix freeformGlobalKeys cfg.settings)
+ (imap0 (n: l: listenerAsserts "${prefix}.listener.${toString n}" l) cfg.listeners)
+ (mapAttrsToList (n: b: bridgeAsserts "${prefix}.bridge.${n}" b) cfg.bridges)
+ ];
+
+ formatGlobal = cfg:
+ [
+ "per_listener_settings true"
+ "persistence ${optionToString cfg.persistence}"
+ ]
+ ++ map
+ (d: if path.check d then "log_dest file ${d}" else "log_dest ${d}")
+ cfg.logDest
+ ++ map (t: "log_type ${t}") cfg.logType
+ ++ formatFreeform {} cfg.settings
+ ++ concatLists (imap0 formatListener cfg.listeners)
+ ++ concatLists (mapAttrsToList formatBridge cfg.bridges)
+ ++ map (d: "include_dir ${d}") cfg.includeDirs;
+
+ configFile = pkgs.writeText "mosquitto.conf"
+ (concatStringsSep "\n" (formatGlobal cfg));
in
@@ -41,181 +545,13 @@ in
###### Interface
- options = {
- services.mosquitto = {
- enable = mkEnableOption "the MQTT Mosquitto broker";
-
- host = mkOption {
- default = "127.0.0.1";
- example = "0.0.0.0";
- type = types.str;
- description = ''
- Host to listen on without SSL.
- '';
- };
-
- port = mkOption {
- default = 1883;
- example = 1883;
- type = types.int;
- description = ''
- Port on which to listen without SSL.
- '';
- };
-
- ssl = {
- enable = mkEnableOption "SSL listener";
-
- cafile = mkOption {
- type = types.nullOr types.path;
- default = null;
- description = "Path to PEM encoded CA certificates.";
- };
-
- certfile = mkOption {
- type = types.nullOr types.path;
- default = null;
- description = "Path to PEM encoded server certificate.";
- };
-
- keyfile = mkOption {
- type = types.nullOr types.path;
- default = null;
- description = "Path to PEM encoded server key.";
- };
-
- host = mkOption {
- default = "0.0.0.0";
- example = "localhost";
- type = types.str;
- description = ''
- Host to listen on with SSL.
- '';
- };
-
- port = mkOption {
- default = 8883;
- example = 8883;
- type = types.int;
- description = ''
- Port on which to listen with SSL.
- '';
- };
- };
-
- dataDir = mkOption {
- default = "/var/lib/mosquitto";
- type = types.path;
- description = ''
- The data directory.
- '';
- };
-
- users = mkOption {
- type = types.attrsOf (types.submodule {
- options = {
- password = mkOption {
- type = with types; uniq (nullOr str);
- default = null;
- description = ''
- Specifies the (clear text) password for the MQTT User.
- '';
- };
-
- passwordFile = mkOption {
- type = with types; uniq (nullOr str);
- example = "/path/to/file";
- default = null;
- description = ''
- Specifies the path to a file containing the
- clear text password for the MQTT user.
- '';
- };
-
- hashedPassword = mkOption {
- type = with types; uniq (nullOr str);
- default = null;
- description = ''
- Specifies the hashed password for the MQTT User.
- To generate hashed password install mosquitto
- package and use mosquitto_passwd.
- '';
- };
-
- hashedPasswordFile = mkOption {
- type = with types; uniq (nullOr str);
- example = "/path/to/file";
- default = null;
- description = ''
- Specifies the path to a file containing the
- hashed password for the MQTT user.
- To generate hashed password install mosquitto
- package and use mosquitto_passwd.
- '';
- };
-
- acl = mkOption {
- type = types.listOf types.str;
- example = [ "topic read A/B" "topic A/#" ];
- description = ''
- Control client access to topics on the broker.
- '';
- };
- };
- });
- example = { john = { password = "123456"; acl = [ "topic readwrite john/#" ]; }; };
- description = ''
- A set of users and their passwords and ACLs.
- '';
- };
-
- allowAnonymous = mkOption {
- default = false;
- type = types.bool;
- description = ''
- Allow clients to connect without authentication.
- '';
- };
-
- checkPasswords = mkOption {
- default = false;
- example = true;
- type = types.bool;
- description = ''
- Refuse connection when clients provide incorrect passwords.
- '';
- };
-
- extraConf = mkOption {
- default = "";
- type = types.lines;
- description = ''
- Extra config to append to `mosquitto.conf` file.
- '';
- };
-
- aclExtraConf = mkOption {
- default = "";
- type = types.lines;
- description = ''
- Extra config to prepend to the ACL file.
- '';
- };
-
- };
- };
-
+ options.services.mosquitto = globalOptions;
###### Implementation
config = mkIf cfg.enable {
- assertions = mapAttrsToList (name: cfg: {
- assertion = length (filter (s: s != null) (with cfg; [
- password passwordFile hashedPassword hashedPasswordFile
- ])) <= 1;
- message = "Cannot set more than one password option";
- }) cfg.users;
+ assertions = globalAsserts "services.mosquitto" cfg;
systemd.services.mosquitto = {
description = "Mosquitto MQTT Broker Daemon";
@@ -229,7 +565,7 @@ in
RuntimeDirectory = "mosquitto";
WorkingDirectory = cfg.dataDir;
Restart = "on-failure";
- ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${mosquittoConf}";
+ ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${configFile}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
# Hardening
@@ -254,12 +590,34 @@ in
ReadWritePaths = [
cfg.dataDir
"/tmp" # mosquitto_passwd creates files in /tmp before moving them
- ];
- ReadOnlyPaths = with cfg.ssl; lib.optionals (enable) [
- certfile
- keyfile
- cafile
- ];
+ ] ++ filter path.check cfg.logDest;
+ ReadOnlyPaths =
+ map (p: "${p}")
+ (cfg.includeDirs
+ ++ filter
+ (v: v != null)
+ (flatten [
+ (map
+ (l: [
+ (l.settings.psk_file or null)
+ (l.settings.http_dir or null)
+ (l.settings.cafile or null)
+ (l.settings.capath or null)
+ (l.settings.certfile or null)
+ (l.settings.crlfile or null)
+ (l.settings.dhparamfile or null)
+ (l.settings.keyfile or null)
+ ])
+ cfg.listeners)
+ (mapAttrsToList
+ (_: b: [
+ (b.settings.bridge_cafile or null)
+ (b.settings.bridge_capath or null)
+ (b.settings.bridge_certfile or null)
+ (b.settings.bridge_keyfile or null)
+ ])
+ cfg.bridges)
+ ]));
RemoveIPC = true;
RestrictAddressFamilies = [
"AF_UNIX" # for sd_notify() call
@@ -277,20 +635,12 @@ in
];
UMask = "0077";
};
- preStart = ''
- rm -f ${cfg.dataDir}/passwd
- touch ${cfg.dataDir}/passwd
- '' + concatStringsSep "\n" (
- mapAttrsToList (n: c:
- if c.hashedPasswordFile != null then
- "echo '${n}:'$(cat '${c.hashedPasswordFile}') >> ${cfg.dataDir}/passwd"
- else if c.passwordFile != null then
- "${pkgs.mosquitto}/bin/mosquitto_passwd -b ${cfg.dataDir}/passwd ${n} $(cat '${c.passwordFile}')"
- else if c.hashedPassword != null then
- "echo '${n}:${c.hashedPassword}' >> ${cfg.dataDir}/passwd"
- else optionalString (c.password != null)
- "${pkgs.mosquitto}/bin/mosquitto_passwd -b ${cfg.dataDir}/passwd ${n} '${c.password}'"
- ) cfg.users);
+ preStart =
+ concatStringsSep
+ "\n"
+ (imap0
+ (idx: listener: makePasswordFile listener.users "${cfg.dataDir}/passwd-${toString idx}")
+ cfg.listeners);
};
users.users.mosquitto = {
@@ -304,4 +654,11 @@ in
users.groups.mosquitto.gid = config.ids.gids.mosquitto;
};
+
+ meta = {
+ maintainers = with lib.maintainers; [ pennae ];
+ # Don't edit the docbook xml directly, edit the md and generate it:
+ # `pandoc mosquitto.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > mosquitto.xml`
+ doc = ./mosquitto.xml;
+ };
}
diff --git a/nixos/modules/services/networking/mosquitto.xml b/nixos/modules/services/networking/mosquitto.xml
new file mode 100644
index 000000000000..d16ab28c0269
--- /dev/null
+++ b/nixos/modules/services/networking/mosquitto.xml
@@ -0,0 +1,147 @@
+
+ Mosquitto
+
+ Mosquitto is a MQTT broker often used for IoT or home automation
+ data transport.
+
+
+ Quickstart
+
+ A minimal configuration for Mosquitto is
+
+
+services.mosquitto = {
+ enable = true;
+ listeners = [ {
+ acl = [ "pattern readwrite #" ];
+ omitPasswordAuth = true;
+ settings.allow_anonymous = true;
+ } ];
+};
+
+
+ This will start a broker on port 1883, listening on all interfaces
+ of the machine, allowing read/write access to all topics to any
+ user without password requirements.
+
+
+ User authentication can be configured with the
+ users key of listeners. A config that gives
+ full read access to a user monitor and
+ restricted write access to a user service could
+ look like
+
+
+services.mosquitto = {
+ enable = true;
+ listeners = [ {
+ users = {
+ monitor = {
+ acl = [ "read #" ];
+ password = "monitor";
+ };
+ service = {
+ acl = [ "write service/#" ];
+ password = "service";
+ };
+ };
+ } ];
+};
+
+
+ TLS authentication is configured by setting TLS-related options of
+ the listener:
+
+
+services.mosquitto = {
+ enable = true;
+ listeners = [ {
+ port = 8883; # port change is not required, but helpful to avoid mistakes
+ # ...
+ settings = {
+ cafile = "/path/to/mqtt.ca.pem";
+ certfile = "/path/to/mqtt.pem";
+ keyfile = "/path/to/mqtt.key";
+ };
+ } ];
+
+
+
+ Configuration
+
+ The Mosquitto configuration has four distinct types of settings:
+ the global settings of the daemon, listeners, plugins, and
+ bridges. Bridges and listeners are part of the global
+ configuration, plugins are part of listeners. Users of the broker
+ are configured as parts of listeners rather than globally,
+ allowing configurations in which a given user is only allowed to
+ log in to the broker using specific listeners (eg to configure an
+ admin user with full access to all topics, but restricted to
+ localhost).
+
+
+ Almost all options of Mosquitto are available for configuration at
+ their appropriate levels, some as NixOS options written in camel
+ case, the remainders under settings with their
+ exact names in the Mosquitto config file. The exceptions are
+ acl_file (which is always set according to the
+ acl attributes of a listener and its users) and
+ per_listener_settings (which is always set to
+ true).
+
+
+ Password authentication
+
+ Mosquitto can be run in two modes, with a password file or
+ without. Each listener has its own password file, and different
+ listeners may use different password files. Password file
+ generation can be disabled by setting
+ omitPasswordAuth = true for a listener; in
+ this case it is necessary to either set
+ settings.allow_anonymous = true to allow all
+ logins, or to configure other authentication methods like TLS
+ client certificates with
+ settings.use_identity_as_username = true.
+
+
+ The default is to generate a password file for each listener
+ from the users configured to that listener. Users with no
+ configured password will not be added to the password file and
+ thus will not be able to use the broker.
+
+
+
+ ACL format
+
+ Every listener has a Mosquitto acl_file
+ attached to it. This ACL is configured via two attributes of the
+ config:
+
+
+
+
+ the acl attribute of the listener
+ configures pattern ACL entries and topic ACL entries for
+ anonymous users. Each entry must be prefixed with
+ pattern or topic to
+ distinguish between these two cases.
+
+
+
+
+ the acl attribute of every user
+ configures in the listener configured the ACL for that given
+ user. Only topic ACLs are supported by Mosquitto in this
+ setting, so no prefix is required or allowed.
+
+
+
+
+ The default ACL for a listener is empty, disallowing all
+ accesses from all clients. To configure a completely open ACL,
+ set acl = [ "pattern readwrite #" ]
+ in the listener.
+
+
+
+
diff --git a/nixos/modules/services/networking/multipath.nix b/nixos/modules/services/networking/multipath.nix
new file mode 100644
index 000000000000..1cc2ad1fc849
--- /dev/null
+++ b/nixos/modules/services/networking/multipath.nix
@@ -0,0 +1,572 @@
+{ config, lib, pkgs, ... }: with lib;
+
+# See http://christophe.varoqui.free.fr/usage.html and
+# https://github.com/opensvc/multipath-tools/blob/master/multipath/multipath.conf.5
+
+let
+ cfg = config.services.multipath;
+
+ indentLines = n: str: concatStringsSep "\n" (
+ map (line: "${fixedWidthString n " " " "}${line}") (
+ filter ( x: x != "" ) ( splitString "\n" str )
+ )
+ );
+
+ addCheckDesc = desc: elemType: check: types.addCheck elemType check
+ // { description = "${elemType.description} (with check: ${desc})"; };
+ hexChars = stringToCharacters "0123456789abcdef";
+ isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s));
+ hexStr = addCheckDesc "hexadecimal string" types.str isHexString;
+
+in {
+
+ options.services.multipath = with types; {
+
+ enable = mkEnableOption "the device mapper multipath (DM-MP) daemon";
+
+ package = mkOption {
+ type = package;
+ description = "multipath-tools package to use";
+ default = pkgs.multipath-tools;
+ defaultText = "pkgs.multipath-tools";
+ };
+
+ devices = mkOption {
+ default = [ ];
+ example = literalExpression ''
+ [
+ {
+ vendor = "\"COMPELNT\"";
+ product = "\"Compellent Vol\"";
+ path_checker = "tur";
+ no_path_retry = "queue";
+ max_sectors_kb = 256;
+ }, ...
+ ]
+ '';
+ description = ''
+ This option allows you to define arrays for use in multipath
+ groups.
+ '';
+ type = listOf (submodule {
+ options = {
+
+ vendor = mkOption {
+ type = str;
+ example = "COMPELNT";
+ description = "Regular expression to match the vendor name";
+ };
+
+ product = mkOption {
+ type = str;
+ example = "Compellent Vol";
+ description = "Regular expression to match the product name";
+ };
+
+ revision = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Regular expression to match the product revision";
+ };
+
+ product_blacklist = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Products with the given vendor matching this string are blacklisted";
+ };
+
+ alias_prefix = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "The user_friendly_names prefix to use for this device type, instead of the default mpath";
+ };
+
+ vpd_vendor = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "The vendor specific vpd page information, using the vpd page abbreviation";
+ };
+
+ hardware_handler = mkOption {
+ type = nullOr (enum [ "emc" "rdac" "hp_sw" "alua" "ana" ]);
+ default = null;
+ description = "The hardware handler to use for this device type";
+ };
+
+ # Optional arguments
+ path_grouping_policy = mkOption {
+ type = nullOr (enum [ "failover" "multibus" "group_by_serial" "group_by_prio" "group_by_node_name" ]);
+ default = null; # real default: "failover"
+ description = "The default path grouping policy to apply to unspecified multipaths";
+ };
+
+ uid_attribute = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "The udev attribute providing a unique path identifier (WWID)";
+ };
+
+ getuid_callout = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ (Superseded by uid_attribute) The default program and args to callout
+ to obtain a unique path identifier. Should be specified with an absolute path.
+ '';
+ };
+
+ path_selector = mkOption {
+ type = nullOr (enum [
+ ''"round-robin 0"''
+ ''"queue-length 0"''
+ ''"service-time 0"''
+ ''"historical-service-time 0"''
+ ]);
+ default = null; # real default: "service-time 0"
+ description = "The default path selector algorithm to use; they are offered by the kernel multipath target";
+ };
+
+ path_checker = mkOption {
+ type = enum [ "readsector0" "tur" "emc_clariion" "hp_sw" "rdac" "directio" "cciss_tur" "none" ];
+ default = "tur";
+ description = "The default method used to determine the paths state";
+ };
+
+ prio = mkOption {
+ type = nullOr (enum [
+ "none" "const" "sysfs" "emc" "alua" "ontap" "rdac" "hp_sw" "hds"
+ "random" "weightedpath" "path_latency" "ana" "datacore" "iet"
+ ]);
+ default = null; # real default: "const"
+ description = "The name of the path priority routine";
+ };
+
+ prio_args = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Arguments to pass to to the prio function";
+ };
+
+ features = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Specify any device-mapper features to be used";
+ };
+
+ failback = mkOption {
+ type = nullOr str;
+ default = null; # real default: "manual"
+ description = "Tell multipathd how to manage path group failback. Quote integers as strings";
+ };
+
+ rr_weight = mkOption {
+ type = nullOr (enum [ "priorities" "uniform" ]);
+ default = null; # real default: "uniform"
+ description = ''
+ If set to priorities the multipath configurator will assign path weights
+ as "path prio * rr_min_io".
+ '';
+ };
+
+ no_path_retry = mkOption {
+ type = nullOr str;
+ default = null; # real default: "fail"
+ description = "Specify what to do when all paths are down. Quote integers as strings";
+ };
+
+ rr_min_io = mkOption {
+ type = nullOr int;
+ default = null; # real default: 1000
+ description = ''
+ Number of I/O requests to route to a path before switching to the next in the
+ same path group. This is only for Block I/O (BIO) based multipath and
+ only apply to round-robin path_selector.
+ '';
+ };
+
+ rr_min_io_rq = mkOption {
+ type = nullOr int;
+ default = null; # real default: 1
+ description = ''
+ Number of I/O requests to route to a path before switching to the next in the
+ same path group. This is only for Request based multipath and
+ only apply to round-robin path_selector.
+ '';
+ };
+
+ fast_io_fail_tmo = mkOption {
+ type = nullOr str;
+ default = null; # real default: 5
+ description = ''
+ Specify the number of seconds the SCSI layer will wait after a problem has been
+ detected on a FC remote port before failing I/O to devices on that remote port.
+ This should be smaller than dev_loss_tmo. Setting this to "off" will disable
+ the timeout. Quote integers as strings.
+ '';
+ };
+
+ dev_loss_tmo = mkOption {
+ type = nullOr str;
+ default = null; # real default: 600
+ description = ''
+ Specify the number of seconds the SCSI layer will wait after a problem has
+ been detected on a FC remote port before removing it from the system. This
+ can be set to "infinity" which sets it to the max value of 2147483647
+ seconds, or 68 years. It will be automatically adjusted to the overall
+ retry interval no_path_retry * polling_interval
+ if a number of retries is given with no_path_retry and the
+ overall retry interval is longer than the specified dev_loss_tmo value.
+ The Linux kernel will cap this value to 600 if fast_io_fail_tmo
+ is not set.
+ '';
+ };
+
+ flush_on_last_del = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "no"
+ description = ''
+ If set to "yes" multipathd will disable queueing when the last path to a
+ device has been deleted.
+ '';
+ };
+
+ user_friendly_names = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "no"
+ description = ''
+ If set to "yes", using the bindings file /etc/multipath/bindings
+ to assign a persistent and unique alias to the multipath, in the
+ form of mpath. If set to "no" use the WWID as the alias. In either
+ case this be will be overridden by any specific aliases in the
+ multipaths section.
+ '';
+ };
+
+ retain_attached_hw_handler = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "yes"
+ description = ''
+ (Obsolete for kernels >= 4.3) If set to "yes" and the SCSI layer has
+ already attached a hardware_handler to the device, multipath will not
+ force the device to use the hardware_handler specified by mutipath.conf.
+ If the SCSI layer has not attached a hardware handler, multipath will
+ continue to use its configured hardware handler.
+
+ Important Note: Linux kernel 4.3 or newer always behaves as if
+ "retain_attached_hw_handler yes" was set.
+ '';
+ };
+
+ detect_prio = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "yes"
+ description = ''
+ If set to "yes", multipath will try to detect if the device supports
+ SCSI-3 ALUA. If so, the device will automatically use the sysfs
+ prioritizer if the required sysf attributes access_state and
+ preferred_path are supported, or the alua prioritizer if not. If set
+ to "no", the prioritizer will be selected as usual.
+ '';
+ };
+
+ detect_checker = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "yes"
+ description = ''
+ If set to "yes", multipath will try to detect if the device supports
+ SCSI-3 ALUA. If so, the device will automatically use the tur checker.
+ If set to "no", the checker will be selected as usual.
+ '';
+ };
+
+ deferred_remove = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "no"
+ description = ''
+ If set to "yes", multipathd will do a deferred remove instead of a
+ regular remove when the last path device has been deleted. This means
+ that if the multipath device is still in use, it will be freed when
+ the last user closes it. If path is added to the multipath device
+ before the last user closes it, the deferred remove will be canceled.
+ '';
+ };
+
+ san_path_err_threshold = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ If set to a value greater than 0, multipathd will watch paths and check
+ how many times a path has been failed due to errors.If the number of
+ failures on a particular path is greater then the san_path_err_threshold,
+ then the path will not reinstate till san_path_err_recovery_time. These
+ path failures should occur within a san_path_err_forget_rate checks, if
+ not we will consider the path is good enough to reinstantate.
+ '';
+ };
+
+ san_path_err_forget_rate = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ If set to a value greater than 0, multipathd will check whether the path
+ failures has exceeded the san_path_err_threshold within this many checks
+ i.e san_path_err_forget_rate. If so we will not reinstante the path till
+ san_path_err_recovery_time.
+ '';
+ };
+
+ san_path_err_recovery_time = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ If set to a value greater than 0, multipathd will make sure that when
+ path failures has exceeded the san_path_err_threshold within
+ san_path_err_forget_rate then the path will be placed in failed state
+ for san_path_err_recovery_time duration. Once san_path_err_recovery_time
+ has timeout we will reinstante the failed path. san_path_err_recovery_time
+ value should be in secs.
+ '';
+ };
+
+ marginal_path_err_sample_time = mkOption {
+ type = nullOr int;
+ default = null;
+ description = "One of the four parameters of supporting path check based on accounting IO error such as intermittent error";
+ };
+
+ marginal_path_err_rate_threshold = mkOption {
+ type = nullOr int;
+ default = null;
+ description = "The error rate threshold as a permillage (1/1000)";
+ };
+
+ marginal_path_err_recheck_gap_time = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "One of the four parameters of supporting path check based on accounting IO error such as intermittent error";
+ };
+
+ marginal_path_double_failed_time = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "One of the four parameters of supporting path check based on accounting IO error such as intermittent error";
+ };
+
+ delay_watch_checks = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "This option is deprecated, and mapped to san_path_err_forget_rate";
+ };
+
+ delay_wait_checks = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "This option is deprecated, and mapped to san_path_err_recovery_time";
+ };
+
+ skip_kpartx = mkOption {
+ type = nullOr (enum [ "yes" "no" ]);
+ default = null; # real default: "no"
+ description = "If set to yes, kpartx will not automatically create partitions on the device";
+ };
+
+ max_sectors_kb = mkOption {
+ type = nullOr int;
+ default = null;
+ description = "Sets the max_sectors_kb device parameter on all path devices and the multipath device to the specified value";
+ };
+
+ ghost_delay = mkOption {
+ type = nullOr int;
+ default = null;
+ description = "Sets the number of seconds that multipath will wait after creating a device with only ghost paths before marking it ready for use in systemd";
+ };
+
+ all_tg_pt = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Set the 'all targets ports' flag when registering keys with mpathpersist";
+ };
+
+ };
+ });
+ };
+
+ defaults = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ This section defines default values for attributes which are used
+ whenever no values are given in the appropriate device or multipath
+ sections.
+ '';
+ };
+
+ blacklist = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ This section defines which devices should be excluded from the
+ multipath topology discovery.
+ '';
+ };
+
+ blacklist_exceptions = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ This section defines which devices should be included in the
+ multipath topology discovery, despite being listed in the
+ blacklist section.
+ '';
+ };
+
+ overrides = mkOption {
+ type = nullOr str;
+ default = null;
+ description = ''
+ This section defines values for attributes that should override the
+ device-specific settings for all devices.
+ '';
+ };
+
+ extraConfig = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Lines to append to default multipath.conf";
+ };
+
+ extraConfigFile = mkOption {
+ type = nullOr str;
+ default = null;
+ description = "Append an additional file's contents to /etc/multipath.conf";
+ };
+
+ pathGroups = mkOption {
+ example = literalExpression ''
+ [
+ {
+ wwid = "360080e500043b35c0123456789abcdef";
+ alias = 10001234;
+ array = "bigarray.example.com";
+ fsType = "zfs"; # optional
+ options = "ro"; # optional
+ }, ...
+ ]
+ '';
+ description = ''
+ This option allows you to define multipath groups as described
+ in http://christophe.varoqui.free.fr/usage.html.
+ '';
+ type = listOf (submodule {
+ options = {
+
+ alias = mkOption {
+ type = int;
+ example = 1001234;
+ description = "The name of the multipath device";
+ };
+
+ wwid = mkOption {
+ type = hexStr;
+ example = "360080e500043b35c0123456789abcdef";
+ description = "The identifier for the multipath device";
+ };
+
+ array = mkOption {
+ type = str;
+ default = null;
+ example = "bigarray.example.com";
+ description = "The DNS name of the storage array";
+ };
+
+ fsType = mkOption {
+ type = nullOr str;
+ default = null;
+ example = "zfs";
+ description = "Type of the filesystem";
+ };
+
+ options = mkOption {
+ type = nullOr str;
+ default = null;
+ example = "ro";
+ description = "Options used to mount the file system";
+ };
+
+ };
+ });
+ };
+
+ };
+
+ config = mkIf cfg.enable {
+ environment.etc."multipath.conf".text =
+ let
+ inherit (cfg) defaults blacklist blacklist_exceptions overrides;
+
+ mkDeviceBlock = cfg: let
+ nonNullCfg = lib.filterAttrs (k: v: v != null) cfg;
+ attrs = lib.mapAttrsToList (name: value: " ${name} ${toString value}") nonNullCfg;
+ in ''
+ device {
+ ${lib.concatStringsSep "\n" attrs}
+ }
+ '';
+ devices = lib.concatMapStringsSep "\n" mkDeviceBlock cfg.devices;
+
+ mkMultipathBlock = m: ''
+ multipath {
+ wwid ${m.wwid}
+ alias ${toString m.alias}
+ }
+ '';
+ multipaths = lib.concatMapStringsSep "\n" mkMultipathBlock cfg.pathGroups;
+
+ in ''
+ devices {
+ ${indentLines 2 devices}
+ }
+
+ ${optionalString (!isNull defaults) ''
+ defaults {
+ ${indentLines 2 defaults}
+ multipath_dir ${cfg.package}/lib/multipath
+ }
+ ''}
+ ${optionalString (!isNull blacklist) ''
+ blacklist {
+ ${indentLines 2 blacklist}
+ }
+ ''}
+ ${optionalString (!isNull blacklist_exceptions) ''
+ blacklist_exceptions {
+ ${indentLines 2 blacklist_exceptions}
+ }
+ ''}
+ ${optionalString (!isNull overrides) ''
+ overrides {
+ ${indentLines 2 overrides}
+ }
+ ''}
+ multipaths {
+ ${indentLines 2 multipaths}
+ }
+ '';
+
+ systemd.packages = [ cfg.package ];
+
+ environment.systemPackages = [ cfg.package ];
+ boot.kernelModules = [ "dm-multipath" "dm-service-time" ];
+
+ # We do not have systemd in stage-1 boot so must invoke `multipathd`
+ # with the `-1` argument which disables systemd calls. Invoke `multipath`
+ # to display the multipath mappings in the output of `journalctl -b`.
+ boot.initrd.kernelModules = [ "dm-multipath" "dm-service-time" ];
+ boot.initrd.postDeviceCommands = ''
+ modprobe -a dm-multipath dm-service-time
+ multipathd -s
+ (set -x && sleep 1 && multipath -ll)
+ '';
+ };
+}
diff --git a/nixos/modules/services/networking/murmur.nix b/nixos/modules/services/networking/murmur.nix
index f8bb878ec65d..bbbe1e181bba 100644
--- a/nixos/modules/services/networking/murmur.nix
+++ b/nixos/modules/services/networking/murmur.nix
@@ -112,7 +112,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.murmur;
- defaultText = "pkgs.murmur";
+ defaultText = literalExpression "pkgs.murmur";
description = "Overridable attribute of the murmur package to use.";
};
diff --git a/nixos/modules/services/networking/mxisd.nix b/nixos/modules/services/networking/mxisd.nix
index f29d190c6262..803f0689d1fd 100644
--- a/nixos/modules/services/networking/mxisd.nix
+++ b/nixos/modules/services/networking/mxisd.nix
@@ -42,7 +42,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.ma1sd;
- defaultText = "pkgs.ma1sd";
+ defaultText = literalExpression "pkgs.ma1sd";
description = "The mxisd/ma1sd package to use";
};
diff --git a/nixos/modules/services/networking/nat.nix b/nixos/modules/services/networking/nat.nix
index 45eb500fe8ce..2e58cd699b25 100644
--- a/nixos/modules/services/networking/nat.nix
+++ b/nixos/modules/services/networking/nat.nix
@@ -247,7 +247,7 @@ in
loopbackIPs = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''[ "55.1.2.3" ]'';
+ example = literalExpression ''[ "55.1.2.3" ]'';
description = "Public IPs for NAT reflection; for connections to `loopbackip:sourcePort' from the host itself and from other hosts behind NAT";
};
};
diff --git a/nixos/modules/services/networking/nats.nix b/nixos/modules/services/networking/nats.nix
index eb0c65bc6561..3e86a4f07bc7 100644
--- a/nixos/modules/services/networking/nats.nix
+++ b/nixos/modules/services/networking/nats.nix
@@ -43,7 +43,6 @@ in {
port = mkOption {
default = 4222;
- example = 4222;
type = types.port;
description = ''
Port on which to listen.
@@ -67,7 +66,7 @@ in {
settings = mkOption {
default = { };
type = format.type;
- example = literalExample ''
+ example = literalExpression ''
{
jetstream = {
max_mem = "1G";
diff --git a/nixos/modules/services/networking/ncdns.nix b/nixos/modules/services/networking/ncdns.nix
index c5ea5d950573..af17fc0814b2 100644
--- a/nixos/modules/services/networking/ncdns.nix
+++ b/nixos/modules/services/networking/ncdns.nix
@@ -164,7 +164,7 @@ in
settings = mkOption {
type = configType;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{ # enable webserver
ncdns.httplistenaddr = ":8202";
diff --git a/nixos/modules/services/networking/ndppd.nix b/nixos/modules/services/networking/ndppd.nix
index 77e979a8a424..6046ac860cfa 100644
--- a/nixos/modules/services/networking/ndppd.nix
+++ b/nixos/modules/services/networking/ndppd.nix
@@ -142,7 +142,7 @@ in {
messages, and respond to them according to a set of rules.
'';
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
eth0.rules."1111::/64" = {};
}
diff --git a/nixos/modules/services/networking/nebula.nix b/nixos/modules/services/networking/nebula.nix
index e7ebfe1b4db7..de4439415cf6 100644
--- a/nixos/modules/services/networking/nebula.nix
+++ b/nixos/modules/services/networking/nebula.nix
@@ -30,7 +30,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.nebula;
- defaultText = "pkgs.nebula";
+ defaultText = literalExpression "pkgs.nebula";
description = "Nebula derivation to use.";
};
@@ -59,9 +59,7 @@ in
The static host map defines a set of hosts with fixed IP addresses on the internet (or any network).
A host can have multiple fixed IP addresses defined here, and nebula will try each when establishing a tunnel.
'';
- example = literalExample ''
- { "192.168.100.1" = [ "100.64.22.11:4242" ]; }
- '';
+ example = { "192.168.100.1" = [ "100.64.22.11:4242" ]; };
};
isLighthouse = mkOption {
@@ -77,7 +75,7 @@ in
List of IPs of lighthouse hosts this node should report to and query from. This should be empty on lighthouse
nodes. The IPs should be the lighthouse's Nebula IPs, not their external IPs.
'';
- example = ''[ "192.168.100.1" ]'';
+ example = [ "192.168.100.1" ];
};
listen.host = mkOption {
@@ -110,14 +108,14 @@ in
type = types.listOf types.attrs;
default = [];
description = "Firewall rules for outbound traffic.";
- example = ''[ { port = "any"; proto = "any"; host = "any"; } ]'';
+ example = [ { port = "any"; proto = "any"; host = "any"; } ];
};
firewall.inbound = mkOption {
type = types.listOf types.attrs;
default = [];
description = "Firewall rules for inbound traffic.";
- example = ''[ { port = "any"; proto = "any"; host = "any"; } ]'';
+ example = [ { port = "any"; proto = "any"; host = "any"; } ];
};
settings = mkOption {
@@ -128,7 +126,7 @@ in
for details on supported values.
'';
- example = literalExample ''
+ example = literalExpression ''
{
lighthouse.dns = {
host = "0.0.0.0";
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index ba13f575c39e..74daf0ae9faf 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -353,7 +353,7 @@ in {
};
});
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ {
source = pkgs.writeText "upHook" '''
@@ -502,13 +502,6 @@ in {
systemd.services.ModemManager.aliases = [ "dbus-org.freedesktop.ModemManager1.service" ];
- # override unit as recommended by upstream - see https://github.com/NixOS/nixpkgs/issues/88089
- # TODO: keep an eye on modem-manager releases as this will eventually be added to the upstream unit
- systemd.services.ModemManager.serviceConfig.ExecStart = [
- ""
- "${pkgs.modemmanager}/sbin/ModemManager --filter-policy=STRICT"
- ];
-
systemd.services.NetworkManager-dispatcher = {
wantedBy = [ "network.target" ];
restartTriggers = [ configFile overrideNameserversScript ];
diff --git a/nixos/modules/services/networking/nftables.nix b/nixos/modules/services/networking/nftables.nix
index 72f37c32253e..eb74d373b0af 100644
--- a/nixos/modules/services/networking/nftables.nix
+++ b/nixos/modules/services/networking/nftables.nix
@@ -32,6 +32,7 @@ in
};
networking.nftables.ruleset = mkOption {
type = types.lines;
+ default = "";
example = ''
# Check out https://wiki.nftables.org/ for better documentation.
# Table for both IPv4 and IPv6.
@@ -86,6 +87,7 @@ in
name = "nftables-rules";
text = cfg.ruleset;
};
+ defaultText = literalDocBook ''a file with the contents of '';
description =
''
The ruleset file to be used with nftables. Should be in a format that
diff --git a/nixos/modules/services/networking/ngircd.nix b/nixos/modules/services/networking/ngircd.nix
index 1b631de3b025..c0b9c98fb4bf 100644
--- a/nixos/modules/services/networking/ngircd.nix
+++ b/nixos/modules/services/networking/ngircd.nix
@@ -34,7 +34,7 @@ in {
type = types.package;
default = pkgs.ngircd;
- defaultText = "pkgs.ngircd";
+ defaultText = literalExpression "pkgs.ngircd";
};
};
};
diff --git a/nixos/modules/services/networking/nixops-dns.nix b/nixos/modules/services/networking/nixops-dns.nix
index 2bb1263b7fa2..5e33d872ea45 100644
--- a/nixos/modules/services/networking/nixops-dns.nix
+++ b/nixos/modules/services/networking/nixops-dns.nix
@@ -34,7 +34,6 @@ in
For example "ops" will resolve "vm.ops".
'';
- example = "ops";
default = "ops";
};
diff --git a/nixos/modules/services/networking/nntp-proxy.nix b/nixos/modules/services/networking/nntp-proxy.nix
index 0083990cff5a..a5973cd59334 100644
--- a/nixos/modules/services/networking/nntp-proxy.nix
+++ b/nixos/modules/services/networking/nntp-proxy.nix
@@ -159,7 +159,6 @@ in
options = {
username = mkOption {
type = types.str;
- default = null;
description = ''
Username
'';
@@ -167,7 +166,6 @@ in
passwordHash = mkOption {
type = types.str;
- default = null;
example = "$6$GtzE7FrpE$wwuVgFYU.TZH4Rz.Snjxk9XGua89IeVwPQ/fEUD8eujr40q5Y021yhn0aNcsQ2Ifw.BLclyzvzgegopgKcneL0";
description = ''
SHA-512 password hash (can be generated by
@@ -189,15 +187,17 @@ in
'';
default = {};
- example = literalExample ''
- "user1" = {
- passwordHash = "$6$1l0t5Kn2Dk$appzivc./9l/kjq57eg5UCsBKlcfyCr0zNWYNerKoPsI1d7eAwiT0SVsOVx/CTgaBNT/u4fi2vN.iGlPfv1ek0";
- maxConnections = 5;
- };
- "anotheruser" = {
- passwordHash = "$6$6lwEsWB.TmsS$W7m1riUx4QrA8pKJz8hvff0dnF1NwtZXgdjmGqA1Dx2MDPj07tI9GNcb0SWlMglE.2/hBgynDdAd/XqqtRqVQ0";
- maxConnections = 7;
- };
+ example = literalExpression ''
+ {
+ "user1" = {
+ passwordHash = "$6$1l0t5Kn2Dk$appzivc./9l/kjq57eg5UCsBKlcfyCr0zNWYNerKoPsI1d7eAwiT0SVsOVx/CTgaBNT/u4fi2vN.iGlPfv1ek0";
+ maxConnections = 5;
+ };
+ "anotheruser" = {
+ passwordHash = "$6$6lwEsWB.TmsS$W7m1riUx4QrA8pKJz8hvff0dnF1NwtZXgdjmGqA1Dx2MDPj07tI9GNcb0SWlMglE.2/hBgynDdAd/XqqtRqVQ0";
+ maxConnections = 7;
+ };
+ }
'';
};
};
diff --git a/nixos/modules/services/networking/nomad.nix b/nixos/modules/services/networking/nomad.nix
index 48689f1195c5..3bd15bd5c808 100644
--- a/nixos/modules/services/networking/nomad.nix
+++ b/nixos/modules/services/networking/nomad.nix
@@ -13,7 +13,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.nomad;
- defaultText = "pkgs.nomad";
+ defaultText = literalExpression "pkgs.nomad";
description = ''
The package used for the Nomad agent and CLI.
'';
@@ -25,7 +25,7 @@ in
description = ''
Extra packages to add to PATH for the Nomad agent process.
'';
- example = literalExample ''
+ example = literalExpression ''
with pkgs; [ cni-plugins ]
'';
};
@@ -55,7 +55,7 @@ in
description = ''
Additional settings paths used to configure nomad. These can be files or directories.
'';
- example = literalExample ''
+ example = literalExpression ''
[ "/etc/nomad-mutable.json" "/run/keys/nomad-with-secrets.json" "/etc/nomad/config.d" ]
'';
};
@@ -81,7 +81,7 @@ in
the DynamicUser feature of systemd which directly
manages and operates on StateDirectory.
'';
- example = literalExample ''
+ example = literalExpression ''
{
# A minimal config example:
server = {
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix
index 2ac0a8c7922e..893995165b9e 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -260,7 +260,6 @@ let
data = mkOption {
type = types.lines;
default = "";
- example = "";
description = ''
The actual zone data. This is the content of your zone file.
Use imports or pkgs.lib.readFile if you don't want this data in your config file.
@@ -397,7 +396,6 @@ let
requestXFR = mkOption {
type = types.listOf types.str;
default = [];
- example = [];
description = ''
Format: [AXFR|UDP] <ip-address> <key-name | NOKEY>
'';
@@ -726,7 +724,7 @@ in
};
});
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ "tsig.example.org" = {
algorithm = "hmac-md5";
keyFile = "/path/to/my/key";
@@ -861,7 +859,7 @@ in
zones = mkOption {
type = types.attrsOf zoneOptions;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ "serverGroup1" = {
provideXFR = [ "10.1.2.3 NOKEY" ];
children = {
diff --git a/nixos/modules/services/networking/ntp/chrony.nix b/nixos/modules/services/networking/ntp/chrony.nix
index ed61c178c685..d414936a2c2b 100644
--- a/nixos/modules/services/networking/ntp/chrony.nix
+++ b/nixos/modules/services/networking/ntp/chrony.nix
@@ -44,7 +44,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.chrony;
- defaultText = "pkgs.chrony";
+ defaultText = literalExpression "pkgs.chrony";
description = ''
Which chrony package to use.
'';
diff --git a/nixos/modules/services/networking/ntp/ntpd.nix b/nixos/modules/services/networking/ntp/ntpd.nix
index 1dffbd78bbe4..ce4802ce0245 100644
--- a/nixos/modules/services/networking/ntp/ntpd.nix
+++ b/nixos/modules/services/networking/ntp/ntpd.nix
@@ -97,7 +97,7 @@ in
extraFlags = mkOption {
type = types.listOf types.str;
description = "Extra flags passed to the ntpd command.";
- example = literalExample ''[ "--interface=eth0" ]'';
+ example = literalExpression ''[ "--interface=eth0" ]'';
default = [];
};
diff --git a/nixos/modules/services/networking/ofono.nix b/nixos/modules/services/networking/ofono.nix
index 40ef9433de0f..460b06443c41 100644
--- a/nixos/modules/services/networking/ofono.nix
+++ b/nixos/modules/services/networking/ofono.nix
@@ -24,7 +24,7 @@ in
plugins = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.modem-manager-gui ]";
+ example = literalExpression "[ pkgs.modem-manager-gui ]";
description = ''
The list of plugins to install.
'';
diff --git a/nixos/modules/services/networking/onedrive.nix b/nixos/modules/services/networking/onedrive.nix
index c52f920bae25..0256a6a41115 100644
--- a/nixos/modules/services/networking/onedrive.nix
+++ b/nixos/modules/services/networking/onedrive.nix
@@ -35,8 +35,7 @@ in {
package = lib.mkOption {
type = lib.types.package;
default = pkgs.onedrive;
- defaultText = "pkgs.onedrive";
- example = lib.literalExample "pkgs.onedrive";
+ defaultText = lib.literalExpression "pkgs.onedrive";
description = ''
OneDrive package to use.
'';
diff --git a/nixos/modules/services/networking/openvpn.nix b/nixos/modules/services/networking/openvpn.nix
index b4c2c944b6e6..cf3f79fc578f 100644
--- a/nixos/modules/services/networking/openvpn.nix
+++ b/nixos/modules/services/networking/openvpn.nix
@@ -84,7 +84,7 @@ in
services.openvpn.servers = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
server = {
config = '''
diff --git a/nixos/modules/services/networking/ostinato.nix b/nixos/modules/services/networking/ostinato.nix
index 5e8cce5b89aa..4da11984b9fc 100644
--- a/nixos/modules/services/networking/ostinato.nix
+++ b/nixos/modules/services/networking/ostinato.nix
@@ -65,7 +65,7 @@ in
include = mkOption {
type = types.listOf types.str;
default = [];
- example = ''[ "eth*" "lo*" ]'';
+ example = [ "eth*" "lo*" ];
description = ''
For a port to pass the filter and appear on the port list managed
by drone, it be allowed by this include list.
@@ -74,7 +74,7 @@ in
exclude = mkOption {
type = types.listOf types.str;
default = [];
- example = ''[ "usbmon*" "eth0" ]'';
+ example = [ "usbmon*" "eth0" ];
description = ''
A list of ports does not appear on the port list managed by drone.
'';
diff --git a/nixos/modules/services/networking/pdns-recursor.nix b/nixos/modules/services/networking/pdns-recursor.nix
index a326eccfd65d..0579d314a9ba 100644
--- a/nixos/modules/services/networking/pdns-recursor.nix
+++ b/nixos/modules/services/networking/pdns-recursor.nix
@@ -127,7 +127,7 @@ in {
settings = mkOption {
type = configType;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
loglevel = 8;
log-common-errors = true;
diff --git a/nixos/modules/services/networking/pleroma.nix b/nixos/modules/services/networking/pleroma.nix
index 93ab29b71e5c..2f32faf387ca 100644
--- a/nixos/modules/services/networking/pleroma.nix
+++ b/nixos/modules/services/networking/pleroma.nix
@@ -9,6 +9,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.pleroma;
+ defaultText = literalExpression "pkgs.pleroma";
description = "Pleroma package to use.";
};
diff --git a/nixos/modules/services/networking/pppd.nix b/nixos/modules/services/networking/pppd.nix
index 37f44f07ac46..d1ed25b0238f 100644
--- a/nixos/modules/services/networking/pppd.nix
+++ b/nixos/modules/services/networking/pppd.nix
@@ -16,7 +16,7 @@ in
package = mkOption {
default = pkgs.ppp;
- defaultText = "pkgs.ppp";
+ defaultText = literalExpression "pkgs.ppp";
type = types.package;
description = "pppd package to use.";
};
diff --git a/nixos/modules/services/networking/privoxy.nix b/nixos/modules/services/networking/privoxy.nix
index df818baa465d..7bc964d5f34a 100644
--- a/nixos/modules/services/networking/privoxy.nix
+++ b/nixos/modules/services/networking/privoxy.nix
@@ -164,7 +164,7 @@ in
};
};
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ # Listen on IPv6 only
listen-address = "[::]:8118";
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index e7a7aa700be6..42596ccfefd9 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -500,8 +500,8 @@ in
type = types.package;
description = "Prosody package to use";
default = pkgs.prosody;
- defaultText = "pkgs.prosody";
- example = literalExample ''
+ defaultText = literalExpression "pkgs.prosody";
+ example = literalExpression ''
pkgs.prosody.override {
withExtraLibs = [ pkgs.luaPackages.lpty ];
withCommunityModules = [ "auth_external" ];
diff --git a/nixos/modules/services/networking/quassel.nix b/nixos/modules/services/networking/quassel.nix
index bfbd3b46ab4d..22940ef7a13a 100644
--- a/nixos/modules/services/networking/quassel.nix
+++ b/nixos/modules/services/networking/quassel.nix
@@ -37,11 +37,10 @@ in
package = mkOption {
type = types.package;
default = pkgs.quasselDaemon;
- defaultText = "pkgs.quasselDaemon";
+ defaultText = literalExpression "pkgs.quasselDaemon";
description = ''
The package of the quassel daemon.
'';
- example = literalExample "pkgs.quasselDaemon";
};
interfaces = mkOption {
diff --git a/nixos/modules/services/networking/quorum.nix b/nixos/modules/services/networking/quorum.nix
index 2f612c9db686..50148dc314da 100644
--- a/nixos/modules/services/networking/quorum.nix
+++ b/nixos/modules/services/networking/quorum.nix
@@ -1,7 +1,7 @@
{ config, pkgs, lib, ... }:
let
- inherit (lib) mkEnableOption mkIf mkOption literalExample types optionalString;
+ inherit (lib) mkEnableOption mkIf mkOption literalExpression types optionalString;
cfg = config.services.quorum;
dataDir = "/var/lib/quorum";
@@ -130,7 +130,7 @@ in {
genesis = mkOption {
type = types.nullOr types.attrs;
default = null;
- example = literalExample '' {
+ example = literalExpression '' {
alloc = {
a47385db68718bdcbddc2d2bb7c54018066ec111 = {
balance = "1000000000000000000000000000";
diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix
index 368259b5b0bf..c121008d5294 100644
--- a/nixos/modules/services/networking/radicale.nix
+++ b/nixos/modules/services/networking/radicale.nix
@@ -33,7 +33,7 @@ in {
# warnings about incompatible configuration and storage formats.
type = with types; nullOr package // { inherit (package) description; };
default = null;
- defaultText = "pkgs.radicale";
+ defaultText = literalExpression "pkgs.radicale";
};
config = mkOption {
@@ -55,7 +55,7 @@ in {
.
This option is mutually exclusive with .
'';
- example = literalExample ''
+ example = literalExpression ''
server = {
hosts = [ "0.0.0.0:5232" "[::]:5232" ];
};
@@ -80,7 +80,7 @@ in {
to approriate values.
'';
default = { };
- example = literalExample ''
+ example = literalExpression ''
root = {
user = ".+";
collection = "";
diff --git a/nixos/modules/services/networking/seafile.nix b/nixos/modules/services/networking/seafile.nix
new file mode 100644
index 000000000000..856797b6b020
--- /dev/null
+++ b/nixos/modules/services/networking/seafile.nix
@@ -0,0 +1,290 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+ python = pkgs.python3Packages.python;
+ cfg = config.services.seafile;
+ settingsFormat = pkgs.formats.ini { };
+
+ ccnetConf = settingsFormat.generate "ccnet.conf" cfg.ccnetSettings;
+
+ seafileConf = settingsFormat.generate "seafile.conf" cfg.seafileSettings;
+
+ seahubSettings = pkgs.writeText "seahub_settings.py" ''
+ FILE_SERVER_ROOT = '${cfg.ccnetSettings.General.SERVICE_URL}/seafhttp'
+ DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': '${seahubDir}/seahub.db',
+ }
+ }
+ MEDIA_ROOT = '${seahubDir}/media/'
+ THUMBNAIL_ROOT = '${seahubDir}/thumbnail/'
+
+ with open('${seafRoot}/.seahubSecret') as f:
+ SECRET_KEY = f.readline().rstrip()
+
+ ${cfg.seahubExtraConf}
+ '';
+
+ seafRoot = "/var/lib/seafile"; # hardcode it due to dynamicuser
+ ccnetDir = "${seafRoot}/ccnet";
+ dataDir = "${seafRoot}/data";
+ seahubDir = "${seafRoot}/seahub";
+
+in {
+
+ ###### Interface
+
+ options.services.seafile = {
+ enable = mkEnableOption "Seafile server";
+
+ ccnetSettings = mkOption {
+ type = types.submodule {
+ freeformType = settingsFormat.type;
+
+ options = {
+ General = {
+ SERVICE_URL = mkOption {
+ type = types.str;
+ example = "https://www.example.com";
+ description = ''
+ Seahub public URL.
+ '';
+ };
+ };
+ };
+ };
+ default = { };
+ description = ''
+ Configuration for ccnet, see
+
+ for supported values.
+ '';
+ };
+
+ seafileSettings = mkOption {
+ type = types.submodule {
+ freeformType = settingsFormat.type;
+
+ options = {
+ fileserver = {
+ port = mkOption {
+ type = types.port;
+ default = 8082;
+ description = ''
+ The tcp port used by seafile fileserver.
+ '';
+ };
+ host = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ example = "0.0.0.0";
+ description = ''
+ The binding address used by seafile fileserver.
+ '';
+ };
+ };
+ };
+ };
+ default = { };
+ description = ''
+ Configuration for seafile-server, see
+
+ for supported values.
+ '';
+ };
+
+ workers = mkOption {
+ type = types.int;
+ default = 4;
+ example = 10;
+ description = ''
+ The number of gunicorn worker processes for handling requests.
+ '';
+ };
+
+ adminEmail = mkOption {
+ example = "john@example.com";
+ type = types.str;
+ description = ''
+ Seafile Seahub Admin Account Email.
+ '';
+ };
+
+ initialAdminPassword = mkOption {
+ example = "someStrongPass";
+ type = types.str;
+ description = ''
+ Seafile Seahub Admin Account initial password.
+ Should be change via Seahub web front-end.
+ '';
+ };
+
+ seafilePackage = mkOption {
+ type = types.package;
+ description = "Which package to use for the seafile server.";
+ default = pkgs.seafile-server;
+ };
+
+ seahubExtraConf = mkOption {
+ default = "";
+ type = types.lines;
+ description = ''
+ Extra config to append to `seahub_settings.py` file.
+ Refer to
+ for all available options.
+ '';
+ };
+ };
+
+ ###### Implementation
+
+ config = mkIf cfg.enable {
+
+ environment.etc."seafile/ccnet.conf".source = ccnetConf;
+ environment.etc."seafile/seafile.conf".source = seafileConf;
+ environment.etc."seafile/seahub_settings.py".source = seahubSettings;
+
+ systemd.targets.seafile = {
+ wantedBy = [ "multi-user.target" ];
+ description = "Seafile components";
+ };
+
+ systemd.services = let
+ securityOptions = {
+ ProtectHome = true;
+ PrivateUsers = true;
+ PrivateDevices = true;
+ ProtectClock = true;
+ ProtectHostname = true;
+ ProtectProc = "invisible";
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectKernelLogs = true;
+ ProtectControlGroups = true;
+ RestrictNamespaces = true;
+ LockPersonality = true;
+ RestrictRealtime = true;
+ RestrictSUIDSGID = true;
+ MemoryDenyWriteExecute = true;
+ SystemCallArchitectures = "native";
+ RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" ];
+ };
+ in {
+ seaf-server = {
+ description = "Seafile server";
+ partOf = [ "seafile.target" ];
+ after = [ "network.target" ];
+ wantedBy = [ "seafile.target" ];
+ restartTriggers = [ ccnetConf seafileConf ];
+ serviceConfig = securityOptions // {
+ User = "seafile";
+ Group = "seafile";
+ DynamicUser = true;
+ StateDirectory = "seafile";
+ RuntimeDirectory = "seafile";
+ LogsDirectory = "seafile";
+ ConfigurationDirectory = "seafile";
+ ExecStart = ''
+ ${cfg.seafilePackage}/bin/seaf-server \
+ --foreground \
+ -F /etc/seafile \
+ -c ${ccnetDir} \
+ -d ${dataDir} \
+ -l /var/log/seafile/server.log \
+ -P /run/seafile/server.pid \
+ -p /run/seafile
+ '';
+ };
+ preStart = ''
+ if [ ! -f "${seafRoot}/server-setup" ]; then
+ mkdir -p ${dataDir}/library-template
+ mkdir -p ${ccnetDir}/{GroupMgr,misc,OrgMgr,PeerMgr}
+ ${pkgs.sqlite}/bin/sqlite3 ${ccnetDir}/GroupMgr/groupmgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/groupmgr.sql"
+ ${pkgs.sqlite}/bin/sqlite3 ${ccnetDir}/misc/config.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/config.sql"
+ ${pkgs.sqlite}/bin/sqlite3 ${ccnetDir}/OrgMgr/orgmgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/org.sql"
+ ${pkgs.sqlite}/bin/sqlite3 ${ccnetDir}/PeerMgr/usermgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/user.sql"
+ ${pkgs.sqlite}/bin/sqlite3 ${dataDir}/seafile.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/seafile.sql"
+ echo "${cfg.seafilePackage.version}-sqlite" > "${seafRoot}"/server-setup
+ fi
+ # checking for upgrades and handling them
+ # WARNING: needs to be extended to actually handle major version migrations
+ installedMajor=$(cat "${seafRoot}/server-setup" | cut -d"-" -f1 | cut -d"." -f1)
+ installedMinor=$(cat "${seafRoot}/server-setup" | cut -d"-" -f1 | cut -d"." -f2)
+ pkgMajor=$(echo "${cfg.seafilePackage.version}" | cut -d"." -f1)
+ pkgMinor=$(echo "${cfg.seafilePackage.version}" | cut -d"." -f2)
+ if [ $installedMajor != $pkgMajor ] || [ $installedMinor != $pkgMinor ]; then
+ echo "Unsupported upgrade" >&2
+ exit 1
+ fi
+ '';
+ };
+
+ seahub = let
+ penv = (pkgs.python3.withPackages (ps: with ps; [ gunicorn seahub ]));
+ in {
+ description = "Seafile Server Web Frontend";
+ wantedBy = [ "seafile.target" ];
+ partOf = [ "seafile.target" ];
+ after = [ "network.target" "seaf-server.service" ];
+ requires = [ "seaf-server.service" ];
+ restartTriggers = [ seahubSettings ];
+ environment = {
+ PYTHONPATH =
+ "${pkgs.python3Packages.seahub}/thirdpart:${pkgs.python3Packages.seahub}:${penv}/${python.sitePackages}";
+ DJANGO_SETTINGS_MODULE = "seahub.settings";
+ CCNET_CONF_DIR = ccnetDir;
+ SEAFILE_CONF_DIR = dataDir;
+ SEAFILE_CENTRAL_CONF_DIR = "/etc/seafile";
+ SEAFILE_RPC_PIPE_PATH = "/run/seafile";
+ SEAHUB_LOG_DIR = "/var/log/seafile";
+ };
+ serviceConfig = securityOptions // {
+ User = "seafile";
+ Group = "seafile";
+ DynamicUser = true;
+ RuntimeDirectory = "seahub";
+ StateDirectory = "seafile";
+ LogsDirectory = "seafile";
+ ConfigurationDirectory = "seafile";
+ ExecStart = ''
+ ${penv}/bin/gunicorn seahub.wsgi:application \
+ --name seahub \
+ --workers ${toString cfg.workers} \
+ --log-level=info \
+ --preload \
+ --timeout=1200 \
+ --limit-request-line=8190 \
+ --bind unix:/run/seahub/gunicorn.sock
+ '';
+ };
+ preStart = ''
+ mkdir -p ${seahubDir}/media
+ # Link all media except avatars
+ for m in `find ${pkgs.python3Packages.seahub}/media/ -maxdepth 1 -not -name "avatars"`; do
+ ln -sf $m ${seahubDir}/media/
+ done
+ if [ ! -e "${seafRoot}/.seahubSecret" ]; then
+ ${penv}/bin/python ${pkgs.python3Packages.seahub}/tools/secret_key_generator.py > ${seafRoot}/.seahubSecret
+ chmod 400 ${seafRoot}/.seahubSecret
+ fi
+ if [ ! -f "${seafRoot}/seahub-setup" ]; then
+ # avatars directory should be writable
+ install -D -t ${seahubDir}/media/avatars/ ${pkgs.python3Packages.seahub}/media/avatars/default.png
+ install -D -t ${seahubDir}/media/avatars/groups ${pkgs.python3Packages.seahub}/media/avatars/groups/default.png
+ # init database
+ ${pkgs.python3Packages.seahub}/manage.py migrate
+ # create admin account
+ ${pkgs.expect}/bin/expect -c 'spawn ${pkgs.python3Packages.seahub}/manage.py createsuperuser --email=${cfg.adminEmail}; expect "Password: "; send "${cfg.initialAdminPassword}\r"; expect "Password (again): "; send "${cfg.initialAdminPassword}\r"; expect "Superuser created successfully."'
+ echo "${pkgs.python3Packages.seahub.version}-sqlite" > "${seafRoot}/seahub-setup"
+ fi
+ if [ $(cat "${seafRoot}/seahub-setup" | cut -d"-" -f1) != "${pkgs.python3Packages.seahub.version}" ]; then
+ # update database
+ ${pkgs.python3Packages.seahub}/manage.py migrate
+ echo "${pkgs.python3Packages.seahub.version}-sqlite" > "${seafRoot}/seahub-setup"
+ fi
+ '';
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/networking/searx.nix b/nixos/modules/services/networking/searx.nix
index 04f7d7e31f46..9fb06af7442e 100644
--- a/nixos/modules/services/networking/searx.nix
+++ b/nixos/modules/services/networking/searx.nix
@@ -68,7 +68,7 @@ in
settings = mkOption {
type = types.attrsOf settingType;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{ server.port = 8080;
server.bind_address = "0.0.0.0";
server.secret_key = "@SEARX_SECRET_KEY@";
@@ -116,7 +116,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.searx;
- defaultText = "pkgs.searx";
+ defaultText = literalExpression "pkgs.searx";
description = "searx package to use.";
};
@@ -138,7 +138,7 @@ in
uwsgiConfig = mkOption {
type = options.services.uwsgi.instance.type;
default = { http = ":8080"; };
- example = literalExample ''
+ example = literalExpression ''
{
disable-logging = true;
http = ":8080"; # serve via HTTP...
diff --git a/nixos/modules/services/networking/shadowsocks.nix b/nixos/modules/services/networking/shadowsocks.nix
index d2541f9a6dff..7bea269a9ed0 100644
--- a/nixos/modules/services/networking/shadowsocks.nix
+++ b/nixos/modules/services/networking/shadowsocks.nix
@@ -98,7 +98,7 @@ in
plugin = mkOption {
type = types.nullOr types.str;
default = null;
- example = "\${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
+ example = literalExpression ''"''${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin"'';
description = ''
SIP003 plugin for shadowsocks
'';
@@ -116,11 +116,9 @@ in
extraConfig = mkOption {
type = types.attrs;
default = {};
- example = ''
- {
- nameserver = "8.8.8.8";
- }
- '';
+ example = {
+ nameserver = "8.8.8.8";
+ };
description = ''
Additional configuration for shadowsocks that is not covered by the
provided options. The provided attrset will be serialized to JSON and
diff --git a/nixos/modules/services/networking/shellhub-agent.nix b/nixos/modules/services/networking/shellhub-agent.nix
index 4ce4b8250bc3..a45ef148544f 100644
--- a/nixos/modules/services/networking/shellhub-agent.nix
+++ b/nixos/modules/services/networking/shellhub-agent.nix
@@ -23,7 +23,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.shellhub-agent;
- defaultText = "pkgs.shellhub-agent";
+ defaultText = literalExpression "pkgs.shellhub-agent";
description = ''
Which ShellHub Agent package to use.
'';
diff --git a/nixos/modules/services/networking/shorewall.nix b/nixos/modules/services/networking/shorewall.nix
index 16383be2530f..ac732d4b12e4 100644
--- a/nixos/modules/services/networking/shorewall.nix
+++ b/nixos/modules/services/networking/shorewall.nix
@@ -22,7 +22,7 @@ in {
package = lib.mkOption {
type = types.package;
default = pkgs.shorewall;
- defaultText = "pkgs.shorewall";
+ defaultText = lib.literalExpression "pkgs.shorewall";
description = "The shorewall package to use.";
};
configs = lib.mkOption {
diff --git a/nixos/modules/services/networking/shorewall6.nix b/nixos/modules/services/networking/shorewall6.nix
index e081aedc6c34..4235c74a3f80 100644
--- a/nixos/modules/services/networking/shorewall6.nix
+++ b/nixos/modules/services/networking/shorewall6.nix
@@ -22,7 +22,7 @@ in {
package = lib.mkOption {
type = types.package;
default = pkgs.shorewall;
- defaultText = "pkgs.shorewall";
+ defaultText = lib.literalExpression "pkgs.shorewall";
description = "The shorewall package to use.";
};
configs = lib.mkOption {
diff --git a/nixos/modules/services/networking/skydns.nix b/nixos/modules/services/networking/skydns.nix
index ea466de93275..c4e959b57bbe 100644
--- a/nixos/modules/services/networking/skydns.nix
+++ b/nixos/modules/services/networking/skydns.nix
@@ -56,7 +56,7 @@ in {
package = mkOption {
default = pkgs.skydns;
- defaultText = "pkgs.skydns";
+ defaultText = literalExpression "pkgs.skydns";
type = types.package;
description = "Skydns package to use.";
};
diff --git a/nixos/modules/services/networking/smartdns.nix b/nixos/modules/services/networking/smartdns.nix
index f84c727f0343..7f9df42ce9c1 100644
--- a/nixos/modules/services/networking/smartdns.nix
+++ b/nixos/modules/services/networking/smartdns.nix
@@ -32,7 +32,7 @@ in {
type =
let atom = oneOf [ str int bool ];
in attrsOf (coercedTo atom toList (listOf atom));
- example = literalExample ''
+ example = literalExpression ''
{
bind = ":5353 -no-rule -group example";
cache-size = 4096;
diff --git a/nixos/modules/services/networking/smokeping.nix b/nixos/modules/services/networking/smokeping.nix
index 12d7ffe86758..c075cbbceac9 100644
--- a/nixos/modules/services/networking/smokeping.nix
+++ b/nixos/modules/services/networking/smokeping.nix
@@ -60,7 +60,7 @@ in
to = root@localhost
from = smokeping@localhost
'';
- example = literalExample ''
+ example = ''
to = alertee@address.somewhere
from = smokealert@company.xy
@@ -75,7 +75,7 @@ in
cgiUrl = mkOption {
type = types.str;
default = "http://${cfg.hostName}:${toString cfg.port}/smokeping.cgi";
- defaultText = "http://\${hostName}:\${toString port}/smokeping.cgi";
+ defaultText = literalExpression ''"http://''${hostName}:''${toString port}/smokeping.cgi"'';
example = "https://somewhere.example.com/smokeping.cgi";
description = "URL to the smokeping cgi.";
};
@@ -100,7 +100,7 @@ in
MIN 0.5 144 720
'';
- example = literalExample ''
+ example = ''
# near constant pings.
step = 30
pings = 20
@@ -125,16 +125,21 @@ in
hostName = mkOption {
type = types.str;
default = config.networking.fqdn;
- defaultText = "\${config.networking.fqdn}";
+ defaultText = literalExpression "config.networking.fqdn";
example = "somewhere.example.com";
description = "DNS name for the urls generated in the cgi.";
};
imgUrl = mkOption {
type = types.str;
- default = "http://${cfg.hostName}:${toString cfg.port}/cache";
- defaultText = "http://\${hostName}:\${toString port}/cache";
+ default = "cache";
+ defaultText = literalExpression ''"cache"'';
example = "https://somewhere.example.com/cache";
- description = "Base url for images generated in the cgi.";
+ description = ''
+ Base url for images generated in the cgi.
+
+ The default is a relative URL to ensure it works also when e.g. forwarding
+ the GUI port via SSH.
+ '';
};
linkStyle = mkOption {
type = types.enum ["original" "absolute" "relative"];
@@ -157,20 +162,30 @@ in
ownerEmail = mkOption {
type = types.str;
default = "no-reply@${cfg.hostName}";
- defaultText = "no-reply@\${hostName}";
+ defaultText = literalExpression ''"no-reply@''${hostName}"'';
example = "no-reply@yourdomain.com";
description = "Email contact for owner";
};
package = mkOption {
type = types.package;
default = pkgs.smokeping;
- defaultText = "pkgs.smokeping";
+ defaultText = literalExpression "pkgs.smokeping";
description = "Specify a custom smokeping package";
};
+ host = mkOption {
+ type = types.nullOr types.str;
+ default = "localhost";
+ example = "192.0.2.1"; # rfc5737 example IP for documentation
+ description = ''
+ Host/IP to bind to for the web server.
+
+ Setting it to null skips passing the -h option to thttpd,
+ which makes it bind to all interfaces.
+ '';
+ };
port = mkOption {
type = types.int;
default = 8081;
- example = 8081;
description = "TCP port to use for the web server.";
};
presentationConfig = mkOption {
@@ -217,6 +232,7 @@ in
presentationTemplate = mkOption {
type = types.str;
default = "${pkgs.smokeping}/etc/basepage.html.dist";
+ defaultText = literalExpression ''"''${pkgs.smokeping}/etc/basepage.html.dist"'';
description = "Default page layout for the web UI.";
};
probeConfig = mkOption {
@@ -236,6 +252,7 @@ in
smokeMailTemplate = mkOption {
type = types.str;
default = "${cfg.package}/etc/smokemail.dist";
+ defaultText = literalExpression ''"''${package}/etc/smokemail.dist"'';
description = "Specify the smokemail template for alerts.";
};
targetConfig = mkOption {
@@ -284,12 +301,6 @@ in
group = "root";
source = "${pkgs.fping}/bin/fping";
};
- fping6 =
- { setuid = true;
- owner = "root";
- group = "root";
- source = "${pkgs.fping}/bin/fping6";
- };
};
environment.systemPackages = [ pkgs.fping ];
users.users.${cfg.user} = {
@@ -302,10 +313,11 @@ in
};
users.groups.${cfg.user} = {};
systemd.services.smokeping = {
- wantedBy = [ "multi-user.target"];
+ requiredBy = [ "multi-user.target"];
serviceConfig = {
User = cfg.user;
Restart = "on-failure";
+ ExecStart = "${cfg.package}/bin/smokeping --config=${configPath} --nodaemon";
};
preStart = ''
mkdir -m 0755 -p ${smokepingHome}/cache ${smokepingHome}/data
@@ -316,18 +328,29 @@ in
${cfg.package}/bin/smokeping --check --config=${configPath}
${cfg.package}/bin/smokeping --static --config=${configPath}
'';
- script = "${cfg.package}/bin/smokeping --config=${configPath} --nodaemon";
};
systemd.services.thttpd = mkIf cfg.webService {
- wantedBy = [ "multi-user.target"];
+ requiredBy = [ "multi-user.target"];
requires = [ "smokeping.service"];
- partOf = [ "smokeping.service"];
path = with pkgs; [ bash rrdtool smokeping thttpd ];
- script = ''thttpd -u ${cfg.user} -c "**.fcgi" -d ${smokepingHome} -p ${builtins.toString cfg.port} -D -nos'';
- serviceConfig.Restart = "always";
+ serviceConfig = {
+ Restart = "always";
+ ExecStart = lib.concatStringsSep " " (lib.concatLists [
+ [ "${pkgs.thttpd}/bin/thttpd" ]
+ [ "-u ${cfg.user}" ]
+ [ ''-c "**.fcgi"'' ]
+ [ "-d ${smokepingHome}" ]
+ (lib.optional (cfg.host != null) "-h ${cfg.host}")
+ [ "-p ${builtins.toString cfg.port}" ]
+ [ "-D -nos" ]
+ ]);
+ };
};
};
- meta.maintainers = with lib.maintainers; [ erictapen ];
+ meta.maintainers = with lib.maintainers; [
+ erictapen
+ nh2
+ ];
}
diff --git a/nixos/modules/services/networking/sniproxy.nix b/nixos/modules/services/networking/sniproxy.nix
index 0345c12d3afe..28c201f0565e 100644
--- a/nixos/modules/services/networking/sniproxy.nix
+++ b/nixos/modules/services/networking/sniproxy.nix
@@ -34,7 +34,7 @@ in
type = types.lines;
default = "";
description = "sniproxy.conf configuration excluding the daemon username and pid file.";
- example = literalExample ''
+ example = ''
error_log {
filename /var/log/sniproxy/error.log
}
@@ -47,7 +47,7 @@ in
table {
example.com 192.0.2.10
example.net 192.0.2.20
- }
+ }
'';
};
diff --git a/nixos/modules/services/networking/softether.nix b/nixos/modules/services/networking/softether.nix
index 2dc73d81b258..5405f56871e9 100644
--- a/nixos/modules/services/networking/softether.nix
+++ b/nixos/modules/services/networking/softether.nix
@@ -21,7 +21,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.softether;
- defaultText = "pkgs.softether";
+ defaultText = literalExpression "pkgs.softether";
description = ''
softether derivation to use.
'';
diff --git a/nixos/modules/services/networking/spacecookie.nix b/nixos/modules/services/networking/spacecookie.nix
index e0bef9e9628d..400f3e26cc9a 100644
--- a/nixos/modules/services/networking/spacecookie.nix
+++ b/nixos/modules/services/networking/spacecookie.nix
@@ -30,8 +30,8 @@ in {
package = mkOption {
type = types.package;
default = pkgs.spacecookie;
- defaultText = literalExample "pkgs.spacecookie";
- example = literalExample "pkgs.haskellPackages.spacecookie";
+ defaultText = literalExpression "pkgs.spacecookie";
+ example = literalExpression "pkgs.haskellPackages.spacecookie";
description = ''
The spacecookie derivation to use. This can be used to
override the used package or to use another version.
diff --git a/nixos/modules/services/networking/spiped.nix b/nixos/modules/services/networking/spiped.nix
index e60d9abf42a6..3c229ecfc72e 100644
--- a/nixos/modules/services/networking/spiped.nix
+++ b/nixos/modules/services/networking/spiped.nix
@@ -138,7 +138,7 @@ in
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
pipe1 =
{ keyfile = "/var/lib/spiped/pipe1.key";
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 192533e52de0..004b4f99670f 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -439,7 +439,7 @@ in
mkdir -m 0755 -p /etc/ssh
${flip concatMapStrings cfg.hostKeys (k: ''
- if ! [ -f "${k.path}" ]; then
+ if ! [ -s "${k.path}" ]; then
ssh-keygen \
-t "${k.type}" \
${if k ? bits then "-b ${toString k.bits}" else ""} \
diff --git a/nixos/modules/services/networking/strongswan-swanctl/module.nix b/nixos/modules/services/networking/strongswan-swanctl/module.nix
index 6e619f22546f..9287943fcde3 100644
--- a/nixos/modules/services/networking/strongswan-swanctl/module.nix
+++ b/nixos/modules/services/networking/strongswan-swanctl/module.nix
@@ -13,7 +13,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.strongswan;
- defaultText = "pkgs.strongswan";
+ defaultText = literalExpression "pkgs.strongswan";
description = ''
The strongswan derivation to use.
'';
diff --git a/nixos/modules/services/networking/strongswan.nix b/nixos/modules/services/networking/strongswan.nix
index 401f7be40288..e3a97207be7f 100644
--- a/nixos/modules/services/networking/strongswan.nix
+++ b/nixos/modules/services/networking/strongswan.nix
@@ -4,7 +4,7 @@ let
inherit (builtins) toFile;
inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList
- mkIf mkEnableOption mkOption types literalExample;
+ mkIf mkEnableOption mkOption types literalExpression;
cfg = config.services.strongswan;
@@ -79,7 +79,7 @@ in
connections = mkOption {
type = types.attrsOf (types.attrsOf types.str);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"%default" = {
keyexchange = "ikev2";
diff --git a/nixos/modules/services/networking/stunnel.nix b/nixos/modules/services/networking/stunnel.nix
index fe1616f411f0..70d0a7d3c12e 100644
--- a/nixos/modules/services/networking/stunnel.nix
+++ b/nixos/modules/services/networking/stunnel.nix
@@ -69,6 +69,7 @@ let
CAFile = mkOption {
type = types.nullOr types.path;
default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
+ defaultText = literalExpression ''"''${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"'';
description = "Path to a file containing certificates to validate against.";
};
diff --git a/nixos/modules/services/networking/supplicant.nix b/nixos/modules/services/networking/supplicant.nix
index 4f4b5cef3741..eb24130e519a 100644
--- a/nixos/modules/services/networking/supplicant.nix
+++ b/nixos/modules/services/networking/supplicant.nix
@@ -73,7 +73,7 @@ in
path = mkOption {
type = types.nullOr types.path;
default = null;
- example = literalExample "/etc/wpa_supplicant.conf";
+ example = literalExpression "/etc/wpa_supplicant.conf";
description = ''
External wpa_supplicant.conf configuration file.
The configuration options defined declaratively within networking.supplicant have
@@ -170,7 +170,7 @@ in
default = { };
- example = literalExample ''
+ example = literalExpression ''
{ "wlan0 wlan1" = {
configFile.path = "/etc/wpa_supplicant.conf";
userControlled.group = "network";
diff --git a/nixos/modules/services/networking/supybot.nix b/nixos/modules/services/networking/supybot.nix
index 332c3ced06f0..94b79c7e247f 100644
--- a/nixos/modules/services/networking/supybot.nix
+++ b/nixos/modules/services/networking/supybot.nix
@@ -24,7 +24,7 @@ in
default = if versionAtLeast config.system.stateVersion "20.09"
then "/var/lib/supybot"
else "/home/supybot";
- defaultText = "/var/lib/supybot";
+ defaultText = literalExpression "/var/lib/supybot";
description = "The root directory, logs and plugins are stored here";
};
@@ -49,7 +49,7 @@ in
Please note that you still need to add the plugins to the config
file (or with !load) using their attribute name.
'';
- example = literalExample ''
+ example = literalExpression ''
let
plugins = pkgs.fetchzip {
url = "https://github.com/ProgVal/Supybot-plugins/archive/57c2450c.zip";
@@ -66,12 +66,13 @@ in
extraPackages = mkOption {
type = types.functionTo (types.listOf types.package);
default = p: [];
+ defaultText = literalExpression "p: []";
description = ''
Extra Python packages available to supybot plugins. The
value must be a function which receives the attrset defined
in python3Packages as the sole argument.
'';
- example = literalExample "p: [ p.lxml p.requests ]";
+ example = literalExpression "p: [ p.lxml p.requests ]";
};
};
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index ebe4d89a0e7f..8c44687a3822 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -182,7 +182,7 @@ in {
will be reverted on restart if overrideDevices
is enabled.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"/home/user/sync" = {
id = "syncme";
@@ -243,7 +243,7 @@ in {
There are 4 different types of versioning with different parameters.
See .
'';
- example = literalExample ''
+ example = literalExpression ''
[
{
versioning = {
@@ -430,8 +430,8 @@ in {
description = ''
The path where the settings and keys will exist.
'';
- default = cfg.dataDir + (optionalString cond "/.config/syncthing");
- defaultText = literalExample "dataDir${optionalString cond " + \"/.config/syncthing\""}";
+ default = cfg.dataDir + optionalString cond "/.config/syncthing";
+ defaultText = literalExpression "dataDir${optionalString cond " + \"/.config/syncthing\""}";
};
extraFlags = mkOption {
@@ -461,7 +461,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.syncthing;
- defaultText = literalExample "pkgs.syncthing";
+ defaultText = literalExpression "pkgs.syncthing";
description = ''
The Syncthing package to use.
'';
diff --git a/nixos/modules/services/networking/tailscale.nix b/nixos/modules/services/networking/tailscale.nix
index 3f88ff53dff0..3f41646bf01e 100644
--- a/nixos/modules/services/networking/tailscale.nix
+++ b/nixos/modules/services/networking/tailscale.nix
@@ -24,7 +24,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.tailscale;
- defaultText = "pkgs.tailscale";
+ defaultText = literalExpression "pkgs.tailscale";
description = "The package to use for tailscale";
};
};
diff --git a/nixos/modules/services/networking/tedicross.nix b/nixos/modules/services/networking/tedicross.nix
index 0716975f594a..c7830289dca0 100644
--- a/nixos/modules/services/networking/tedicross.nix
+++ b/nixos/modules/services/networking/tedicross.nix
@@ -18,7 +18,7 @@ in {
config = mkOption {
type = types.attrs;
# from https://github.com/TediCross/TediCross/blob/master/example.settings.yaml
- example = literalExample ''
+ example = literalExpression ''
{
telegram = {
useFirstNameInsteadOfUsername = false;
diff --git a/nixos/modules/services/networking/thelounge.nix b/nixos/modules/services/networking/thelounge.nix
index a1b06703484b..b94491639163 100644
--- a/nixos/modules/services/networking/thelounge.nix
+++ b/nixos/modules/services/networking/thelounge.nix
@@ -32,7 +32,7 @@ in {
extraConfig = mkOption {
default = {};
type = types.attrs;
- example = literalExample ''{
+ example = literalExpression ''{
reverseProxy = true;
defaults = {
name = "Your Network";
diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index 22caf9f4ec56..9db433fa0735 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -226,7 +226,7 @@ in
hostSettings = mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
host1 = {
addresses = [
@@ -282,27 +282,27 @@ in
package = mkOption {
type = types.package;
default = pkgs.tinc_pre;
- defaultText = "pkgs.tinc_pre";
+ defaultText = literalExpression "pkgs.tinc_pre";
description = ''
The package to use for the tinc daemon's binary.
'';
};
chroot = mkOption {
- default = true;
+ default = false;
type = types.bool;
description = ''
Change process root directory to the directory where the config file is located (/etc/tinc/netname/), for added security.
The chroot is performed after all the initialization is done, after writing pid files and opening network sockets.
- Note that tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
+ Note that this currently breaks dns resolution and tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
'';
};
settings = mkOption {
default = { };
type = types.submodule { freeformType = tincConfType; };
- example = literalExample ''
+ example = literalExpression ''
{
Interface = "custom.interface";
DirectOnly = true;
diff --git a/nixos/modules/services/networking/toxvpn.nix b/nixos/modules/services/networking/toxvpn.nix
index 1765ef3ea2d9..18cf7672d5f4 100644
--- a/nixos/modules/services/networking/toxvpn.nix
+++ b/nixos/modules/services/networking/toxvpn.nix
@@ -22,7 +22,7 @@ with lib;
auto_add_peers = mkOption {
type = types.listOf types.str;
default = [];
- example = ''[ "toxid1" "toxid2" ]'';
+ example = [ "toxid1" "toxid2" ];
description = "peers to automatically connect to on startup";
};
};
diff --git a/nixos/modules/services/networking/trickster.nix b/nixos/modules/services/networking/trickster.nix
index 49c945adb80f..e48bba8fa587 100644
--- a/nixos/modules/services/networking/trickster.nix
+++ b/nixos/modules/services/networking/trickster.nix
@@ -20,7 +20,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.trickster;
- defaultText = "pkgs.trickster";
+ defaultText = literalExpression "pkgs.trickster";
description = ''
Package that should be used for trickster.
'';
diff --git a/nixos/modules/services/networking/ucarp.nix b/nixos/modules/services/networking/ucarp.nix
index 9b19a19687bc..189e4f99cefe 100644
--- a/nixos/modules/services/networking/ucarp.nix
+++ b/nixos/modules/services/networking/ucarp.nix
@@ -91,10 +91,10 @@ in {
Command to run after become master, the interface name, virtual address
and optional extra parameters are passed as arguments.
'';
- example = ''
+ example = literalExpression ''
pkgs.writeScript "upscript" '''
#!/bin/sh
- $\{pkgs.iproute2\}/bin/ip addr add "$2"/24 dev "$1"
+ ''${pkgs.iproute2}/bin/ip addr add "$2"/24 dev "$1"
''';
'';
};
@@ -105,10 +105,10 @@ in {
Command to run after become backup, the interface name, virtual address
and optional extra parameters are passed as arguments.
'';
- example = ''
+ example = literalExpression ''
pkgs.writeScript "downscript" '''
#!/bin/sh
- $\{pkgs.iproute2\}/bin/ip addr del "$2"/24 dev "$1"
+ ''${pkgs.iproute2}/bin/ip addr del "$2"/24 dev "$1"
''';
'';
};
@@ -152,7 +152,7 @@ in {
upstream updates for a long time and can be considered as unmaintained.
'';
default = pkgs.ucarp;
- defaultText = "pkgs.ucarp";
+ defaultText = literalExpression "pkgs.ucarp";
};
};
diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix
index 6d7178047ea8..f6e963490924 100644
--- a/nixos/modules/services/networking/unbound.nix
+++ b/nixos/modules/services/networking/unbound.nix
@@ -45,7 +45,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.unbound-with-systemd;
- defaultText = "pkgs.unbound-with-systemd";
+ defaultText = literalExpression "pkgs.unbound-with-systemd";
description = "The unbound package to use";
};
@@ -128,7 +128,7 @@ in {
};
};
};
- example = literalExample ''
+ example = literalExpression ''
{
server = {
interface = [ "127.0.0.1" ];
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index 73170ebfc903..53ad4df477fc 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -9,25 +9,6 @@ let
${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
-jar ${stateDir}/lib/ace.jar
'';
- mountPoints = [
- {
- what = "${cfg.unifiPackage}/dl";
- where = "${stateDir}/dl";
- }
- {
- what = "${cfg.unifiPackage}/lib";
- where = "${stateDir}/lib";
- }
- {
- what = "${cfg.mongodbPackage}/bin";
- where = "${stateDir}/bin";
- }
- {
- what = "${cfg.dataDir}";
- where = "${stateDir}/data";
- }
- ];
- systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
in
{
@@ -44,7 +25,7 @@ in
services.unifi.jrePackage = mkOption {
type = types.package;
default = pkgs.jre8;
- defaultText = "pkgs.jre8";
+ defaultText = literalExpression "pkgs.jre8";
description = ''
The JRE package to use. Check the release notes to ensure it is supported.
'';
@@ -53,7 +34,7 @@ in
services.unifi.unifiPackage = mkOption {
type = types.package;
default = pkgs.unifiLTS;
- defaultText = "pkgs.unifiLTS";
+ defaultText = literalExpression "pkgs.unifiLTS";
description = ''
The unifi package to use.
'';
@@ -62,22 +43,12 @@ in
services.unifi.mongodbPackage = mkOption {
type = types.package;
default = pkgs.mongodb;
- defaultText = "pkgs.mongodb";
+ defaultText = literalExpression "pkgs.mongodb";
description = ''
The mongodb package to use.
'';
};
- services.unifi.dataDir = mkOption {
- type = types.str;
- default = "${stateDir}/data";
- description = ''
- Where to store the database and other data.
-
- This directory will be bind-mounted to ${stateDir}/data as part of the service startup.
- '';
- };
-
services.unifi.openPorts = mkOption {
type = types.bool;
default = true;
@@ -136,32 +107,11 @@ in
];
};
- # We must create the binary directories as bind mounts instead of symlinks
- # This is because the controller resolves all symlinks to absolute paths
- # to be used as the working directory.
- systemd.mounts = map ({ what, where }: {
- bindsTo = [ "unifi.service" ];
- partOf = [ "unifi.service" ];
- unitConfig.RequiresMountsFor = stateDir;
- options = "bind";
- what = what;
- where = where;
- }) mountPoints;
-
- systemd.tmpfiles.rules = [
- "d '${stateDir}' 0700 unifi - - -"
- "d '${stateDir}/data' 0700 unifi - - -"
- "d '${stateDir}/webapps' 0700 unifi - - -"
- "L+ '${stateDir}/webapps/ROOT' - - - - ${cfg.unifiPackage}/webapps/ROOT"
- ];
-
systemd.services.unifi = {
description = "UniFi controller daemon";
wantedBy = [ "multi-user.target" ];
- after = [ "network.target" ] ++ systemdMountPoints;
- partOf = systemdMountPoints;
- bindsTo = systemdMountPoints;
- unitConfig.RequiresMountsFor = stateDir;
+ after = [ "network.target" ];
+
# This a HACK to fix missing dependencies of dynamic libs extracted from jars
environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc.lib}/lib";
# Make sure package upgrades trigger a service restart
@@ -172,9 +122,15 @@ in
ExecStart = "${(removeSuffix "\n" cmd)} start";
ExecStop = "${(removeSuffix "\n" cmd)} stop";
Restart = "on-failure";
+ TimeoutSec = "5min";
User = "unifi";
UMask = "0077";
WorkingDirectory = "${stateDir}";
+ # the stop command exits while the main process is still running, and unifi
+ # wants to manage its own child processes. this means we have to set KillSignal
+ # to something the main process ignores, otherwise every stop will have unifi.service
+ # fail with SIGTERM status.
+ KillSignal = "SIGCONT";
# Hardening
AmbientCapabilities = "";
@@ -203,8 +159,27 @@ in
SystemCallErrorNumber = "EPERM";
SystemCallFilter = [ "@system-service" ];
- # Required for ProtectSystem=strict
- BindPaths = [ stateDir ];
+ StateDirectory = "unifi";
+ RuntimeDirectory = "unifi";
+ LogsDirectory = "unifi";
+ CacheDirectory= "unifi";
+
+ TemporaryFileSystem = [
+ # required as we want to create bind mounts below
+ "${stateDir}/webapps:rw"
+ ];
+
+ # We must create the binary directories as bind mounts instead of symlinks
+ # This is because the controller resolves all symlinks to absolute paths
+ # to be used as the working directory.
+ BindPaths = [
+ "/var/log/unifi:${stateDir}/logs"
+ "/run/unifi:${stateDir}/run"
+ "${cfg.unifiPackage}/dl:${stateDir}/dl"
+ "${cfg.unifiPackage}/lib:${stateDir}/lib"
+ "${cfg.mongodbPackage}/bin:${stateDir}/bin"
+ "${cfg.unifiPackage}/webapps/ROOT:${stateDir}/webapps/ROOT"
+ ];
# Needs network access
PrivateNetwork = false;
@@ -214,6 +189,9 @@ in
};
};
+ imports = [
+ (mkRemovedOptionModule [ "services" "unifi" "dataDir" ] "You should move contents of dataDir to /var/lib/unifi/data" )
+ ];
- meta.maintainers = with lib.maintainers; [ erictapen ];
+ meta.maintainers = with lib.maintainers; [ erictapen pennae ];
}
diff --git a/nixos/modules/services/networking/v2ray.nix b/nixos/modules/services/networking/v2ray.nix
index 0b8b5b56e25b..95e8761ba5cc 100644
--- a/nixos/modules/services/networking/v2ray.nix
+++ b/nixos/modules/services/networking/v2ray.nix
@@ -16,6 +16,15 @@ with lib;
'';
};
+ package = mkOption {
+ type = types.package;
+ default = pkgs.v2ray;
+ defaultText = literalExpression "pkgs.v2ray";
+ description = ''
+ Which v2ray package to use.
+ '';
+ };
+
configFile = mkOption {
type = types.nullOr types.str;
default = null;
@@ -62,7 +71,7 @@ with lib;
name = "v2ray.json";
text = builtins.toJSON cfg.config;
checkPhase = ''
- ${pkgs.v2ray}/bin/v2ray -test -config $out
+ ${cfg.package}/bin/v2ray -test -config $out
'';
};
@@ -78,10 +87,9 @@ with lib;
description = "v2ray Daemon";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- path = [ pkgs.v2ray ];
- script = ''
- exec v2ray -config ${configFile}
- '';
+ serviceConfig = {
+ ExecStart = "${cfg.package}/bin/v2ray -config ${configFile}";
+ };
};
};
}
diff --git a/nixos/modules/services/networking/vsftpd.nix b/nixos/modules/services/networking/vsftpd.nix
index 5489f74bf032..710c2d9ca17b 100644
--- a/nixos/modules/services/networking/vsftpd.nix
+++ b/nixos/modules/services/networking/vsftpd.nix
@@ -159,7 +159,7 @@ in
userlistFile = mkOption {
type = types.path;
default = pkgs.writeText "userlist" (concatMapStrings (x: "${x}\n") cfg.userlist);
- defaultText = "pkgs.writeText \"userlist\" (concatMapStrings (x: \"\${x}\n\") cfg.userlist)";
+ defaultText = literalExpression ''pkgs.writeText "userlist" (concatMapStrings (x: "''${x}\n") cfg.userlist)'';
description = ''
Newline separated list of names to be allowed/denied if
is true. Meaning see .
diff --git a/nixos/modules/services/networking/wakeonlan.nix b/nixos/modules/services/networking/wakeonlan.nix
deleted file mode 100644
index c6291366b0f1..000000000000
--- a/nixos/modules/services/networking/wakeonlan.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
- interfaces = config.services.wakeonlan.interfaces;
-
- ethtool = "${pkgs.ethtool}/sbin/ethtool";
-
- passwordParameter = password : if (password == "") then "" else
- "sopass ${password}";
-
- methodParameter = {method, password} :
- if method == "magicpacket" then "wol g"
- else if method == "password" then "wol s so ${passwordParameter password}"
- else throw "Wake-On-Lan method not supported";
-
- line = { interface, method ? "magicpacket", password ? "" }: ''
- ${ethtool} -s ${interface} ${methodParameter {inherit method password;}}
- '';
-
- concatStrings = foldr (x: y: x + y) "";
- lines = concatStrings (map (l: line l) interfaces);
-
-in
-{
-
- ###### interface
-
- options = {
-
- services.wakeonlan.interfaces = mkOption {
- default = [ ];
- type = types.listOf (types.submodule { options = {
- interface = mkOption {
- type = types.str;
- description = "Interface to enable for Wake-On-Lan.";
- };
- method = mkOption {
- type = types.enum [ "magicpacket" "password"];
- description = "Wake-On-Lan method for this interface.";
- };
- password = mkOption {
- type = types.strMatching "[a-fA-F0-9]{2}:([a-fA-F0-9]{2}:){4}[a-fA-F0-9]{2}";
- description = "The password has the shape of six bytes in hexadecimal separated by a colon each.";
- };
- };});
- example = [
- {
- interface = "eth0";
- method = "password";
- password = "00:11:22:33:44:55";
- }
- ];
- description = ''
- Interfaces where to enable Wake-On-LAN, and how. Two methods available:
- "magicpacket" and "password". The password has the shape of six bytes
- in hexadecimal separated by a colon each. For more information,
- check the ethtool manual.
- '';
- };
-
- };
-
-
- ###### implementation
-
- config.powerManagement.powerUpCommands = lines;
-
-}
diff --git a/nixos/modules/services/networking/websockify.nix b/nixos/modules/services/networking/websockify.nix
index 27cb47be12f7..f7e014e03efb 100644
--- a/nixos/modules/services/networking/websockify.nix
+++ b/nixos/modules/services/networking/websockify.nix
@@ -21,7 +21,7 @@ let cfg = config.services.networking.websockify; in {
sslKey = mkOption {
description = "Path to the SSL key.";
default = cfg.sslCert;
- defaultText = "config.services.networking.websockify.sslCert";
+ defaultText = literalExpression "config.services.networking.websockify.sslCert";
type = types.path;
};
diff --git a/nixos/modules/services/networking/wg-quick.nix b/nixos/modules/services/networking/wg-quick.nix
index 3b76de58548f..414775fc3577 100644
--- a/nixos/modules/services/networking/wg-quick.nix
+++ b/nixos/modules/services/networking/wg-quick.nix
@@ -56,9 +56,7 @@ let
};
preUp = mkOption {
- example = literalExample ''
- ${pkgs.iproute2}/bin/ip netns add foo
- '';
+ example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns add foo"'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = ''
@@ -67,9 +65,7 @@ let
};
preDown = mkOption {
- example = literalExample ''
- ${pkgs.iproute2}/bin/ip netns del foo
- '';
+ example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns del foo"'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = ''
@@ -78,9 +74,7 @@ let
};
postUp = mkOption {
- example = literalExample ''
- ${pkgs.iproute2}/bin/ip netns add foo
- '';
+ example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns add foo"'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = ''
@@ -89,9 +83,7 @@ let
};
postDown = mkOption {
- example = literalExample ''
- ${pkgs.iproute2}/bin/ip netns del foo
- '';
+ example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns del foo"'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = ''
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 2b51770a5aa1..55b84935b6cb 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -62,9 +62,7 @@ let
};
preSetup = mkOption {
- example = literalExample ''
- ${pkgs.iproute2}/bin/ip netns add foo
- '';
+ example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns add foo"'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = ''
@@ -73,8 +71,8 @@ let
};
postSetup = mkOption {
- example = literalExample ''
- printf "nameserver 10.200.100.1" | ${pkgs.openresolv}/bin/resolvconf -a wg0 -m 0
+ example = literalExpression ''
+ '''printf "nameserver 10.200.100.1" | ''${pkgs.openresolv}/bin/resolvconf -a wg0 -m 0'''
'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -82,7 +80,7 @@ let
};
postShutdown = mkOption {
- example = literalExample "${pkgs.openresolv}/bin/resolvconf -d wg0";
+ example = literalExpression ''"''${pkgs.openresolv}/bin/resolvconf -d wg0"'';
default = "";
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = "Commands called after shutting down the interface.";
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index 155c6fdd0ab0..4aa350d21a2b 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -20,10 +20,16 @@ let
++ optional cfg.scanOnLowSignal ''bgscan="simple:30:-70:3600"''
++ optional (cfg.extraConfig != "") cfg.extraConfig);
+ configIsGenerated = with cfg;
+ networks != {} || extraConfig != "" || userControlled.enable;
+
+ # the original configuration file
configFile =
- if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable
+ if configIsGenerated
then pkgs.writeText "wpa_supplicant.conf" generatedConfig
else "/etc/wpa_supplicant.conf";
+ # the config file with environment variables replaced
+ finalConfig = ''"$RUNTIME_DIRECTORY"/wpa_supplicant.conf'';
# Creates a network block for wpa_supplicant.conf
mkNetwork = ssid: opts:
@@ -56,8 +62,8 @@ let
let
deviceUnit = optional (iface != null) "sys-subsystem-net-devices-${utils.escapeSystemdPath iface}.device";
configStr = if cfg.allowAuxiliaryImperativeNetworks
- then "-c /etc/wpa_supplicant.conf -I ${configFile}"
- else "-c ${configFile}";
+ then "-c /etc/wpa_supplicant.conf -I ${finalConfig}"
+ else "-c ${finalConfig}";
in {
description = "WPA Supplicant instance" + optionalString (iface != null) " for interface ${iface}";
@@ -69,12 +75,25 @@ let
stopIfChanged = false;
path = [ package ];
+ serviceConfig.RuntimeDirectory = "wpa_supplicant";
+ serviceConfig.RuntimeDirectoryMode = "700";
+ serviceConfig.EnvironmentFile = mkIf (cfg.environmentFile != null)
+ (builtins.toString cfg.environmentFile);
script =
''
- if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]; then
- echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
- fi
+ ${optionalString configIsGenerated ''
+ if [ -f /etc/wpa_supplicant.conf ]; then
+ echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
+ fi
+ ''}
+
+ # substitute environment variables
+ ${pkgs.gawk}/bin/awk '{
+ for(varname in ENVIRON)
+ gsub("@"varname"@", ENVIRON[varname])
+ print
+ }' "${configFile}" > "${finalConfig}"
iface_args="-s ${optionalString cfg.dbusControlled "-u"} -D${cfg.driver} ${configStr}"
@@ -155,6 +174,44 @@ in {
'';
};
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ example = "/run/secrets/wireless.env";
+ description = ''
+ File consisting of lines of the form varname=value
+ to define variables for the wireless configuration.
+
+ See section "EnvironmentFile=" in
+ systemd.exec5
+ 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
+ with the syntax @varname@. Example:
+
+
+ # content of /run/secrets/wireless.env
+ PSK_HOME=mypassword
+ PASS_WORK=myworkpassword
+
+
+
+ # 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@"
+ ''';
+ };
+
+ '';
+ };
+
networks = mkOption {
type = types.attrsOf (types.submodule {
options = {
@@ -165,10 +222,14 @@ in {
The network's pre-shared key in plaintext defaulting
to being a network without any authentication.
- Be aware that these will be written to the nix store
- in plaintext!
+
+ Be aware that this will be written to the nix store
+ in plaintext! Use an environment variable instead.
+
- Mutually exclusive with pskRaw.
+
+ Mutually exclusive with pskRaw.
+
'';
};
@@ -179,7 +240,14 @@ in {
The network's pre-shared key in hex defaulting
to being a network without any authentication.
- Mutually exclusive with psk.
+
+ Be aware that this will be written to the nix store
+ in plaintext! Use an environment variable instead.
+
+
+
+ Mutually exclusive with psk.
+
'';
};
@@ -231,7 +299,7 @@ in {
example = ''
eap=PEAP
identity="user@example.com"
- password="secret"
+ password="@EXAMPLE_PASSWORD@"
'';
description = ''
Use this option to configure advanced authentication methods like EAP.
@@ -242,7 +310,15 @@ in {
for example configurations.
- Mutually exclusive with psk and pskRaw.
+
+ Be aware that this will be written to the nix store
+ in plaintext! Use an environment variable for secrets.
+
+
+
+ Mutually exclusive with psk and
+ pskRaw.
+
'';
};
@@ -252,7 +328,7 @@ in {
description = ''
Set this to true if the SSID of the network is hidden.
'';
- example = literalExample ''
+ example = literalExpression ''
{ echelon = {
hidden = true;
psk = "abcdefgh";
@@ -301,13 +377,19 @@ in {
/etc/wpa_supplicant.conf as the configuration file.
'';
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ echelon = { # SSID with no spaces or special characters
- psk = "abcdefgh";
+ psk = "abcdefgh"; # (password will be written to /nix/store!)
};
+
+ echelon = { # safe version of the above: read PSK from the
+ psk = "@PSK_ECHELON@"; # variable PSK_ECHELON, defined in environmentFile,
+ }; # this won't leak into /nix/store
+
"echelon's AP" = { # SSID with spaces and/or special characters
- psk = "ijklmnop";
+ psk = "ijklmnop"; # (password will be written to /nix/store!)
};
+
"free.wifi" = {}; # Public wireless network
}
'';
diff --git a/nixos/modules/services/networking/x2goserver.nix b/nixos/modules/services/networking/x2goserver.nix
index 554e51f9d4ff..d4adf6c5650e 100644
--- a/nixos/modules/services/networking/x2goserver.nix
+++ b/nixos/modules/services/networking/x2goserver.nix
@@ -42,7 +42,6 @@ in {
nxagentDefaultOptions = mkOption {
type = types.listOf types.str;
default = [ "-extension GLX" "-nolisten tcp" ];
- example = [ "-extension GLX" "-nolisten tcp" ];
description = ''
List of default nx agent options.
'';
@@ -55,12 +54,14 @@ in {
x2goserver.conf ini configuration as nix attributes. See
`x2goserver.conf(5)` for details
'';
- example = literalExample ''
- superenicer = {
- "enable" = "yes";
- "idle-nice-level" = 19;
- };
- telekinesis = { "enable" = "no"; };
+ example = literalExpression ''
+ {
+ superenicer = {
+ "enable" = "yes";
+ "idle-nice-level" = 19;
+ };
+ telekinesis = { "enable" = "no"; };
+ }
'';
};
};
diff --git a/nixos/modules/services/networking/xandikos.nix b/nixos/modules/services/networking/xandikos.nix
index 3c40bb956f57..4bd45a76e673 100644
--- a/nixos/modules/services/networking/xandikos.nix
+++ b/nixos/modules/services/networking/xandikos.nix
@@ -14,7 +14,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.xandikos;
- defaultText = "pkgs.xandikos";
+ defaultText = literalExpression "pkgs.xandikos";
description = "The Xandikos package to use.";
};
@@ -45,7 +45,7 @@ in
extraOptions = mkOption {
default = [];
type = types.listOf types.str;
- example = literalExample ''
+ example = literalExpression ''
[ "--autocreate"
"--defaults"
"--current-user-principal user"
diff --git a/nixos/modules/services/networking/xrdp.nix b/nixos/modules/services/networking/xrdp.nix
index 9be7c3233e26..c4f828f3c5a6 100644
--- a/nixos/modules/services/networking/xrdp.nix
+++ b/nixos/modules/services/networking/xrdp.nix
@@ -47,7 +47,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.xrdp;
- defaultText = "pkgs.xrdp";
+ defaultText = literalExpression "pkgs.xrdp";
description = ''
The package to use for the xrdp daemon's binary.
'';
diff --git a/nixos/modules/services/networking/yggdrasil.nix b/nixos/modules/services/networking/yggdrasil.nix
index 47a7152f6fe6..99c18ae6919e 100644
--- a/nixos/modules/services/networking/yggdrasil.nix
+++ b/nixos/modules/services/networking/yggdrasil.nix
@@ -99,7 +99,7 @@ in {
package = mkOption {
type = package;
default = pkgs.yggdrasil;
- defaultText = "pkgs.yggdrasil";
+ defaultText = literalExpression "pkgs.yggdrasil";
description = "Yggdrasil package to use.";
};
diff --git a/nixos/modules/services/networking/zeronet.nix b/nixos/modules/services/networking/zeronet.nix
index a34b2d871541..3370390a4c62 100644
--- a/nixos/modules/services/networking/zeronet.nix
+++ b/nixos/modules/services/networking/zeronet.nix
@@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }:
let
- inherit (lib) generators literalExample mkEnableOption mkIf mkOption recursiveUpdate types;
+ inherit (lib) generators literalExpression mkEnableOption mkIf mkOption recursiveUpdate types;
cfg = config.services.zeronet;
dataDir = "/var/lib/zeronet";
configFile = pkgs.writeText "zeronet.conf" (generators.toINI {} (recursiveUpdate defaultSettings cfg.settings));
@@ -22,7 +22,7 @@ in with lib; {
settings = mkOption {
type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
default = {};
- example = literalExample "global.tor = enable;";
+ example = literalExpression "{ global.tor = enable; }";
description = ''
zeronet.conf configuration. Refer to
@@ -34,7 +34,6 @@ in with lib; {
port = mkOption {
type = types.port;
default = 43110;
- example = 43110;
description = "Optional zeronet web UI port.";
};
@@ -43,7 +42,6 @@ in with lib; {
# read-only config file and crashes
type = types.port;
default = 12261;
- example = 12261;
description = "Zeronet fileserver port.";
};
diff --git a/nixos/modules/services/networking/zerotierone.nix b/nixos/modules/services/networking/zerotierone.nix
index cf39ed065a76..3bc7d3ac0db5 100644
--- a/nixos/modules/services/networking/zerotierone.nix
+++ b/nixos/modules/services/networking/zerotierone.nix
@@ -19,7 +19,6 @@ in
options.services.zerotierone.port = mkOption {
default = 9993;
- example = 9993;
type = types.int;
description = ''
Network port used by ZeroTier.
@@ -28,7 +27,7 @@ in
options.services.zerotierone.package = mkOption {
default = pkgs.zerotierone;
- defaultText = "pkgs.zerotierone";
+ defaultText = literalExpression "pkgs.zerotierone";
type = types.package;
description = ''
ZeroTier One package to use.
diff --git a/nixos/modules/services/networking/znc/default.nix b/nixos/modules/services/networking/znc/default.nix
index b872b99976ce..a98f92d2d710 100644
--- a/nixos/modules/services/networking/znc/default.nix
+++ b/nixos/modules/services/networking/znc/default.nix
@@ -125,7 +125,7 @@ in
config = mkOption {
type = semanticTypes.zncConf;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
LoadModule = [ "webadmin" "adminlog" ];
User.paul = {
@@ -180,7 +180,7 @@ in
configFile = mkOption {
type = types.path;
- example = "~/.znc/configs/znc.conf";
+ example = literalExpression "~/.znc/configs/znc.conf";
description = ''
Configuration file for ZNC. It is recommended to use the
option instead.
@@ -195,7 +195,7 @@ in
modulePackages = mkOption {
type = types.listOf types.package;
default = [ ];
- example = literalExample "[ pkgs.zncModules.fish pkgs.zncModules.push ]";
+ example = literalExpression "[ pkgs.zncModules.fish pkgs.zncModules.push ]";
description = ''
A list of global znc module packages to add to znc.
'';
diff --git a/nixos/modules/services/networking/znc/options.nix b/nixos/modules/services/networking/znc/options.nix
index be9dc78c86d9..0db051126e86 100644
--- a/nixos/modules/services/networking/znc/options.nix
+++ b/nixos/modules/services/networking/znc/options.nix
@@ -44,7 +44,7 @@ let
modules = mkOption {
type = types.listOf types.str;
default = [ "simple_away" ];
- example = literalExample ''[ "simple_away" "sasl" ]'';
+ example = literalExpression ''[ "simple_away" "sasl" ]'';
description = ''
ZNC network modules to load.
'';
@@ -148,7 +148,7 @@ in
description = ''
IRC networks to connect the user to.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"libera" = {
server = "irc.libera.chat";
@@ -170,7 +170,7 @@ in
};
passBlock = mkOption {
- example = literalExample ''
+ example = ''
<Pass password>
Method = sha256
Hash = e2ce303c7ea75c571d80d8540a8699b46535be6a085be3414947d638e48d9e93
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix
index d2b36d9e7541..53091d8e2a0e 100644
--- a/nixos/modules/services/printing/cupsd.nix
+++ b/nixos/modules/services/printing/cupsd.nix
@@ -270,7 +270,7 @@ in
drivers = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "with pkgs; [ gutenprint hplip splix ]";
+ example = literalExpression "with pkgs; [ gutenprint hplip splix ]";
description = ''
CUPS drivers to use. Drivers provided by CUPS, cups-filters,
Ghostscript and Samba are added unconditionally. If this list contains
diff --git a/nixos/modules/services/scheduling/cron.nix b/nixos/modules/services/scheduling/cron.nix
index c28956b3bfeb..1fac54003cbb 100644
--- a/nixos/modules/services/scheduling/cron.nix
+++ b/nixos/modules/services/scheduling/cron.nix
@@ -52,7 +52,7 @@ in
systemCronJobs = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ "* * * * * test ls -l / > /tmp/cronout 2>&1"
"* * * * * eelco echo Hello World > /home/eelco/cronout"
]
diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix
index 40ebe29c9a60..6df147be0c49 100644
--- a/nixos/modules/services/search/elasticsearch.nix
+++ b/nixos/modules/services/search/elasticsearch.nix
@@ -53,7 +53,7 @@ in
package = mkOption {
description = "Elasticsearch package to use.";
default = pkgs.elasticsearch;
- defaultText = "pkgs.elasticsearch";
+ defaultText = literalExpression "pkgs.elasticsearch";
type = types.package;
};
@@ -140,7 +140,7 @@ in
description = "Extra elasticsearch plugins";
default = [ ];
type = types.listOf types.package;
- example = lib.literalExample "[ pkgs.elasticsearchPlugins.discovery-ec2 ]";
+ example = lib.literalExpression "[ pkgs.elasticsearchPlugins.discovery-ec2 ]";
};
};
diff --git a/nixos/modules/services/search/hound.nix b/nixos/modules/services/search/hound.nix
index 7a44489efe61..ef62175b0a3e 100644
--- a/nixos/modules/services/search/hound.nix
+++ b/nixos/modules/services/search/hound.nix
@@ -50,7 +50,7 @@ in {
package = mkOption {
default = pkgs.hound;
- defaultText = "pkgs.hound";
+ defaultText = literalExpression "pkgs.hound";
type = types.package;
description = ''
Package for running hound.
@@ -63,16 +63,18 @@ in {
The full configuration of the Hound daemon. Note the dbpath
should be an absolute path to a writable location on disk.
'';
- example = ''
- {
- "max-concurrent-indexers" : 2,
- "dbpath" : "''${services.hound.home}/data",
- "repos" : {
- "nixpkgs": {
- "url" : "https://www.github.com/NixOS/nixpkgs.git"
- }
- }
- }
+ example = literalExpression ''
+ '''
+ {
+ "max-concurrent-indexers" : 2,
+ "dbpath" : "''${services.hound.home}/data",
+ "repos" : {
+ "nixpkgs": {
+ "url" : "https://www.github.com/NixOS/nixpkgs.git"
+ }
+ }
+ }
+ '''
'';
};
diff --git a/nixos/modules/services/search/kibana.nix b/nixos/modules/services/search/kibana.nix
index b3093abfa5c5..381f5156ceb6 100644
--- a/nixos/modules/services/search/kibana.nix
+++ b/nixos/modules/services/search/kibana.nix
@@ -149,8 +149,7 @@ in {
package = mkOption {
description = "Kibana package to use";
default = pkgs.kibana;
- defaultText = "pkgs.kibana";
- example = "pkgs.kibana";
+ defaultText = literalExpression "pkgs.kibana";
type = types.package;
};
diff --git a/nixos/modules/services/search/meilisearch.md b/nixos/modules/services/search/meilisearch.md
new file mode 100644
index 000000000000..98e7c542cb9a
--- /dev/null
+++ b/nixos/modules/services/search/meilisearch.md
@@ -0,0 +1,39 @@
+# Meilisearch {#module-services-meilisearch}
+
+Meilisearch is a lightweight, fast and powerful search engine. Think elastic search with a much smaller footprint.
+
+## Quickstart
+
+the minimum to start meilisearch is
+
+```nix
+services.meilisearch.enable = true;
+```
+
+this will start the http server included with meilisearch on port 7700.
+
+test with `curl -X GET 'http://localhost:7700/health'`
+
+## Usage
+
+you first need to add documents to an index before you can search for documents.
+
+### Add a documents to the `movies` index
+
+`curl -X POST 'http://127.0.0.1:7700/indexes/movies/documents' --data '[{"id": "123", "title": "Superman"}, {"id": 234, "title": "Batman"}]'`
+
+### Search documents in the `movies` index
+
+`curl 'http://127.0.0.1:7700/indexes/movies/search' --data '{ "q": "botman" }'` (note the typo is intentional and there to demonstrate the typo tolerant capabilities)
+
+## Defaults
+
+- The default nixos package doesn't come with the [dashboard](https://docs.meilisearch.com/learn/getting_started/quick_start.html#search), since the dashboard features makes some assets downloads at compile time.
+
+- Anonimized Analytics sent to meilisearch are disabled by default.
+
+- Default deployment is development mode. It doesn't require a secret master key. All routes are not protected and accessible.
+
+## Missing
+
+- the snapshot feature is not yet configurable from the module, it's just a matter of adding the relevant environment variables.
diff --git a/nixos/modules/services/search/meilisearch.nix b/nixos/modules/services/search/meilisearch.nix
index 913a885993ca..f6210f6f16e1 100644
--- a/nixos/modules/services/search/meilisearch.nix
+++ b/nixos/modules/services/search/meilisearch.nix
@@ -8,7 +8,10 @@ let
in
{
- meta.maintainers = with maintainers; [ filalex77 ];
+ meta.maintainers = with maintainers; [ Br1ght0ne happysalada ];
+ # Don't edit the docbook xml directly, edit the md and generate it:
+ # `pandoc meilisearch.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > meilisearch.xml`
+ meta.doc = ./meilisearch.xml;
###### interface
diff --git a/nixos/modules/services/search/meilisearch.xml b/nixos/modules/services/search/meilisearch.xml
new file mode 100644
index 000000000000..c1a73f358c28
--- /dev/null
+++ b/nixos/modules/services/search/meilisearch.xml
@@ -0,0 +1,85 @@
+
+ Meilisearch
+
+ Meilisearch is a lightweight, fast and powerful search engine. Think
+ elastic search with a much smaller footprint.
+
+
+ Quickstart
+
+ the minimum to start meilisearch is
+
+
+services.meilisearch.enable = true;
+
+
+ this will start the http server included with meilisearch on port
+ 7700.
+
+
+ test with
+ curl -X GET 'http://localhost:7700/health'
+
+
+
+ Usage
+
+ you first need to add documents to an index before you can search
+ for documents.
+
+
+ Add a documents to the movies
+ index
+
+ curl -X POST 'http://127.0.0.1:7700/indexes/movies/documents' --data '[{"id": "123", "title": "Superman"}, {"id": 234, "title": "Batman"}]'
+
+
+
+ Search documents in the movies
+ index
+
+ curl 'http://127.0.0.1:7700/indexes/movies/search' --data '{ "q": "botman" }'
+ (note the typo is intentional and there to demonstrate the typo
+ tolerant capabilities)
+
+
+
+
+ Defaults
+
+
+
+ The default nixos package doesn’t come with the
+ dashboard,
+ since the dashboard features makes some assets downloads at
+ compile time.
+
+
+
+
+ Anonimized Analytics sent to meilisearch are disabled by
+ default.
+
+
+
+
+ Default deployment is development mode. It doesn’t require a
+ secret master key. All routes are not protected and
+ accessible.
+
+
+
+
+
+ Missing
+
+
+
+ the snapshot feature is not yet configurable from the module,
+ it’s just a matter of adding the relevant environment
+ variables.
+
+
+
+
+
diff --git a/nixos/modules/services/search/solr.nix b/nixos/modules/services/search/solr.nix
index a8615a20a1cf..ea76bfc9298f 100644
--- a/nixos/modules/services/search/solr.nix
+++ b/nixos/modules/services/search/solr.nix
@@ -16,7 +16,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.solr;
- defaultText = "pkgs.solr";
+ defaultText = literalExpression "pkgs.solr";
description = "Which Solr package to use.";
};
diff --git a/nixos/modules/services/security/certmgr.nix b/nixos/modules/services/security/certmgr.nix
index 94c0ba141179..d302a4e00020 100644
--- a/nixos/modules/services/security/certmgr.nix
+++ b/nixos/modules/services/security/certmgr.nix
@@ -40,7 +40,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.certmgr;
- defaultText = "pkgs.certmgr";
+ defaultText = literalExpression "pkgs.certmgr";
description = "Which certmgr package to use in the service.";
};
@@ -76,7 +76,7 @@ in
specs = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
exampleCert =
let
diff --git a/nixos/modules/services/security/cfssl.nix b/nixos/modules/services/security/cfssl.nix
index ee6d5d91fe15..e5bed0a9987c 100644
--- a/nixos/modules/services/security/cfssl.nix
+++ b/nixos/modules/services/security/cfssl.nix
@@ -27,13 +27,13 @@ in {
};
ca = mkOption {
- defaultText = "\${cfg.dataDir}/ca.pem";
+ defaultText = literalExpression ''"''${cfg.dataDir}/ca.pem"'';
type = types.str;
description = "CA used to sign the new certificate -- accepts '[file:]fname' or 'env:varname'.";
};
caKey = mkOption {
- defaultText = "file:\${cfg.dataDir}/ca-key.pem";
+ defaultText = literalExpression ''"file:''${cfg.dataDir}/ca-key.pem"'';
type = types.str;
description = "CA private key -- accepts '[file:]fname' or 'env:varname'.";
};
diff --git a/nixos/modules/services/security/fail2ban.nix b/nixos/modules/services/security/fail2ban.nix
index 499d34667509..67e1026dcef4 100644
--- a/nixos/modules/services/security/fail2ban.nix
+++ b/nixos/modules/services/security/fail2ban.nix
@@ -55,22 +55,24 @@ in
package = mkOption {
default = pkgs.fail2ban;
+ defaultText = literalExpression "pkgs.fail2ban";
type = types.package;
- example = "pkgs.fail2ban_0_11";
+ example = literalExpression "pkgs.fail2ban_0_11";
description = "The fail2ban package to use for running the fail2ban service.";
};
packageFirewall = mkOption {
default = pkgs.iptables;
+ defaultText = literalExpression "pkgs.iptables";
type = types.package;
- example = "pkgs.nftables";
+ example = literalExpression "pkgs.nftables";
description = "The firewall package used by fail2ban service.";
};
extraPackages = mkOption {
default = [];
type = types.listOf types.package;
- example = lib.literalExample "[ pkgs.ipset ]";
+ example = lib.literalExpression "[ pkgs.ipset ]";
description = ''
Extra packages to be made available to the fail2ban service. The example contains
the packages needed by the `iptables-ipset-proto6` action.
@@ -202,7 +204,7 @@ in
jails = mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{ apache-nohome-iptables = '''
# Block an IP address if it accesses a non-existent
# home directory more than 5 times in 10 minutes,
diff --git a/nixos/modules/services/security/fprintd.nix b/nixos/modules/services/security/fprintd.nix
index fe0fba5b45d7..87c3f1f6f9e4 100644
--- a/nixos/modules/services/security/fprintd.nix
+++ b/nixos/modules/services/security/fprintd.nix
@@ -23,7 +23,7 @@ in
package = mkOption {
type = types.package;
default = fprintdPkg;
- defaultText = "if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd";
+ defaultText = literalExpression "if config.services.fprintd.tod.enable then pkgs.fprintd-tod else pkgs.fprintd";
description = ''
fprintd package to use.
'';
@@ -35,7 +35,7 @@ in
driver = mkOption {
type = types.package;
- example = literalExample "pkgs.libfprint-2-tod1-goodix";
+ example = literalExpression "pkgs.libfprint-2-tod1-goodix";
description = ''
Touch OEM Drivers (TOD) package to use.
'';
diff --git a/nixos/modules/services/security/haka.nix b/nixos/modules/services/security/haka.nix
index 618e689924fd..2cfc05f3033b 100644
--- a/nixos/modules/services/security/haka.nix
+++ b/nixos/modules/services/security/haka.nix
@@ -59,7 +59,7 @@ in
package = mkOption {
default = pkgs.haka;
- defaultText = "pkgs.haka";
+ defaultText = literalExpression "pkgs.haka";
type = types.package;
description = "
Which Haka derivation to use.
diff --git a/nixos/modules/services/security/hockeypuck.nix b/nixos/modules/services/security/hockeypuck.nix
index 2e98624bb2ee..d0e152934f50 100644
--- a/nixos/modules/services/security/hockeypuck.nix
+++ b/nixos/modules/services/security/hockeypuck.nix
@@ -18,7 +18,7 @@ in {
settings = lib.mkOption {
type = settingsFormat.type;
default = { };
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
hockeypuck = {
loglevel = "INFO";
diff --git a/nixos/modules/services/security/nginx-sso.nix b/nixos/modules/services/security/nginx-sso.nix
index 50d250fc4d76..b4de1d36edd8 100644
--- a/nixos/modules/services/security/nginx-sso.nix
+++ b/nixos/modules/services/security/nginx-sso.nix
@@ -13,7 +13,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.nginx-sso;
- defaultText = "pkgs.nginx-sso";
+ defaultText = literalExpression "pkgs.nginx-sso";
description = ''
The nginx-sso package that should be used.
'';
@@ -22,7 +22,7 @@ in {
configuration = mkOption {
type = types.attrsOf types.unspecified;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
listen = { addr = "127.0.0.1"; port = 8080; };
diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix
index e85fd4b75df4..4d3562424170 100644
--- a/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixos/modules/services/security/oauth2_proxy.nix
@@ -91,7 +91,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.oauth2-proxy;
- defaultText = "pkgs.oauth2-proxy";
+ defaultText = literalExpression "pkgs.oauth2-proxy";
description = ''
The package that provides oauth2-proxy.
'';
diff --git a/nixos/modules/services/security/privacyidea.nix b/nixos/modules/services/security/privacyidea.nix
index 5f894d0fa691..05f4995cc416 100644
--- a/nixos/modules/services/security/privacyidea.nix
+++ b/nixos/modules/services/security/privacyidea.nix
@@ -169,7 +169,6 @@ in
configFile = mkOption {
type = types.path;
- default = "";
description = ''
Path to PrivacyIDEA LDAP Proxy configuration (proxy.ini).
'';
@@ -273,7 +272,7 @@ in
(mkIf cfg.ldap-proxy.enable {
systemd.services.privacyidea-ldap-proxy = let
- ldap-proxy-env = pkgs.python2.withPackages (ps: [ ps.privacyidea-ldap-proxy ]);
+ ldap-proxy-env = pkgs.python3.withPackages (ps: [ ps.privacyidea-ldap-proxy ]);
in {
description = "privacyIDEA LDAP proxy";
wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/security/shibboleth-sp.nix b/nixos/modules/services/security/shibboleth-sp.nix
index 5908f727d535..fea2a855e20f 100644
--- a/nixos/modules/services/security/shibboleth-sp.nix
+++ b/nixos/modules/services/security/shibboleth-sp.nix
@@ -14,7 +14,7 @@ in {
configFile = mkOption {
type = types.path;
- example = "${pkgs.shibboleth-sp}/etc/shibboleth/shibboleth2.xml";
+ example = literalExpression ''"''${pkgs.shibboleth-sp}/etc/shibboleth/shibboleth2.xml"'';
description = "Path to shibboleth config file";
};
diff --git a/nixos/modules/services/security/sks.nix b/nixos/modules/services/security/sks.nix
index a91060dc659a..f4911597564b 100644
--- a/nixos/modules/services/security/sks.nix
+++ b/nixos/modules/services/security/sks.nix
@@ -23,7 +23,7 @@ in {
package = mkOption {
default = pkgs.sks;
- defaultText = "pkgs.sks";
+ defaultText = literalExpression "pkgs.sks";
type = types.package;
description = "Which SKS derivation to use.";
};
@@ -74,7 +74,7 @@ in {
webroot = mkOption {
type = types.nullOr types.path;
default = "${sksPkg.webSamples}/OpenPKG";
- defaultText = "\${pkgs.sks.webSamples}/OpenPKG";
+ defaultText = literalExpression ''"''${package.webSamples}/OpenPKG"'';
description = ''
Source directory (will be symlinked, if not null) for the files the
built-in webserver should serve. SKS (''${pkgs.sks.webSamples})
diff --git a/nixos/modules/services/security/step-ca.nix b/nixos/modules/services/security/step-ca.nix
index 64eee11f5880..db7f81acd2a3 100644
--- a/nixos/modules/services/security/step-ca.nix
+++ b/nixos/modules/services/security/step-ca.nix
@@ -13,6 +13,7 @@ in
package = lib.mkOption {
type = lib.types.package;
default = pkgs.step-ca;
+ defaultText = lib.literalExpression "pkgs.step-ca";
description = "Which step-ca package to use.";
};
address = lib.mkOption {
@@ -118,7 +119,7 @@ in
];
# ProtectProc = "invisible"; # not supported by upstream yet
- # ProcSubset = "pid"; # not supported by upstream upstream yet
+ # ProcSubset = "pid"; # not supported by upstream yet
# PrivateUsers = true; # doesn't work with privileged ports therefore not supported by upstream
DynamicUser = true;
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index 1e1f443905d4..c3e3248ee8ab 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -232,8 +232,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.tor;
- defaultText = "pkgs.tor";
- example = literalExample "pkgs.tor";
+ defaultText = literalExpression "pkgs.tor";
description = "Tor package to use.";
};
@@ -1013,6 +1012,7 @@ in
# Tor cannot currently bind privileged port when PrivateUsers=true,
# see https://gitlab.torproject.org/legacy/trac/-/issues/20930
PrivateUsers = !bindsPrivilegedPort;
+ ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
@@ -1020,6 +1020,7 @@ in
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
+ ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
diff --git a/nixos/modules/services/security/usbguard.nix b/nixos/modules/services/security/usbguard.nix
index 4cdb3a041b59..201b37f17ba5 100644
--- a/nixos/modules/services/security/usbguard.nix
+++ b/nixos/modules/services/security/usbguard.nix
@@ -44,7 +44,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.usbguard;
- defaultText = "pkgs.usbguard";
+ defaultText = literalExpression "pkgs.usbguard";
description = ''
The usbguard package to use. If you do not need the Qt GUI, use
pkgs.usbguard-nox to save disk space.
diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix
index 5a20f6413b1b..b0ade62d97c9 100644
--- a/nixos/modules/services/security/vault.nix
+++ b/nixos/modules/services/security/vault.nix
@@ -42,7 +42,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.vault;
- defaultText = "pkgs.vault";
+ defaultText = literalExpression "pkgs.vault";
description = "This option specifies the vault package to use.";
};
diff --git a/nixos/modules/services/security/vaultwarden/default.nix b/nixos/modules/services/security/vaultwarden/default.nix
index d28ea61e66aa..5b951bc85ec0 100644
--- a/nixos/modules/services/security/vaultwarden/default.nix
+++ b/nixos/modules/services/security/vaultwarden/default.nix
@@ -60,7 +60,7 @@ in {
config = mkOption {
type = attrsOf (nullOr (oneOf [ bool int str ]));
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
domain = "https://bw.domain.tld:8443";
signupsAllowed = true;
@@ -106,14 +106,14 @@ in {
package = mkOption {
type = package;
default = pkgs.vaultwarden;
- defaultText = "pkgs.vaultwarden";
+ defaultText = literalExpression "pkgs.vaultwarden";
description = "Vaultwarden package to use.";
};
webVaultPackage = mkOption {
type = package;
default = pkgs.vaultwarden-vault;
- defaultText = "pkgs.vaultwarden-vault";
+ defaultText = literalExpression "pkgs.vaultwarden-vault";
description = "Web vault package to use.";
};
};
diff --git a/nixos/modules/services/security/yubikey-agent.nix b/nixos/modules/services/security/yubikey-agent.nix
index 2972c64a3641..8be2457e1e2f 100644
--- a/nixos/modules/services/security/yubikey-agent.nix
+++ b/nixos/modules/services/security/yubikey-agent.nix
@@ -13,7 +13,7 @@ in
{
###### interface
- meta.maintainers = with maintainers; [ philandstuff rawkode ];
+ meta.maintainers = with maintainers; [ philandstuff rawkode jwoudenberg ];
options = {
@@ -33,7 +33,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.yubikey-agent;
- defaultText = "pkgs.yubikey-agent";
+ defaultText = literalExpression "pkgs.yubikey-agent";
description = ''
The package used for the yubikey-agent daemon.
'';
@@ -49,6 +49,12 @@ in
# yubikey-agent package
systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) {
path = [ pkgs.pinentry.${pinentryFlavor} ];
+ wantedBy = [
+ (if pinentryFlavor == "tty" || pinentryFlavor == "curses" then
+ "default.target"
+ else
+ "graphical-session.target")
+ ];
};
environment.extraInit = ''
diff --git a/nixos/modules/services/system/earlyoom.nix b/nixos/modules/services/system/earlyoom.nix
index e29bdbe264cc..452efc736439 100644
--- a/nixos/modules/services/system/earlyoom.nix
+++ b/nixos/modules/services/system/earlyoom.nix
@@ -106,6 +106,7 @@ in
path = optional ecfg.enableNotifications pkgs.dbus;
serviceConfig = {
StandardOutput = "null";
+ StandardError = "journal";
ExecStart = ''
${pkgs.earlyoom}/bin/earlyoom \
-m ${toString ecfg.freeMemThreshold} \
diff --git a/nixos/modules/services/system/kerberos/heimdal.nix b/nixos/modules/services/system/kerberos/heimdal.nix
index f0e56c7951a4..837c59caa562 100644
--- a/nixos/modules/services/system/kerberos/heimdal.nix
+++ b/nixos/modules/services/system/kerberos/heimdal.nix
@@ -27,7 +27,7 @@ in
{
# No documentation about correct triggers, so guessing at them.
- config = mkIf (cfg.enable && kerberos == pkgs.heimdalFull) {
+ config = mkIf (cfg.enable && kerberos == pkgs.heimdal) {
systemd.services.kadmind = {
description = "Kerberos Administration Daemon";
wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/system/localtime.nix b/nixos/modules/services/system/localtime.nix
index bb99e5e36ff8..8f23454af9df 100644
--- a/nixos/modules/services/system/localtime.nix
+++ b/nixos/modules/services/system/localtime.nix
@@ -37,7 +37,9 @@ in {
users.users.localtimed = {
description = "localtime daemon";
isSystemUser = true;
+ group = "localtimed";
};
+ users.groups.localtimed = {};
systemd.services.localtime = {
wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/system/saslauthd.nix b/nixos/modules/services/system/saslauthd.nix
index 8fcf4fb91fc4..466b0ca60a7e 100644
--- a/nixos/modules/services/system/saslauthd.nix
+++ b/nixos/modules/services/system/saslauthd.nix
@@ -20,7 +20,7 @@ in
package = mkOption {
default = pkgs.cyrus_sasl.bin;
- defaultText = "pkgs.cyrus_sasl.bin";
+ defaultText = literalExpression "pkgs.cyrus_sasl.bin";
type = types.package;
description = "Cyrus SASL package to use.";
};
diff --git a/nixos/modules/services/torrent/deluge.nix b/nixos/modules/services/torrent/deluge.nix
index 151a1dd638d1..cb0da9e83b42 100644
--- a/nixos/modules/services/torrent/deluge.nix
+++ b/nixos/modules/services/torrent/deluge.nix
@@ -50,7 +50,7 @@ in {
config = mkOption {
type = types.attrs;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
download_location = "/srv/torrents/";
max_upload_speed = "1000.0";
@@ -149,7 +149,7 @@ in {
package = mkOption {
type = types.package;
- example = literalExample "pkgs.deluge-2_x";
+ example = literalExpression "pkgs.deluge-2_x";
description = ''
Deluge package to use.
'';
diff --git a/nixos/modules/services/torrent/flexget.nix b/nixos/modules/services/torrent/flexget.nix
index 6ac85f8fa178..e500e02d861b 100644
--- a/nixos/modules/services/torrent/flexget.nix
+++ b/nixos/modules/services/torrent/flexget.nix
@@ -39,7 +39,7 @@ in {
systemScheduler = mkOption {
default = true;
- example = "false";
+ example = false;
type = types.bool;
description = "When true, execute the runs via the flexget-runner.timer. If false, you have to specify the settings yourself in the YML file.";
};
diff --git a/nixos/modules/services/torrent/magnetico.nix b/nixos/modules/services/torrent/magnetico.nix
index ada6f9b1e3a9..3dd7b1ece768 100644
--- a/nixos/modules/services/torrent/magnetico.nix
+++ b/nixos/modules/services/torrent/magnetico.nix
@@ -111,7 +111,7 @@ in {
web.credentials = mkOption {
type = types.attrsOf types.str;
default = {};
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
myuser = "$2y$12$YE01LZ8jrbQbx6c0s2hdZO71dSjn2p/O9XsYJpz.5968yCysUgiaG";
}
diff --git a/nixos/modules/services/torrent/opentracker.nix b/nixos/modules/services/torrent/opentracker.nix
index 74f443381d92..d76d61dfe859 100644
--- a/nixos/modules/services/torrent/opentracker.nix
+++ b/nixos/modules/services/torrent/opentracker.nix
@@ -13,7 +13,7 @@ in {
opentracker package to use
'';
default = pkgs.opentracker;
- defaultText = "pkgs.opentracker";
+ defaultText = literalExpression "pkgs.opentracker";
};
extraOptions = mkOption {
diff --git a/nixos/modules/services/torrent/rtorrent.nix b/nixos/modules/services/torrent/rtorrent.nix
index be57c03b1721..dd7df623c739 100644
--- a/nixos/modules/services/torrent/rtorrent.nix
+++ b/nixos/modules/services/torrent/rtorrent.nix
@@ -45,7 +45,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.rtorrent;
- defaultText = "pkgs.rtorrent";
+ defaultText = literalExpression "pkgs.rtorrent";
description = ''
The rtorrent package to use.
'';
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 34a5219c9594..a6ff467914a1 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -7,15 +7,20 @@ let
inherit (config.environment) etc;
apparmor = config.security.apparmor;
rootDir = "/run/transmission";
- homeDir = "/var/lib/transmission";
settingsDir = ".config/transmission-daemon";
downloadsDir = "Downloads";
incompleteDir = ".incomplete";
watchDir = "watchdir";
- # TODO: switch to configGen.json once RFC0042 is implemented
- settingsFile = pkgs.writeText "settings.json" (builtins.toJSON cfg.settings);
+ settingsFormat = pkgs.formats.json {};
+ settingsFile = settingsFormat.generate "settings.json" cfg.settings;
in
{
+ imports = [
+ (mkRenamedOptionModule ["services" "transmission" "port"]
+ ["services" "transmission" "settings" "rpc-port"])
+ (mkAliasOptionModule ["services" "transmission" "openFirewall"]
+ ["services" "transmission" "openPeerPorts"])
+ ];
options = {
services.transmission = {
enable = mkEnableOption ''the headless Transmission BitTorrent daemon.
@@ -24,48 +29,141 @@ in
transmission-remote, the WebUI (http://127.0.0.1:9091/ by default),
or other clients like stig or tremc.
- Torrents are downloaded to ${homeDir}/${downloadsDir} by default and are
+ Torrents are downloaded to /${downloadsDir} by default and are
accessible to users in the "transmission" group'';
- settings = mkOption rec {
- # TODO: switch to types.config.json as prescribed by RFC0042 once it's implemented
- type = types.attrs;
- apply = recursiveUpdate default;
- default =
- {
- download-dir = "${cfg.home}/${downloadsDir}";
- incomplete-dir = "${cfg.home}/${incompleteDir}";
- incomplete-dir-enabled = true;
- watch-dir = "${cfg.home}/${watchDir}";
- watch-dir-enabled = false;
- message-level = 1;
- peer-port = 51413;
- peer-port-random-high = 65535;
- peer-port-random-low = 49152;
- peer-port-random-on-start = false;
- rpc-bind-address = "127.0.0.1";
- rpc-port = 9091;
- script-torrent-done-enabled = false;
- script-torrent-done-filename = "";
- umask = 2; # 0o002 in decimal as expected by Transmission
- utp-enabled = true;
- };
- example =
- {
- download-dir = "/srv/torrents/";
- incomplete-dir = "/srv/torrents/.incomplete/";
- incomplete-dir-enabled = true;
- rpc-whitelist = "127.0.0.1,192.168.*.*";
- };
+ settings = mkOption {
description = ''
- Attribute set whose fields overwrites fields in
+ Settings whose options overwrite fields in
.config/transmission-daemon/settings.json
- (each time the service starts). String values must be quoted, integer and
- boolean values must not.
+ (each time the service starts).
See Transmission's Wiki
- for documentation.
+ for documentation of settings not explicitely covered by this module.
'';
+ default = {};
+ type = types.submodule {
+ freeformType = settingsFormat.type;
+ options.download-dir = mkOption {
+ type = types.path;
+ default = "${cfg.home}/${downloadsDir}";
+ description = "Directory where to download torrents.";
+ };
+ options.incomplete-dir = mkOption {
+ type = types.path;
+ default = "${cfg.home}/${incompleteDir}";
+ description = ''
+ When enabled with
+ services.transmission.home
+ ,
+ new torrents will download the files to this directory.
+ When complete, the files will be moved to download-dir
+ .
+ '';
+ };
+ options.incomplete-dir-enabled = mkOption {
+ type = types.bool;
+ default = true;
+ description = "";
+ };
+ options.message-level = mkOption {
+ type = types.ints.between 0 2;
+ default = 2;
+ description = "Set verbosity of transmission messages.";
+ };
+ options.peer-port = mkOption {
+ type = types.port;
+ default = 51413;
+ description = "The peer port to listen for incoming connections.";
+ };
+ options.peer-port-random-high = mkOption {
+ type = types.port;
+ default = 65535;
+ description = ''
+ The maximum peer port to listen to for incoming connections
+ when is enabled.
+ '';
+ };
+ options.peer-port-random-low = mkOption {
+ type = types.port;
+ default = 65535;
+ description = ''
+ The minimal peer port to listen to for incoming connections
+ when is enabled.
+ '';
+ };
+ options.peer-port-random-on-start = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Randomize the peer port.";
+ };
+ options.rpc-bind-address = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ example = "0.0.0.0";
+ description = ''
+ Where to listen for RPC connections.
+ Use \"0.0.0.0\" to listen on all interfaces.
+ '';
+ };
+ options.rpc-port = mkOption {
+ type = types.port;
+ default = 9091;
+ description = "The RPC port to listen to.";
+ };
+ options.script-torrent-done-enabled = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to run
+
+ at torrent completion.
+ '';
+ };
+ options.script-torrent-done-filename = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = "Executable to be run at torrent completion.";
+ };
+ options.umask = mkOption {
+ type = types.int;
+ default = 2;
+ description = ''
+ Sets transmission's file mode creation mask.
+ See the umask(2) manpage for more information.
+ Users who want their saved torrents to be world-writable
+ may want to set this value to 0.
+ Bear in mind that the json markup language only accepts numbers in base 10,
+ so the standard umask(2) octal notation "022" is written in settings.json as 18.
+ '';
+ };
+ options.utp-enabled = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to enable Micro Transport Protocol (µTP).
+ '';
+ };
+ options.watch-dir = mkOption {
+ type = types.path;
+ default = "${cfg.home}/${watchDir}";
+ description = "Watch a directory for torrent files and add them to transmission.";
+ };
+ options.watch-dir-enabled = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''Whether to enable the
+ .
+ '';
+ };
+ options.trash-original-torrent-files = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''Whether to delete torrents added from the
+ .
+ '';
+ };
+ };
};
downloadDirPermissions = mkOption {
@@ -74,31 +172,22 @@ in
example = "775";
description = ''
The permissions set by systemd.activationScripts.transmission-daemon
- on the directories settings.download-dir
- and settings.incomplete-dir.
+ on the directories
+ and .
Note that you may also want to change
- settings.umask.
- '';
- };
-
- port = mkOption {
- type = types.port;
- description = ''
- TCP port number to run the RPC/web interface.
-
- If instead you want to change the peer port,
- use settings.peer-port
- or settings.peer-port-random-on-start.
+ .
'';
};
home = mkOption {
type = types.path;
- default = homeDir;
+ default = "/var/lib/transmission";
description = ''
The directory where Transmission will create ${settingsDir}.
- as well as ${downloadsDir}/ unless settings.download-dir is changed,
- and ${incompleteDir}/ unless settings.incomplete-dir is changed.
+ as well as ${downloadsDir}/ unless
+ is changed,
+ and ${incompleteDir}/ unless
+ is changed.
'';
};
@@ -119,19 +208,30 @@ in
description = ''
Path to a JSON file to be merged with the settings.
Useful to merge a file which is better kept out of the Nix store
- because it contains sensible data like settings.rpc-password.
+ to set secret config parameters like rpc-password.
'';
default = "/dev/null";
example = "/var/lib/secrets/transmission/settings.json";
};
- openFirewall = mkEnableOption "opening of the peer port(s) in the firewall";
+ extraFlags = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ example = [ "--log-debug" ];
+ description = ''
+ Extra flags passed to the transmission command in the service definition.
+ '';
+ };
+
+ openPeerPorts = mkEnableOption "opening of the peer port(s) in the firewall";
+
+ openRPCPort = mkEnableOption "opening of the RPC port in the firewall";
performanceNetParameters = mkEnableOption ''tweaking of kernel parameters
to open many more connections at the same time.
Note that you may also want to increase
- settings.peer-limit-global.
+ peer-limit-global".
And be aware that these settings are quite aggressive
and might not suite your regular desktop use.
For instance, SSH sessions may time out more easily'';
@@ -152,36 +252,10 @@ in
install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.download-dir}'
'' + optionalString cfg.settings.incomplete-dir-enabled ''
install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.incomplete-dir}'
+ '' + optionalString cfg.settings.watch-dir-enabled ''
+ install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.watch-dir}'
'';
- assertions = [
- { assertion = builtins.match "^/.*" cfg.home != null;
- message = "`services.transmission.home' must be an absolute path.";
- }
- { assertion = types.path.check cfg.settings.download-dir;
- message = "`services.transmission.settings.download-dir' must be an absolute path.";
- }
- { assertion = types.path.check cfg.settings.incomplete-dir;
- message = "`services.transmission.settings.incomplete-dir' must be an absolute path.";
- }
- { assertion = types.path.check cfg.settings.watch-dir;
- message = "`services.transmission.settings.watch-dir' must be an absolute path.";
- }
- { assertion = cfg.settings.script-torrent-done-filename == "" || types.path.check cfg.settings.script-torrent-done-filename;
- message = "`services.transmission.settings.script-torrent-done-filename' must be an absolute path.";
- }
- { assertion = types.port.check cfg.settings.rpc-port;
- message = "${toString cfg.settings.rpc-port} is not a valid port number for `services.transmission.settings.rpc-port`.";
- }
- # In case both port and settings.rpc-port are explicitely defined: they must be the same.
- { assertion = !options.services.transmission.port.isDefined || cfg.port == cfg.settings.rpc-port;
- message = "`services.transmission.port' is not equal to `services.transmission.settings.rpc-port'";
- }
- ];
-
- services.transmission.settings =
- optionalAttrs options.services.transmission.port.isDefined { rpc-port = cfg.port; };
-
systemd.services.transmission = {
description = "Transmission BitTorrent Service";
after = [ "network.target" ] ++ optional apparmor.enable "apparmor.service";
@@ -197,15 +271,13 @@ in
install -D -m 600 -o '${cfg.user}' -g '${cfg.group}' /dev/stdin \
'${cfg.home}/${settingsDir}/settings.json'
'')];
- ExecStart="${pkgs.transmission}/bin/transmission-daemon -f -g ${cfg.home}/${settingsDir}";
+ ExecStart="${pkgs.transmission}/bin/transmission-daemon -f -g ${cfg.home}/${settingsDir} ${escapeShellArgs cfg.extraFlags}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
User = cfg.user;
Group = cfg.group;
# Create rootDir in the host's mount namespace.
RuntimeDirectory = [(baseNameOf rootDir)];
RuntimeDirectoryMode = "755";
- # Avoid mounting rootDir in the own rootDir of ExecStart='s mount namespace.
- InaccessiblePaths = ["-+${rootDir}"];
# This is for BindPaths= and BindReadOnlyPaths=
# to allow traversal of directories they create in RootDirectory=.
UMask = "0066";
@@ -226,11 +298,9 @@ in
cfg.settings.download-dir
] ++
optional cfg.settings.incomplete-dir-enabled
- cfg.settings.incomplete-dir
- ++
- optional cfg.settings.watch-dir-enabled
- cfg.settings.watch-dir
- ;
+ cfg.settings.incomplete-dir ++
+ optional (cfg.settings.watch-dir-enabled && cfg.settings.trash-original-torrent-files)
+ cfg.settings.watch-dir;
BindReadOnlyPaths = [
# No confinement done of /nix/store here like in systemd-confinement.nix,
# an AppArmor profile is provided to get a confinement based upon paths and rights.
@@ -239,8 +309,10 @@ in
"/run"
] ++
optional (cfg.settings.script-torrent-done-enabled &&
- cfg.settings.script-torrent-done-filename != "")
- cfg.settings.script-torrent-done-filename;
+ cfg.settings.script-torrent-done-filename != null)
+ cfg.settings.script-torrent-done-filename ++
+ optional (cfg.settings.watch-dir-enabled && !cfg.settings.trash-original-torrent-files)
+ cfg.settings.watch-dir;
# The following options are only for optimizing:
# systemd-analyze security transmission
AmbientCapabilities = "";
@@ -285,7 +357,6 @@ in
"quotactl"
];
SystemCallArchitectures = "native";
- SystemCallErrorNumber = "EPERM";
};
};
@@ -307,25 +378,28 @@ in
};
});
- networking.firewall = mkIf cfg.openFirewall (
- if cfg.settings.peer-port-random-on-start
- then
- { allowedTCPPortRanges =
- [ { from = cfg.settings.peer-port-random-low;
- to = cfg.settings.peer-port-random-high;
- }
- ];
- allowedUDPPortRanges =
- [ { from = cfg.settings.peer-port-random-low;
- to = cfg.settings.peer-port-random-high;
- }
- ];
- }
- else
- { allowedTCPPorts = [ cfg.settings.peer-port ];
- allowedUDPPorts = [ cfg.settings.peer-port ];
- }
- );
+ networking.firewall = mkMerge [
+ (mkIf cfg.openPeerPorts (
+ if cfg.settings.peer-port-random-on-start
+ then
+ { allowedTCPPortRanges =
+ [ { from = cfg.settings.peer-port-random-low;
+ to = cfg.settings.peer-port-random-high;
+ }
+ ];
+ allowedUDPPortRanges =
+ [ { from = cfg.settings.peer-port-random-low;
+ to = cfg.settings.peer-port-random-high;
+ }
+ ];
+ }
+ else
+ { allowedTCPPorts = [ cfg.settings.peer-port ];
+ allowedUDPPorts = [ cfg.settings.peer-port ];
+ }
+ ))
+ (mkIf cfg.openRPCPort { allowedTCPPorts = [ cfg.settings.rpc-port ]; })
+ ];
boot.kernel.sysctl = mkMerge [
# Transmission uses a single UDP socket in order to implement multiple uTP sockets,
@@ -340,21 +414,21 @@ in
# Increase the number of available source (local) TCP and UDP ports to 49151.
# Usual default is 32768 60999, ie. 28231 ports.
# Find out your current usage with: ss -s
- "net.ipv4.ip_local_port_range" = "16384 65535";
+ "net.ipv4.ip_local_port_range" = mkDefault "16384 65535";
# Timeout faster generic TCP states.
# Usual default is 600.
# Find out your current usage with: watch -n 1 netstat -nptuo
- "net.netfilter.nf_conntrack_generic_timeout" = 60;
+ "net.netfilter.nf_conntrack_generic_timeout" = mkDefault 60;
# Timeout faster established but inactive connections.
# Usual default is 432000.
- "net.netfilter.nf_conntrack_tcp_timeout_established" = 600;
+ "net.netfilter.nf_conntrack_tcp_timeout_established" = mkDefault 600;
# Clear immediately TCP states after timeout.
# Usual default is 120.
- "net.netfilter.nf_conntrack_tcp_timeout_time_wait" = 1;
+ "net.netfilter.nf_conntrack_tcp_timeout_time_wait" = mkDefault 1;
# Increase the number of trackable connections.
# Usual default is 262144.
# Find out your current usage with: conntrack -C
- "net.netfilter.nf_conntrack_max" = 1048576;
+ "net.netfilter.nf_conntrack_max" = mkDefault 1048576;
})
];
@@ -370,7 +444,7 @@ in
rw ${cfg.settings.incomplete-dir}/**,
''}
${optionalString cfg.settings.watch-dir-enabled ''
- rw ${cfg.settings.watch-dir}/**,
+ r${optionalString cfg.settings.trash-original-torrent-files "w"} ${cfg.settings.watch-dir}/**,
''}
profile dirs {
rw ${cfg.settings.download-dir}/**,
@@ -378,12 +452,12 @@ in
rw ${cfg.settings.incomplete-dir}/**,
''}
${optionalString cfg.settings.watch-dir-enabled ''
- rw ${cfg.settings.watch-dir}/**,
+ r${optionalString cfg.settings.trash-original-torrent-files "w"} ${cfg.settings.watch-dir}/**,
''}
}
${optionalString (cfg.settings.script-torrent-done-enabled &&
- cfg.settings.script-torrent-done-filename != "") ''
+ cfg.settings.script-torrent-done-filename != null) ''
# Stack transmission_directories profile on top of
# any existing profile for script-torrent-done-filename
# FIXME: to be tested as I'm not sure it works well with NoNewPrivileges=
diff --git a/nixos/modules/services/ttys/getty.nix b/nixos/modules/services/ttys/getty.nix
index 7cf2ff87da26..8c5b6e5e0cbc 100644
--- a/nixos/modules/services/ttys/getty.nix
+++ b/nixos/modules/services/ttys/getty.nix
@@ -42,6 +42,7 @@ in
loginProgram = mkOption {
type = types.path;
default = "${pkgs.shadow}/bin/login";
+ defaultText = literalExpression ''"''${pkgs.shadow}/bin/login"'';
description = ''
Path to the login binary executed by agetty.
'';
@@ -131,6 +132,14 @@ in
restartIfChanged = false;
};
+ systemd.services."autovt@" =
+ { serviceConfig.ExecStart = [
+ "" # override upstream default with an empty ExecStart
+ (gettyCmd "--noclear %I $TERM")
+ ];
+ restartIfChanged = false;
+ };
+
systemd.services."container-getty@" =
{ serviceConfig.ExecStart = [
"" # override upstream default with an empty ExecStart
diff --git a/nixos/modules/services/video/epgstation/default.nix b/nixos/modules/services/video/epgstation/default.nix
index b13393c8983a..36f7b937d5ac 100644
--- a/nixos/modules/services/video/epgstation/default.nix
+++ b/nixos/modules/services/video/epgstation/default.nix
@@ -33,7 +33,7 @@ let
fi
'';
- streamingConfig = builtins.fromJSON (builtins.readFile ./streaming.json);
+ streamingConfig = lib.importJSON ./streaming.json;
logConfig = {
appenders.stdout.type = "stdout";
categories = {
@@ -126,6 +126,7 @@ in
passwordFile = mkOption {
type = types.path;
default = pkgs.writeText "epgstation-password" defaultPassword;
+ defaultText = literalDocBook ''a file containing ${defaultPassword}'';
example = "/run/keys/epgstation-password";
description = ''
A file containing the password for .
@@ -145,6 +146,7 @@ in
passwordFile = mkOption {
type = types.path;
default = pkgs.writeText "epgstation-db-password" defaultPassword;
+ defaultText = literalDocBook ''a file containing ${defaultPassword}'';
example = "/run/keys/epgstation-db-password";
description = ''
A file containing the password for the database named
@@ -189,14 +191,33 @@ in
type = with types; listOf attrs;
description = "Encoding presets for recorded videos.";
default = [
- { name = "H264";
+ {
+ name = "H264";
cmd = "${pkgs.epgstation}/libexec/enc.sh main";
suffix = ".mp4";
- default = true; }
- { name = "H264-sub";
+ default = true;
+ }
+ {
+ name = "H264-sub";
cmd = "${pkgs.epgstation}/libexec/enc.sh sub";
- suffix = "-sub.mp4"; }
+ suffix = "-sub.mp4";
+ }
];
+ defaultText = literalExpression ''
+ [
+ {
+ name = "H264";
+ cmd = "''${pkgs.epgstation}/libexec/enc.sh main";
+ suffix = ".mp4";
+ default = true;
+ }
+ {
+ name = "H264-sub";
+ cmd = "''${pkgs.epgstation}/libexec/enc.sh sub";
+ suffix = "-sub.mp4";
+ }
+ ]
+ '';
};
};
};
diff --git a/nixos/modules/services/video/mirakurun.nix b/nixos/modules/services/video/mirakurun.nix
index 1a99d1c97692..16efb56cfd61 100644
--- a/nixos/modules/services/video/mirakurun.nix
+++ b/nixos/modules/services/video/mirakurun.nix
@@ -72,7 +72,7 @@ in
serverSettings = mkOption {
type = settingsFmt.type;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
highWaterMark = 25165824;
overflowTimeLimit = 30000;
@@ -89,7 +89,7 @@ in
tunerSettings = mkOption {
type = with types; nullOr settingsFmt.type;
default = null;
- example = literalExample ''
+ example = literalExpression ''
[
{
name = "tuner-name";
@@ -110,7 +110,7 @@ in
channelSettings = mkOption {
type = with types; nullOr settingsFmt.type;
default = null;
- example = literalExample ''
+ example = literalExpression ''
[
{
name = "channel";
diff --git a/nixos/modules/services/video/replay-sorcery.nix b/nixos/modules/services/video/replay-sorcery.nix
index 7ce5be8a5a1c..abe7202a4a86 100644
--- a/nixos/modules/services/video/replay-sorcery.nix
+++ b/nixos/modules/services/video/replay-sorcery.nix
@@ -26,7 +26,7 @@ in
type = attrsOf (oneOf [ str int ]);
default = {};
description = "System-wide configuration for ReplaySorcery (/etc/replay-sorcery.conf).";
- example = literalExample ''
+ example = literalExpression ''
{
videoInput = "hwaccel"; # requires `services.replay-sorcery.enableSysAdminCapability = true`
videoFramerate = 60;
diff --git a/nixos/modules/services/video/unifi-video.nix b/nixos/modules/services/video/unifi-video.nix
index d4c0268ed66c..17971b23db82 100644
--- a/nixos/modules/services/video/unifi-video.nix
+++ b/nixos/modules/services/video/unifi-video.nix
@@ -104,7 +104,7 @@ in
jrePackage = mkOption {
type = types.package;
default = pkgs.jre8;
- defaultText = "pkgs.jre8";
+ defaultText = literalExpression "pkgs.jre8";
description = ''
The JRE package to use. Check the release notes to ensure it is supported.
'';
@@ -113,7 +113,7 @@ in
unifiVideoPackage = mkOption {
type = types.package;
default = pkgs.unifi-video;
- defaultText = "pkgs.unifi-video";
+ defaultText = literalExpression "pkgs.unifi-video";
description = ''
The unifi-video package to use.
'';
@@ -122,7 +122,7 @@ in
mongodbPackage = mkOption {
type = types.package;
default = pkgs.mongodb-4_0;
- defaultText = "pkgs.mongodb";
+ defaultText = literalExpression "pkgs.mongodb";
description = ''
The mongodb package to use.
'';
diff --git a/nixos/modules/services/wayland/cage.nix b/nixos/modules/services/wayland/cage.nix
index bd97a674eb86..273693a3b2fe 100644
--- a/nixos/modules/services/wayland/cage.nix
+++ b/nixos/modules/services/wayland/cage.nix
@@ -18,7 +18,7 @@ in {
options.services.cage.extraArguments = mkOption {
type = types.listOf types.str;
default = [];
- defaultText = "[]";
+ defaultText = literalExpression "[]";
description = "Additional command line arguments to pass to Cage.";
example = ["-d"];
};
@@ -26,6 +26,7 @@ in {
options.services.cage.program = mkOption {
type = types.path;
default = "${pkgs.xterm}/bin/xterm";
+ defaultText = literalExpression ''"''${pkgs.xterm}/bin/xterm"'';
description = ''
Program to run in cage.
'';
diff --git a/nixos/modules/services/web-apps/atlassian/confluence.nix b/nixos/modules/services/web-apps/atlassian/confluence.nix
index 59185fdbd36f..2d809c17ff09 100644
--- a/nixos/modules/services/web-apps/atlassian/confluence.nix
+++ b/nixos/modules/services/web-apps/atlassian/confluence.nix
@@ -128,14 +128,14 @@ in
package = mkOption {
type = types.package;
default = pkgs.atlassian-confluence;
- defaultText = "pkgs.atlassian-confluence";
+ defaultText = literalExpression "pkgs.atlassian-confluence";
description = "Atlassian Confluence package to use.";
};
jrePackage = mkOption {
type = types.package;
default = pkgs.oraclejre8;
- defaultText = "pkgs.oraclejre8";
+ defaultText = literalExpression "pkgs.oraclejre8";
description = "Note that Atlassian only support the Oracle JRE (JRASERVER-46152).";
};
};
diff --git a/nixos/modules/services/web-apps/atlassian/crowd.nix b/nixos/modules/services/web-apps/atlassian/crowd.nix
index ceab656b15e8..a8b2482d5a9c 100644
--- a/nixos/modules/services/web-apps/atlassian/crowd.nix
+++ b/nixos/modules/services/web-apps/atlassian/crowd.nix
@@ -96,14 +96,14 @@ in
package = mkOption {
type = types.package;
default = pkgs.atlassian-crowd;
- defaultText = "pkgs.atlassian-crowd";
+ defaultText = literalExpression "pkgs.atlassian-crowd";
description = "Atlassian Crowd package to use.";
};
jrePackage = mkOption {
type = types.package;
default = pkgs.oraclejre8;
- defaultText = "pkgs.oraclejre8";
+ defaultText = literalExpression "pkgs.oraclejre8";
description = "Note that Atlassian only support the Oracle JRE (JRASERVER-46152).";
};
};
diff --git a/nixos/modules/services/web-apps/atlassian/jira.nix b/nixos/modules/services/web-apps/atlassian/jira.nix
index ce04982e8a9e..d7a26838d6f8 100644
--- a/nixos/modules/services/web-apps/atlassian/jira.nix
+++ b/nixos/modules/services/web-apps/atlassian/jira.nix
@@ -134,14 +134,14 @@ in
package = mkOption {
type = types.package;
default = pkgs.atlassian-jira;
- defaultText = "pkgs.atlassian-jira";
+ defaultText = literalExpression "pkgs.atlassian-jira";
description = "Atlassian JIRA package to use.";
};
jrePackage = mkOption {
type = types.package;
default = pkgs.oraclejre8;
- defaultText = "pkgs.oraclejre8";
+ defaultText = literalExpression "pkgs.oraclejre8";
description = "Note that Atlassian only support the Oracle JRE (JRASERVER-46152).";
};
};
diff --git a/nixos/modules/services/web-apps/bookstack.nix b/nixos/modules/services/web-apps/bookstack.nix
index 34a31af9c9da..54c491f8b176 100644
--- a/nixos/modules/services/web-apps/bookstack.nix
+++ b/nixos/modules/services/web-apps/bookstack.nix
@@ -91,7 +91,7 @@ in {
user = mkOption {
type = types.str;
default = user;
- defaultText = "\${user}";
+ defaultText = literalExpression "user";
description = "Database username.";
};
passwordFile = mkOption {
@@ -187,14 +187,16 @@ in {
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
);
default = {};
- example = {
- serverAliases = [
- "bookstack.\${config.networking.domain}"
- ];
- # To enable encryption and let let's encrypt take care of certificate
- forceSSL = true;
- enableACME = true;
- };
+ example = literalExpression ''
+ {
+ serverAliases = [
+ "bookstack.''${config.networking.domain}"
+ ];
+ # To enable encryption and let let's encrypt take care of certificate
+ forceSSL = true;
+ enableACME = true;
+ }
+ '';
description = ''
With this option, you can customize the nginx virtualHost settings.
'';
@@ -219,7 +221,7 @@ in {
assertions = [
{ assertion = db.createLocally -> db.user == user;
- message = "services.bookstack.database.user must be set to ${user} if services.mediawiki.database.createLocally is set true.";
+ message = "services.bookstack.database.user must be set to ${user} if services.bookstack.database.createLocally is set true.";
}
{ assertion = db.createLocally -> db.passwordFile == null;
message = "services.bookstack.database.passwordFile cannot be specified if services.bookstack.database.createLocally is set to true.";
diff --git a/nixos/modules/services/web-apps/code-server.nix b/nixos/modules/services/web-apps/code-server.nix
new file mode 100644
index 000000000000..474e9140ae87
--- /dev/null
+++ b/nixos/modules/services/web-apps/code-server.nix
@@ -0,0 +1,139 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+
+ cfg = config.services.code-server;
+ defaultUser = "code-server";
+ defaultGroup = defaultUser;
+
+in {
+ ###### interface
+ options = {
+ services.code-server = {
+ enable = mkEnableOption "code-server";
+
+ package = mkOption {
+ default = pkgs.code-server;
+ defaultText = "pkgs.code-server";
+ description = "Which code-server derivation to use.";
+ type = types.package;
+ };
+
+ extraPackages = mkOption {
+ default = [ ];
+ description = "Packages that are available in the PATH of code-server.";
+ example = "[ pkgs.go ]";
+ type = types.listOf types.package;
+ };
+
+ extraEnvironment = mkOption {
+ type = types.attrsOf types.str;
+ description =
+ "Additional environment variables to passed to code-server.";
+ default = { };
+ example = { PKG_CONFIG_PATH = "/run/current-system/sw/lib/pkgconfig"; };
+ };
+
+ extraArguments = mkOption {
+ default = [ "--disable-telemetry" ];
+ description = "Additional arguments that passed to code-server";
+ example = ''[ "--verbose" ]'';
+ type = types.listOf types.str;
+ };
+
+ host = mkOption {
+ default = "127.0.0.1";
+ description = "The host-ip to bind to.";
+ type = types.str;
+ };
+
+ port = mkOption {
+ default = 4444;
+ description = "The port where code-server runs.";
+ type = types.port;
+ };
+
+ auth = mkOption {
+ default = "password";
+ description = "The type of authentication to use.";
+ type = types.enum [ "none" "password" ];
+ };
+
+ hashedPassword = mkOption {
+ default = "";
+ description =
+ "Create the password with: 'echo -n 'thisismypassword' | npx argon2-cli -e'.";
+ type = types.str;
+ };
+
+ user = mkOption {
+ default = defaultUser;
+ example = "yourUser";
+ description = ''
+ The user to run code-server as.
+ By default, a user named ${defaultUser} will be created.
+ '';
+ type = types.str;
+ };
+
+ group = mkOption {
+ default = defaultGroup;
+ example = "yourGroup";
+ description = ''
+ The group to run code-server under.
+ By default, a group named ${defaultGroup} will be created.
+ '';
+ type = types.str;
+ };
+
+ extraGroups = mkOption {
+ default = [ ];
+ description =
+ "An array of additional groups for the ${defaultUser} user.";
+ example = [ "docker" ];
+ type = types.listOf types.str;
+ };
+
+ };
+ };
+
+ ###### implementation
+ config = mkIf cfg.enable {
+ systemd.services.code-server = {
+ description = "VSCode server";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network-online.target" ];
+ path = cfg.extraPackages;
+ environment = {
+ HASHED_PASSWORD = cfg.hashedPassword;
+ } // cfg.extraEnvironment;
+ serviceConfig = {
+ ExecStart = "${cfg.package}/bin/code-server --bind-addr ${cfg.host}:${toString cfg.port} --auth ${cfg.auth} " + builtins.concatStringsSep " " cfg.extraArguments;
+ ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+ RuntimeDirectory = cfg.user;
+ User = cfg.user;
+ Group = cfg.group;
+ Restart = "on-failure";
+ };
+
+ };
+
+ users.users."${cfg.user}" = mkMerge [
+ (mkIf (cfg.user == defaultUser) {
+ isNormalUser = true;
+ description = "code-server user";
+ inherit (cfg) group;
+ })
+ {
+ packages = cfg.extraPackages;
+ inherit (cfg) extraGroups;
+ }
+ ];
+
+ users.groups."${defaultGroup}" = mkIf (cfg.group == defaultGroup) { };
+
+ };
+
+ meta.maintainers = with maintainers; [ stackshadow ];
+}
diff --git a/nixos/modules/services/web-apps/cryptpad.nix b/nixos/modules/services/web-apps/cryptpad.nix
index 69a89107d310..e6772de768e0 100644
--- a/nixos/modules/services/web-apps/cryptpad.nix
+++ b/nixos/modules/services/web-apps/cryptpad.nix
@@ -11,7 +11,7 @@ in
package = mkOption {
default = pkgs.cryptpad;
- defaultText = "pkgs.cryptpad";
+ defaultText = literalExpression "pkgs.cryptpad";
type = types.package;
description = "
Cryptpad package to use.
@@ -21,7 +21,7 @@ in
configFile = mkOption {
type = types.path;
default = "${cfg.package}/lib/node_modules/cryptpad/config/config.example.js";
- defaultText = "\${cfg.package}/lib/node_modules/cryptpad/config/config.example.js";
+ defaultText = literalExpression ''"''${package}/lib/node_modules/cryptpad/config/config.example.js"'';
description = ''
Path to the JavaScript configuration file.
diff --git a/nixos/modules/services/web-apps/dex.nix b/nixos/modules/services/web-apps/dex.nix
new file mode 100644
index 000000000000..f08dd65bdb0f
--- /dev/null
+++ b/nixos/modules/services/web-apps/dex.nix
@@ -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 = literalExpression ''
+ {
+ # 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
+ the example configuration.
+ '';
+ };
+ };
+
+ 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";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix
index 050e4ee3d329..c4fb7e2b316f 100644
--- a/nixos/modules/services/web-apps/discourse.nix
+++ b/nixos/modules/services/web-apps/discourse.nix
@@ -33,7 +33,7 @@ in
apply = p: p.override {
plugins = lib.unique (p.enabledPlugins ++ cfg.plugins);
};
- defaultText = "pkgs.discourse";
+ defaultText = lib.literalExpression "pkgs.discourse";
description = ''
The discourse package to use.
'';
@@ -45,7 +45,7 @@ in
config.networking.fqdn
else
config.networking.hostName;
- defaultText = "config.networking.fqdn";
+ defaultText = lib.literalExpression "config.networking.fqdn";
example = "discourse.example.com";
description = ''
The hostname to serve Discourse on.
@@ -99,7 +99,10 @@ in
enableACME = lib.mkOption {
type = lib.types.bool;
default = cfg.sslCertificate == null && cfg.sslCertificateKey == null;
- defaultText = "true, unless services.discourse.sslCertificate and services.discourse.sslCertificateKey are set.";
+ defaultText = lib.literalDocBook ''
+ true, unless
+ and are set.
+ '';
description = ''
Whether an ACME certificate should be used to secure
connections to the server.
@@ -109,7 +112,7 @@ in
backendSettings = lib.mkOption {
type = with lib.types; attrsOf (nullOr (oneOf [ str int bool float ]));
default = {};
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
max_reqs_per_ip_per_minute = 300;
max_reqs_per_ip_per_10_seconds = 60;
@@ -134,7 +137,7 @@ in
siteSettings = lib.mkOption {
type = json.type;
default = {};
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
required = {
title = "My Cats";
@@ -172,6 +175,15 @@ in
};
admin = {
+ skipCreate = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = ''
+ Do not create the admin account, instead rely on other
+ existing admin accounts.
+ '';
+ };
+
email = lib.mkOption {
type = lib.types.str;
example = "admin@example.com";
@@ -325,10 +337,8 @@ in
notificationEmailAddress = lib.mkOption {
type = lib.types.str;
default = "${if cfg.mail.incoming.enable then "notifications" else "noreply"}@${cfg.hostname}";
- defaultText = ''
- "notifications@`config.services.discourse.hostname`" if
- config.services.discourse.mail.incoming.enable is "true",
- otherwise "noreply`config.services.discourse.hostname`"
+ defaultText = lib.literalExpression ''
+ "''${if config.services.discourse.mail.incoming.enable then "notifications" else "noreply"}@''${config.services.discourse.hostname}"
'';
description = ''
The from: email address used when
@@ -439,7 +449,7 @@ in
replyEmailAddress = lib.mkOption {
type = lib.types.str;
default = "%{reply_key}@${cfg.hostname}";
- defaultText = "%{reply_key}@`config.services.discourse.hostname`";
+ defaultText = lib.literalExpression ''"%{reply_key}@''${config.services.discourse.hostname}"'';
description = ''
Template for reply by email incoming email address, for
example: %{reply_key}@reply.example.com or
@@ -450,7 +460,7 @@ in
mailReceiverPackage = lib.mkOption {
type = lib.types.package;
default = pkgs.discourse-mail-receiver;
- defaultText = "pkgs.discourse-mail-receiver";
+ defaultText = lib.literalExpression "pkgs.discourse-mail-receiver";
description = ''
The discourse-mail-receiver package to use.
'';
@@ -475,7 +485,7 @@ in
plugins = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
- example = lib.literalExample ''
+ example = lib.literalExpression ''
with config.services.discourse.package.plugins; [
discourse-canned-replies
discourse-github
@@ -721,12 +731,24 @@ in
lib.optionalString (file != null) ''
replace-secret '${file}' '${file}' /run/discourse/config/discourse.conf
'';
+
+ mkAdmin = ''
+ export ADMIN_EMAIL="${cfg.admin.email}"
+ export ADMIN_NAME="${cfg.admin.fullName}"
+ export ADMIN_USERNAME="${cfg.admin.username}"
+ ADMIN_PASSWORD="$(<${cfg.admin.passwordFile})"
+ export ADMIN_PASSWORD
+ discourse-rake admin:create_noninteractively
+ '';
+
in ''
set -o errexit -o pipefail -o nounset -o errtrace
shopt -s inherit_errexit
umask u=rwx,g=rx,o=
+ rm -rf /var/lib/discourse/tmp/*
+
cp -r ${cfg.package}/share/discourse/config.dist/* /run/discourse/config/
cp -r ${cfg.package}/share/discourse/public.dist/* /run/discourse/public/
ln -sf /var/lib/discourse/uploads /run/discourse/public/uploads
@@ -748,14 +770,9 @@ in
)
discourse-rake db:migrate >>/var/log/discourse/db_migration.log
- chmod -R u+w /run/discourse/tmp/
+ chmod -R u+w /var/lib/discourse/tmp/
- export ADMIN_EMAIL="${cfg.admin.email}"
- export ADMIN_NAME="${cfg.admin.fullName}"
- export ADMIN_USERNAME="${cfg.admin.username}"
- ADMIN_PASSWORD="$(<${cfg.admin.passwordFile})"
- export ADMIN_PASSWORD
- discourse-rake admin:create_noninteractively
+ ${lib.optionalString (!cfg.admin.skipCreate) mkAdmin}
discourse-rake themes:update
discourse-rake uploads:regenerate_missing_optimized
@@ -768,7 +785,6 @@ in
RuntimeDirectory = map (p: "discourse/" + p) [
"config"
"home"
- "tmp"
"assets/javascripts/plugins"
"public"
"sockets"
@@ -777,6 +793,7 @@ in
StateDirectory = map (p: "discourse/" + p) [
"uploads"
"backups"
+ "tmp"
];
StateDirectoryMode = 0750;
LogsDirectory = "discourse";
diff --git a/nixos/modules/services/web-apps/documize.nix b/nixos/modules/services/web-apps/documize.nix
index a5f48e744fdc..7f2ed82ee33e 100644
--- a/nixos/modules/services/web-apps/documize.nix
+++ b/nixos/modules/services/web-apps/documize.nix
@@ -26,6 +26,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.documize-community;
+ defaultText = literalExpression "pkgs.documize-community";
description = ''
Which package to use for documize.
'';
diff --git a/nixos/modules/services/web-apps/dokuwiki.nix b/nixos/modules/services/web-apps/dokuwiki.nix
index 964fef23addf..fc0e23729b3c 100644
--- a/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/nixos/modules/services/web-apps/dokuwiki.nix
@@ -2,7 +2,7 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types maintainers recursiveUpdate;
- inherit (lib) any attrValues concatMapStrings concatMapStringsSep flatten literalExample;
+ inherit (lib) any attrValues concatMapStrings concatMapStringsSep flatten literalExpression;
inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
cfg = migrateOldAttrs config.services.dokuwiki;
@@ -66,9 +66,12 @@ let
siteOpts = { config, lib, name, ... }:
{
options = {
+ enable = mkEnableOption "DokuWiki web application.";
+
package = mkOption {
type = types.package;
default = pkgs.dokuwiki;
+ defaultText = literalExpression "pkgs.dokuwiki";
description = "Which DokuWiki package to use.";
};
@@ -167,24 +170,24 @@ let
List of path(s) to respective plugin(s) which are copied from the 'plugin' directory.
These plugins need to be packaged before use, see example.
'';
- example = ''
- # Let's package the icalevents plugin
- plugin-icalevents = pkgs.stdenv.mkDerivation {
- name = "icalevents";
- # Download the plugin from the dokuwiki site
- src = pkgs.fetchurl {
- url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip";
- sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
+ example = literalExpression ''
+ let
+ # Let's package the icalevents plugin
+ plugin-icalevents = pkgs.stdenv.mkDerivation {
+ name = "icalevents";
+ # Download the plugin from the dokuwiki site
+ src = pkgs.fetchurl {
+ url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip";
+ sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
+ };
+ sourceRoot = ".";
+ # We need unzip to build this package
+ buildInputs = [ pkgs.unzip ];
+ # Installing simply means copying all files to the output directory
+ installPhase = "mkdir -p $out; cp -R * $out/";
};
- sourceRoot = ".";
- # We need unzip to build this package
- buildInputs = [ pkgs.unzip ];
- # Installing simply means copying all files to the output directory
- installPhase = "mkdir -p $out; cp -R * $out/";
- };
-
# And then pass this theme to the plugin list like this:
- plugins = [ plugin-icalevents ];
+ in [ plugin-icalevents ]
'';
};
@@ -195,23 +198,23 @@ let
List of path(s) to respective template(s) which are copied from the 'tpl' directory.
These templates need to be packaged before use, see example.
'';
- example = ''
- # Let's package the bootstrap3 theme
- template-bootstrap3 = pkgs.stdenv.mkDerivation {
- name = "bootstrap3";
- # Download the theme from the dokuwiki site
- src = pkgs.fetchurl {
- url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip";
- sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
+ example = literalExpression ''
+ let
+ # Let's package the bootstrap3 theme
+ template-bootstrap3 = pkgs.stdenv.mkDerivation {
+ name = "bootstrap3";
+ # Download the theme from the dokuwiki site
+ src = pkgs.fetchurl {
+ url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip";
+ sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
+ };
+ # We need unzip to build this package
+ buildInputs = [ pkgs.unzip ];
+ # Installing simply means copying all files to the output directory
+ installPhase = "mkdir -p $out; cp -R * $out/";
};
- # We need unzip to build this package
- buildInputs = [ pkgs.unzip ];
- # Installing simply means copying all files to the output directory
- installPhase = "mkdir -p $out; cp -R * $out/";
- };
-
# And then pass this theme to the template list like this:
- templates = [ template-bootstrap3 ];
+ in [ template-bootstrap3 ]
'';
};
diff --git a/nixos/modules/services/web-apps/engelsystem.nix b/nixos/modules/services/web-apps/engelsystem.nix
index b87fecae65f2..06c3c6dfc3d7 100644
--- a/nixos/modules/services/web-apps/engelsystem.nix
+++ b/nixos/modules/services/web-apps/engelsystem.nix
@@ -1,7 +1,7 @@
{ config, lib, pkgs, utils, ... }:
let
- inherit (lib) mkDefault mkEnableOption mkIf mkOption types literalExample;
+ inherit (lib) mkDefault mkEnableOption mkIf mkOption types literalExpression;
cfg = config.services.engelsystem;
in {
options = {
@@ -24,9 +24,9 @@ in {
package = mkOption {
type = types.package;
- example = literalExample "pkgs.engelsystem";
description = "Engelsystem package used for the service.";
default = pkgs.engelsystem;
+ defaultText = literalExpression "pkgs.engelsystem";
};
createDatabase = mkOption {
diff --git a/nixos/modules/services/web-apps/fluidd.nix b/nixos/modules/services/web-apps/fluidd.nix
index c632b8ff7199..6ac1acc9d036 100644
--- a/nixos/modules/services/web-apps/fluidd.nix
+++ b/nixos/modules/services/web-apps/fluidd.nix
@@ -12,7 +12,7 @@ in
type = types.package;
description = "Fluidd package to be used in the module";
default = pkgs.fluidd;
- defaultText = "pkgs.fluidd";
+ defaultText = literalExpression "pkgs.fluidd";
};
hostName = mkOption {
@@ -25,9 +25,11 @@ in
type = types.submodule
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; });
default = { };
- example = {
- serverAliases = [ "fluidd.\${config.networking.domain}" ];
- };
+ example = literalExpression ''
+ {
+ serverAliases = [ "fluidd.''${config.networking.domain}" ];
+ }
+ '';
description = "Extra configuration for the nginx virtual host of fluidd.";
};
};
diff --git a/nixos/modules/services/web-apps/galene.nix b/nixos/modules/services/web-apps/galene.nix
index dd63857a55c8..db9dfeb47499 100644
--- a/nixos/modules/services/web-apps/galene.nix
+++ b/nixos/modules/services/web-apps/galene.nix
@@ -80,6 +80,7 @@ in
staticDir = mkOption {
type = types.str;
default = "${cfg.package.static}/static";
+ defaultText = literalExpression ''"''${package.static}/static"'';
example = "/var/lib/galene/static";
description = "Web server directory.";
};
@@ -107,7 +108,7 @@ in
package = mkOption {
default = pkgs.galene;
- defaultText = "pkgs.galene";
+ defaultText = literalExpression "pkgs.galene";
type = types.package;
description = ''
Package for running Galene.
diff --git a/nixos/modules/services/web-apps/gerrit.nix b/nixos/modules/services/web-apps/gerrit.nix
index 864587aea565..9ee9dbf1aa49 100644
--- a/nixos/modules/services/web-apps/gerrit.nix
+++ b/nixos/modules/services/web-apps/gerrit.nix
@@ -64,13 +64,14 @@ in
package = mkOption {
type = types.package;
default = pkgs.gerrit;
+ defaultText = literalExpression "pkgs.gerrit";
description = "Gerrit package to use";
};
jvmPackage = mkOption {
type = types.package;
default = pkgs.jre_headless;
- defaultText = "pkgs.jre_headless";
+ defaultText = literalExpression "pkgs.jre_headless";
description = "Java Runtime Environment package to use";
};
diff --git a/nixos/modules/services/web-apps/hedgedoc.nix b/nixos/modules/services/web-apps/hedgedoc.nix
index d940f3d3daec..e0c00fe67ea3 100644
--- a/nixos/modules/services/web-apps/hedgedoc.nix
+++ b/nixos/modules/services/web-apps/hedgedoc.nix
@@ -73,7 +73,7 @@ in
port = mkOption {
type = types.int;
default = 3000;
- example = "80";
+ example = 80;
description = ''
Port to listen on.
'';
@@ -135,7 +135,7 @@ in
csp = mkOption {
type = types.nullOr types.attrs;
default = null;
- example = literalExample ''
+ example = literalExpression ''
{
enable = true;
directives = {
@@ -222,7 +222,7 @@ in
db = mkOption {
type = types.attrs;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
dialect = "sqlite";
storage = "/var/lib/${name}/db.${name}.sqlite";
@@ -313,7 +313,7 @@ in
errorPath = mkOption {
type = types.nullOr types.str;
default = null;
- defaultText = "./public/views/error.ejs";
+ defaultText = literalExpression "./public/views/error.ejs";
description = ''
Path to the error template file.
(Non-canonical paths are relative to HedgeDoc's base directory)
@@ -322,7 +322,7 @@ in
prettyPath = mkOption {
type = types.nullOr types.str;
default = null;
- defaultText = "./public/views/pretty.ejs";
+ defaultText = literalExpression "./public/views/pretty.ejs";
description = ''
Path to the pretty template file.
(Non-canonical paths are relative to HedgeDoc's base directory)
@@ -331,7 +331,7 @@ in
slidePath = mkOption {
type = types.nullOr types.str;
default = null;
- defaultText = "./public/views/slide.hbs";
+ defaultText = literalExpression "./public/views/slide.hbs";
description = ''
Path to the slide template file.
(Non-canonical paths are relative to HedgeDoc's base directory)
@@ -340,7 +340,7 @@ in
uploadsPath = mkOption {
type = types.str;
default = "${cfg.workDir}/uploads";
- defaultText = "/var/lib/${name}/uploads";
+ defaultText = literalExpression "/var/lib/${name}/uploads";
description = ''
Path under which uploaded files are saved.
'';
@@ -539,6 +539,69 @@ in
Specify the OAuth token URL.
'';
};
+ baseURL = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the OAuth base URL.
+ '';
+ };
+ userProfileURL = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the OAuth userprofile URL.
+ '';
+ };
+ userProfileUsernameAttr = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the name of the attribute for the username from the claim.
+ '';
+ };
+ userProfileDisplayNameAttr = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the name of the attribute for the display name from the claim.
+ '';
+ };
+ userProfileEmailAttr = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the name of the attribute for the email from the claim.
+ '';
+ };
+ scope = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the OAuth scope.
+ '';
+ };
+ providerName = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the name to be displayed for this strategy.
+ '';
+ };
+ rolesClaim = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify the role claim name.
+ '';
+ };
+ accessRole = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = ''
+ Specify role which should be included in the ID token roles claim to grant access
+ '';
+ };
clientID = mkOption {
type = types.str;
description = ''
@@ -925,6 +988,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.hedgedoc;
+ defaultText = literalExpression "pkgs.hedgedoc";
description = ''
Package that provides HedgeDoc.
'';
diff --git a/nixos/modules/services/web-apps/hledger-web.nix b/nixos/modules/services/web-apps/hledger-web.nix
index a69767194c33..4f6a34e6d2fe 100644
--- a/nixos/modules/services/web-apps/hledger-web.nix
+++ b/nixos/modules/services/web-apps/hledger-web.nix
@@ -20,7 +20,7 @@ in {
port = mkOption {
type = types.port;
default = 5000;
- example = "80";
+ example = 80;
description = ''
Port to listen on.
'';
@@ -118,7 +118,7 @@ in {
++ extraOptions);
in {
description = "hledger-web - web-app for the hledger accounting tool.";
- documentation = [ https://hledger.org/hledger-web.html ];
+ documentation = [ "https://hledger.org/hledger-web.html" ];
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
serviceConfig = mkMerge [
diff --git a/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix b/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix
index f8f0854f1bcb..b9761061aaae 100644
--- a/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix
+++ b/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix
@@ -59,7 +59,7 @@ in {
modulePackages = mkOption {
type = attrsOf package;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"snow" = icingaweb2Modules.theme-snow;
}
diff --git a/nixos/modules/services/web-apps/ihatemoney/default.nix b/nixos/modules/services/web-apps/ihatemoney/default.nix
index b4987fa4702c..238241854c1c 100644
--- a/nixos/modules/services/web-apps/ihatemoney/default.nix
+++ b/nixos/modules/services/web-apps/ihatemoney/default.nix
@@ -33,11 +33,14 @@ let
then "sqlite:////var/lib/ihatemoney/ihatemoney.sqlite"
else "postgresql:///${db}"}'
SQLALCHEMY_TRACK_MODIFICATIONS = False
- MAIL_DEFAULT_SENDER = ("${cfg.defaultSender.name}", "${cfg.defaultSender.email}")
+ MAIL_DEFAULT_SENDER = (r"${cfg.defaultSender.name}", r"${cfg.defaultSender.email}")
ACTIVATE_DEMO_PROJECT = ${toBool cfg.enableDemoProject}
- ADMIN_PASSWORD = "${toString cfg.adminHashedPassword /*toString null == ""*/}"
+ ADMIN_PASSWORD = r"${toString cfg.adminHashedPassword /*toString null == ""*/}"
ALLOW_PUBLIC_PROJECT_CREATION = ${toBool cfg.enablePublicProjectCreation}
ACTIVATE_ADMIN_DASHBOARD = ${toBool cfg.enableAdminDashboard}
+ SESSION_COOKIE_SECURE = ${toBool cfg.secureCookie}
+ ENABLE_CAPTCHA = ${toBool cfg.enableCaptcha}
+ LEGAL_LINK = r"${toString cfg.legalLink}"
${cfg.extraConfig}
'';
@@ -79,9 +82,20 @@ in
description = "The email of the sender of ihatemoney emails";
};
};
+ secureCookie = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Use secure cookies. Disable this when ihatemoney is served via http instead of https";
+ };
enableDemoProject = mkEnableOption "access to the demo project in ihatemoney";
enablePublicProjectCreation = mkEnableOption "permission to create projects in ihatemoney by anyone";
enableAdminDashboard = mkEnableOption "ihatemoney admin dashboard";
+ enableCaptcha = mkEnableOption "a simplistic captcha for some forms";
+ legalLink = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = "The URL to a page explaining legal statements about your service, eg. GDPR-related information.";
+ };
extraConfig = mkOption {
type = types.str;
default = "";
diff --git a/nixos/modules/services/web-apps/invidious.nix b/nixos/modules/services/web-apps/invidious.nix
new file mode 100644
index 000000000000..7fb826af5835
--- /dev/null
+++ b/nixos/modules/services/web-apps/invidious.nix
@@ -0,0 +1,263 @@
+{ lib, config, pkgs, options, ... }:
+let
+ cfg = config.services.invidious;
+ # To allow injecting secrets with jq, json (instead of yaml) is used
+ settingsFormat = pkgs.formats.json { };
+ inherit (lib) types;
+
+ settingsFile = settingsFormat.generate "invidious-settings" cfg.settings;
+
+ serviceConfig = {
+ systemd.services.invidious = {
+ description = "Invidious (An alternative YouTube front-end)";
+ wants = [ "network-online.target" ];
+ after = [ "syslog.target" "network-online.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ script =
+ let
+ jqFilter = "."
+ + lib.optionalString (cfg.database.host != null) "[0].db.password = \"'\"'\"$(cat ${lib.escapeShellArg cfg.database.passwordFile})\"'\"'\""
+ + " | .[0]"
+ + lib.optionalString (cfg.extraSettingsFile != null) " * .[1]";
+ jqFiles = [ settingsFile ] ++ lib.optional (cfg.extraSettingsFile != null) cfg.extraSettingsFile;
+ in
+ ''
+ export INVIDIOUS_CONFIG="$(${pkgs.jq}/bin/jq -s "${jqFilter}" ${lib.escapeShellArgs jqFiles})"
+ exec ${cfg.package}/bin/invidious
+ '';
+
+ serviceConfig = {
+ RestartSec = "2s";
+ DynamicUser = true;
+
+ CapabilityBoundingSet = "";
+ PrivateDevices = true;
+ PrivateUsers = true;
+ ProtectHome = true;
+ ProtectKernelLogs = true;
+ ProtectProc = "invisible";
+ RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+ RestrictNamespaces = true;
+ SystemCallArchitectures = "native";
+ SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
+ };
+ };
+
+ services.invidious.settings = {
+ inherit (cfg) port;
+
+ # Automatically initialises and migrates the database if necessary
+ check_tables = true;
+
+ db = {
+ user = lib.mkDefault "kemal";
+ dbname = lib.mkDefault "invidious";
+ port = cfg.database.port;
+ # Blank for unix sockets, see
+ # https://github.com/will/crystal-pg/blob/1548bb255210/src/pq/conninfo.cr#L100-L108
+ host = if cfg.database.host == null then "" else cfg.database.host;
+ # Not needed because peer authentication is enabled
+ password = lib.mkIf (cfg.database.host == null) "";
+ };
+ } // (lib.optionalAttrs (cfg.domain != null) {
+ inherit (cfg) domain;
+ });
+
+ assertions = [{
+ assertion = cfg.database.host != null -> cfg.database.passwordFile != null;
+ message = "If database host isn't null, database password needs to be set";
+ }];
+ };
+
+ # Settings necessary for running with an automatically managed local database
+ localDatabaseConfig = lib.mkIf cfg.database.createLocally {
+ # Default to using the local database if we create it
+ services.invidious.database.host = lib.mkDefault null;
+
+ services.postgresql = {
+ enable = true;
+ ensureDatabases = lib.singleton cfg.settings.db.dbname;
+ ensureUsers = lib.singleton {
+ name = cfg.settings.db.user;
+ ensurePermissions = {
+ "DATABASE ${cfg.settings.db.dbname}" = "ALL PRIVILEGES";
+ };
+ };
+ # This is only needed because the unix user invidious isn't the same as
+ # the database user. This tells postgres to map one to the other.
+ identMap = ''
+ invidious invidious ${cfg.settings.db.user}
+ '';
+ # And this specifically enables peer authentication for only this
+ # database, which allows passwordless authentication over the postgres
+ # unix socket for the user map given above.
+ authentication = ''
+ local ${cfg.settings.db.dbname} ${cfg.settings.db.user} peer map=invidious
+ '';
+ };
+
+ systemd.services.invidious-db-clean = {
+ description = "Invidious database cleanup";
+ documentation = [ "https://docs.invidious.io/Database-Information-and-Maintenance.md" ];
+ startAt = lib.mkDefault "weekly";
+ path = [ config.services.postgresql.package ];
+ script = ''
+ psql ${cfg.settings.db.dbname} ${cfg.settings.db.user} -c "DELETE FROM nonces * WHERE expire < current_timestamp"
+ psql ${cfg.settings.db.dbname} ${cfg.settings.db.user} -c "TRUNCATE TABLE videos"
+ '';
+ serviceConfig = {
+ DynamicUser = true;
+ User = "invidious";
+ };
+ };
+
+ systemd.services.invidious = {
+ requires = [ "postgresql.service" ];
+ after = [ "postgresql.service" ];
+
+ serviceConfig = {
+ User = "invidious";
+ };
+ };
+ };
+
+ nginxConfig = lib.mkIf cfg.nginx.enable {
+ services.invidious.settings = {
+ https_only = config.services.nginx.virtualHosts.${cfg.domain}.forceSSL;
+ external_port = 80;
+ };
+
+ services.nginx = {
+ enable = true;
+ virtualHosts.${cfg.domain} = {
+ locations."/".proxyPass = "http://127.0.0.1:${toString cfg.port}";
+
+ enableACME = lib.mkDefault true;
+ forceSSL = lib.mkDefault true;
+ };
+ };
+
+ assertions = [{
+ assertion = cfg.domain != null;
+ message = "To use services.invidious.nginx, you need to set services.invidious.domain";
+ }];
+ };
+in
+{
+ options.services.invidious = {
+ enable = lib.mkEnableOption "Invidious";
+
+ package = lib.mkOption {
+ type = types.package;
+ default = pkgs.invidious;
+ defaultText = "pkgs.invidious";
+ description = "The Invidious package to use.";
+ };
+
+ settings = lib.mkOption {
+ type = settingsFormat.type;
+ default = { };
+ description = ''
+ The settings Invidious should use.
+
+ See config.example.yml for a list of all possible options.
+ '';
+ };
+
+ extraSettingsFile = lib.mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ A file including Invidious settings.
+
+ It gets merged with the setttings specified in
+ and can be used to store secrets like hmac_key outside of the nix store.
+ '';
+ };
+
+ # This needs to be outside of settings to avoid infinite recursion
+ # (determining if nginx should be enabled and therefore the settings
+ # modified).
+ domain = lib.mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ The FQDN Invidious is reachable on.
+
+ This is used to configure nginx and for building absolute URLs.
+ '';
+ };
+
+ port = lib.mkOption {
+ type = types.port;
+ # Default from https://docs.invidious.io/Configuration.md
+ default = 3000;
+ description = ''
+ The port Invidious should listen on.
+
+ To allow access from outside,
+ you can use either
+ or add config.services.invidious.port to .
+ '';
+ };
+
+ database = {
+ createLocally = lib.mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to create a local database with PostgreSQL.
+ '';
+ };
+
+ host = lib.mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ The database host Invidious should use.
+
+ If null, the local unix socket is used. Otherwise
+ TCP is used.
+ '';
+ };
+
+ port = lib.mkOption {
+ type = types.port;
+ default = options.services.postgresql.port.default;
+ description = ''
+ The port of the database Invidious should use.
+
+ Defaults to the the default postgresql port.
+ '';
+ };
+
+ passwordFile = lib.mkOption {
+ type = types.nullOr types.str;
+ apply = lib.mapNullable toString;
+ default = null;
+ description = ''
+ Path to file containing the database password.
+ '';
+ };
+ };
+
+ nginx.enable = lib.mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to configure nginx as a reverse proxy for Invidious.
+
+ It serves it under the domain specified in with enabled TLS and ACME.
+ Further configuration can be done through ,
+ which can also be used to disable AMCE and TLS.
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable (lib.mkMerge [
+ serviceConfig
+ localDatabaseConfig
+ nginxConfig
+ ]);
+}
diff --git a/nixos/modules/services/web-apps/isso.nix b/nixos/modules/services/web-apps/isso.nix
index d05a99a3eedc..4c01781a6a2b 100644
--- a/nixos/modules/services/web-apps/isso.nix
+++ b/nixos/modules/services/web-apps/isso.nix
@@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }:
let
- inherit (lib) mkEnableOption mkIf mkOption types literalExample;
+ inherit (lib) mkEnableOption mkIf mkOption types literalExpression;
cfg = config.services.isso;
@@ -31,7 +31,7 @@ in {
freeformType = settingsFormat.type;
};
- example = literalExample ''
+ example = literalExpression ''
{
general = {
host = "http://localhost";
diff --git a/nixos/modules/services/web-apps/jirafeau.nix b/nixos/modules/services/web-apps/jirafeau.nix
index 4f181257ef7c..83cf224f7d27 100644
--- a/nixos/modules/services/web-apps/jirafeau.nix
+++ b/nixos/modules/services/web-apps/jirafeau.nix
@@ -84,18 +84,19 @@ in
type = types.submodule
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; });
default = {};
- example = {
- serverAliases = [ "wiki.\${config.networking.domain}" ];
- };
+ example = literalExpression ''
+ {
+ serverAliases = [ "wiki.''${config.networking.domain}" ];
+ }
+ '';
description = "Extra configuration for the nginx virtual host of Jirafeau.";
};
package = mkOption {
type = types.package;
default = pkgs.jirafeau;
- defaultText = "pkgs.jirafeau";
+ defaultText = literalExpression "pkgs.jirafeau";
description = "Jirafeau package to use";
- example = "pkgs.jirafeau";
};
poolConfig = mkOption {
diff --git a/nixos/modules/services/web-apps/jitsi-meet.nix b/nixos/modules/services/web-apps/jitsi-meet.nix
index 997604754e42..2f1c4acec1e8 100644
--- a/nixos/modules/services/web-apps/jitsi-meet.nix
+++ b/nixos/modules/services/web-apps/jitsi-meet.nix
@@ -37,6 +37,11 @@ let
focus = "focus.${cfg.hostName}";
};
bosh = "//${cfg.hostName}/http-bind";
+ websocket = "wss://${cfg.hostName}/xmpp-websocket";
+
+ fileRecordingsEnabled = true;
+ liveStreamingEnabled = true;
+ hiddenDomain = "recorder.${cfg.hostName}";
};
in
{
@@ -47,14 +52,14 @@ in
type = str;
example = "meet.example.org";
description = ''
- Hostname of the Jitsi Meet instance.
+ FQDN of the Jitsi Meet instance.
'';
};
config = mkOption {
type = attrs;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
enableWelcomePage = false;
defaultLang = "fi";
@@ -81,7 +86,7 @@ in
interfaceConfig = mkOption {
type = attrs;
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
SHOW_JITSI_WATERMARK = false;
SHOW_WATERMARK_FOR_GUESTS = false;
@@ -129,6 +134,17 @@ in
'';
};
+ jibri.enable = mkOption {
+ type = bool;
+ default = false;
+ description = ''
+ Whether to enable a Jibri instance and configure it to connect to Prosody.
+
+ Additional configuration is possible with , and
+ is especially useful.
+ '';
+ };
+
nginx.enable = mkOption {
type = bool;
default = true;
@@ -143,6 +159,8 @@ in
'';
};
+ caddy.enable = mkEnableOption "Whether to enablle caddy reverse proxy to expose jitsi-meet";
+
prosody.enable = mkOption {
type = bool;
default = true;
@@ -163,7 +181,9 @@ in
ping = mkDefault true;
roster = mkDefault true;
saslauth = mkDefault true;
+ smacks = mkDefault true;
tls = mkDefault true;
+ websocket = mkDefault true;
};
muc = [
{
@@ -185,12 +205,17 @@ in
#-- muc_room_cache_size = 1000
}
];
- extraModules = [ "pubsub" ];
+ extraModules = [ "pubsub" "smacks" ];
extraPluginPaths = [ "${pkgs.jitsi-meet-prosody}/share/prosody-plugins" ];
- extraConfig = mkAfter ''
+ extraConfig = lib.mkMerge [ (mkAfter ''
Component "focus.${cfg.hostName}" "client_proxy"
target_address = "focus@auth.${cfg.hostName}"
- '';
+ '')
+ (mkBefore ''
+ cross_domain_websocket = true;
+ consider_websocket_secure = true;
+ '')
+ ];
virtualHosts.${cfg.hostName} = {
enabled = true;
domain = cfg.hostName;
@@ -198,6 +223,10 @@ in
authentication = "anonymous"
c2s_require_encryption = false
admins = { "focus@auth.${cfg.hostName}" }
+ smacks_max_unacked_stanzas = 5
+ smacks_hibernation_time = 60
+ smacks_max_hibernated_sessions = 1
+ smacks_max_old_sessions = 1
'';
ssl = {
cert = "/var/lib/jitsi-meet/jitsi-meet.crt";
@@ -215,6 +244,14 @@ in
key = "/var/lib/jitsi-meet/jitsi-meet.key";
};
};
+ virtualHosts."recorder.${cfg.hostName}" = {
+ enabled = true;
+ domain = "recorder.${cfg.hostName}";
+ extraConfig = ''
+ authentication = "internal_plain"
+ c2s_require_encryption = false
+ '';
+ };
};
systemd.services.prosody.serviceConfig = mkIf cfg.prosody.enable {
EnvironmentFile = [ "/var/lib/jitsi-meet/secrets-env" ];
@@ -229,12 +266,13 @@ in
systemd.services.jitsi-meet-init-secrets = {
wantedBy = [ "multi-user.target" ];
before = [ "jicofo.service" "jitsi-videobridge2.service" ] ++ (optional cfg.prosody.enable "prosody.service");
+ path = [ config.services.prosody.package ];
serviceConfig = {
Type = "oneshot";
};
script = let
- secrets = [ "jicofo-component-secret" "jicofo-user-secret" ] ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret");
+ secrets = [ "jicofo-component-secret" "jicofo-user-secret" "jibri-auth-secret" "jibri-recorder-secret" ] ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret");
videobridgeSecret = if cfg.videobridge.passwordFile != null then cfg.videobridge.passwordFile else "/var/lib/jitsi-meet/videobridge-secret";
in
''
@@ -253,9 +291,11 @@ in
chmod 640 secrets-env
''
+ optionalString cfg.prosody.enable ''
- ${config.services.prosody.package}/bin/prosodyctl register focus auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jicofo-user-secret)"
- ${config.services.prosody.package}/bin/prosodyctl register jvb auth.${cfg.hostName} "$(cat ${videobridgeSecret})"
- ${config.services.prosody.package}/bin/prosodyctl mod_roster_command subscribe focus.${cfg.hostName} focus@auth.${cfg.hostName}
+ prosodyctl register focus auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jicofo-user-secret)"
+ prosodyctl register jvb auth.${cfg.hostName} "$(cat ${videobridgeSecret})"
+ prosodyctl mod_roster_command subscribe focus.${cfg.hostName} focus@auth.${cfg.hostName}
+ prosodyctl register jibri auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jibri-auth-secret)"
+ prosodyctl register recorder recorder.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jibri-recorder-secret)"
# generate self-signed certificates
if [ ! -f /var/lib/jitsi-meet.crt ]; then
@@ -286,6 +326,11 @@ in
rewrite ^/(.*)$ / break;
'';
locations."~ ^/([^/\\?&:'\"]+)$".tryFiles = "$uri @root_path";
+ locations."^~ /xmpp-websocket" = {
+ priority = 100;
+ proxyPass = "http://localhost:5280/xmpp-websocket";
+ proxyWebsockets = true;
+ };
locations."=/http-bind" = {
proxyPass = "http://localhost:5280/http-bind";
extraConfig = ''
@@ -305,6 +350,42 @@ in
};
};
+ services.caddy = mkIf cfg.caddy.enable {
+ enable = mkDefault true;
+ virtualHosts.${cfg.hostName} = {
+ extraConfig =
+ let
+ templatedJitsiMeet = pkgs.runCommand "templated-jitsi-meet" {} ''
+ cp -R ${pkgs.jitsi-meet}/* .
+ for file in *.html **/*.html ; do
+ ${pkgs.sd}/bin/sd '' '{{ include "$1" }}' $file
+ done
+ rm config.js
+ rm interface_config.js
+ cp -R . $out
+ cp ${overrideJs "${pkgs.jitsi-meet}/config.js" "config" (recursiveUpdate defaultCfg cfg.config) cfg.extraConfig} $out/config.js
+ cp ${overrideJs "${pkgs.jitsi-meet}/interface_config.js" "interfaceConfig" cfg.interfaceConfig ""} $out/interface_config.js
+ cp ./libs/external_api.min.js $out/external_api.js
+ '';
+ in ''
+ handle /http-bind {
+ header Host ${cfg.hostName}
+ reverse_proxy 127.0.0.1:5280
+ }
+ handle /xmpp-websocket {
+ reverse_proxy 127.0.0.1:5280
+ }
+ handle {
+ templates
+ root * ${templatedJitsiMeet}
+ try_files {path} {path}
+ try_files {path} /index.html
+ file_server
+ }
+ '';
+ };
+ };
+
services.jitsi-videobridge = mkIf cfg.videobridge.enable {
enable = true;
xmppConfigs."localhost" = {
@@ -325,8 +406,43 @@ in
userPasswordFile = "/var/lib/jitsi-meet/jicofo-user-secret";
componentPasswordFile = "/var/lib/jitsi-meet/jicofo-component-secret";
bridgeMuc = "jvbbrewery@internal.${cfg.hostName}";
- config = {
+ config = mkMerge [{
"org.jitsi.jicofo.ALWAYS_TRUST_MODE_ENABLED" = "true";
+ #} (lib.mkIf cfg.jibri.enable {
+ } (lib.mkIf (config.services.jibri.enable || cfg.jibri.enable) {
+ "org.jitsi.jicofo.jibri.BREWERY" = "JibriBrewery@internal.${cfg.hostName}";
+ "org.jitsi.jicofo.jibri.PENDING_TIMEOUT" = "90";
+ })];
+ };
+
+ services.jibri = mkIf cfg.jibri.enable {
+ enable = true;
+
+ xmppEnvironments."jitsi-meet" = {
+ xmppServerHosts = [ "localhost" ];
+ xmppDomain = cfg.hostName;
+
+ control.muc = {
+ domain = "internal.${cfg.hostName}";
+ roomName = "JibriBrewery";
+ nickname = "jibri";
+ };
+
+ control.login = {
+ domain = "auth.${cfg.hostName}";
+ username = "jibri";
+ passwordFile = "/var/lib/jitsi-meet/jibri-auth-secret";
+ };
+
+ call.login = {
+ domain = "recorder.${cfg.hostName}";
+ username = "recorder";
+ passwordFile = "/var/lib/jitsi-meet/jibri-recorder-secret";
+ };
+
+ usageTimeout = "0";
+ disableCertificateVerification = true;
+ stripFromRoomDomain = "conference.";
};
};
};
diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix
index b1bea222c7f7..df8c7114102f 100644
--- a/nixos/modules/services/web-apps/keycloak.nix
+++ b/nixos/modules/services/web-apps/keycloak.nix
@@ -210,6 +210,7 @@ in
package = lib.mkOption {
type = lib.types.package;
default = pkgs.keycloak;
+ defaultText = lib.literalExpression "pkgs.keycloak";
description = ''
Keycloak package to use.
'';
@@ -228,7 +229,7 @@ in
extraConfig = lib.mkOption {
type = lib.types.attrs;
default = { };
- example = lib.literalExample ''
+ example = lib.literalExpression ''
{
"subsystem=keycloak-server" = {
"spi=hostname" = {
diff --git a/nixos/modules/services/web-apps/lemmy.md b/nixos/modules/services/web-apps/lemmy.md
new file mode 100644
index 000000000000..e6599cd843e3
--- /dev/null
+++ b/nixos/modules/services/web-apps/lemmy.md
@@ -0,0 +1,34 @@
+# Lemmy {#module-services-lemmy}
+
+Lemmy is a federated alternative to reddit in rust.
+
+## Quickstart {#module-services-lemmy-quickstart}
+
+the minimum to start lemmy is
+
+```nix
+services.lemmy = {
+ enable = true;
+ settings = {
+ hostname = "lemmy.union.rocks";
+ database.createLocally = true;
+ };
+ jwtSecretPath = "/run/secrets/lemmyJwt";
+ caddy.enable = true;
+}
+```
+
+(note that you can use something like agenix to get your secret jwt to the specified path)
+
+this will start the backend on port 8536 and the frontend on port 1234.
+It will expose your instance with a caddy reverse proxy to the hostname you've provided.
+Postgres will be initialized on that same instance automatically.
+
+## Usage {#module-services-lemmy-usage}
+
+On first connection you will be asked to define an admin user.
+
+## Missing {#module-services-lemmy-missing}
+
+- Exposing with nginx is not implemented yet.
+- This has been tested using a local database with a unix socket connection. Using different database settings will likely require modifications
diff --git a/nixos/modules/services/web-apps/lemmy.nix b/nixos/modules/services/web-apps/lemmy.nix
new file mode 100644
index 000000000000..7cd2357c4556
--- /dev/null
+++ b/nixos/modules/services/web-apps/lemmy.nix
@@ -0,0 +1,236 @@
+{ lib, pkgs, config, ... }:
+with lib;
+let
+ cfg = config.services.lemmy;
+ settingsFormat = pkgs.formats.json { };
+in
+{
+ meta.maintainers = with maintainers; [ happysalada ];
+ # Don't edit the docbook xml directly, edit the md and generate it:
+ # `pandoc lemmy.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > lemmy.xml`
+ meta.doc = ./lemmy.xml;
+
+ options.services.lemmy = {
+
+ enable = mkEnableOption "lemmy a federated alternative to reddit in rust";
+
+ jwtSecretPath = mkOption {
+ type = types.path;
+ description = "Path to read the jwt secret from.";
+ };
+
+ ui = {
+ port = mkOption {
+ type = types.port;
+ default = 1234;
+ description = "Port where lemmy-ui should listen for incoming requests.";
+ };
+ };
+
+ caddy.enable = mkEnableOption "exposing lemmy with the caddy reverse proxy";
+
+ settings = mkOption {
+ default = { };
+ description = "Lemmy configuration";
+
+ type = types.submodule {
+ freeformType = settingsFormat.type;
+
+ options.hostname = mkOption {
+ type = types.str;
+ default = null;
+ description = "The domain name of your instance (eg 'lemmy.ml').";
+ };
+
+ options.port = mkOption {
+ type = types.port;
+ default = 8536;
+ description = "Port where lemmy should listen for incoming requests.";
+ };
+
+ options.federation = {
+ enabled = mkEnableOption "activitypub federation";
+ };
+
+ options.captcha = {
+ enabled = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Enable Captcha.";
+ };
+ difficulty = mkOption {
+ type = types.enum [ "easy" "medium" "hard" ];
+ default = "medium";
+ description = "The difficultly of the captcha to solve.";
+ };
+ };
+
+ options.database.createLocally = mkEnableOption "creation of database on the instance";
+
+ };
+ };
+
+ };
+
+ config =
+ let
+ localPostgres = (cfg.settings.database.host == "localhost" || cfg.settings.database.host == "/run/postgresql");
+ in
+ lib.mkIf cfg.enable {
+ services.lemmy.settings = (mapAttrs (name: mkDefault)
+ {
+ bind = "127.0.0.1";
+ tls_enabled = true;
+ pictrs_url = with config.services.pict-rs; "http://${address}:${toString port}";
+ actor_name_max_length = 20;
+
+ rate_limit.message = 180;
+ rate_limit.message_per_second = 60;
+ rate_limit.post = 6;
+ rate_limit.post_per_second = 600;
+ rate_limit.register = 3;
+ rate_limit.register_per_second = 3600;
+ rate_limit.image = 6;
+ rate_limit.image_per_second = 3600;
+ } // {
+ database = mapAttrs (name: mkDefault) {
+ user = "lemmy";
+ host = "/run/postgresql";
+ port = 5432;
+ database = "lemmy";
+ pool_size = 5;
+ };
+ });
+
+ services.postgresql = mkIf localPostgres {
+ enable = mkDefault true;
+ };
+
+ services.pict-rs.enable = true;
+
+ services.caddy = mkIf cfg.caddy.enable {
+ enable = mkDefault true;
+ virtualHosts."${cfg.settings.hostname}" = {
+ extraConfig = ''
+ handle_path /static/* {
+ root * ${pkgs.lemmy-ui}/dist
+ file_server
+ }
+ @for_backend {
+ path /api/* /pictrs/* feeds/* nodeinfo/*
+ }
+ handle @for_backend {
+ reverse_proxy 127.0.0.1:${toString cfg.settings.port}
+ }
+ @post {
+ method POST
+ }
+ handle @post {
+ reverse_proxy 127.0.0.1:${toString cfg.settings.port}
+ }
+ @jsonld {
+ header Accept "application/activity+json"
+ header Accept "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\""
+ }
+ handle @jsonld {
+ reverse_proxy 127.0.0.1:${toString cfg.settings.port}
+ }
+ handle {
+ reverse_proxy 127.0.0.1:${toString cfg.ui.port}
+ }
+ '';
+ };
+ };
+
+ assertions = [{
+ assertion = cfg.settings.database.createLocally -> localPostgres;
+ message = "if you want to create the database locally, you need to use a local database";
+ }];
+
+ systemd.services.lemmy = {
+ description = "Lemmy server";
+
+ environment = {
+ LEMMY_CONFIG_LOCATION = "/run/lemmy/config.hjson";
+
+ # Verify how this is used, and don't put the password in the nix store
+ LEMMY_DATABASE_URL = with cfg.settings.database;"postgres:///${database}?host=${host}";
+ };
+
+ documentation = [
+ "https://join-lemmy.org/docs/en/administration/from_scratch.html"
+ "https://join-lemmy.org/docs"
+ ];
+
+ wantedBy = [ "multi-user.target" ];
+
+ after = [ "pict-rs.service " ] ++ lib.optionals cfg.settings.database.createLocally [ "lemmy-postgresql.service" ];
+
+ requires = lib.optionals cfg.settings.database.createLocally [ "lemmy-postgresql.service" ];
+
+ # script is needed here since loadcredential is not accessible on ExecPreStart
+ script = ''
+ ${pkgs.coreutils}/bin/install -m 600 ${settingsFormat.generate "config.hjson" cfg.settings} /run/lemmy/config.hjson
+ jwtSecret="$(< $CREDENTIALS_DIRECTORY/jwt_secret )"
+ ${pkgs.jq}/bin/jq ".jwt_secret = \"$jwtSecret\"" /run/lemmy/config.hjson | ${pkgs.moreutils}/bin/sponge /run/lemmy/config.hjson
+ ${pkgs.lemmy-server}/bin/lemmy_server
+ '';
+
+ serviceConfig = {
+ DynamicUser = true;
+ RuntimeDirectory = "lemmy";
+ LoadCredential = "jwt_secret:${cfg.jwtSecretPath}";
+ };
+ };
+
+ systemd.services.lemmy-ui = {
+ description = "Lemmy ui";
+
+ environment = {
+ LEMMY_UI_HOST = "127.0.0.1:${toString cfg.ui.port}";
+ LEMMY_INTERNAL_HOST = "127.0.0.1:${toString cfg.settings.port}";
+ LEMMY_EXTERNAL_HOST = cfg.settings.hostname;
+ LEMMY_HTTPS = "false";
+ };
+
+ documentation = [
+ "https://join-lemmy.org/docs/en/administration/from_scratch.html"
+ "https://join-lemmy.org/docs"
+ ];
+
+ wantedBy = [ "multi-user.target" ];
+
+ after = [ "lemmy.service" ];
+
+ requires = [ "lemmy.service" ];
+
+ serviceConfig = {
+ DynamicUser = true;
+ WorkingDirectory = "${pkgs.lemmy-ui}";
+ ExecStart = "${pkgs.nodejs}/bin/node ${pkgs.lemmy-ui}/dist/js/server.js";
+ };
+ };
+
+ systemd.services.lemmy-postgresql = mkIf cfg.settings.database.createLocally {
+ description = "Lemmy postgresql db";
+ after = [ "postgresql.service" ];
+ partOf = [ "lemmy.service" ];
+ script = with cfg.settings.database; ''
+ PSQL() {
+ ${config.services.postgresql.package}/bin/psql --port=${toString cfg.settings.database.port} "$@"
+ }
+ # check if the database already exists
+ if ! PSQL -lqt | ${pkgs.coreutils}/bin/cut -d \| -f 1 | ${pkgs.gnugrep}/bin/grep -qw ${database} ; then
+ PSQL -tAc "CREATE ROLE ${user} WITH LOGIN;"
+ PSQL -tAc "CREATE DATABASE ${database} WITH OWNER ${user};"
+ fi
+ '';
+ serviceConfig = {
+ User = config.services.postgresql.superUser;
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ };
+ };
+
+}
diff --git a/nixos/modules/services/web-apps/lemmy.xml b/nixos/modules/services/web-apps/lemmy.xml
new file mode 100644
index 000000000000..0be9fb8aefa9
--- /dev/null
+++ b/nixos/modules/services/web-apps/lemmy.xml
@@ -0,0 +1,56 @@
+
+ Lemmy
+
+ Lemmy is a federated alternative to reddit in rust.
+
+
+ Quickstart
+
+ the minimum to start lemmy is
+
+
+services.lemmy = {
+ enable = true;
+ settings = {
+ hostname = "lemmy.union.rocks";
+ database.createLocally = true;
+ };
+ jwtSecretPath = "/run/secrets/lemmyJwt";
+ caddy.enable = true;
+}
+
+
+ (note that you can use something like agenix to get your secret
+ jwt to the specified path)
+
+
+ this will start the backend on port 8536 and the frontend on port
+ 1234. It will expose your instance with a caddy reverse proxy to
+ the hostname you’ve provided. Postgres will be initialized on that
+ same instance automatically.
+
+
+
+ Usage
+
+ On first connection you will be asked to define an admin user.
+
+
+
+ Missing
+
+
+
+ Exposing with nginx is not implemented yet.
+
+
+
+
+ This has been tested using a local database with a unix socket
+ connection. Using different database settings will likely
+ require modifications
+
+
+
+
+
diff --git a/nixos/modules/services/web-apps/limesurvey.nix b/nixos/modules/services/web-apps/limesurvey.nix
index 56265e80957e..5ccd742a303b 100644
--- a/nixos/modules/services/web-apps/limesurvey.nix
+++ b/nixos/modules/services/web-apps/limesurvey.nix
@@ -3,7 +3,7 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption;
- inherit (lib) literalExample mapAttrs optional optionalString types;
+ inherit (lib) literalExpression mapAttrs optional optionalString types;
cfg = config.services.limesurvey;
fpm = config.services.phpfpm.pools.limesurvey;
@@ -51,7 +51,7 @@ in
port = mkOption {
type = types.int;
default = if cfg.database.type == "pgsql" then 5442 else 3306;
- defaultText = "3306";
+ defaultText = literalExpression "3306";
description = "Database host port.";
};
@@ -84,14 +84,14 @@ in
else if pgsqlLocal then "/run/postgresql"
else null
;
- defaultText = "/run/mysqld/mysqld.sock";
+ defaultText = literalExpression "/run/mysqld/mysqld.sock";
description = "Path to the unix socket file to use for authentication.";
};
createLocally = mkOption {
type = types.bool;
default = cfg.database.type == "mysql";
- defaultText = "true";
+ defaultText = literalExpression "true";
description = ''
Create the database and database user locally.
This currently only applies if database type "mysql" is selected.
@@ -101,7 +101,7 @@ in
virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
- example = literalExample ''
+ example = literalExpression ''
{
hostName = "survey.example.org";
adminAddr = "webmaster@example.org";
diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix
index 5e24bd06ffdb..1e3c7e53c175 100644
--- a/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixos/modules/services/web-apps/mastodon.nix
@@ -9,6 +9,13 @@ let
RAILS_ENV = "production";
NODE_ENV = "production";
+ # mastodon-web concurrency.
+ WEB_CONCURRENCY = toString cfg.webProcesses;
+ MAX_THREADS = toString cfg.webThreads;
+
+ # mastodon-streaming concurrency.
+ STREAMING_CLUSTER_NUM = toString cfg.streamingProcesses;
+
DB_USER = cfg.database.user;
REDIS_HOST = cfg.redis.host;
@@ -31,7 +38,7 @@ let
// (if cfg.smtp.authenticate then { SMTP_LOGIN = cfg.smtp.user; } else {})
// cfg.extraConfig;
- systemCallsList = [ "@clock" "@cpu-emulation" "@debug" "@keyring" "@module" "@mount" "@obsolete" "@raw-io" "@reboot" "@setuid" "@swap" ];
+ systemCallsList = [ "@cpu-emulation" "@debug" "@keyring" "@ipc" "@mount" "@obsolete" "@privileged" "@setuid" ];
cfgService = {
# User and group
@@ -43,6 +50,9 @@ let
# Logs directory and mode
LogsDirectory = "mastodon";
LogsDirectoryMode = "0750";
+ # Proc filesystem
+ ProcSubset = "pid";
+ ProtectProc = "invisible";
# Access write directories
UMask = "0027";
# Capabilities
@@ -67,6 +77,7 @@ let
MemoryDenyWriteExecute = false;
RestrictRealtime = true;
RestrictSUIDSGID = true;
+ RemoveIPC = true;
PrivateMounts = true;
# System Call Filtering
SystemCallArchitectures = "native";
@@ -146,18 +157,41 @@ in {
type = lib.types.port;
default = 55000;
};
+ streamingProcesses = lib.mkOption {
+ description = ''
+ Processes used by the mastodon-streaming service.
+ Defaults to the number of CPU cores minus one.
+ '';
+ type = lib.types.nullOr lib.types.int;
+ default = null;
+ };
webPort = lib.mkOption {
description = "TCP port used by the mastodon-web service.";
type = lib.types.port;
default = 55001;
};
+ webProcesses = lib.mkOption {
+ description = "Processes used by the mastodon-web service.";
+ type = lib.types.int;
+ default = 2;
+ };
+ webThreads = lib.mkOption {
+ description = "Threads per process used by the mastodon-web service.";
+ type = lib.types.int;
+ default = 5;
+ };
sidekiqPort = lib.mkOption {
- description = "TCP port used by the mastodon-sidekiq service";
+ description = "TCP port used by the mastodon-sidekiq service.";
type = lib.types.port;
default = 55002;
};
+ sidekiqThreads = lib.mkOption {
+ description = "Worker threads used by the mastodon-sidekiq service.";
+ type = lib.types.int;
+ default = 25;
+ };
vapidPublicKeyFile = lib.mkOption {
description = ''
@@ -314,7 +348,7 @@ in {
authenticate = lib.mkOption {
description = "Authenticate with the SMTP server using username and password.";
type = lib.types.bool;
- default = true;
+ default = false;
};
host = lib.mkOption {
@@ -369,7 +403,7 @@ in {
package = lib.mkOption {
type = lib.types.package;
default = pkgs.mastodon;
- defaultText = "pkgs.mastodon";
+ defaultText = lib.literalExpression "pkgs.mastodon";
description = "Mastodon package to use.";
};
@@ -434,7 +468,7 @@ in {
Type = "oneshot";
WorkingDirectory = cfg.package;
# System Call Filtering
- SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
+ SystemCallFilter = [ ("~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ])) "@chown" "pipe" "pipe2" ];
} // cfgService;
after = [ "network.target" ];
@@ -461,7 +495,7 @@ in {
EnvironmentFile = "/var/lib/mastodon/.secrets_env";
WorkingDirectory = cfg.package;
# System Call Filtering
- SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
+ SystemCallFilter = [ ("~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ])) "@chown" "pipe" "pipe2" ];
} // cfgService;
after = [ "mastodon-init-dirs.service" "network.target" ] ++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else []);
wantedBy = [ "multi-user.target" ];
@@ -487,7 +521,7 @@ in {
RuntimeDirectory = "mastodon-streaming";
RuntimeDirectoryMode = "0750";
# System Call Filtering
- SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@privileged" "@resources" ]);
+ SystemCallFilter = [ ("~" + lib.concatStringsSep " " (systemCallsList ++ [ "@memlock" "@resources" ])) "pipe" "pipe2" ];
} // cfgService;
};
@@ -511,7 +545,7 @@ in {
RuntimeDirectory = "mastodon-web";
RuntimeDirectoryMode = "0750";
# System Call Filtering
- SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
+ SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
};
@@ -524,15 +558,16 @@ in {
wantedBy = [ "multi-user.target" ];
environment = env // {
PORT = toString(cfg.sidekiqPort);
+ DB_POOL = toString cfg.sidekiqThreads;
};
serviceConfig = {
- ExecStart = "${cfg.package}/bin/sidekiq -c 25 -r ${cfg.package}";
+ ExecStart = "${cfg.package}/bin/sidekiq -c ${toString cfg.sidekiqThreads} -r ${cfg.package}";
Restart = "always";
RestartSec = 20;
EnvironmentFile = "/var/lib/mastodon/.secrets_env";
WorkingDirectory = cfg.package;
# System Call Filtering
- SystemCallFilter = "~" + lib.concatStringsSep " " systemCallsList;
+ SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
};
@@ -565,6 +600,7 @@ in {
services.postfix = lib.mkIf (cfg.smtp.createLocally && cfg.smtp.host == "127.0.0.1") {
enable = true;
+ hostname = lib.mkDefault "${cfg.localDomain}";
};
services.redis = lib.mkIf (cfg.redis.createLocally && cfg.redis.host == "127.0.0.1") {
enable = true;
diff --git a/nixos/modules/services/web-apps/matomo.nix b/nixos/modules/services/web-apps/matomo.nix
index 79a0354e22b4..eba55e7e9bef 100644
--- a/nixos/modules/services/web-apps/matomo.nix
+++ b/nixos/modules/services/web-apps/matomo.nix
@@ -24,6 +24,7 @@ in {
(mkRemovedOptionModule [ "services" "piwik" "phpfpmProcessManagerConfig" ] "Use services.phpfpm.pools..settings")
(mkRemovedOptionModule [ "services" "matomo" "phpfpmProcessManagerConfig" ] "Use services.phpfpm.pools..settings")
(mkRenamedOptionModule [ "services" "piwik" "nginx" ] [ "services" "matomo" "nginx" ])
+ (mkRenamedOptionModule [ "services" "matomo" "periodicArchiveProcessingUrl" ] [ "services" "matomo" "hostname" ])
];
options = {
@@ -48,7 +49,7 @@ in {
as they don't get backported if they are not security-relevant.
'';
default = pkgs.matomo;
- defaultText = "pkgs.matomo";
+ defaultText = literalExpression "pkgs.matomo";
};
webServerUser = mkOption {
@@ -77,7 +78,7 @@ in {
'';
};
- periodicArchiveProcessingUrl = mkOption {
+ hostname = mkOption {
type = types.str;
default = "${user}.${fqdn}";
example = "matomo.yourdomain.org";
@@ -100,13 +101,15 @@ in {
)
);
default = null;
- example = {
- serverAliases = [
- "matomo.\${config.networking.domain}"
- "stats.\${config.networking.domain}"
- ];
- enableACME = false;
- };
+ example = literalExpression ''
+ {
+ serverAliases = [
+ "matomo.''${config.networking.domain}"
+ "stats.''${config.networking.domain}"
+ ];
+ enableACME = false;
+ }
+ '';
description = ''
With this option, you can customize an nginx virtualHost which already has sensible defaults for Matomo.
Either this option or the webServerUser option is mandatory.
@@ -168,6 +171,19 @@ in {
fi
chown -R ${user}:${user} ${dataDir}
chmod -R ug+rwX,o-rwx ${dataDir}
+
+ if [ -e ${dataDir}/current-package ]; then
+ CURRENT_PACKAGE=$(readlink ${dataDir}/current-package)
+ NEW_PACKAGE=${cfg.package}
+ if [ "$CURRENT_PACKAGE" != "$NEW_PACKAGE" ]; then
+ # keeping tmp arround between upgrades seems to bork stuff, so delete it
+ rm -rf ${dataDir}/tmp
+ fi
+ elif [ -e ${dataDir}/tmp ]; then
+ # upgrade from 4.4.1
+ rm -rf ${dataDir}/tmp
+ fi
+ ln -sfT ${cfg.package} ${dataDir}/current-package
'';
script = ''
# Use User-Private Group scheme to protect Matomo data, but allow administration / backup via 'matomo' group
@@ -200,7 +216,7 @@ in {
UMask = "0007";
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
- ExecStart = "${cfg.package}/bin/matomo-console core:archive --url=https://${cfg.periodicArchiveProcessingUrl}";
+ ExecStart = "${cfg.package}/bin/matomo-console core:archive --url=https://${cfg.hostname}";
};
};
@@ -256,7 +272,7 @@ in {
# References:
# https://fralef.me/piwik-hardening-with-nginx-and-php-fpm.html
# https://github.com/perusio/piwik-nginx
- "${user}.${fqdn}" = mkMerge [ cfg.nginx {
+ "${cfg.hostname}" = mkMerge [ cfg.nginx {
# don't allow to override the root easily, as it will almost certainly break Matomo.
# disadvantage: not shown as default in docs.
root = mkForce "${cfg.package}/share";
diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix
index 1db1652022a3..977b6f60b230 100644
--- a/nixos/modules/services/web-apps/mediawiki.nix
+++ b/nixos/modules/services/web-apps/mediawiki.nix
@@ -3,7 +3,7 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption;
- inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionals optionalString types;
+ inherit (lib) concatStringsSep literalExpression mapAttrsToList optional optionals optionalString types;
cfg = config.services.mediawiki;
fpm = config.services.phpfpm.pools.mediawiki;
@@ -176,6 +176,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.mediawiki;
+ defaultText = literalExpression "pkgs.mediawiki";
description = "Which MediaWiki package to use.";
};
@@ -219,7 +220,7 @@ in
Use null instead of path to enable extensions that are part of MediaWiki.
'';
- example = literalExample ''
+ example = literalExpression ''
{
Matomo = pkgs.fetchzip {
url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz";
@@ -286,14 +287,14 @@ in
socket = mkOption {
type = types.nullOr types.path;
default = if cfg.database.createLocally then "/run/mysqld/mysqld.sock" else null;
- defaultText = "/run/mysqld/mysqld.sock";
+ defaultText = literalExpression "/run/mysqld/mysqld.sock";
description = "Path to the unix socket file to use for authentication.";
};
createLocally = mkOption {
type = types.bool;
default = cfg.database.type == "mysql";
- defaultText = "true";
+ defaultText = literalExpression "true";
description = ''
Create the database and database user locally.
This currently only applies if database type "mysql" is selected.
@@ -303,7 +304,7 @@ in
virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
- example = literalExample ''
+ example = literalExpression ''
{
hostName = "mediawiki.example.org";
adminAddr = "webmaster@example.org";
diff --git a/nixos/modules/services/web-apps/miniflux.nix b/nixos/modules/services/web-apps/miniflux.nix
index 1bbadafa2078..026bde2a92df 100644
--- a/nixos/modules/services/web-apps/miniflux.nix
+++ b/nixos/modules/services/web-apps/miniflux.nix
@@ -35,7 +35,7 @@ in
config = mkOption {
type = types.attrsOf types.str;
- example = literalExample ''
+ example = literalExpression ''
{
CLEANUP_FREQUENCY = "48";
LISTEN_ADDR = "localhost:8080";
diff --git a/nixos/modules/services/web-apps/moinmoin.nix b/nixos/modules/services/web-apps/moinmoin.nix
index 7a54255a46ef..efb73124a237 100644
--- a/nixos/modules/services/web-apps/moinmoin.nix
+++ b/nixos/modules/services/web-apps/moinmoin.nix
@@ -151,7 +151,7 @@ in
webHost = mkDefault name;
};
}));
- example = literalExample ''
+ example = literalExpression ''
{
"mywiki" = {
siteName = "Example Wiki";
diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix
index c854e084e14d..6f5cfa2e3481 100644
--- a/nixos/modules/services/web-apps/moodle.nix
+++ b/nixos/modules/services/web-apps/moodle.nix
@@ -2,7 +2,7 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
- inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionalString;
+ inherit (lib) concatStringsSep literalExpression mapAttrsToList optional optionalString;
cfg = config.services.moodle;
fpm = config.services.phpfpm.pools.moodle;
@@ -67,7 +67,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.moodle;
- defaultText = "pkgs.moodle";
+ defaultText = literalExpression "pkgs.moodle";
description = "The Moodle package to use.";
};
@@ -100,7 +100,7 @@ in
mysql = 3306;
pgsql = 5432;
}.${cfg.database.type};
- defaultText = "3306";
+ defaultText = literalExpression "3306";
};
name = mkOption {
@@ -131,7 +131,7 @@ in
if mysqlLocal then "/run/mysqld/mysqld.sock"
else if pgsqlLocal then "/run/postgresql"
else null;
- defaultText = "/run/mysqld/mysqld.sock";
+ defaultText = literalExpression "/run/mysqld/mysqld.sock";
description = "Path to the unix socket file to use for authentication.";
};
@@ -144,7 +144,7 @@ in
virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
- example = literalExample ''
+ example = literalExpression ''
{
hostName = "moodle.example.org";
adminAddr = "webmaster@example.org";
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index ba5f6582cbec..04ec7888950d 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -6,7 +6,9 @@ let
cfg = config.services.nextcloud;
fpm = config.services.phpfpm.pools.nextcloud;
- phpPackage = pkgs.php74.buildEnv {
+ inherit (cfg) datadir;
+
+ phpPackage = cfg.phpPackage.buildEnv {
extensions = { enabled, all }:
(with all;
enabled
@@ -40,7 +42,7 @@ let
if [[ "$USER" != nextcloud ]]; then
sudo='exec /run/wrappers/bin/sudo -u nextcloud --preserve-env=NEXTCLOUD_CONFIG_DIR --preserve-env=OC_PASS'
fi
- export NEXTCLOUD_CONFIG_DIR="${cfg.home}/config"
+ export NEXTCLOUD_CONFIG_DIR="${datadir}/config"
$sudo \
${phpPackage}/bin/php \
occ "$@"
@@ -51,6 +53,12 @@ let
in {
imports = [
+ (mkRemovedOptionModule [ "services" "nextcloud" "config" "adminpass" ] ''
+ Please use `services.nextcloud.config.adminpassFile' instead!
+ '')
+ (mkRemovedOptionModule [ "services" "nextcloud" "config" "dbpass" ] ''
+ Please use `services.nextcloud.config.dbpassFile' instead!
+ '')
(mkRemovedOptionModule [ "services" "nextcloud" "nginx" "enable" ] ''
The nextcloud module supports `nginx` as reverse-proxy by default and doesn't
support other reverse-proxies officially.
@@ -79,6 +87,59 @@ in {
default = "/var/lib/nextcloud";
description = "Storage path of nextcloud.";
};
+ datadir = mkOption {
+ type = types.str;
+ defaultText = "config.services.nextcloud.home";
+ description = ''
+ Data storage path of nextcloud. Will be by default.
+ This folder will be populated with a config.php and data folder which contains the state of the instance (excl the database).";
+ '';
+ example = "/mnt/nextcloud-file";
+ };
+ extraApps = mkOption {
+ type = types.attrsOf types.package;
+ default = { };
+ description = ''
+ Extra apps to install. Should be an attrSet of appid to packages generated by fetchNextcloudApp.
+ The appid must be identical to the "id" value in the apps appinfo/info.xml.
+ Using this will disable the appstore to prevent Nextcloud from updating these apps (see ).
+ '';
+ example = literalExpression ''
+ {
+ maps = pkgs.fetchNextcloudApp {
+ name = "maps";
+ sha256 = "007y80idqg6b6zk6kjxg4vgw0z8fsxs9lajnv49vv1zjy6jx2i1i";
+ url = "https://github.com/nextcloud/maps/releases/download/v0.1.9/maps-0.1.9.tar.gz";
+ version = "0.1.9";
+ };
+ phonetrack = pkgs.fetchNextcloudApp {
+ name = "phonetrack";
+ sha256 = "0qf366vbahyl27p9mshfma1as4nvql6w75zy2zk5xwwbp343vsbc";
+ url = "https://gitlab.com/eneiluj/phonetrack-oc/-/wikis/uploads/931aaaf8dca24bf31a7e169a83c17235/phonetrack-0.6.9.tar.gz";
+ version = "0.6.9";
+ };
+ }
+ '';
+ };
+ extraAppsEnable = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Automatically enable the apps in every time nextcloud starts.
+ If set to false, apps need to be enabled in the Nextcloud user interface or with nextcloud-occ app:enable.
+ '';
+ };
+ appstoreEnable = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ example = true;
+ description = ''
+ Allow the installation of apps and app updates from the store.
+ Enabled by default unless there are packages in .
+ Set to true to force enable the store even if is used.
+ Set to false to disable the installation of apps from the global appstore. App management is always enabled regardless of this setting.
+ '';
+ };
logLevel = mkOption {
type = types.ints.between 0 4;
default = 2;
@@ -92,7 +153,15 @@ in {
package = mkOption {
type = types.package;
description = "Which package to use for the Nextcloud instance.";
- relatedPackages = [ "nextcloud20" "nextcloud21" "nextcloud22" ];
+ relatedPackages = [ "nextcloud21" "nextcloud22" ];
+ };
+ phpPackage = mkOption {
+ type = types.package;
+ relatedPackages = [ "php74" "php80" ];
+ defaultText = "pkgs.php";
+ description = ''
+ PHP package to use for Nextcloud.
+ '';
};
maxUploadSize = mkOption {
@@ -126,14 +195,14 @@ in {
phpExtraExtensions = mkOption {
type = with types; functionTo (listOf package);
default = all: [];
- defaultText = "all: []";
+ defaultText = literalExpression "all: []";
description = ''
Additional PHP extensions to use for nextcloud.
By default, only extensions necessary for a vanilla nextcloud installation are enabled,
but you may choose from the list of available extensions and add further ones.
This is sometimes necessary to be able to install a certain nextcloud app that has additional requirements.
'';
- example = literalExample ''
+ example = literalExpression ''
all: [ all.pdlib all.bz2 ]
'';
};
@@ -198,14 +267,6 @@ in {
default = "nextcloud";
description = "Database user.";
};
- dbpass = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Database password. Use dbpassFile to avoid this
- being world-readable in the /nix/store.
- '';
- };
dbpassFile = mkOption {
type = types.nullOr types.str;
default = null;
@@ -238,17 +299,8 @@ in {
default = "root";
description = "Admin username.";
};
- adminpass = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Admin password. Use adminpassFile to avoid this
- being world-readable in the /nix/store.
- '';
- };
adminpassFile = mkOption {
- type = types.nullOr types.str;
- default = null;
+ type = types.str;
description = ''
The full path to a file that contains the admin's password. Must be
readable by user nextcloud.
@@ -304,14 +356,98 @@ in {
phone-numbers.
'';
};
+
+ objectstore = {
+ s3 = {
+ enable = mkEnableOption ''
+ S3 object storage as primary storage.
+
+ This mounts a bucket on an Amazon S3 object storage or compatible
+ implementation into the virtual filesystem.
+
+ Further details about this feature can be found in the
+ upstream documentation.
+ '';
+ bucket = mkOption {
+ type = types.str;
+ example = "nextcloud";
+ description = ''
+ The name of the S3 bucket.
+ '';
+ };
+ autocreate = mkOption {
+ type = types.bool;
+ description = ''
+ Create the objectstore if it does not exist.
+ '';
+ };
+ key = mkOption {
+ type = types.str;
+ example = "EJ39ITYZEUH5BGWDRUFY";
+ description = ''
+ The access key for the S3 bucket.
+ '';
+ };
+ secretFile = mkOption {
+ type = types.str;
+ example = "/var/nextcloud-objectstore-s3-secret";
+ description = ''
+ The full path to a file that contains the access secret. Must be
+ readable by user nextcloud.
+ '';
+ };
+ hostname = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "example.com";
+ description = ''
+ Required for some non-Amazon implementations.
+ '';
+ };
+ port = mkOption {
+ type = types.nullOr types.port;
+ default = null;
+ description = ''
+ Required for some non-Amazon implementations.
+ '';
+ };
+ useSsl = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Use SSL for objectstore access.
+ '';
+ };
+ region = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "REGION";
+ description = ''
+ Required for some non-Amazon implementations.
+ '';
+ };
+ usePathStyle = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Required for some non-Amazon S3 implementations.
+
+ Ordinarily, requests will be made with
+ http://bucket.hostname.domain/, but with path style
+ enabled requests are made with
+ http://hostname.domain/bucket instead.
+ '';
+ };
+ };
+ };
};
enableImagemagick = mkEnableOption ''
- Whether to load the ImageMagick module into PHP.
+ the ImageMagick module for PHP.
This is used by the theming app and for generating previews of certain images (e.g. SVG and HEIF).
You may want to disable it for increased security. In that case, previews will still be available
for some images (e.g. JPEG and PNG).
- See https://github.com/nextcloud/server/issues/13099
+ See .
'' // {
default = true;
};
@@ -371,20 +507,7 @@ in {
};
config = mkIf cfg.enable (mkMerge [
- { assertions = let acfg = cfg.config; in [
- { assertion = !(acfg.dbpass != null && acfg.dbpassFile != null);
- message = "Please specify no more than one of dbpass or dbpassFile";
- }
- { assertion = ((acfg.adminpass != null || acfg.adminpassFile != null)
- && !(acfg.adminpass != null && acfg.adminpassFile != null));
- message = "Please specify exactly one of adminpass or adminpassFile";
- }
- { assertion = versionOlder cfg.package.version "21" -> cfg.config.defaultPhoneRegion == null;
- message = "The `defaultPhoneRegion'-setting is only supported for Nextcloud >=21!";
- }
- ];
-
- warnings = let
+ { warnings = let
latest = 22;
upgradeWarning = major: nixos:
''
@@ -399,13 +522,38 @@ in {
The package can be upgraded by explicitly declaring the service-option
`services.nextcloud.package`.
'';
+
+ # FIXME(@Ma27) remove as soon as nextcloud properly supports
+ # mariadb >=10.6.
+ isUnsupportedMariadb =
+ # All currently supported Nextcloud versions are affected.
+ (versionOlder cfg.package.version "23")
+ # This module uses mysql
+ && (cfg.config.dbtype == "mysql")
+ # MySQL is managed via NixOS
+ && config.services.mysql.enable
+ # We're using MariaDB
+ && (getName config.services.mysql.package) == "mariadb-server"
+ # MariaDB is at least 10.6 and thus not supported
+ && (versionAtLeast (getVersion config.services.mysql.package) "10.6");
+
in (optional (cfg.poolConfig != null) ''
Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
Please migrate your configuration to config.services.nextcloud.poolSettings.
'')
- ++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"))
++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
- ++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"));
+ ++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"))
+ ++ (optional isUnsupportedMariadb ''
+ You seem to be using MariaDB at an unsupported version (i.e. at least 10.6)!
+ Please note that this isn't supported officially by Nextcloud. You can either
+
+ * Switch to `pkgs.mysql`
+ * Downgrade MariaDB to at least 10.5
+ * Work around Nextcloud's problems by specifying `innodb_read_only_compressed=0`
+
+ For further context, please read
+ https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/15
+ '');
services.nextcloud.package = with pkgs;
mkDefault (
@@ -419,16 +567,26 @@ in {
# This versionOlder statement remains set to 21.03 for backwards compatibility.
# See https://github.com/NixOS/nixpkgs/pull/108899 and
# https://github.com/NixOS/rfcs/blob/master/rfcs/0080-nixos-release-schedule.md.
- else if versionOlder stateVersion "21.03" then nextcloud19
+ # FIXME(@Ma27) remove this else-if as soon as 21.05 is EOL! This is only here
+ # to ensure that users who are on Nextcloud 19 with a stateVersion <21.05 with
+ # no explicit services.nextcloud.package don't upgrade to v21 by accident (
+ # nextcloud20 throws an eval-error because it's dropped).
+ else if versionOlder stateVersion "21.03" then nextcloud20
else if versionOlder stateVersion "21.11" then nextcloud21
else nextcloud22
);
+
+ services.nextcloud.datadir = mkOptionDefault config.services.nextcloud.home;
+
+ services.nextcloud.phpPackage =
+ if versionOlder cfg.package.version "21" then pkgs.php74
+ else pkgs.php80;
}
{ systemd.timers.nextcloud-cron = {
wantedBy = [ "timers.target" ];
timerConfig.OnBootSec = "5m";
- timerConfig.OnUnitActiveSec = "15m";
+ timerConfig.OnUnitActiveSec = "5m";
timerConfig.Unit = "nextcloud-cron.service";
};
@@ -441,14 +599,39 @@ in {
nextcloud-setup = let
c = cfg.config;
writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
+ requiresReadSecretFunction = c.dbpassFile != null || c.objectstore.s3.enable;
+ objectstoreConfig = let s3 = c.objectstore.s3; in optionalString s3.enable ''
+ 'objectstore' => [
+ 'class' => '\\OC\\Files\\ObjectStore\\S3',
+ 'arguments' => [
+ 'bucket' => '${s3.bucket}',
+ 'autocreate' => ${boolToString s3.autocreate},
+ 'key' => '${s3.key}',
+ 'secret' => nix_read_secret('${s3.secretFile}'),
+ ${optionalString (s3.hostname != null) "'hostname' => '${s3.hostname}',"}
+ ${optionalString (s3.port != null) "'port' => ${toString s3.port},"}
+ 'use_ssl' => ${boolToString s3.useSsl},
+ ${optionalString (s3.region != null) "'region' => '${s3.region}',"}
+ 'use_path_style' => ${boolToString s3.usePathStyle},
+ ],
+ ]
+ '';
+
+ showAppStoreSetting = cfg.appstoreEnable != null || cfg.extraApps != {};
+ renderedAppStoreSetting =
+ let
+ x = cfg.appstoreEnable;
+ in
+ if x == null then "false"
+ else boolToString x;
+
overrideConfig = pkgs.writeText "nextcloud-config.php" ''
[
+ ${optionalString (cfg.extraApps != { }) "[ 'path' => '${cfg.home}/nix-apps', 'url' => '/nix-apps', 'writable' => false ],"}
[ 'path' => '${cfg.home}/apps', 'url' => '/apps', 'writable' => false ],
[ 'path' => '${cfg.home}/store-apps', 'url' => '/store-apps', 'writable' => true ],
],
- 'datadirectory' => '${cfg.home}/data',
+ ${optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"}
+ 'datadirectory' => '${datadir}/data',
'skeletondirectory' => '${cfg.skeletonDirectory}',
${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
'log_type' => 'syslog',
@@ -474,23 +659,26 @@ in {
${optionalString (c.dbport != null) "'dbport' => '${toString c.dbport}',"}
${optionalString (c.dbuser != null) "'dbuser' => '${c.dbuser}',"}
${optionalString (c.dbtableprefix != null) "'dbtableprefix' => '${toString c.dbtableprefix}',"}
- ${optionalString (c.dbpass != null) "'dbpassword' => '${c.dbpass}',"}
- ${optionalString (c.dbpassFile != null) "'dbpassword' => nix_read_pwd(),"}
+ ${optionalString (c.dbpassFile != null) "'dbpassword' => nix_read_secret('${c.dbpassFile}'),"}
'dbtype' => '${c.dbtype}',
'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
+ ${objectstoreConfig}
];
'';
occInstallCmd = let
- dbpass = if c.dbpassFile != null
- then ''"$(<"${toString c.dbpassFile}")"''
- else if c.dbpass != null
- then ''"${toString c.dbpass}"''
- else ''""'';
- adminpass = if c.adminpassFile != null
- then ''"$(<"${toString c.adminpassFile}")"''
- else ''"${toString c.adminpass}"'';
+ mkExport = { arg, value }: "export ${arg}=${value}";
+ dbpass = {
+ arg = "DBPASS";
+ value = if c.dbpassFile != null
+ then ''"$(<"${toString c.dbpassFile}")"''
+ else ''""'';
+ };
+ adminpass = {
+ arg = "ADMINPASS";
+ value = ''"$(<"${toString c.adminpassFile}")"'';
+ };
installFlags = concatStringsSep " \\\n "
(mapAttrsToList (k: v: "${k} ${toString v}") {
"--database" = ''"${c.dbtype}"'';
@@ -501,12 +689,14 @@ in {
${if c.dbhost != null then "--database-host" else null} = ''"${c.dbhost}"'';
${if c.dbport != null then "--database-port" else null} = ''"${toString c.dbport}"'';
${if c.dbuser != null then "--database-user" else null} = ''"${c.dbuser}"'';
- "--database-pass" = dbpass;
+ "--database-pass" = "\$${dbpass.arg}";
"--admin-user" = ''"${c.adminuser}"'';
- "--admin-pass" = adminpass;
- "--data-dir" = ''"${cfg.home}/data"'';
+ "--admin-pass" = "\$${adminpass.arg}";
+ "--data-dir" = ''"${datadir}/data"'';
});
in ''
+ ${mkExport dbpass}
+ ${mkExport adminpass}
${occ}/bin/nextcloud-occ maintenance:install \
${installFlags}
'';
@@ -533,22 +723,26 @@ in {
exit 1
fi
''}
- ${optionalString (c.adminpassFile != null) ''
- if [ ! -r "${c.adminpassFile}" ]; then
- echo "adminpassFile ${c.adminpassFile} is not readable by nextcloud:nextcloud! Aborting..."
- exit 1
- fi
- if [ -z "$(<${c.adminpassFile})" ]; then
- echo "adminpassFile ${c.adminpassFile} is empty!"
- exit 1
- fi
- ''}
+ if [ ! -r "${c.adminpassFile}" ]; then
+ echo "adminpassFile ${c.adminpassFile} is not readable by nextcloud:nextcloud! Aborting..."
+ exit 1
+ fi
+ if [ -z "$(<${c.adminpassFile})" ]; then
+ echo "adminpassFile ${c.adminpassFile} is empty!"
+ exit 1
+ fi
ln -sf ${cfg.package}/apps ${cfg.home}/
+ # Install extra apps
+ ln -sfT \
+ ${pkgs.linkFarm "nix-apps"
+ (mapAttrsToList (name: path: { inherit name path; }) cfg.extraApps)} \
+ ${cfg.home}/nix-apps
+
# create nextcloud directories.
# if the directories exist already with wrong permissions, we fix that
- for dir in ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps; do
+ for dir in ${datadir}/config ${datadir}/data ${cfg.home}/store-apps ${cfg.home}/nix-apps; do
if [ ! -e $dir ]; then
install -o nextcloud -g nextcloud -d $dir
elif [ $(stat -c "%G" $dir) != "nextcloud" ]; then
@@ -556,23 +750,29 @@ in {
fi
done
- ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
+ ln -sf ${overrideConfig} ${datadir}/config/override.config.php
# Do not install if already installed
- if [[ ! -e ${cfg.home}/config/config.php ]]; then
+ if [[ ! -e ${datadir}/config/config.php ]]; then
${occInstallCmd}
fi
${occ}/bin/nextcloud-occ upgrade
${occ}/bin/nextcloud-occ config:system:delete trusted_domains
+
+ ${optionalString (cfg.extraAppsEnable && cfg.extraApps != { }) ''
+ # Try to enable apps (don't fail when one of them cannot be enabled , eg. due to incompatible version)
+ ${occ}/bin/nextcloud-occ app:enable ${concatStringsSep " " (attrNames cfg.extraApps)}
+ ''}
+
${occSetTrustedDomainsCmd}
'';
serviceConfig.Type = "oneshot";
serviceConfig.User = "nextcloud";
};
nextcloud-cron = {
- environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
+ environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
serviceConfig.Type = "oneshot";
serviceConfig.User = "nextcloud";
serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${cfg.package}/cron.php";
@@ -591,7 +791,7 @@ in {
group = "nextcloud";
phpPackage = phpPackage;
phpEnv = {
- NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
+ NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin";
};
settings = mapAttrs (name: mkDefault) {
@@ -641,6 +841,10 @@ in {
priority = 201;
extraConfig = "root ${cfg.home};";
};
+ "~ ^/nix-apps" = {
+ priority = 201;
+ extraConfig = "root ${cfg.home};";
+ };
"^~ /.well-known" = {
priority = 210;
extraConfig = ''
diff --git a/nixos/modules/services/web-apps/nextcloud.xml b/nixos/modules/services/web-apps/nextcloud.xml
index ed84487d233a..9d9cb8dfb3f2 100644
--- a/nixos/modules/services/web-apps/nextcloud.xml
+++ b/nixos/modules/services/web-apps/nextcloud.xml
@@ -237,6 +237,12 @@
Some apps may require extra PHP extensions to be installed.
This can be configured with the setting.
+
+
+ Alternatively, extra apps can also be declared with the setting.
+ When using this setting, apps can no longer be managed statefully because this can lead to Nextcloud updating apps
+ that are managed by Nix. If you want automatic updates it is recommended that you use web interface to install apps.
+
diff --git a/nixos/modules/services/web-apps/nexus.nix b/nixos/modules/services/web-apps/nexus.nix
index d4d507362c97..dc50a06705f3 100644
--- a/nixos/modules/services/web-apps/nexus.nix
+++ b/nixos/modules/services/web-apps/nexus.nix
@@ -16,6 +16,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.nexus;
+ defaultText = literalExpression "pkgs.nexus";
description = "Package which runs Nexus3";
};
@@ -70,6 +71,27 @@ in
-Dkaraf.startLocalConsole=false
-Djava.endorsed.dirs=${cfg.package}/lib/endorsed
'';
+ defaultText = literalExpression ''
+ '''
+ -Xms1200M
+ -Xmx1200M
+ -XX:MaxDirectMemorySize=2G
+ -XX:+UnlockDiagnosticVMOptions
+ -XX:+UnsyncloadClass
+ -XX:+LogVMOutput
+ -XX:LogFile=''${home}/nexus3/log/jvm.log
+ -XX:-OmitStackTraceInFastThrow
+ -Djava.net.preferIPv4Stack=true
+ -Dkaraf.home=''${package}
+ -Dkaraf.base=''${package}
+ -Dkaraf.etc=''${package}/etc/karaf
+ -Djava.util.logging.config.file=''${package}/etc/karaf/java.util.logging.properties
+ -Dkaraf.data=''${home}/nexus3
+ -Djava.io.tmpdir=''${home}/nexus3/tmp
+ -Dkaraf.startLocalConsole=false
+ -Djava.endorsed.dirs=''${package}/lib/endorsed
+ '''
+ '';
description = ''
Options for the JVM written to `nexus.jvmopts`.
diff --git a/nixos/modules/services/web-apps/node-red.nix b/nixos/modules/services/web-apps/node-red.nix
index 400790576d67..4512907f027b 100644
--- a/nixos/modules/services/web-apps/node-red.nix
+++ b/nixos/modules/services/web-apps/node-red.nix
@@ -21,7 +21,7 @@ in
package = mkOption {
default = pkgs.nodePackages.node-red;
- defaultText = "pkgs.nodePackages.node-red";
+ defaultText = literalExpression "pkgs.nodePackages.node-red";
type = types.package;
description = "Node-RED package to use.";
};
@@ -46,7 +46,7 @@ in
configFile = mkOption {
type = types.path;
default = "${cfg.package}/lib/node_modules/node-red/settings.js";
- defaultText = "\${cfg.package}/lib/node_modules/node-red/settings.js";
+ defaultText = literalExpression ''"''${package}/lib/node_modules/node-red/settings.js"'';
description = ''
Path to the JavaScript configuration file.
See services.peertube.serviceEnvironmentFile points to
+ a file in the Nix store. You should use a quoted absolute path to
+ prevent this.
+ '';
+ }
+ { assertion = !(cfg.redis.enableUnixSocket && (cfg.redis.host != null || cfg.redis.port != null));
+ message = ''
+ and redis network connection ( or ) enabled. Disable either of them.
+ '';
+ }
+ { assertion = cfg.redis.enableUnixSocket || (cfg.redis.host != null && cfg.redis.port != null);
+ message = ''
+ and needs to be set if is not enabled.
+ '';
+ }
+ { assertion = cfg.redis.passwordFile == null || !lib.hasPrefix builtins.storeDir cfg.redis.passwordFile;
+ message = ''
+ points to
+ a file in the Nix store. You should use a quoted absolute path to
+ prevent this.
+ '';
+ }
+ { assertion = cfg.database.passwordFile == null || !lib.hasPrefix builtins.storeDir cfg.database.passwordFile;
+ message = ''
+ points to
+ a file in the Nix store. You should use a quoted absolute path to
+ prevent this.
+ '';
+ }
+ { assertion = cfg.smtp.passwordFile == null || !lib.hasPrefix builtins.storeDir cfg.smtp.passwordFile;
+ message = ''
+ points to
+ a file in the Nix store. You should use a quoted absolute path to
+ prevent this.
+ '';
+ }
+ ];
+
+ services.peertube.settings = lib.mkMerge [
+ {
+ listen = {
+ port = cfg.listenHttp;
+ };
+ webserver = {
+ https = (if cfg.enableWebHttps then true else false);
+ hostname = "${cfg.localDomain}";
+ port = cfg.listenWeb;
+ };
+ database = {
+ hostname = "${cfg.database.host}";
+ port = cfg.database.port;
+ name = "${cfg.database.name}";
+ username = "${cfg.database.user}";
+ };
+ redis = {
+ hostname = "${toString cfg.redis.host}";
+ port = (if cfg.redis.port == null then "" else cfg.redis.port);
+ };
+ storage = {
+ tmp = lib.mkDefault "/var/lib/peertube/storage/tmp/";
+ avatars = lib.mkDefault "/var/lib/peertube/storage/avatars/";
+ videos = lib.mkDefault "/var/lib/peertube/storage/videos/";
+ streaming_playlists = lib.mkDefault "/var/lib/peertube/storage/streaming-playlists/";
+ redundancy = lib.mkDefault "/var/lib/peertube/storage/redundancy/";
+ logs = lib.mkDefault "/var/lib/peertube/storage/logs/";
+ previews = lib.mkDefault "/var/lib/peertube/storage/previews/";
+ thumbnails = lib.mkDefault "/var/lib/peertube/storage/thumbnails/";
+ torrents = lib.mkDefault "/var/lib/peertube/storage/torrents/";
+ captions = lib.mkDefault "/var/lib/peertube/storage/captions/";
+ cache = lib.mkDefault "/var/lib/peertube/storage/cache/";
+ plugins = lib.mkDefault "/var/lib/peertube/storage/plugins/";
+ client_overrides = lib.mkDefault "/var/lib/peertube/storage/client-overrides/";
+ };
+ }
+ (lib.mkIf cfg.redis.enableUnixSocket { redis = { socket = "/run/redis/redis.sock"; }; })
+ ];
+
+ systemd.tmpfiles.rules = [
+ "d '/var/lib/peertube/config' 0700 ${cfg.user} ${cfg.group} - -"
+ "z '/var/lib/peertube/config' 0700 ${cfg.user} ${cfg.group} - -"
+ ];
+
+ systemd.services.peertube-init-db = lib.mkIf cfg.database.createLocally {
+ description = "Initialization database for PeerTube daemon";
+ after = [ "network.target" "postgresql.service" ];
+ wantedBy = [ "multi-user.target" ];
+
+ script = let
+ psqlSetupCommands = pkgs.writeText "peertube-init.sql" ''
+ SELECT 'CREATE USER "${cfg.database.user}"' WHERE NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${cfg.database.user}')\gexec
+ SELECT 'CREATE DATABASE "${cfg.database.name}" OWNER "${cfg.database.user}" TEMPLATE template0 ENCODING UTF8' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${cfg.database.name}')\gexec
+ \c '${cfg.database.name}'
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
+ CREATE EXTENSION IF NOT EXISTS unaccent;
+ '';
+ in "${config.services.postgresql.package}/bin/psql -f ${psqlSetupCommands}";
+
+ serviceConfig = {
+ Type = "oneshot";
+ WorkingDirectory = cfg.package;
+ # User and group
+ User = "postgres";
+ Group = "postgres";
+ # Sandboxing
+ RestrictAddressFamilies = [ "AF_UNIX" ];
+ MemoryDenyWriteExecute = true;
+ # System Call Filtering
+ SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
+ } // cfgService;
+ };
+
+ systemd.services.peertube = {
+ description = "PeerTube daemon";
+ after = [ "network.target" ]
+ ++ lib.optionals cfg.redis.createLocally [ "redis.service" ]
+ ++ lib.optionals cfg.database.createLocally [ "postgresql.service" "peertube-init-db.service" ];
+ wantedBy = [ "multi-user.target" ];
+
+ environment = env;
+
+ path = with pkgs; [ bashInteractive ffmpeg nodejs-16_x openssl yarn youtube-dl ];
+
+ script = ''
+ #!/bin/sh
+ umask 077
+ cat > /var/lib/peertube/config/local.yaml < 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";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/web-apps/pict-rs.xml b/nixos/modules/services/web-apps/pict-rs.xml
new file mode 100644
index 000000000000..bf129f5cc2ac
--- /dev/null
+++ b/nixos/modules/services/web-apps/pict-rs.xml
@@ -0,0 +1,162 @@
+
+ Pict-rs
+
+ pict-rs is a a simple image hosting service.
+
+
+ Quickstart
+
+ the minimum to start pict-rs is
+
+
+services.pict-rs.enable = true;
+
+
+ this will start the http server on port 8080 by default.
+
+
+
+ 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
+
+
+
+ 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.
+
+
+
+
+
diff --git a/nixos/modules/services/web-apps/plantuml-server.nix b/nixos/modules/services/web-apps/plantuml-server.nix
index a39f594c274c..f4bf43f56b98 100644
--- a/nixos/modules/services/web-apps/plantuml-server.nix
+++ b/nixos/modules/services/web-apps/plantuml-server.nix
@@ -16,6 +16,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.plantuml-server;
+ defaultText = literalExpression "pkgs.plantuml-server";
description = "PlantUML server package to use";
};
@@ -57,7 +58,8 @@ in
graphvizPackage = mkOption {
type = types.package;
- default = pkgs.graphviz_2_32;
+ default = pkgs.graphviz;
+ defaultText = literalExpression "pkgs.graphviz";
description = "Package containing the dot executable.";
};
diff --git a/nixos/modules/services/web-apps/plausible.nix b/nixos/modules/services/web-apps/plausible.nix
index b56848b79d21..b6c48186a1d3 100644
--- a/nixos/modules/services/web-apps/plausible.nix
+++ b/nixos/modules/services/web-apps/plausible.nix
@@ -5,23 +5,18 @@ with lib;
let
cfg = config.services.plausible;
- # FIXME consider using LoadCredential as soon as it actually works.
- envSecrets = ''
- ADMIN_USER_PWD="$(<${cfg.adminUser.passwordFile})"
- export ADMIN_USER_PWD # separate export to make `set -e` work
-
- SECRET_KEY_BASE="$(<${cfg.server.secretKeybaseFile})"
- export SECRET_KEY_BASE # separate export to make `set -e` work
-
- ${optionalString (cfg.mail.smtp.passwordFile != null) ''
- SMTP_USER_PWD="$(<${cfg.mail.smtp.passwordFile})"
- export SMTP_USER_PWD # separate export to make `set -e` work
- ''}
- '';
in {
options.services.plausible = {
enable = mkEnableOption "plausible";
+ releaseCookiePath = mkOption {
+ default = null;
+ type = with types; nullOr (either str path);
+ description = ''
+ The path to the file with release cookie. (used for remote connection to the running node).
+ '';
+ };
+
adminUser = {
name = mkOption {
default = "admin";
@@ -184,13 +179,17 @@ in {
enable = true;
};
+ services.epmd.enable = true;
+
+ environment.systemPackages = [ pkgs.plausible ];
+
systemd.services = mkMerge [
{
plausible = {
inherit (pkgs.plausible.meta) description;
documentation = [ "https://plausible.io/docs/self-hosting" ];
wantedBy = [ "multi-user.target" ];
- after = optional cfg.database.postgres.setup "plausible-postgres.service";
+ after = optionals cfg.database.postgres.setup [ "postgresql.service" "plausible-postgres.service" ];
requires = optional cfg.database.clickhouse.setup "clickhouse.service"
++ optionals cfg.database.postgres.setup [
"postgresql.service"
@@ -200,7 +199,7 @@ in {
environment = {
# NixOS specific option to avoid that it's trying to write into its store-path.
# See also https://github.com/lau/tzdata#data-directory-and-releases
- TZDATA_DIR = "/var/lib/plausible/elixir_tzdata";
+ STORAGE_DIR = "/var/lib/plausible/elixir_tzdata";
# Configuration options from
# https://plausible.io/docs/self-hosting-configuration
@@ -208,6 +207,8 @@ in {
DISABLE_REGISTRATION = boolToString cfg.server.disableRegistration;
RELEASE_TMP = "/var/lib/plausible/tmp";
+ # Home is needed to connect to the node with iex
+ HOME = "/var/lib/plausible";
ADMIN_USER_NAME = cfg.adminUser.name;
ADMIN_USER_EMAIL = cfg.adminUser.email;
@@ -231,28 +232,33 @@ in {
path = [ pkgs.plausible ]
++ optional cfg.database.postgres.setup config.services.postgresql.package;
+ script = ''
+ export CONFIG_DIR=$CREDENTIALS_DIRECTORY
+
+ # setup
+ ${pkgs.plausible}/createdb.sh
+ ${pkgs.plausible}/migrate.sh
+ ${optionalString cfg.adminUser.activate ''
+ if ! ${pkgs.plausible}/init-admin.sh | grep 'already exists'; then
+ psql -d plausible <<< "UPDATE users SET email_verified=true;"
+ fi
+ ''}
+ ${optionalString (cfg.releaseCookiePath != null) ''
+ export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )"
+ ''}
+ plausible start
+ '';
serviceConfig = {
DynamicUser = true;
PrivateTmp = true;
WorkingDirectory = "/var/lib/plausible";
StateDirectory = "plausible";
- ExecStartPre = "@${pkgs.writeShellScript "plausible-setup" ''
- set -eu -o pipefail
- ${envSecrets}
- ${pkgs.plausible}/createdb.sh
- ${pkgs.plausible}/migrate.sh
- ${optionalString cfg.adminUser.activate ''
- if ! ${pkgs.plausible}/init-admin.sh | grep 'already exists'; then
- psql -d plausible <<< "UPDATE users SET email_verified=true;"
- fi
- ''}
- ''} plausible-setup";
- ExecStart = "@${pkgs.writeShellScript "plausible" ''
- set -eu -o pipefail
- ${envSecrets}
- plausible start
- ''} plausible";
+ LoadCredential = [
+ "ADMIN_USER_PWD:${cfg.adminUser.passwordFile}"
+ "SECRET_KEY_BASE:${cfg.server.secretKeybaseFile}"
+ ] ++ lib.optionals (cfg.mail.smtp.passwordFile != null) [ "SMTP_USER_PWD:${cfg.mail.smtp.passwordFile}"]
+ ++ lib.optionals (cfg.releaseCookiePath != null) [ "RELEASE_COOKIE:${cfg.releaseCookiePath}"];
};
};
}
@@ -260,20 +266,22 @@ in {
# `plausible' requires the `citext'-extension.
plausible-postgres = {
after = [ "postgresql.service" ];
- bindsTo = [ "postgresql.service" ];
- requiredBy = [ "plausible.service" ];
partOf = [ "plausible.service" ];
- serviceConfig.Type = "oneshot";
- unitConfig.ConditionPathExists = "!/var/lib/plausible/.db-setup";
- script = ''
- mkdir -p /var/lib/plausible/
+ serviceConfig = {
+ Type = "oneshot";
+ User = config.services.postgresql.superUser;
+ RemainAfterExit = true;
+ };
+ script = with cfg.database.postgres; ''
PSQL() {
- /run/wrappers/bin/sudo -Hu postgres ${config.services.postgresql.package}/bin/psql --port=5432 "$@"
+ ${config.services.postgresql.package}/bin/psql --port=5432 "$@"
}
- PSQL -tAc "CREATE ROLE plausible WITH LOGIN;"
- PSQL -tAc "CREATE DATABASE plausible WITH OWNER plausible;"
- PSQL -d plausible -tAc "CREATE EXTENSION IF NOT EXISTS citext;"
- touch /var/lib/plausible/.db-setup
+ # check if the database already exists
+ if ! PSQL -lqt | ${pkgs.coreutils}/bin/cut -d \| -f 1 | ${pkgs.gnugrep}/bin/grep -qw ${dbname} ; then
+ PSQL -tAc "CREATE ROLE plausible WITH LOGIN;"
+ PSQL -tAc "CREATE DATABASE ${dbname} WITH OWNER plausible;"
+ PSQL -d ${dbname} -tAc "CREATE EXTENSION IF NOT EXISTS citext;"
+ fi
'';
};
})
diff --git a/nixos/modules/services/web-apps/restya-board.nix b/nixos/modules/services/web-apps/restya-board.nix
index 9d0a3f65253e..fd97ab76a5f6 100644
--- a/nixos/modules/services/web-apps/restya-board.nix
+++ b/nixos/modules/services/web-apps/restya-board.nix
@@ -30,7 +30,6 @@ in
dataDir = mkOption {
type = types.path;
default = "/var/lib/restya-board";
- example = "/var/lib/restya-board";
description = ''
Data of the application.
'';
@@ -39,7 +38,6 @@ in
user = mkOption {
type = types.str;
default = "restya-board";
- example = "restya-board";
description = ''
User account under which the web-application runs.
'';
@@ -48,7 +46,6 @@ in
group = mkOption {
type = types.str;
default = "nginx";
- example = "nginx";
description = ''
Group account under which the web-application runs.
'';
diff --git a/nixos/modules/services/web-apps/rss-bridge.nix b/nixos/modules/services/web-apps/rss-bridge.nix
index f1d5b7660f32..456ca00416fe 100644
--- a/nixos/modules/services/web-apps/rss-bridge.nix
+++ b/nixos/modules/services/web-apps/rss-bridge.nix
@@ -16,7 +16,6 @@ in
user = mkOption {
type = types.str;
default = "nginx";
- example = "nginx";
description = ''
User account under which both the service and the web-application run.
'';
@@ -25,7 +24,6 @@ in
group = mkOption {
type = types.str;
default = "nginx";
- example = "nginx";
description = ''
Group under which the web-application run.
'';
@@ -61,7 +59,7 @@ in
whitelist = mkOption {
type = types.listOf types.str;
default = [];
- example = options.literalExample ''
+ example = options.literalExpression ''
[
"Facebook"
"Instagram"
diff --git a/nixos/modules/services/web-apps/selfoss.nix b/nixos/modules/services/web-apps/selfoss.nix
index d5a660ebf289..899976ac696c 100644
--- a/nixos/modules/services/web-apps/selfoss.nix
+++ b/nixos/modules/services/web-apps/selfoss.nix
@@ -35,7 +35,6 @@ in
user = mkOption {
type = types.str;
default = "nginx";
- example = "nginx";
description = ''
User account under which both the service and the web-application run.
'';
diff --git a/nixos/modules/services/web-apps/shiori.nix b/nixos/modules/services/web-apps/shiori.nix
index a15bb9744a9c..bb2fc684e83b 100644
--- a/nixos/modules/services/web-apps/shiori.nix
+++ b/nixos/modules/services/web-apps/shiori.nix
@@ -11,7 +11,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.shiori;
- defaultText = "pkgs.shiori";
+ defaultText = literalExpression "pkgs.shiori";
description = "The Shiori package to use.";
};
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index bc18c824f394..08356cee1dfe 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -126,7 +126,6 @@ let
root = mkOption {
type = types.path;
default = "/var/lib/tt-rss";
- example = "/var/lib/tt-rss";
description = ''
Root of the application.
'';
@@ -135,7 +134,6 @@ let
user = mkOption {
type = types.str;
default = "tt_rss";
- example = "tt_rss";
description = ''
User account under which both the update daemon and the web-application run.
'';
diff --git a/nixos/modules/services/web-apps/vikunja.nix b/nixos/modules/services/web-apps/vikunja.nix
index b0b6eb6df17e..7575e96ca815 100644
--- a/nixos/modules/services/web-apps/vikunja.nix
+++ b/nixos/modules/services/web-apps/vikunja.nix
@@ -14,13 +14,13 @@ in {
package-api = mkOption {
default = pkgs.vikunja-api;
type = types.package;
- defaultText = "pkgs.vikunja-api";
+ defaultText = literalExpression "pkgs.vikunja-api";
description = "vikunja-api derivation to use.";
};
package-frontend = mkOption {
default = pkgs.vikunja-frontend;
type = types.package;
- defaultText = "pkgs.vikunja-frontend";
+ defaultText = literalExpression "pkgs.vikunja-frontend";
description = "vikunja-frontend derivation to use.";
};
environmentFiles = mkOption {
@@ -34,7 +34,7 @@ in {
setupNginx = mkOption {
type = types.bool;
default = config.services.nginx.enable;
- defaultText = "config.services.nginx.enable";
+ defaultText = literalExpression "config.services.nginx.enable";
description = ''
Whether to setup NGINX.
Further nginx configuration can be done by changing
diff --git a/nixos/modules/services/web-apps/whitebophir.nix b/nixos/modules/services/web-apps/whitebophir.nix
index b265296d5c1e..f9db6fe379b0 100644
--- a/nixos/modules/services/web-apps/whitebophir.nix
+++ b/nixos/modules/services/web-apps/whitebophir.nix
@@ -11,7 +11,7 @@ in {
package = mkOption {
default = pkgs.whitebophir;
- defaultText = "pkgs.whitebophir";
+ defaultText = literalExpression "pkgs.whitebophir";
type = types.package;
description = "Whitebophir package to use.";
};
diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix
index eb91256045cc..8ebb72296627 100644
--- a/nixos/modules/services/web-apps/wordpress.nix
+++ b/nixos/modules/services/web-apps/wordpress.nix
@@ -2,7 +2,7 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
- inherit (lib) any attrValues concatMapStringsSep flatten literalExample;
+ inherit (lib) any attrValues concatMapStringsSep flatten literalExpression;
inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
cfg = migrateOldAttrs config.services.wordpress;
@@ -87,6 +87,7 @@ let
package = mkOption {
type = types.package;
default = pkgs.wordpress;
+ defaultText = literalExpression "pkgs.wordpress";
description = "Which WordPress package to use.";
};
@@ -106,23 +107,23 @@ let
List of path(s) to respective plugin(s) which are copied from the 'plugins' directory.
These plugins need to be packaged before use, see example.
'';
- example = ''
- # Wordpress plugin 'embed-pdf-viewer' installation example
- embedPdfViewerPlugin = pkgs.stdenv.mkDerivation {
- name = "embed-pdf-viewer-plugin";
- # Download the theme from the wordpress site
- src = pkgs.fetchurl {
- url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip";
- sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd";
+ example = literalExpression ''
+ let
+ # Wordpress plugin 'embed-pdf-viewer' installation example
+ embedPdfViewerPlugin = pkgs.stdenv.mkDerivation {
+ name = "embed-pdf-viewer-plugin";
+ # Download the theme from the wordpress site
+ src = pkgs.fetchurl {
+ url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip";
+ sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd";
+ };
+ # We need unzip to build this package
+ nativeBuildInputs = [ pkgs.unzip ];
+ # Installing simply means copying all files to the output directory
+ installPhase = "mkdir -p $out; cp -R * $out/";
};
- # We need unzip to build this package
- nativeBuildInputs = [ pkgs.unzip ];
- # Installing simply means copying all files to the output directory
- installPhase = "mkdir -p $out; cp -R * $out/";
- };
-
- And then pass this theme to the themes list like this:
- plugins = [ embedPdfViewerPlugin ];
+ # And then pass this theme to the themes list like this:
+ in [ embedPdfViewerPlugin ]
'';
};
@@ -133,23 +134,23 @@ let
List of path(s) to respective theme(s) which are copied from the 'theme' directory.
These themes need to be packaged before use, see example.
'';
- example = ''
- # Let's package the responsive theme
- responsiveTheme = pkgs.stdenv.mkDerivation {
- name = "responsive-theme";
- # Download the theme from the wordpress site
- src = pkgs.fetchurl {
- url = "https://downloads.wordpress.org/theme/responsive.3.14.zip";
- sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3";
+ example = literalExpression ''
+ let
+ # Let's package the responsive theme
+ responsiveTheme = pkgs.stdenv.mkDerivation {
+ name = "responsive-theme";
+ # Download the theme from the wordpress site
+ src = pkgs.fetchurl {
+ url = "https://downloads.wordpress.org/theme/responsive.3.14.zip";
+ sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3";
+ };
+ # We need unzip to build this package
+ nativeBuildInputs = [ pkgs.unzip ];
+ # Installing simply means copying all files to the output directory
+ installPhase = "mkdir -p $out; cp -R * $out/";
};
- # We need unzip to build this package
- nativeBuildInputs = [ pkgs.unzip ];
- # Installing simply means copying all files to the output directory
- installPhase = "mkdir -p $out; cp -R * $out/";
- };
-
- And then pass this theme to the themes list like this:
- themes = [ responsiveTheme ];
+ # And then pass this theme to the themes list like this:
+ in [ responsiveTheme ]
'';
};
@@ -204,7 +205,7 @@ let
socket = mkOption {
type = types.nullOr types.path;
default = null;
- defaultText = "/run/mysqld/mysqld.sock";
+ defaultText = literalExpression "/run/mysqld/mysqld.sock";
description = "Path to the unix socket file to use for authentication.";
};
@@ -217,7 +218,7 @@ let
virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
- example = literalExample ''
+ example = literalExpression ''
{
adminAddr = "webmaster@example.org";
forceSSL = true;
diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix
index b4d653d2d77e..7a70ae6cd523 100644
--- a/nixos/modules/services/web-apps/youtrack.nix
+++ b/nixos/modules/services/web-apps/youtrack.nix
@@ -46,7 +46,7 @@ in
https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Java-Start-Parameters.html
for more information.
'';
- example = literalExample ''
+ example = literalExpression ''
{
"jetbrains.youtrack.overrideRootPassword" = "tortuga";
}
@@ -60,7 +60,7 @@ in
'';
type = types.package;
default = pkgs.youtrack;
- defaultText = "pkgs.youtrack";
+ defaultText = literalExpression "pkgs.youtrack";
};
port = mkOption {
diff --git a/nixos/modules/services/web-apps/zabbix.nix b/nixos/modules/services/web-apps/zabbix.nix
index e94861a90b5a..ff50b95254f9 100644
--- a/nixos/modules/services/web-apps/zabbix.nix
+++ b/nixos/modules/services/web-apps/zabbix.nix
@@ -3,7 +3,7 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
- inherit (lib) literalExample mapAttrs optionalString versionAtLeast;
+ inherit (lib) literalExpression mapAttrs optionalString versionAtLeast;
cfg = config.services.zabbixWeb;
fpm = config.services.phpfpm.pools.zabbix;
@@ -21,7 +21,8 @@ let
$DB['PORT'] = '${toString cfg.database.port}';
$DB['DATABASE'] = '${cfg.database.name}';
$DB['USER'] = '${cfg.database.user}';
- $DB['PASSWORD'] = ${if cfg.database.passwordFile != null then "file_get_contents('${cfg.database.passwordFile}')" else "''"};
+ # NOTE: file_get_contents adds newline at the end of returned string
+ $DB['PASSWORD'] = ${if cfg.database.passwordFile != null then "trim(file_get_contents('${cfg.database.passwordFile}'), \"\\r\\n\")" else "''"};
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = ''';
$ZBX_SERVER = '${cfg.server.address}';
@@ -43,7 +44,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.zabbix.web;
- defaultText = "zabbix.web";
+ defaultText = literalExpression "zabbix.web";
description = "Which Zabbix package to use.";
};
@@ -116,7 +117,7 @@ in
virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
- example = literalExample ''
+ example = literalExpression ''
{
hostName = "zabbix.example.org";
adminAddr = "webmaster@example.org";
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index ceb199870975..992a58875e43 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -407,7 +407,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.apacheHttpd;
- defaultText = "pkgs.apacheHttpd";
+ defaultText = literalExpression "pkgs.apacheHttpd";
description = ''
Overridable attribute of the Apache HTTP Server package to use.
'';
@@ -416,8 +416,8 @@ in
configFile = mkOption {
type = types.path;
default = confFile;
- defaultText = "confFile";
- example = literalExample ''pkgs.writeText "httpd.conf" "# my custom config file ..."'';
+ defaultText = literalExpression "confFile";
+ example = literalExpression ''pkgs.writeText "httpd.conf" "# my custom config file ..."'';
description = ''
Override the configuration file used by Apache. By default,
NixOS generates one automatically.
@@ -437,7 +437,7 @@ in
extraModules = mkOption {
type = types.listOf types.unspecified;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[
"proxy_connect"
{ name = "jk"; path = "''${pkgs.tomcat_connectors}/modules/mod_jk.so"; }
@@ -516,7 +516,14 @@ in
documentRoot = "${pkg}/htdocs";
};
};
- example = literalExample ''
+ defaultText = literalExpression ''
+ {
+ localhost = {
+ documentRoot = "''${package.out}/htdocs";
+ };
+ }
+ '';
+ example = literalExpression ''
{
"foo.example.com" = {
forceSSL = true;
@@ -550,7 +557,7 @@ in
phpPackage = mkOption {
type = types.package;
default = pkgs.php;
- defaultText = "pkgs.php";
+ defaultText = literalExpression "pkgs.php";
description = ''
Overridable attribute of the PHP package to use.
'';
diff --git a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
index 3f732a5c9f33..8bb7e91ec9cd 100644
--- a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
@@ -1,6 +1,6 @@
{ config, lib, name, ... }:
let
- inherit (lib) literalExample mkOption nameValuePair types;
+ inherit (lib) literalExpression mkOption nameValuePair types;
in
{
options = {
@@ -266,7 +266,7 @@ in
locations = mkOption {
type = with types; attrsOf (submodule (import ./location-options.nix));
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"/" = {
proxyPass = "http://localhost:3000";
diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix
index fd7102096343..cef27e2e59f3 100644
--- a/nixos/modules/services/web-servers/caddy/default.nix
+++ b/nixos/modules/services/web-servers/caddy/default.nix
@@ -83,7 +83,7 @@ in
inherit config lib;
}));
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
"hydra.example.com" = {
serverAliases = [ "www.hydra.example.com" ];
@@ -162,8 +162,7 @@ in
package = mkOption {
default = pkgs.caddy;
- defaultText = "pkgs.caddy";
- example = "pkgs.caddy";
+ defaultText = literalExpression "pkgs.caddy";
type = types.package;
description = ''
Caddy package to use.
diff --git a/nixos/modules/services/web-servers/lighttpd/cgit.nix b/nixos/modules/services/web-servers/lighttpd/cgit.nix
index 9f25dc34f3f0..8cd6d020940b 100644
--- a/nixos/modules/services/web-servers/lighttpd/cgit.nix
+++ b/nixos/modules/services/web-servers/lighttpd/cgit.nix
@@ -41,11 +41,13 @@ in
configText = mkOption {
default = "";
- example = ''
- source-filter=''${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py
- about-filter=''${pkgs.cgit}/lib/cgit/filters/about-formatting.sh
- cache-size=1000
- scan-path=/srv/git
+ example = literalExpression ''
+ '''
+ source-filter=''${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py
+ about-filter=''${pkgs.cgit}/lib/cgit/filters/about-formatting.sh
+ cache-size=1000
+ scan-path=/srv/git
+ '''
'';
type = types.lines;
description = ''
diff --git a/nixos/modules/services/web-servers/lighttpd/default.nix b/nixos/modules/services/web-servers/lighttpd/default.nix
index 7a691aa78915..05e897c8cc94 100644
--- a/nixos/modules/services/web-servers/lighttpd/default.nix
+++ b/nixos/modules/services/web-servers/lighttpd/default.nix
@@ -38,10 +38,13 @@ let
"mod_rrdtool"
"mod_accesslog"
# Remaining list of modules, order assumed to be unimportant.
+ "mod_authn_dbi"
"mod_authn_file"
"mod_authn_gssapi"
"mod_authn_ldap"
"mod_authn_mysql"
+ "mod_authn_pam"
+ "mod_authn_sasl"
"mod_cml"
"mod_deflate"
"mod_evasive"
@@ -132,6 +135,15 @@ in
'';
};
+ package = mkOption {
+ default = pkgs.lighttpd;
+ defaultText = "pkgs.lighttpd";
+ type = types.package;
+ description = ''
+ lighttpd package to use.
+ '';
+ };
+
port = mkOption {
default = 80;
type = types.port;
@@ -240,7 +252,7 @@ in
description = "Lighttpd Web Server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- serviceConfig.ExecStart = "${pkgs.lighttpd}/sbin/lighttpd -D -f ${configFile}";
+ serviceConfig.ExecStart = "${cfg.package}/sbin/lighttpd -D -f ${configFile}";
# SIGINT => graceful shutdown
serviceConfig.KillSignal = "SIGINT";
};
diff --git a/nixos/modules/services/web-servers/minio.nix b/nixos/modules/services/web-servers/minio.nix
index 6b10afad4991..c345e3f2467b 100644
--- a/nixos/modules/services/web-servers/minio.nix
+++ b/nixos/modules/services/web-servers/minio.nix
@@ -87,7 +87,7 @@ in
package = mkOption {
default = pkgs.minio;
- defaultText = "pkgs.minio";
+ defaultText = literalExpression "pkgs.minio";
type = types.package;
description = "Minio package to use.";
};
diff --git a/nixos/modules/services/web-servers/molly-brown.nix b/nixos/modules/services/web-servers/molly-brown.nix
index 58db9b9beda0..0bd8b3316cb3 100644
--- a/nixos/modules/services/web-servers/molly-brown.nix
+++ b/nixos/modules/services/web-servers/molly-brown.nix
@@ -22,8 +22,8 @@ in {
hostName = mkOption {
type = types.str;
- example = literalExample "config.networking.hostName";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
description = ''
The hostname to respond to requests for. Requests for URLs with
other hosts will result in a status 53 (PROXY REQUEST REFUSED)
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 6682472fdb8e..be589e42ddd6 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -425,7 +425,7 @@ in
package = mkOption {
default = pkgs.nginxStable;
- defaultText = "pkgs.nginxStable";
+ defaultText = literalExpression "pkgs.nginxStable";
type = types.package;
apply = p: p.override {
modules = p.modules ++ cfg.additionalModules;
@@ -440,7 +440,7 @@ in
additionalModules = mkOption {
default = [];
type = types.listOf (types.attrsOf types.anything);
- example = literalExample "[ pkgs.nginxModules.brotli ]";
+ example = literalExpression "[ pkgs.nginxModules.brotli ]";
description = ''
Additional third-party nginx modules
to install. Packaged modules are available in
@@ -674,7 +674,7 @@ in
addresses = mkOption {
type = types.listOf types.str;
default = [];
- example = literalExample ''[ "[::1]" "127.0.0.1:5353" ]'';
+ example = literalExpression ''[ "[::1]" "127.0.0.1:5353" ]'';
description = "List of resolvers to use";
};
valid = mkOption {
@@ -738,7 +738,7 @@ in
Defines a group of servers to use as proxy target.
'';
default = {};
- example = literalExample ''
+ example = literalExpression ''
"backend_server" = {
servers = { "127.0.0.1:8000" = {}; };
extraConfig = ''''
@@ -755,7 +755,7 @@ in
default = {
localhost = {};
};
- example = literalExample ''
+ example = literalExpression ''
{
"hydra.example.com" = {
forceSSL = true;
@@ -889,7 +889,7 @@ in
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
LockPersonality = true;
- MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules);
+ MemoryDenyWriteExecute = !((builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules) || (cfg.package == pkgs.openresty));
RestrictRealtime = true;
RestrictSUIDSGID = true;
RemoveIPC = true;
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
index d8c976f202fd..56a5381e05c8 100644
--- a/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -12,7 +12,7 @@ with lib;
basicAuth = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
user = "password";
};
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
index 94645e927f86..7ee041d37211 100644
--- a/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -162,7 +162,7 @@ with lib;
sslTrustedCertificate = mkOption {
type = types.nullOr types.path;
default = null;
- example = "\${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
+ example = literalExpression ''"''${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"'';
description = "Path to root SSL certificate for stapling and client certificates.";
};
@@ -231,7 +231,7 @@ with lib;
basicAuth = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
user = "password";
};
@@ -261,7 +261,7 @@ with lib;
inherit lib;
}));
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"/" = {
proxyPass = "http://localhost:3000";
diff --git a/nixos/modules/services/web-servers/phpfpm/default.nix b/nixos/modules/services/web-servers/phpfpm/default.nix
index 4d302299f5f0..87c68fa074a1 100644
--- a/nixos/modules/services/web-servers/phpfpm/default.nix
+++ b/nixos/modules/services/web-servers/phpfpm/default.nix
@@ -59,7 +59,7 @@ let
phpPackage = mkOption {
type = types.package;
default = cfg.phpPackage;
- defaultText = "config.services.phpfpm.phpPackage";
+ defaultText = literalExpression "config.services.phpfpm.phpPackage";
description = ''
The PHP package to use for running this PHP-FPM pool.
'';
@@ -78,7 +78,7 @@ let
description = ''
Environment variables used for this PHP-FPM pool.
'';
- example = literalExample ''
+ example = literalExpression ''
{
HOSTNAME = "$HOSTNAME";
TMP = "/tmp";
@@ -107,7 +107,7 @@ let
for details. Note that settings names must be enclosed in quotes (e.g.
"pm.max_children" instead of pm.max_children).
'';
- example = literalExample ''
+ example = literalExpression ''
{
"pm" = "dynamic";
"pm.max_children" = 75;
@@ -179,7 +179,7 @@ in {
phpPackage = mkOption {
type = types.package;
default = pkgs.php;
- defaultText = "pkgs.php";
+ defaultText = literalExpression "pkgs.php";
description = ''
The PHP package to use for running the PHP-FPM service.
'';
@@ -200,7 +200,7 @@ in {
pools = mkOption {
type = types.attrsOf (types.submodule poolOpts);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
mypool = {
user = "php";
diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix
index 13fe98402c60..f9446fe125a3 100644
--- a/nixos/modules/services/web-servers/tomcat.nix
+++ b/nixos/modules/services/web-servers/tomcat.nix
@@ -24,8 +24,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.tomcat85;
- defaultText = "pkgs.tomcat85";
- example = lib.literalExample "pkgs.tomcat9";
+ defaultText = literalExpression "pkgs.tomcat85";
+ example = lib.literalExpression "pkgs.tomcat9";
description = ''
Which tomcat package to use.
'';
@@ -127,7 +127,7 @@ in
webapps = mkOption {
type = types.listOf types.path;
default = [ tomcat.webapps ];
- defaultText = "[ pkgs.tomcat85.webapps ]";
+ defaultText = literalExpression "[ pkgs.tomcat85.webapps ]";
description = "List containing WAR files or directories with WAR files which are web applications to be deployed on Tomcat";
};
@@ -166,7 +166,7 @@ in
jdk = mkOption {
type = types.package;
default = pkgs.jdk;
- defaultText = "pkgs.jdk";
+ defaultText = literalExpression "pkgs.jdk";
description = "Which JDK to use.";
};
diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix
index 3d29199dd454..eb7fd0995de0 100644
--- a/nixos/modules/services/web-servers/traefik.nix
+++ b/nixos/modules/services/web-servers/traefik.nix
@@ -54,7 +54,7 @@ in {
staticConfigFile = mkOption {
default = null;
- example = literalExample "/path/to/static_config.toml";
+ example = literalExpression "/path/to/static_config.toml";
type = types.nullOr types.path;
description = ''
Path to traefik's static configuration to use.
@@ -78,7 +78,7 @@ in {
dynamicConfigFile = mkOption {
default = null;
- example = literalExample "/path/to/dynamic_config.toml";
+ example = literalExpression "/path/to/dynamic_config.toml";
type = types.nullOr types.path;
description = ''
Path to traefik's dynamic configuration to use.
@@ -123,7 +123,7 @@ in {
package = mkOption {
default = pkgs.traefik;
- defaultText = "pkgs.traefik";
+ defaultText = literalExpression "pkgs.traefik";
type = types.package;
description = "Traefik package to use.";
};
diff --git a/nixos/modules/services/web-servers/trafficserver.nix b/nixos/modules/services/web-servers/trafficserver/default.nix
similarity index 90%
rename from nixos/modules/services/web-servers/trafficserver.nix
rename to nixos/modules/services/web-servers/trafficserver/default.nix
index db0e2ac0bd05..b52087fa038c 100644
--- a/nixos/modules/services/web-servers/trafficserver.nix
+++ b/nixos/modules/services/web-servers/trafficserver/default.nix
@@ -8,21 +8,9 @@ let
group = config.users.groups.trafficserver.name;
getManualUrl = name: "https://docs.trafficserver.apache.org/en/latest/admin-guide/files/${name}.en.html";
- getConfPath = name: "${pkgs.trafficserver}/etc/trafficserver/${name}";
yaml = pkgs.formats.yaml { };
- fromYAML = f:
- let
- jsonFile = pkgs.runCommand "in.json"
- {
- nativeBuildInputs = [ pkgs.remarshal ];
- } ''
- yaml2json < "${f}" > "$out"
- '';
- in
- builtins.fromJSON (builtins.readFile jsonFile);
-
mkYamlConf = name: cfg:
if cfg != null then {
"trafficserver/${name}.yaml".source = yaml.generate "${name}.yaml" cfg;
@@ -73,16 +61,18 @@ in
ipAllow = mkOption {
type = types.nullOr yaml.type;
- default = fromYAML (getConfPath "ip_allow.yaml");
- defaultText = "upstream defaults";
- example = literalExample {
- ip_allow = [{
- apply = "in";
- ip_addrs = "127.0.0.1";
- action = "allow";
- methods = "ALL";
- }];
- };
+ default = lib.importJSON ./ip_allow.json;
+ defaultText = literalDocBook "upstream defaults";
+ example = literalExpression ''
+ {
+ ip_allow = [{
+ apply = "in";
+ ip_addrs = "127.0.0.1";
+ action = "allow";
+ methods = "ALL";
+ }];
+ }
+ '';
description = ''
Control client access to Traffic Server and Traffic Server connections
to upstream servers.
@@ -94,9 +84,9 @@ in
logging = mkOption {
type = types.nullOr yaml.type;
- default = fromYAML (getConfPath "logging.yaml");
- defaultText = "upstream defaults";
- example = literalExample { };
+ default = lib.importJSON ./logging.json;
+ defaultText = literalDocBook "upstream defaults";
+ example = { };
description = ''
Configure logs.
@@ -157,7 +147,7 @@ in
in
valueType;
default = { };
- example = literalExample { proxy.config.proxy_name = "my_server"; };
+ example = { proxy.config.proxy_name = "my_server"; };
description = ''
List of configurable variables used by Traffic Server.
@@ -209,12 +199,14 @@ in
sni = mkOption {
type = types.nullOr yaml.type;
default = null;
- example = literalExample {
- sni = [{
- fqdn = "no-http2.example.com";
- https = "off";
- }];
- };
+ example = literalExpression ''
+ {
+ sni = [{
+ fqdn = "no-http2.example.com";
+ https = "off";
+ }];
+ }
+ '';
description = ''
Configure aspects of TLS connection handling for both inbound and
outbound connections.
diff --git a/nixos/modules/services/web-servers/trafficserver/ip_allow.json b/nixos/modules/services/web-servers/trafficserver/ip_allow.json
new file mode 100644
index 000000000000..fc2db8037286
--- /dev/null
+++ b/nixos/modules/services/web-servers/trafficserver/ip_allow.json
@@ -0,0 +1,36 @@
+{
+ "ip_allow": [
+ {
+ "apply": "in",
+ "ip_addrs": "127.0.0.1",
+ "action": "allow",
+ "methods": "ALL"
+ },
+ {
+ "apply": "in",
+ "ip_addrs": "::1",
+ "action": "allow",
+ "methods": "ALL"
+ },
+ {
+ "apply": "in",
+ "ip_addrs": "0/0",
+ "action": "deny",
+ "methods": [
+ "PURGE",
+ "PUSH",
+ "DELETE"
+ ]
+ },
+ {
+ "apply": "in",
+ "ip_addrs": "::/0",
+ "action": "deny",
+ "methods": [
+ "PURGE",
+ "PUSH",
+ "DELETE"
+ ]
+ }
+ ]
+}
diff --git a/nixos/modules/services/web-servers/trafficserver/logging.json b/nixos/modules/services/web-servers/trafficserver/logging.json
new file mode 100644
index 000000000000..81e7ba0186c6
--- /dev/null
+++ b/nixos/modules/services/web-servers/trafficserver/logging.json
@@ -0,0 +1,37 @@
+{
+ "logging": {
+ "formats": [
+ {
+ "name": "welf",
+ "format": "id=firewall time=\"% %\" fw=% pri=6 proto=% duration=% sent=% rcvd=% src=% dst=% dstname=% user=% op=% arg=\"%\" result=% ref=\"%<{Referer}cqh>\" agent=\"%<{user-agent}cqh>\" cache=%"
+ },
+ {
+ "name": "squid_seconds_only_timestamp",
+ "format": "% % % %/% % % % % %/% %"
+ },
+ {
+ "name": "squid",
+ "format": "% % % %/% % % % % %/% %"
+ },
+ {
+ "name": "common",
+ "format": "% - % [%] \"%\" % %"
+ },
+ {
+ "name": "extended",
+ "format": "% - % [%] \"%\" % % % % % % % % % % %"
+ },
+ {
+ "name": "extended2",
+ "format": "% - % [%] \"%\" % % % % % % % % % % % % % % %"
+ }
+ ],
+ "logs": [
+ {
+ "filename": "squid",
+ "format": "squid",
+ "mode": "binary"
+ }
+ ]
+ }
+}
diff --git a/nixos/modules/services/web-servers/ttyd.nix b/nixos/modules/services/web-servers/ttyd.nix
index 68d55ee6ffd2..431509f7fd56 100644
--- a/nixos/modules/services/web-servers/ttyd.nix
+++ b/nixos/modules/services/web-servers/ttyd.nix
@@ -78,7 +78,7 @@ in
clientOptions = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample ''{
+ example = literalExpression ''{
fontSize = "16";
fontFamily = "Fira Code";
diff --git a/nixos/modules/services/web-servers/unit/default.nix b/nixos/modules/services/web-servers/unit/default.nix
index 2a264bf2e9a6..b2eecdbb53ee 100644
--- a/nixos/modules/services/web-servers/unit/default.nix
+++ b/nixos/modules/services/web-servers/unit/default.nix
@@ -14,7 +14,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.unit;
- defaultText = "pkgs.unit";
+ defaultText = literalExpression "pkgs.unit";
description = "Unit package to use.";
};
user = mkOption {
@@ -45,7 +45,7 @@ in {
"applications": {}
}
'';
- example = literalExample ''
+ example = ''
{
"listeners": {
"*:8300": {
diff --git a/nixos/modules/services/web-servers/uwsgi.nix b/nixos/modules/services/web-servers/uwsgi.nix
index 2dfc39c847aa..ac435951310e 100644
--- a/nixos/modules/services/web-servers/uwsgi.nix
+++ b/nixos/modules/services/web-servers/uwsgi.nix
@@ -114,7 +114,7 @@ in {
default = {
type = "normal";
};
- example = literalExample ''
+ example = literalExpression ''
{
type = "emperor";
vassals = {
@@ -163,7 +163,7 @@ in {
type = types.listOf types.str;
apply = caps: caps ++ optionals isEmperor imperialPowers;
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
[
"CAP_NET_BIND_SERVICE" # bind on ports <1024
"CAP_NET_RAW" # open raw sockets
diff --git a/nixos/modules/services/web-servers/varnish/default.nix b/nixos/modules/services/web-servers/varnish/default.nix
index 01fe3d12917a..0ebf58eb9f61 100644
--- a/nixos/modules/services/web-servers/varnish/default.nix
+++ b/nixos/modules/services/web-servers/varnish/default.nix
@@ -13,10 +13,12 @@ in
services.varnish = {
enable = mkEnableOption "Varnish Server";
+ enableConfigCheck = mkEnableOption "checking the config during build time" // { default = true; };
+
package = mkOption {
type = types.package;
default = pkgs.varnish;
- defaultText = "pkgs.varnish";
+ defaultText = literalExpression "pkgs.varnish";
description = ''
The package to use
'';
@@ -48,7 +50,7 @@ in
extraModules = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.varnishPackages.geoip ]";
+ example = literalExpression "[ pkgs.varnishPackages.geoip ]";
description = "
Varnish modules (except 'std').
";
@@ -96,11 +98,10 @@ in
environment.systemPackages = [ cfg.package ];
# check .vcl syntax at compile time (e.g. before nixops deployment)
- system.extraDependencies = [
- (pkgs.stdenv.mkDerivation {
- name = "check-varnish-syntax";
- buildCommand = "${cfg.package}/sbin/varnishd -C ${commandLine} 2> $out || (cat $out; exit 1)";
- })
+ system.extraDependencies = mkIf cfg.enableConfigCheck [
+ (pkgs.runCommand "check-varnish-syntax" {} ''
+ ${cfg.package}/bin/varnishd -C ${commandLine} 2> $out || (cat $out; exit 1)
+ '')
];
users.users.varnish = {
diff --git a/nixos/modules/services/web-servers/zope2.nix b/nixos/modules/services/web-servers/zope2.nix
index ab12e87502eb..922109160228 100644
--- a/nixos/modules/services/web-servers/zope2.nix
+++ b/nixos/modules/services/web-servers/zope2.nix
@@ -75,7 +75,7 @@ in
services.zope2.instances = mkOption {
default = {};
type = with types; attrsOf (submodule zope2Opts);
- example = literalExample ''
+ example = literalExpression ''
{
plone01 = {
http_address = "127.0.0.1:8080";
diff --git a/nixos/modules/services/x11/clight.nix b/nixos/modules/services/x11/clight.nix
index 873f425fb8be..d994a658cbaa 100644
--- a/nixos/modules/services/x11/clight.nix
+++ b/nixos/modules/services/x11/clight.nix
@@ -71,6 +71,14 @@ in {
};
config = mkIf cfg.enable {
+ assertions = let
+ inRange = v: l: r: v >= l && v <= r;
+ in [
+ { assertion = config.location.provider == "manual" ->
+ inRange config.location.latitude (-90) 90 && inRange config.location.longitude (-180) 180;
+ message = "You must specify a valid latitude and longitude if manually providing location"; }
+ ];
+
boot.kernelModules = [ "i2c_dev" ];
environment.systemPackages = with pkgs; [ clight clightd ];
services.dbus.packages = with pkgs; [ clight clightd ];
diff --git a/nixos/modules/services/x11/desktop-managers/cde.nix b/nixos/modules/services/x11/desktop-managers/cde.nix
index 24ca82fca796..6c7105729cfd 100644
--- a/nixos/modules/services/x11/desktop-managers/cde.nix
+++ b/nixos/modules/services/x11/desktop-managers/cde.nix
@@ -14,7 +14,7 @@ in {
default = with pkgs.xorg; [
xclock bitmap xlsfonts xfd xrefresh xload xwininfo xdpyinfo xwd xwud
];
- example = literalExample ''
+ defaultText = literalExpression ''
with pkgs.xorg; [
xclock bitmap xlsfonts xfd xrefresh xload xwininfo xdpyinfo xwd xwud
]
@@ -50,7 +50,7 @@ in {
security.wrappers = {
dtmail = {
setgid = true;
- owner = "nobody";
+ owner = "root";
group = "mail";
source = "${pkgs.cdesktopenv}/bin/dtmail";
};
diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index d201c1a5334b..a0a5873f72fe 100644
--- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -26,7 +26,7 @@ in
sessionPath = mkOption {
default = [];
type = types.listOf types.package;
- example = literalExample "[ pkgs.gnome.gpaste ]";
+ example = literalExpression "[ pkgs.gnome.gpaste ]";
description = ''
Additional list of packages to be added to the session search path.
Useful for GSettings-conditional autostart.
@@ -50,7 +50,7 @@ in
environment.cinnamon.excludePackages = mkOption {
default = [];
- example = literalExample "[ pkgs.cinnamon.blueberry ]";
+ example = literalExpression "[ pkgs.cinnamon.blueberry ]";
type = types.listOf types.package;
description = "Which packages cinnamon should exclude from the default environment";
};
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix
index 4bc42525906c..efc9bd39b366 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -186,7 +186,7 @@ in
sessionPath = mkOption {
default = [];
type = types.listOf types.package;
- example = literalExample "[ pkgs.gnome.gpaste ]";
+ example = literalExpression "[ pkgs.gnome.gpaste ]";
description = ''
Additional list of packages to be added to the session search path.
Useful for GNOME Shell extensions or GSettings-conditional autostart.
@@ -200,9 +200,11 @@ in
internal = true; # this is messy
default = defaultFavoriteAppsOverride;
type = types.lines;
- example = literalExample ''
- [org.gnome.shell]
- favorite-apps=[ 'firefox.desktop', 'org.gnome.Calendar.desktop' ]
+ example = literalExpression ''
+ '''
+ [org.gnome.shell]
+ favorite-apps=[ 'firefox.desktop', 'org.gnome.Calendar.desktop' ]
+ '''
'';
description = "List of desktop files to put as favorite apps into gnome-shell. These need to be installed somehow globally.";
};
@@ -242,13 +244,13 @@ in
wmCommand = mkOption {
type = types.str;
description = "The executable of the window manager to use.";
- example = "\${pkgs.haskellPackages.xmonad}/bin/xmonad";
+ example = literalExpression ''"''${pkgs.haskellPackages.xmonad}/bin/xmonad"'';
};
enableGnomePanel = mkOption {
type = types.bool;
default = true;
- example = "false";
+ example = false;
description = "Whether to enable the GNOME panel in this session.";
};
};
@@ -259,20 +261,20 @@ in
panelModulePackages = mkOption {
default = [ pkgs.gnome.gnome-applets ];
+ defaultText = literalExpression "[ pkgs.gnome.gnome-applets ]";
type = types.listOf types.path;
description = ''
Packages containing modules that should be made available to gnome-panel (usually for applets).
If you're packaging something to use here, please install the modules in $out/lib/gnome-panel/modules.
'';
- example = literalExample "[ pkgs.gnome.gnome-applets ]";
};
};
};
environment.gnome.excludePackages = mkOption {
default = [];
- example = literalExample "[ pkgs.gnome.totem ]";
+ example = literalExpression "[ pkgs.gnome.totem ]";
type = types.listOf types.package;
description = "Which packages gnome should exclude from the default environment";
};
@@ -370,7 +372,13 @@ in
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
xdg.portal.enable = true;
- xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
+ xdg.portal.extraPortals = [
+ pkgs.xdg-desktop-portal-gnome
+ (pkgs.xdg-desktop-portal-gtk.override {
+ # Do not build portals that we already have.
+ buildPortalsInGnome = false;
+ })
+ ];
# Harmonize Qt5 application style and also make them use the portal for file chooser dialog.
qt5 = {
@@ -445,7 +453,7 @@ in
cantarell-fonts
dejavu_fonts
source-code-pro # Default monospace font in 3.32
- source-sans-pro
+ source-sans
];
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
@@ -476,6 +484,8 @@ in
(mkIf serviceCfg.experimental-features.realtime-scheduling {
security.wrappers.".gnome-shell-wrapped" = {
source = "${pkgs.gnome.gnome-shell}/bin/.gnome-shell-wrapped";
+ owner = "root";
+ group = "root";
capabilities = "cap_sys_nice=ep";
};
diff --git a/nixos/modules/services/x11/desktop-managers/kodi.nix b/nixos/modules/services/x11/desktop-managers/kodi.nix
index af303d6fb279..b853c94d6fd4 100644
--- a/nixos/modules/services/x11/desktop-managers/kodi.nix
+++ b/nixos/modules/services/x11/desktop-managers/kodi.nix
@@ -18,8 +18,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.kodi;
- defaultText = "pkgs.kodi";
- example = "pkgs.kodi.withPackages (p: with p; [ jellyfin pvr-iptvsimple vfs-sftp ])";
+ defaultText = literalExpression "pkgs.kodi";
+ example = literalExpression "pkgs.kodi.withPackages (p: with p; [ jellyfin pvr-iptvsimple vfs-sftp ])";
description = ''
Package that should be used for Kodi.
'';
diff --git a/nixos/modules/services/x11/desktop-managers/lumina.nix b/nixos/modules/services/x11/desktop-managers/lumina.nix
index 419f5055d8be..1ab61953e735 100644
--- a/nixos/modules/services/x11/desktop-managers/lumina.nix
+++ b/nixos/modules/services/x11/desktop-managers/lumina.nix
@@ -38,5 +38,11 @@ in
"/share"
];
+ security.wrappers.lumina-checkpass-wrapped = {
+ source = "${pkgs.lumina.lumina}/bin/lumina-checkpass";
+ owner = "root";
+ group = "root";
+ };
+
};
}
diff --git a/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixos/modules/services/x11/desktop-managers/lxqt.nix
index 71dfad5c7ca0..720985ba0d94 100644
--- a/nixos/modules/services/x11/desktop-managers/lxqt.nix
+++ b/nixos/modules/services/x11/desktop-managers/lxqt.nix
@@ -19,7 +19,7 @@ in
environment.lxqt.excludePackages = mkOption {
default = [];
- example = literalExample "[ pkgs.lxqt.qterminal ]";
+ example = literalExpression "[ pkgs.lxqt.qterminal ]";
type = types.listOf types.package;
description = "Which LXQt packages to exclude from the default environment";
};
diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix
index 19ab9edb7324..f8f47a061452 100644
--- a/nixos/modules/services/x11/desktop-managers/mate.nix
+++ b/nixos/modules/services/x11/desktop-managers/mate.nix
@@ -35,7 +35,7 @@ in
environment.mate.excludePackages = mkOption {
default = [];
- example = literalExample "[ pkgs.mate.mate-terminal pkgs.mate.pluma ]";
+ example = literalExpression "[ pkgs.mate.mate-terminal pkgs.mate.pluma ]";
type = types.listOf types.package;
description = "Which MATE packages to exclude from the default environment";
};
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 887d6c91e83b..5a41f96497f2 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -43,7 +43,7 @@ in
sessionPath = mkOption {
default = [];
type = types.listOf types.package;
- example = literalExample "[ pkgs.gnome.gpaste ]";
+ example = literalExpression "[ pkgs.gnome.gpaste ]";
description = ''
Additional list of packages to be added to the session search path.
Useful for GSettings-conditional autostart.
@@ -86,7 +86,7 @@ in
environment.pantheon.excludePackages = mkOption {
default = [];
- example = literalExample "[ pkgs.pantheon.elementary-camera ]";
+ example = literalExpression "[ pkgs.pantheon.elementary-camera ]";
type = types.listOf types.package;
description = "Which packages pantheon should exclude from the default environment";
};
@@ -219,14 +219,18 @@ in
] config.environment.pantheon.excludePackages);
programs.evince.enable = mkDefault true;
+ programs.evince.package = pkgs.pantheon.evince;
programs.file-roller.enable = mkDefault true;
+ programs.file-roller.package = pkgs.pantheon.file-roller;
# Settings from elementary-default-settings
environment.sessionVariables.GTK_CSD = "1";
environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
- xdg.portal.extraPortals = [
- pkgs.pantheon.elementary-files
+ xdg.portal.extraPortals = with pkgs; [
+ pantheon.elementary-files
+ pantheon.elementary-settings-daemon
+ xdg-desktop-portal-pantheon
];
# Override GSettings schemas
@@ -264,7 +268,7 @@ in
fonts.fontconfig.defaultFonts = {
monospace = [ "Roboto Mono" ];
- sansSerif = [ "Open Sans" ];
+ sansSerif = [ "Inter" ];
};
})
@@ -279,6 +283,7 @@ in
elementary-music
elementary-photos
elementary-screenshot
+ elementary-tasks
elementary-terminal
elementary-videos
epiphany
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.xml b/nixos/modules/services/x11/desktop-managers/pantheon.xml
index fe0a1c496223..70cd7410c1e0 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.xml
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.xml
@@ -105,7 +105,7 @@ switchboard-with-plugs.override {
- AppCenter has been available since 20.03, but it is of little use. This is because there is no functioning PackageKit backend for Nix 2.0. Starting from 21.11, the Flatpak backend should work so you can install some Flatpak applications using it. See this issue.
+ AppCenter has been available since 20.03, but it is of little use. This is because there is no functioning PackageKit backend for Nix 2.0. The Flatpak backend will not work before flag for Flatpak-only is provided. See this issue.
To use AppCenter on NixOS, add pantheon.appcenter to , enable Flatpak support and optionally add the appcenter Flatpak remote:
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index d8dc2675f068..8a1793484e23 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -1,20 +1,18 @@
{ config, lib, pkgs, ... }:
-with lib;
-
let
-
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.plasma5;
libsForQt5 = pkgs.plasma5Packages;
inherit (libsForQt5) kdeGear kdeFrameworks plasma5;
inherit (pkgs) writeText;
+ inherit (lib)
+ getBin optionalString
+ mkRemovedOptionModule mkRenamedOptionModule
+ mkDefault mkIf mkMerge mkOption types;
- pulseaudio = config.hardware.pulseaudio;
- pactl = "${getBin pulseaudio.package}/bin/pactl";
- startplasma-x11 = "${getBin plasma5.plasma-workspace}/bin/startplasma-x11";
- sed = "${getBin pkgs.gnused}/bin/sed";
+ ini = pkgs.formats.ini { };
gtkrc2 = writeText "gtkrc-2.0" ''
# Default GTK+ 2 config for NixOS Plasma 5
@@ -34,23 +32,25 @@ let
gtk-button-images=1
'';
- gtk3_settings = writeText "settings.ini" ''
- [Settings]
- gtk-font-name=Sans Serif Regular 10
- gtk-theme-name=Breeze
- gtk-icon-theme-name=breeze
- gtk-fallback-icon-theme=hicolor
- gtk-cursor-theme-name=breeze_cursors
- gtk-toolbar-style=GTK_TOOLBAR_ICONS
- gtk-menu-images=1
- gtk-button-images=1
- '';
+ gtk3_settings = ini.generate "settings.ini" {
+ Settings = {
+ gtk-font-name = "Sans Serif Regular 10";
+ gtk-theme-name = "Breeze";
+ gtk-icon-theme-name = "breeze";
+ gtk-fallback-icon-theme = "hicolor";
+ gtk-cursor-theme-name = "breeze_cursors";
+ gtk-toolbar-style = "GTK_TOOLBAR_ICONS";
+ gtk-menu-images = 1;
+ gtk-button-images = 1;
+ };
+ };
- kcminputrc = writeText "kcminputrc" ''
- [Mouse]
- cursorTheme=breeze_cursors
- cursorSize=0
- '';
+ kcminputrc = ini.generate "kcminputrc" {
+ Mouse = {
+ cursorTheme = "breeze_cursors";
+ cursorSize = 0;
+ };
+ };
activationScript = ''
${set_XDG_CONFIG_HOME}
@@ -76,7 +76,7 @@ let
# Qt from doing this wackiness in the first place.
trolltech_conf="''${XDG_CONFIG_HOME}/Trolltech.conf"
if [ -e "$trolltech_conf" ]; then
- ${sed} -i "$trolltech_conf" -e '/nix\\store\|nix\/store/ d'
+ ${getBin pkgs.gnused}/bin/sed -i "$trolltech_conf" -e '/nix\\store\|nix\/store/ d'
fi
# Remove the kbuildsyscoca5 cache. It will be regenerated
@@ -88,92 +88,87 @@ let
'';
set_XDG_CONFIG_HOME = ''
- # Set the default XDG_CONFIG_HOME if it is unset.
- # Per the XDG Base Directory Specification:
- # https://specifications.freedesktop.org/basedir-spec/latest
- # 1. Never export this variable! If it is unset, then child processes are
- # expected to set the default themselves.
- # 2. Contaminate / if $HOME is unset; do not check if $HOME is set.
- XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
+ # Set the default XDG_CONFIG_HOME if it is unset.
+ # Per the XDG Base Directory Specification:
+ # https://specifications.freedesktop.org/basedir-spec/latest
+ # 1. Never export this variable! If it is unset, then child processes are
+ # expected to set the default themselves.
+ # 2. Contaminate / if $HOME is unset; do not check if $HOME is set.
+ XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
'';
- startplasma =
- ''
- ${set_XDG_CONFIG_HOME}
- mkdir -p "''${XDG_CONFIG_HOME}"
+ startplasma = ''
+ ${set_XDG_CONFIG_HOME}
+ mkdir -p "''${XDG_CONFIG_HOME}"
+ '' + optionalString config.hardware.pulseaudio.enable ''
+ # Load PulseAudio module for routing support.
+ # See also: http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/
+ ${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
+ '' + ''
+ ${activationScript}
- ''
- + optionalString pulseaudio.enable ''
- # Load PulseAudio module for routing support.
- # See also: http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/
- ${pactl} load-module module-device-manager "do_routing=1"
-
- ''
- + ''
- ${activationScript}
-
- # Create default configurations if Plasma has never been started.
- kdeglobals="''${XDG_CONFIG_HOME}/kdeglobals"
- if ! [ -f "$kdeglobals" ]
- then
- kcminputrc="''${XDG_CONFIG_HOME}/kcminputrc"
- if ! [ -f "$kcminputrc" ]
- then
- cat ${kcminputrc} >"$kcminputrc"
- fi
-
- gtkrc2="$HOME/.gtkrc-2.0"
- if ! [ -f "$gtkrc2" ]
- then
- cat ${gtkrc2} >"$gtkrc2"
- fi
-
- gtk3_settings="''${XDG_CONFIG_HOME}/gtk-3.0/settings.ini"
- if ! [ -f "$gtk3_settings" ]
- then
- mkdir -p "$(dirname "$gtk3_settings")"
- cat ${gtk3_settings} >"$gtk3_settings"
- fi
+ # Create default configurations if Plasma has never been started.
+ kdeglobals="''${XDG_CONFIG_HOME}/kdeglobals"
+ if ! [ -f "$kdeglobals" ]; then
+ kcminputrc="''${XDG_CONFIG_HOME}/kcminputrc"
+ if ! [ -f "$kcminputrc" ]; then
+ cat ${kcminputrc} >"$kcminputrc"
fi
- ''
- + ''
- exec "${startplasma-x11}"
- '';
+ gtkrc2="$HOME/.gtkrc-2.0"
+ if ! [ -f "$gtkrc2" ]; then
+ cat ${gtkrc2} >"$gtkrc2"
+ fi
+
+ gtk3_settings="''${XDG_CONFIG_HOME}/gtk-3.0/settings.ini"
+ if ! [ -f "$gtk3_settings" ]; then
+ mkdir -p "$(dirname "$gtk3_settings")"
+ cat ${gtk3_settings} >"$gtk3_settings"
+ fi
+ fi
+ '';
in
{
- options = {
-
- services.xserver.desktopManager.plasma5 = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = "Enable the Plasma 5 (KDE 5) desktop environment.";
- };
-
- phononBackend = mkOption {
- type = types.enum [ "gstreamer" "vlc" ];
- default = "gstreamer";
- example = "vlc";
- description = "Phonon audio backend to install.";
- };
-
- supportDDC = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Support setting monitor brightness via DDC.
-
-
- This is not needed for controlling brightness of the internal monitor
- of a laptop and as it is considered experimental by upstream, it is
- disabled by default.
- '';
- };
+ options.services.xserver.desktopManager.plasma5 = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Enable the Plasma 5 (KDE 5) desktop environment.";
};
+ phononBackend = mkOption {
+ type = types.enum [ "gstreamer" "vlc" ];
+ default = "gstreamer";
+ example = "vlc";
+ description = "Phonon audio backend to install.";
+ };
+
+ supportDDC = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Support setting monitor brightness via DDC.
+
+
+ This is not needed for controlling brightness of the internal monitor
+ of a laptop and as it is considered experimental by upstream, it is
+ disabled by default.
+ '';
+ };
+
+ useQtScaling = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Enable HiDPI scaling in Qt.";
+ };
+
+ runUsingSystemd = mkOption {
+ description = "Use systemd to manage the Plasma session";
+ type = types.bool;
+ default = false;
+ };
};
imports = [
@@ -183,38 +178,41 @@ in
config = mkMerge [
(mkIf cfg.enable {
- # Seed our configuration into nixos-generate-config
- system.nixos-generate-config.desktopConfiguration = [''
- # Enable the Plasma 5 Desktop Environment.
- services.xserver.displayManager.sddm.enable = true;
- services.xserver.desktopManager.plasma5.enable = true;
- ''];
- services.xserver.desktopManager.session = singleton {
- name = "plasma5";
- bgSupport = true;
- start = startplasma;
- };
+ # Seed our configuration into nixos-generate-config
+ system.nixos-generate-config.desktopConfiguration = [
+ ''
+ # Enable the Plasma 5 Desktop Environment.
+ services.xserver.displayManager.sddm.enable = true;
+ services.xserver.desktopManager.plasma5.enable = true;
+ ''
+ ];
+
+ services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-workspace ];
+ # Default to be `plasma` (X11) instead of `plasmawayland`, since plasma wayland currently has
+ # many tiny bugs.
+ # See: https://github.com/NixOS/nixpkgs/issues/143272
+ services.xserver.displayManager.defaultSession = mkDefault "plasma";
security.wrappers = {
- kcheckpass =
- { setuid = true;
- owner = "root";
- group = "root";
- source = "${lib.getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
- };
- start_kdeinit =
- { setuid = true;
- owner = "root";
- group = "root";
- source = "${lib.getBin libsForQt5.kinit}/libexec/kf5/start_kdeinit";
- };
- kwin_wayland =
- { owner = "root";
- group = "root";
- capabilities = "cap_sys_nice+ep";
- source = "${lib.getBin plasma5.kwin}/bin/kwin_wayland";
- };
+ kcheckpass = {
+ setuid = true;
+ owner = "root";
+ group = "root";
+ source = "${getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
+ };
+ start_kdeinit = {
+ setuid = true;
+ owner = "root";
+ group = "root";
+ source = "${getBin libsForQt5.kinit}/libexec/kf5/start_kdeinit";
+ };
+ kwin_wayland = {
+ owner = "root";
+ group = "root";
+ capabilities = "cap_sys_nice+ep";
+ source = "${getBin plasma5.kwin}/bin/kwin_wayland";
+ };
};
# DDC support
@@ -248,7 +246,7 @@ in
kidletime
kimageformats
kinit
- kirigami2 # In system profile for SDDM theme. TODO: wrapper.
+ kirigami2 # In system profile for SDDM theme. TODO: wrapper.
kio
kjobwidgets
knewstuff
@@ -264,6 +262,7 @@ in
kwallet-pam
kwalletmanager
kwayland
+ kwayland-integration
kwidgetsaddons
kxmlgui
kxmlrpcclient
@@ -314,11 +313,16 @@ in
breeze-icons
pkgs.hicolor-icon-theme
- kde-gtk-config breeze-gtk
+ kde-gtk-config
+ breeze-gtk
qtvirtualkeyboard
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
+
+ elisa
+ gwenview
+ okular
]
# Phonon audio backend
@@ -332,6 +336,7 @@ in
++ lib.optional config.services.pipewire.pulse.enable plasma-pa
++ lib.optional config.powerManagement.enable powerdevil
++ lib.optional config.services.colord.enable pkgs.colord-kde
+ ++ lib.optional config.services.hardware.bolt.enable pkgs.plasma5Packages.plasma-thunderbolt
++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]
++ lib.optional config.services.xserver.wacom.enable pkgs.wacomtablet;
@@ -342,6 +347,8 @@ in
environment.etc."X11/xkb".source = xcfg.xkbDir;
+ environment.sessionVariables.PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
+
# Enable GTK applications to load SVG icons
services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
@@ -355,9 +362,12 @@ in
programs.ssh.askPassword = mkDefault "${plasma5.ksshaskpass.out}/bin/ksshaskpass";
# Enable helpful DBus services.
+ services.accounts-daemon.enable = true;
+ # when changing an account picture the accounts-daemon reads a temporary file containing the image which systemsettings5 may place under /tmp
+ systemd.services.accounts-daemon.serviceConfig.PrivateTmp = false;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
- services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
+ services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.xserver.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid
@@ -379,14 +389,35 @@ in
security.pam.services.lightdm.enableKwallet = true;
security.pam.services.sddm.enableKwallet = true;
+ systemd.user.services = {
+ plasma-early-setup = mkIf cfg.runUsingSystemd {
+ description = "Early Plasma setup";
+ wantedBy = [ "graphical-session-pre.target" ];
+ serviceConfig.Type = "oneshot";
+ script = activationScript;
+ };
+
+ plasma-run-with-systemd = {
+ description = "Run KDE Plasma via systemd";
+ wantedBy = [ "basic.target" ];
+ serviceConfig.Type = "oneshot";
+ script = ''
+ ${set_XDG_CONFIG_HOME}
+
+ ${kdeFrameworks.kconfig}/bin/kwriteconfig5 \
+ --file startkderc --group General --key systemdBoot ${lib.boolToString cfg.runUsingSystemd}
+ '';
+ };
+ };
+
xdg.portal.enable = true;
xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
# Update the start menu for each user that is currently logged in
system.userActivationScripts.plasmaSetup = activationScript;
+ services.xserver.displayManager.setupCommands = startplasma;
nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
})
];
-
}
diff --git a/nixos/modules/services/x11/desktop-managers/surf-display.nix b/nixos/modules/services/x11/desktop-managers/surf-display.nix
index 9aeb0bbd2a88..4b5a04f988ba 100644
--- a/nixos/modules/services/x11/desktop-managers/surf-display.nix
+++ b/nixos/modules/services/x11/desktop-managers/surf-display.nix
@@ -50,6 +50,7 @@ in {
defaultWwwUri = mkOption {
type = types.str;
default = "${pkgs.surf-display}/share/surf-display/empty-page.html";
+ defaultText = literalExpression ''"''${pkgs.surf-display}/share/surf-display/empty-page.html"'';
example = "https://www.example.com/";
description = "Default URI to display.";
};
@@ -57,7 +58,7 @@ in {
inactivityInterval = mkOption {
type = types.int;
default = 300;
- example = "0";
+ example = 0;
description = ''
Setting for internal inactivity timer to restart surf-display if the
user goes inactive/idle to get a fresh session for the next user of
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index bbfdea2225b5..25276e1d649e 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -49,7 +49,7 @@ in
thunarPlugins = mkOption {
default = [];
type = types.listOf types.package;
- example = literalExample "[ pkgs.xfce.thunar-archive-plugin ]";
+ example = literalExpression "[ pkgs.xfce.thunar-archive-plugin ]";
description = ''
A list of plugin that should be installed with Thunar.
'';
diff --git a/nixos/modules/services/x11/desktop-managers/xterm.nix b/nixos/modules/services/x11/desktop-managers/xterm.nix
index f76db278a927..3424ee1b0e11 100644
--- a/nixos/modules/services/x11/desktop-managers/xterm.nix
+++ b/nixos/modules/services/x11/desktop-managers/xterm.nix
@@ -14,8 +14,8 @@ in
services.xserver.desktopManager.xterm.enable = mkOption {
type = types.bool;
- default = (versionOlder config.system.stateVersion "19.09") && xSessionEnabled;
- defaultText = if versionOlder config.system.stateVersion "19.09" then "config.services.xserver.enable" else "false";
+ default = versionOlder config.system.stateVersion "19.09" && xSessionEnabled;
+ defaultText = literalExpression ''versionOlder config.system.stateVersion "19.09" && config.services.xserver.enable;'';
description = "Enable a xterm terminal as a desktop manager.";
};
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 584dfb63c4dc..bdc46faa7fd0 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -122,10 +122,10 @@ let
done
if test -d ${pkg}/share/xsessions; then
- ${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions
+ ${pkgs.buildPackages.xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions
fi
if test -d ${pkg}/share/wayland-sessions; then
- ${xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions
+ ${pkgs.buildPackages.xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions
fi
'') cfg.displayManager.sessionPackages}
'';
@@ -217,7 +217,7 @@ in
session = mkOption {
default = [];
- example = literalExample
+ example = literalExpression
''
[ { manage = "desktop";
name = "xterm";
@@ -280,7 +280,7 @@ in
null;
example = "gnome";
description = ''
- Graphical session to pre-select in the session chooser (only effective for GDM and LightDM).
+ Graphical session to pre-select in the session chooser (only effective for GDM, LightDM and SDDM).
On GDM, LightDM and SDDM, it will also be used as a session for auto-login.
'';
@@ -305,9 +305,7 @@ in
execCmd = mkOption {
type = types.str;
- example = literalExample ''
- "''${pkgs.lightdm}/bin/lightdm"
- '';
+ example = literalExpression ''"''${pkgs.lightdm}/bin/lightdm"'';
description = "Command to start the display manager.";
};
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index 3df576038a9f..e036c684c886 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -6,6 +6,8 @@ let
cfg = config.services.xserver.displayManager;
gdm = pkgs.gnome.gdm;
+ settingsFormat = pkgs.formats.ini { };
+ configFile = settingsFormat.generate "custom.conf" cfg.gdm.settings;
xSessionWrapper = if (cfg.setupCommands == "") then null else
pkgs.writeScript "gdm-x-session-wrapper" ''
@@ -24,7 +26,6 @@ let
load-module module-udev-detect
load-module module-native-protocol-unix
load-module module-default-device-restore
- load-module module-rescue-streams
load-module module-always-sink
load-module module-intended-roles
load-module module-suspend-on-idle
@@ -105,6 +106,18 @@ in
type = types.bool;
};
+ settings = mkOption {
+ type = settingsFormat.type;
+ default = { };
+ example = {
+ debug.enable = true;
+ };
+ description = ''
+ Options passed to the gdm daemon.
+ See here for supported options.
+ '';
+ };
+
};
};
@@ -270,31 +283,26 @@ in
# Use AutomaticLogin if delay is zero, because it's immediate.
# Otherwise with TimedLogin with zero seconds the prompt is still
# presented and there's a little delay.
- environment.etc."gdm/custom.conf".text = ''
- [daemon]
- WaylandEnable=${boolToString cfg.gdm.wayland}
- ${optionalString cfg.autoLogin.enable (
- if cfg.gdm.autoLogin.delay > 0 then ''
- TimedLoginEnable=true
- TimedLogin=${cfg.autoLogin.user}
- TimedLoginDelay=${toString cfg.gdm.autoLogin.delay}
- '' else ''
- AutomaticLoginEnable=true
- AutomaticLogin=${cfg.autoLogin.user}
- '')
- }
+ services.xserver.displayManager.gdm.settings = {
+ daemon = mkMerge [
+ { WaylandEnable = cfg.gdm.wayland; }
+ # nested if else didn't work
+ (mkIf (cfg.autoLogin.enable && cfg.gdm.autoLogin.delay != 0 ) {
+ TimedLoginEnable = true;
+ TimedLogin = cfg.autoLogin.user;
+ TimedLoginDelay = cfg.gdm.autoLogin.delay;
+ })
+ (mkIf (cfg.autoLogin.enable && cfg.gdm.autoLogin.delay == 0 ) {
+ AutomaticLoginEnable = true;
+ AutomaticLogin = cfg.autoLogin.user;
+ })
+ ];
+ debug = mkIf cfg.gdm.debug {
+ Enable = true;
+ };
+ };
- [security]
-
- [xdmcp]
-
- [greeter]
-
- [chooser]
-
- [debug]
- ${optionalString cfg.gdm.debug "Enable=true"}
- '';
+ environment.etc."gdm/custom.conf".source = configFile;
environment.etc."gdm/Xsession".source = config.services.xserver.displayManager.sessionData.wrapper;
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
index ecd46a9ee6d2..930ee96b384d 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
@@ -35,7 +35,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.gnome.gnome-themes-extra;
- defaultText = "pkgs.gnome.gnome-themes-extra";
+ defaultText = literalExpression "pkgs.gnome.gnome-themes-extra";
description = ''
The package path that contains the theme given in the name option.
'';
@@ -54,7 +54,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.papirus-icon-theme;
- defaultText = "pkgs.papirus-icon-theme";
+ defaultText = literalExpression "pkgs.papirus-icon-theme";
description = ''
The package path that contains the icon theme given in the name option.
'';
@@ -73,7 +73,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.capitaine-cursors;
- defaultText = "pkgs.capitaine-cursors";
+ defaultText = literalExpression "pkgs.capitaine-cursors";
description = ''
The package path that contains the cursor theme given in the name option.
'';
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
index fe5a16bc60f1..debd4b568bf6 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
@@ -48,7 +48,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.gnome.gnome-themes-extra;
- defaultText = "pkgs.gnome.gnome-themes-extra";
+ defaultText = literalExpression "pkgs.gnome.gnome-themes-extra";
description = ''
The package path that contains the theme given in the name option.
'';
@@ -69,7 +69,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.gnome.adwaita-icon-theme;
- defaultText = "pkgs.gnome.adwaita-icon-theme";
+ defaultText = literalExpression "pkgs.gnome.adwaita-icon-theme";
description = ''
The package path that contains the icon theme given in the name option.
'';
@@ -90,7 +90,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.gnome.adwaita-icon-theme;
- defaultText = "pkgs.gnome.adwaita-icon-theme";
+ defaultText = literalExpression "pkgs.gnome.adwaita-icon-theme";
description = ''
The package path that contains the cursor theme given in the name option.
'';
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index 41c1b635f5d6..9a7532b47641 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -146,9 +146,9 @@ in
};
background = mkOption {
- type = types.path;
+ type = types.either types.path (types.strMatching "^#[0-9]\{6\}$");
# Manual cannot depend on packages, we are actually setting the default in config below.
- defaultText = "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
+ defaultText = literalExpression "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
description = ''
The background image or color to use.
'';
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index d79b3cda2fcc..529a086381f0 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -30,6 +30,9 @@ let
HaltCommand = "/run/current-system/systemd/bin/systemctl poweroff";
RebootCommand = "/run/current-system/systemd/bin/systemctl reboot";
Numlock = if cfg.autoNumlock then "on" else "none"; # on, off none
+
+ # Implementation is done via pkgs/applications/display-managers/sddm/sddm-default-session.patch
+ DefaultSession = optionalString (dmcfg.defaultSession != null) "${dmcfg.defaultSession}.desktop";
};
Theme = {
@@ -113,14 +116,12 @@ in
settings = mkOption {
type = iniFmt.type;
default = { };
- example = ''
- {
- Autologin = {
- User = "john";
- Session = "plasma.desktop";
- };
- }
- '';
+ example = {
+ Autologin = {
+ User = "john";
+ Session = "plasma.desktop";
+ };
+ };
description = ''
Extra settings merged in and overwritting defaults in sddm.conf.
'';
diff --git a/nixos/modules/services/x11/extra-layouts.nix b/nixos/modules/services/x11/extra-layouts.nix
index b1c4e04975f9..159bed63e137 100644
--- a/nixos/modules/services/x11/extra-layouts.nix
+++ b/nixos/modules/services/x11/extra-layouts.nix
@@ -93,7 +93,7 @@ in
extraLayouts = mkOption {
type = types.attrsOf (types.submodule layoutOpts);
default = {};
- example = literalExample
+ example = literalExpression
''
{
mine = {
diff --git a/nixos/modules/services/x11/imwheel.nix b/nixos/modules/services/x11/imwheel.nix
index 51f72dadbd43..ae990141a502 100644
--- a/nixos/modules/services/x11/imwheel.nix
+++ b/nixos/modules/services/x11/imwheel.nix
@@ -21,15 +21,17 @@ in
rules = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample ''
- ".*" = '''
- None, Up, Button4, 8
- None, Down, Button5, 8
- Shift_L, Up, Shift_L|Button4, 4
- Shift_L, Down, Shift_L|Button5, 4
- Control_L, Up, Control_L|Button4
- Control_L, Down, Control_L|Button5
- ''';
+ example = literalExpression ''
+ {
+ ".*" = '''
+ None, Up, Button4, 8
+ None, Down, Button5, 8
+ Shift_L, Up, Shift_L|Button4, 4
+ Shift_L, Down, Shift_L|Button5, 4
+ Control_L, Up, Control_L|Button4
+ Control_L, Down, Control_L|Button5
+ ''';
+ }
'';
description = ''
Window class translation rules.
diff --git a/nixos/modules/services/x11/picom.nix b/nixos/modules/services/x11/picom.nix
index 977d0fea2192..dbd4b1cefef1 100644
--- a/nixos/modules/services/x11/picom.nix
+++ b/nixos/modules/services/x11/picom.nix
@@ -254,7 +254,7 @@ in {
in mkOption {
type = topLevel;
default = { };
- example = literalExample ''
+ example = literalExpression ''
blur =
{ method = "gaussian";
size = 10;
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
index 60d80a28762b..cc9f964754f3 100644
--- a/nixos/modules/services/x11/redshift.nix
+++ b/nixos/modules/services/x11/redshift.nix
@@ -76,7 +76,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.redshift;
- defaultText = "pkgs.redshift";
+ defaultText = literalExpression "pkgs.redshift";
description = ''
redshift derivation to use.
'';
diff --git a/nixos/modules/services/x11/touchegg.nix b/nixos/modules/services/x11/touchegg.nix
index fab7fac3f017..9d3678e7696d 100644
--- a/nixos/modules/services/x11/touchegg.nix
+++ b/nixos/modules/services/x11/touchegg.nix
@@ -16,7 +16,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.touchegg;
- defaultText = "pkgs.touchegg";
+ defaultText = literalExpression "pkgs.touchegg";
description = "touchegg derivation to use.";
};
};
diff --git a/nixos/modules/services/x11/unclutter-xfixes.nix b/nixos/modules/services/x11/unclutter-xfixes.nix
index 71262431b685..0b4d06f640d2 100644
--- a/nixos/modules/services/x11/unclutter-xfixes.nix
+++ b/nixos/modules/services/x11/unclutter-xfixes.nix
@@ -17,7 +17,7 @@ in {
description = "unclutter-xfixes derivation to use.";
type = types.package;
default = pkgs.unclutter-xfixes;
- defaultText = "pkgs.unclutter-xfixes";
+ defaultText = literalExpression "pkgs.unclutter-xfixes";
};
timeout = mkOption {
diff --git a/nixos/modules/services/x11/unclutter.nix b/nixos/modules/services/x11/unclutter.nix
index 56e30c79d1f1..bdb5fa7b50cd 100644
--- a/nixos/modules/services/x11/unclutter.nix
+++ b/nixos/modules/services/x11/unclutter.nix
@@ -16,7 +16,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.unclutter;
- defaultText = "pkgs.unclutter";
+ defaultText = literalExpression "pkgs.unclutter";
description = "unclutter derivation to use.";
};
diff --git a/nixos/modules/services/x11/urxvtd.nix b/nixos/modules/services/x11/urxvtd.nix
index 867ac38a944f..0a0df447f4e1 100644
--- a/nixos/modules/services/x11/urxvtd.nix
+++ b/nixos/modules/services/x11/urxvtd.nix
@@ -19,7 +19,7 @@ in {
package = mkOption {
default = pkgs.rxvt-unicode;
- defaultText = "pkgs.rxvt-unicode";
+ defaultText = literalExpression "pkgs.rxvt-unicode";
description = ''
Package to install. Usually pkgs.rxvt-unicode.
'';
diff --git a/nixos/modules/services/x11/window-managers/awesome.nix b/nixos/modules/services/x11/window-managers/awesome.nix
index 37a14e34f57e..c6c0c934f9ae 100644
--- a/nixos/modules/services/x11/window-managers/awesome.nix
+++ b/nixos/modules/services/x11/window-managers/awesome.nix
@@ -27,7 +27,7 @@ in
default = [];
type = types.listOf types.package;
description = "List of lua packages available for being used in the Awesome configuration.";
- example = literalExample "[ pkgs.luaPackages.vicious ]";
+ example = literalExpression "[ pkgs.luaPackages.vicious ]";
};
package = mkOption {
diff --git a/nixos/modules/services/x11/window-managers/bspwm.nix b/nixos/modules/services/x11/window-managers/bspwm.nix
index 23cd4f6529a6..ade24061a069 100644
--- a/nixos/modules/services/x11/window-managers/bspwm.nix
+++ b/nixos/modules/services/x11/window-managers/bspwm.nix
@@ -14,15 +14,15 @@ in
package = mkOption {
type = types.package;
default = pkgs.bspwm;
- defaultText = "pkgs.bspwm";
- example = "pkgs.bspwm-unstable";
+ defaultText = literalExpression "pkgs.bspwm";
+ example = literalExpression "pkgs.bspwm-unstable";
description = ''
bspwm package to use.
'';
};
configFile = mkOption {
type = with types; nullOr path;
- example = "${pkgs.bspwm}/share/doc/bspwm/examples/bspwmrc";
+ example = literalExpression ''"''${pkgs.bspwm}/share/doc/bspwm/examples/bspwmrc"'';
default = null;
description = ''
Path to the bspwm configuration file.
@@ -34,15 +34,15 @@ in
package = mkOption {
type = types.package;
default = pkgs.sxhkd;
- defaultText = "pkgs.sxhkd";
- example = "pkgs.sxhkd-unstable";
+ defaultText = literalExpression "pkgs.sxhkd";
+ example = literalExpression "pkgs.sxhkd-unstable";
description = ''
sxhkd package to use.
'';
};
configFile = mkOption {
type = with types; nullOr path;
- example = "${pkgs.bspwm}/share/doc/bspwm/examples/sxhkdrc";
+ example = literalExpression ''"''${pkgs.bspwm}/share/doc/bspwm/examples/sxhkdrc"'';
default = null;
description = ''
Path to the sxhkd configuration file.
diff --git a/nixos/modules/services/x11/window-managers/clfswm.nix b/nixos/modules/services/x11/window-managers/clfswm.nix
index 5015852db69f..78772c799744 100644
--- a/nixos/modules/services/x11/window-managers/clfswm.nix
+++ b/nixos/modules/services/x11/window-managers/clfswm.nix
@@ -13,7 +13,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.lispPackages.clfswm;
- defaultText = "pkgs.lispPackages.clfswm";
+ defaultText = literalExpression "pkgs.lispPackages.clfswm";
description = ''
clfswm package to use.
'';
diff --git a/nixos/modules/services/x11/window-managers/exwm.nix b/nixos/modules/services/x11/window-managers/exwm.nix
index 4b707d398496..b505f720f04c 100644
--- a/nixos/modules/services/x11/window-managers/exwm.nix
+++ b/nixos/modules/services/x11/window-managers/exwm.nix
@@ -22,7 +22,7 @@ in
loadScript = mkOption {
default = "(require 'exwm)";
type = types.lines;
- example = literalExample ''
+ example = ''
(require 'exwm)
(exwm-enable)
'';
@@ -39,8 +39,9 @@ in
};
extraPackages = mkOption {
type = types.functionTo (types.listOf types.package);
- default = self: [];
- example = literalExample ''
+ default = epkgs: [];
+ defaultText = literalExpression "epkgs: []";
+ example = literalExpression ''
epkgs: [
epkgs.emms
epkgs.magit
diff --git a/nixos/modules/services/x11/window-managers/herbstluftwm.nix b/nixos/modules/services/x11/window-managers/herbstluftwm.nix
index 548097a412d2..354d70c695cb 100644
--- a/nixos/modules/services/x11/window-managers/herbstluftwm.nix
+++ b/nixos/modules/services/x11/window-managers/herbstluftwm.nix
@@ -14,7 +14,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.herbstluftwm;
- defaultText = "pkgs.herbstluftwm";
+ defaultText = literalExpression "pkgs.herbstluftwm";
description = ''
Herbstluftwm package to use.
'';
diff --git a/nixos/modules/services/x11/window-managers/i3.nix b/nixos/modules/services/x11/window-managers/i3.nix
index 0ef55d5f2c03..99f9997024fe 100644
--- a/nixos/modules/services/x11/window-managers/i3.nix
+++ b/nixos/modules/services/x11/window-managers/i3.nix
@@ -30,8 +30,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.i3;
- defaultText = "pkgs.i3";
- example = "pkgs.i3-gaps";
+ defaultText = literalExpression "pkgs.i3";
+ example = literalExpression "pkgs.i3-gaps";
description = ''
i3 package to use.
'';
@@ -40,7 +40,7 @@ in
extraPackages = mkOption {
type = with types; listOf package;
default = with pkgs; [ dmenu i3status i3lock ];
- example = literalExample ''
+ defaultText = literalExpression ''
with pkgs; [
dmenu
i3status
diff --git a/nixos/modules/services/x11/window-managers/wmderland.nix b/nixos/modules/services/x11/window-managers/wmderland.nix
index a6864a827719..56b692209651 100644
--- a/nixos/modules/services/x11/window-managers/wmderland.nix
+++ b/nixos/modules/services/x11/window-managers/wmderland.nix
@@ -28,7 +28,7 @@ in
feh
rxvt-unicode
];
- example = literalExample ''
+ defaultText = literalExpression ''
with pkgs; [
rofi
dunst
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index fe8ed3812511..6aa0d5f76f26 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -2,7 +2,7 @@
with lib;
let
- inherit (lib) mkOption mkIf optionals literalExample;
+ inherit (lib) mkOption mkIf optionals literalExpression;
cfg = config.services.xserver.windowManager.xmonad;
ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
@@ -42,8 +42,8 @@ in {
enable = mkEnableOption "xmonad";
haskellPackages = mkOption {
default = pkgs.haskellPackages;
- defaultText = "pkgs.haskellPackages";
- example = literalExample "pkgs.haskell.packages.ghc784";
+ defaultText = literalExpression "pkgs.haskellPackages";
+ example = literalExpression "pkgs.haskell.packages.ghc784";
description = ''
haskellPackages used to build Xmonad and other packages.
This can be used to change the GHC version used to build
@@ -55,8 +55,8 @@ in {
extraPackages = mkOption {
type = types.functionTo (types.listOf types.package);
default = self: [];
- defaultText = "self: []";
- example = literalExample ''
+ defaultText = literalExpression "self: []";
+ example = literalExpression ''
haskellPackages: [
haskellPackages.xmonad-contrib
haskellPackages.monad-logger
diff --git a/nixos/modules/services/x11/xautolock.nix b/nixos/modules/services/x11/xautolock.nix
index 5ce08fce7c43..947d8f4edfb5 100644
--- a/nixos/modules/services/x11/xautolock.nix
+++ b/nixos/modules/services/x11/xautolock.nix
@@ -27,7 +27,8 @@ in
locker = mkOption {
default = "${pkgs.xlockmore}/bin/xlock"; # default according to `man xautolock`
- example = "${pkgs.i3lock}/bin/i3lock -i /path/to/img";
+ defaultText = literalExpression ''"''${pkgs.xlockmore}/bin/xlock"'';
+ example = literalExpression ''"''${pkgs.i3lock}/bin/i3lock -i /path/to/img"'';
type = types.str;
description = ''
@@ -37,7 +38,7 @@ in
nowlocker = mkOption {
default = null;
- example = "${pkgs.i3lock}/bin/i3lock -i /path/to/img";
+ example = literalExpression ''"''${pkgs.i3lock}/bin/i3lock -i /path/to/img"'';
type = types.nullOr types.str;
description = ''
@@ -56,7 +57,7 @@ in
notifier = mkOption {
default = null;
- example = "${pkgs.libnotify}/bin/notify-send \"Locking in 10 seconds\"";
+ example = literalExpression ''"''${pkgs.libnotify}/bin/notify-send 'Locking in 10 seconds'"'';
type = types.nullOr types.str;
description = ''
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index ee190ac3cc44..cb620f10b13f 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -217,7 +217,7 @@ in
inputClassSections = mkOption {
type = types.listOf types.lines;
default = [];
- example = literalExample ''
+ example = literalExpression ''
[ '''
Identifier "Trackpoint Wheel Emulation"
MatchProduct "ThinkPad USB Keyboard with TrackPoint"
@@ -233,7 +233,7 @@ in
modules = mkOption {
type = types.listOf types.path;
default = [];
- example = literalExample "[ pkgs.xf86_input_wacom ]";
+ example = literalExpression "[ pkgs.xf86_input_wacom ]";
description = "Packages to be added to the module search path of the X server.";
};
@@ -351,6 +351,7 @@ in
xkbDir = mkOption {
type = types.path;
default = "${pkgs.xkeyboard_config}/etc/X11/xkb";
+ defaultText = literalExpression ''"''${pkgs.xkeyboard_config}/etc/X11/xkb"'';
description = ''
Path used for -xkbdir xserver parameter.
'';
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 704fc15fe207..8dbfe393f109 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -110,7 +110,7 @@ in
system.activationScripts = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ stdio.text =
'''
# Needed by some programs.
@@ -147,7 +147,7 @@ in
system.userActivationScripts = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ plasmaSetup = {
text = '''
${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5"
@@ -193,9 +193,8 @@ in
environment.usrbinenv = mkOption {
default = "${pkgs.coreutils}/bin/env";
- example = literalExample ''
- "''${pkgs.busybox}/bin/env"
- '';
+ defaultText = literalExpression ''"''${pkgs.coreutils}/bin/env"'';
+ example = literalExpression ''"''${pkgs.busybox}/bin/env"'';
type = types.nullOr types.path;
visible = false;
description = ''
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl
index b7a062755296..e105502cf3a4 100644
--- a/nixos/modules/system/activation/switch-to-configuration.pl
+++ b/nixos/modules/system/activation/switch-to-configuration.pl
@@ -2,6 +2,7 @@
use strict;
use warnings;
+use File::Path qw(make_path);
use File::Basename;
use File::Slurp;
use Net::DBus;
@@ -10,13 +11,23 @@ use Cwd 'abs_path';
my $out = "@out@";
-# FIXME: maybe we should use /proc/1/exe to get the current systemd.
my $curSystemd = abs_path("/run/current-system/sw/bin");
# To be robust against interruption, record what units need to be started etc.
-my $startListFile = "/run/systemd/start-list";
-my $restartListFile = "/run/systemd/restart-list";
-my $reloadListFile = "/run/systemd/reload-list";
+my $startListFile = "/run/nixos/start-list";
+my $restartListFile = "/run/nixos/restart-list";
+my $reloadListFile = "/run/nixos/reload-list";
+
+# Parse restart/reload requests by the activation script.
+# Activation scripts may write newline-separated units to this
+# file and switch-to-configuration will handle them. While
+# `stopIfChanged = true` is ignored, switch-to-configuration will
+# handle `restartIfChanged = false` and `reloadIfChanged = true`.
+# This also works for socket-activated units.
+my $restartByActivationFile = "/run/nixos/activation-restart-list";
+my $dryRestartByActivationFile = "/run/nixos/dry-activation-restart-list";
+
+make_path("/run/nixos", { mode => oct(755) });
my $action = shift @ARGV;
@@ -138,6 +149,92 @@ sub fingerprintUnit {
return abs_path($s) . (-f "${s}.d/overrides.conf" ? " " . abs_path "${s}.d/overrides.conf" : "");
}
+sub handleModifiedUnit {
+ my ($unit, $baseName, $newUnitFile, $activePrev, $unitsToStop, $unitsToStart, $unitsToReload, $unitsToRestart, $unitsToSkip) = @_;
+
+ if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target" || $unit =~ /\.slice$/ || $unit =~ /\.path$/) {
+ # Do nothing. These cannot be restarted directly.
+ # Slices and Paths don't have to be restarted since
+ # properties (resource limits and inotify watches)
+ # seem to get applied on daemon-reload.
+ } elsif ($unit =~ /\.mount$/) {
+ # Reload the changed mount unit to force a remount.
+ $unitsToReload->{$unit} = 1;
+ recordUnit($reloadListFile, $unit);
+ } else {
+ my $unitInfo = parseUnit($newUnitFile);
+ if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
+ $unitsToReload->{$unit} = 1;
+ recordUnit($reloadListFile, $unit);
+ }
+ elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") || boolIsTrue($unitInfo->{'X-OnlyManualStart'} // "no")) {
+ $unitsToSkip->{$unit} = 1;
+ } else {
+ # If this unit is socket-activated, then stop it instead
+ # of restarting it to make sure the new version of it is
+ # socket-activated.
+ my $socketActivated = 0;
+ if ($unit =~ /\.service$/) {
+ my @sockets = split / /, ($unitInfo->{Sockets} // "");
+ if (scalar @sockets == 0) {
+ @sockets = ("$baseName.socket");
+ }
+ foreach my $socket (@sockets) {
+ if (-e "$out/etc/systemd/system/$socket") {
+ $socketActivated = 1;
+ $unitsToStop->{$unit} = 1;
+ # If the socket was not running previously,
+ # start it now.
+ if (not defined $activePrev->{$socket}) {
+ $unitsToStart->{$socket} = 1;
+ }
+ }
+ }
+ }
+
+ # Don't do the rest of this for socket-activated units
+ # because we handled these above where we stop the unit.
+ # Since only services can be socket-activated, the
+ # following condition always evaluates to `true` for
+ # non-service units.
+ if ($socketActivated) {
+ return;
+ }
+
+ # If we are restarting a socket, also stop the corresponding
+ # service. This is required because restarting a socket
+ # when the service is already activated fails.
+ if ($unit =~ /\.socket$/) {
+ my $service = $unitInfo->{Service} // "";
+ if ($service eq "") {
+ $service = "$baseName.service";
+ }
+ if (defined $activePrev->{$service}) {
+ $unitsToStop->{$service} = 1;
+ }
+ $unitsToRestart->{$unit} = 1;
+ recordUnit($restartListFile, $unit);
+ } else {
+ # Always restart non-services instead of stopping and starting them
+ # because it doesn't make sense to stop them with a config from
+ # the old evaluation.
+ if (!boolIsTrue($unitInfo->{'X-StopIfChanged'} // "yes") || $unit !~ /\.service$/) {
+ # This unit should be restarted instead of
+ # stopped and started.
+ $unitsToRestart->{$unit} = 1;
+ recordUnit($restartListFile, $unit);
+ } else {
+ # We write to a file to ensure that the
+ # service gets restarted if we're interrupted.
+ $unitsToStart->{$unit} = 1;
+ recordUnit($startListFile, $unit);
+ $unitsToStop->{$unit} = 1;
+ }
+ }
+ }
+ }
+}
+
# Figure out what units need to be stopped, started, restarted or reloaded.
my (%unitsToStop, %unitsToSkip, %unitsToStart, %unitsToRestart, %unitsToReload);
@@ -150,7 +247,7 @@ $unitsToRestart{$_} = 1 foreach
split('\n', read_file($restartListFile, err_mode => 'quiet') // "");
$unitsToReload{$_} = 1 foreach
- split '\n', read_file($reloadListFile, err_mode => 'quiet') // "";
+ split('\n', read_file($reloadListFile, err_mode => 'quiet') // "");
my $activePrev = getActiveUnits;
while (my ($unit, $state) = each %{$activePrev}) {
@@ -210,65 +307,7 @@ while (my ($unit, $state) = each %{$activePrev}) {
}
elsif (fingerprintUnit($prevUnitFile) ne fingerprintUnit($newUnitFile)) {
- if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target") {
- # Do nothing. These cannot be restarted directly.
- } elsif ($unit =~ /\.mount$/) {
- # Reload the changed mount unit to force a remount.
- $unitsToReload{$unit} = 1;
- recordUnit($reloadListFile, $unit);
- } elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/ || $unit =~ /\.slice$/) {
- # FIXME: do something?
- } else {
- my $unitInfo = parseUnit($newUnitFile);
- if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
- $unitsToReload{$unit} = 1;
- recordUnit($reloadListFile, $unit);
- }
- elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") || boolIsTrue($unitInfo->{'X-OnlyManualStart'} // "no")) {
- $unitsToSkip{$unit} = 1;
- } else {
- if (!boolIsTrue($unitInfo->{'X-StopIfChanged'} // "yes")) {
- # This unit should be restarted instead of
- # stopped and started.
- $unitsToRestart{$unit} = 1;
- recordUnit($restartListFile, $unit);
- } else {
- # If this unit is socket-activated, then stop the
- # socket unit(s) as well, and restart the
- # socket(s) instead of the service.
- my $socketActivated = 0;
- if ($unit =~ /\.service$/) {
- my @sockets = split / /, ($unitInfo->{Sockets} // "");
- if (scalar @sockets == 0) {
- @sockets = ("$baseName.socket");
- }
- foreach my $socket (@sockets) {
- if (defined $activePrev->{$socket}) {
- $unitsToStop{$socket} = 1;
- # Only restart sockets that actually
- # exist in new configuration:
- if (-e "$out/etc/systemd/system/$socket") {
- $unitsToStart{$socket} = 1;
- recordUnit($startListFile, $socket);
- $socketActivated = 1;
- }
- }
- }
- }
-
- # If the unit is not socket-activated, record
- # that this unit needs to be started below.
- # We write this to a file to ensure that the
- # service gets restarted if we're interrupted.
- if (!$socketActivated) {
- $unitsToStart{$unit} = 1;
- recordUnit($startListFile, $unit);
- }
-
- $unitsToStop{$unit} = 1;
- }
- }
- }
+ handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToSkip);
}
}
}
@@ -353,8 +392,6 @@ sub filterUnits {
}
my @unitsToStopFiltered = filterUnits(\%unitsToStop);
-my @unitsToStartFiltered = filterUnits(\%unitsToStart);
-
# Show dry-run actions.
if ($action eq "dry-activate") {
@@ -366,13 +403,44 @@ if ($action eq "dry-activate") {
print STDERR "would activate the configuration...\n";
system("$out/dry-activate", "$out");
+ # Handle the activation script requesting the restart or reload of a unit.
+ my %unitsToAlsoStop;
+ my %unitsToAlsoSkip;
+ foreach (split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // "")) {
+ my $unit = $_;
+ my $baseUnit = $unit;
+ my $newUnitFile = "$out/etc/systemd/system/$baseUnit";
+
+ # Detect template instances.
+ if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) {
+ $baseUnit = "$1\@.$2";
+ $newUnitFile = "$out/etc/systemd/system/$baseUnit";
+ }
+
+ my $baseName = $baseUnit;
+ $baseName =~ s/\.[a-z]*$//;
+
+ handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToAlsoStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToAlsoSkip);
+ }
+ unlink($dryRestartByActivationFile);
+
+ my @unitsToAlsoStopFiltered = filterUnits(\%unitsToAlsoStop);
+ if (scalar(keys %unitsToAlsoStop) > 0) {
+ print STDERR "would stop the following units as well: ", join(", ", @unitsToAlsoStopFiltered), "\n"
+ if scalar @unitsToAlsoStopFiltered;
+ }
+
+ print STDERR "would NOT restart the following changed units as well: ", join(", ", sort(keys %unitsToAlsoSkip)), "\n"
+ if scalar(keys %unitsToAlsoSkip) > 0;
+
print STDERR "would restart systemd\n" if $restartSystemd;
- print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"
- if scalar(keys %unitsToRestart) > 0;
- print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n"
- if scalar @unitsToStartFiltered;
print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n"
if scalar(keys %unitsToReload) > 0;
+ print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"
+ if scalar(keys %unitsToRestart) > 0;
+ my @unitsToStartFiltered = filterUnits(\%unitsToStart);
+ print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n"
+ if scalar @unitsToStartFiltered;
exit 0;
}
@@ -383,7 +451,7 @@ if (scalar (keys %unitsToStop) > 0) {
print STDERR "stopping the following units: ", join(", ", @unitsToStopFiltered), "\n"
if scalar @unitsToStopFiltered;
# Use current version of systemctl binary before daemon is reexeced.
- system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToStop)); # FIXME: ignore errors?
+ system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToStop));
}
print STDERR "NOT restarting the following changed units: ", join(", ", sort(keys %unitsToSkip)), "\n"
@@ -395,6 +463,41 @@ my $res = 0;
print STDERR "activating the configuration...\n";
system("$out/activate", "$out") == 0 or $res = 2;
+# Handle the activation script requesting the restart or reload of a unit.
+# We can only restart and reload (not stop/start) because the units to be
+# stopped are already stopped before the activation script is run. We do however
+# make an exception for services that are socket-activated and that have to be stopped
+# instead of being restarted.
+my %unitsToAlsoStop;
+my %unitsToAlsoSkip;
+foreach (split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // "")) {
+ my $unit = $_;
+ my $baseUnit = $unit;
+ my $newUnitFile = "$out/etc/systemd/system/$baseUnit";
+
+ # Detect template instances.
+ if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) {
+ $baseUnit = "$1\@.$2";
+ $newUnitFile = "$out/etc/systemd/system/$baseUnit";
+ }
+
+ my $baseName = $baseUnit;
+ $baseName =~ s/\.[a-z]*$//;
+
+ handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToAlsoStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToAlsoSkip);
+}
+unlink($restartByActivationFile);
+
+my @unitsToAlsoStopFiltered = filterUnits(\%unitsToAlsoStop);
+if (scalar(keys %unitsToAlsoStop) > 0) {
+ print STDERR "stopping the following units as well: ", join(", ", @unitsToAlsoStopFiltered), "\n"
+ if scalar @unitsToAlsoStopFiltered;
+ system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToAlsoStop));
+}
+
+print STDERR "NOT restarting the following changed units as well: ", join(", ", sort(keys %unitsToAlsoSkip)), "\n"
+ if scalar(keys %unitsToAlsoSkip) > 0;
+
# Restart systemd if necessary. Note that this is done using the
# current version of systemd, just in case the new one has trouble
# communicating with the running pid 1.
@@ -440,8 +543,36 @@ if (scalar(keys %unitsToReload) > 0) {
# than stopped and started).
if (scalar(keys %unitsToRestart) > 0) {
print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n";
- system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4;
+
+ # We split the units to be restarted into sockets and non-sockets.
+ # This is because restarting sockets may fail which is not bad by
+ # itself but which will prevent changes on the sockets. We usually
+ # restart the socket and stop the service before that. Restarting
+ # the socket will fail however when the service was re-activated
+ # in the meantime. There is no proper way to prevent that from happening.
+ my @unitsWithErrorHandling = grep { $_ !~ /\.socket$/ } sort(keys %unitsToRestart);
+ my @unitsWithoutErrorHandling = grep { $_ =~ /\.socket$/ } sort(keys %unitsToRestart);
+
+ if (scalar(@unitsWithErrorHandling) > 0) {
+ system("@systemd@/bin/systemctl", "restart", "--", @unitsWithErrorHandling) == 0 or $res = 4;
+ }
+ if (scalar(@unitsWithoutErrorHandling) > 0) {
+ # Don't print warnings from systemctl
+ no warnings 'once';
+ open(OLDERR, ">&", \*STDERR);
+ close(STDERR);
+
+ my $ret = system("@systemd@/bin/systemctl", "restart", "--", @unitsWithoutErrorHandling);
+
+ # Print stderr again
+ open(STDERR, ">&OLDERR");
+
+ if ($ret ne 0) {
+ print STDERR "warning: some sockets failed to restart. Please check your journal (journalctl -eb) and act accordingly.\n";
+ }
+ }
unlink($restartListFile);
+ unlink($restartByActivationFile);
}
# Start all active targets, as well as changed units we stopped above.
@@ -450,6 +581,7 @@ if (scalar(keys %unitsToRestart) > 0) {
# that are symlinks to other units. We shouldn't start both at the
# same time because we'll get a "Failed to add path to set" error from
# systemd.
+my @unitsToStartFiltered = filterUnits(\%unitsToStart);
print STDERR "starting the following units: ", join(", ", @unitsToStartFiltered), "\n"
if scalar @unitsToStartFiltered;
system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
@@ -457,7 +589,7 @@ unlink($startListFile);
# Print failed and new units.
-my (@failed, @new, @restarting);
+my (@failed, @new);
my $activeNew = getActiveUnits;
while (my ($unit, $state) = each %{$activeNew}) {
if ($state->{state} eq "failed") {
@@ -473,7 +605,9 @@ while (my ($unit, $state) = each %{$activeNew}) {
push @failed, $unit;
}
}
- elsif ($state->{state} ne "failed" && !defined $activePrev->{$unit}) {
+ # Ignore scopes since they are not managed by this script but rather
+ # created and managed by third-party services via the systemd dbus API.
+ elsif ($state->{state} ne "failed" && !defined $activePrev->{$unit} && $unit !~ /\.scope$/) {
push @new, $unit;
}
}
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index dad9acba91af..68da910d29cc 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -84,6 +84,13 @@ let
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
substituteAll ${./switch-to-configuration.pl} $out/bin/switch-to-configuration
chmod +x $out/bin/switch-to-configuration
+ ${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
+ if ! output=$($perl/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
+ echo "switch-to-configuration syntax is not valid:"
+ echo "$output"
+ exit 1
+ fi
+ ''}
echo -n "${toString config.system.extraDependencies}" > $out/extra-dependencies
@@ -155,7 +162,7 @@ in
specialisation = mkOption {
default = {};
- example = lib.literalExample "{ fewJobsManyCores.configuration = { nix.buildCores = 0; nix.maxJobs = 1; }; }";
+ example = lib.literalExpression "{ fewJobsManyCores.configuration = { nix.buildCores = 0; nix.maxJobs = 1; }; }";
description = ''
Additional configurations to build. If
inheritParentConfig is true, the system
@@ -243,7 +250,7 @@ in
system.replaceRuntimeDependencies = mkOption {
default = [];
- example = lib.literalExample "[ ({ original = pkgs.openssl; replacement = pkgs.callPackage /path/to/openssl { }; }) ]";
+ example = lib.literalExpression "[ ({ original = pkgs.openssl; replacement = pkgs.callPackage /path/to/openssl { }; }) ]";
type = types.listOf (types.submodule (
{ ... }: {
options.original = mkOption {
@@ -274,7 +281,11 @@ in
if config.networking.hostName == ""
then "unnamed"
else config.networking.hostName;
- defaultText = '''networking.hostName' if non empty else "unnamed"'';
+ defaultText = literalExpression ''
+ if config.networking.hostName == ""
+ then "unnamed"
+ else config.networking.hostName;
+ '';
description = ''
The name of the system used in the derivation.
diff --git a/nixos/modules/system/boot/binfmt.nix b/nixos/modules/system/boot/binfmt.nix
index 2408ecc80d22..fdb4d0e4c7fb 100644
--- a/nixos/modules/system/boot/binfmt.nix
+++ b/nixos/modules/system/boot/binfmt.nix
@@ -248,6 +248,7 @@ in {
description = ''
List of systems to emulate. Will also configure Nix to
support your new systems.
+ Warning: the builder can execute all emulated systems within the same build, which introduces impurities in the case of cross compilation.
'';
type = types.listOf types.str;
};
diff --git a/nixos/modules/system/boot/initrd-openvpn.nix b/nixos/modules/system/boot/initrd-openvpn.nix
index b35fb0b57c05..9b52d4bbdb1e 100644
--- a/nixos/modules/system/boot/initrd-openvpn.nix
+++ b/nixos/modules/system/boot/initrd-openvpn.nix
@@ -35,7 +35,7 @@ in
'';
- example = "./configuration.ovpn";
+ example = literalExpression "./configuration.ovpn";
};
};
diff --git a/nixos/modules/system/boot/initrd-ssh.nix b/nixos/modules/system/boot/initrd-ssh.nix
index 00ac83a18972..0999142de86e 100644
--- a/nixos/modules/system/boot/initrd-ssh.nix
+++ b/nixos/modules/system/boot/initrd-ssh.nix
@@ -78,7 +78,7 @@ in
authorizedKeys = mkOption {
type = types.listOf types.str;
default = config.users.users.root.openssh.authorizedKeys.keys;
- defaultText = "config.users.users.root.openssh.authorizedKeys.keys";
+ defaultText = literalExpression "config.users.users.root.openssh.authorizedKeys.keys";
description = ''
Authorized keys for the root user on initrd.
'';
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index 15a5fd236092..4a9da9394519 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -23,7 +23,7 @@ in
boot.kernel.features = mkOption {
default = {};
- example = literalExample "{ debug = true; }";
+ example = literalExpression "{ debug = true; }";
internal = true;
description = ''
This option allows to enable or disable certain kernel features.
@@ -46,8 +46,8 @@ in
});
# We don't want to evaluate all of linuxPackages for the manual
# - some of it might not even evaluate correctly.
- defaultText = "pkgs.linuxPackages";
- example = literalExample "pkgs.linuxKernel.packages.linux_5_10";
+ defaultText = literalExpression "pkgs.linuxPackages";
+ example = literalExpression "pkgs.linuxKernel.packages.linux_5_10";
description = ''
This option allows you to override the Linux kernel used by
NixOS. Since things like external kernel module packages are
@@ -65,7 +65,7 @@ in
boot.kernelPatches = mkOption {
type = types.listOf types.attrs;
default = [];
- example = literalExample "[ pkgs.kernelPatches.ubuntu_fan_4_4 ]";
+ example = literalExpression "[ pkgs.kernelPatches.ubuntu_fan_4_4 ]";
description = "A list of additional patches to apply to the kernel.";
};
@@ -83,7 +83,10 @@ in
};
boot.kernelParams = mkOption {
- type = types.listOf types.str;
+ type = types.listOf (types.strMatching ''([^"[:space:]]|"[^"]*")+'' // {
+ name = "kernelParam";
+ description = "string, with spaces inside double quotes";
+ });
default = [ ];
description = "Parameters added to the kernel command line.";
};
@@ -113,7 +116,7 @@ in
boot.extraModulePackages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ config.boot.kernelPackages.nvidia_x11 ]";
+ example = literalExpression "[ config.boot.kernelPackages.nvidia_x11 ]";
description = "A list of additional packages supplying kernel modules.";
};
@@ -181,7 +184,7 @@ in
system.requiredKernelConfig = mkOption {
default = [];
- example = literalExample ''
+ example = literalExpression ''
with config.lib.kernelConfig; [
(isYes "MODULES")
(isEnabled "FB_CON_DECOR")
diff --git a/nixos/modules/system/boot/kernel_config.nix b/nixos/modules/system/boot/kernel_config.nix
index 5d9534024b06..495fe74bc21e 100644
--- a/nixos/modules/system/boot/kernel_config.nix
+++ b/nixos/modules/system/boot/kernel_config.nix
@@ -100,7 +100,7 @@ in
settings = mkOption {
type = types.attrsOf kernelItem;
- example = literalExample '' with lib.kernel; {
+ example = literalExpression '' with lib.kernel; {
"9P_NET" = yes;
USB = option yes;
MMC_BLOCK_MINORS = freeform "32";
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index 1be663670384..fa8500dd42bd 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -329,7 +329,7 @@ in
extraInstallCommands = mkOption {
default = "";
- example = literalExample ''
+ example = ''
# the example below generates detached signatures that GRUB can verify
# https://www.gnu.org/software/grub/manual/grub/grub.html#Using-digital-signatures
''${pkgs.findutils}/bin/find /boot -not -path "/boot/efi/*" -type f -name '*.sig' -delete
@@ -392,7 +392,7 @@ in
extraFiles = mkOption {
type = types.attrsOf types.path;
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ "memtest.bin" = "''${pkgs.memtest86plus}/memtest.bin"; }
'';
description = ''
@@ -413,7 +413,7 @@ in
splashImage = mkOption {
type = types.nullOr types.path;
- example = literalExample "./my-background.png";
+ example = literalExpression "./my-background.png";
description = ''
Background image used for GRUB.
Set to null to run GRUB in text mode.
@@ -449,7 +449,7 @@ in
theme = mkOption {
type = types.nullOr types.path;
- example = literalExample "pkgs.nixos-grub2-theme";
+ example = literalExpression "pkgs.nixos-grub2-theme";
default = null;
description = ''
Grub theme to be used.
@@ -475,7 +475,7 @@ in
font = mkOption {
type = types.nullOr types.path;
default = "${realGrub}/share/grub/unicode.pf2";
- defaultText = ''"''${pkgs.grub2}/share/grub/unicode.pf2"'';
+ defaultText = literalExpression ''"''${pkgs.grub2}/share/grub/unicode.pf2"'';
description = ''
Path to a TrueType, OpenType, or pf2 font to be used by Grub.
'';
@@ -483,7 +483,7 @@ in
fontSize = mkOption {
type = types.nullOr types.int;
- example = literalExample 16;
+ example = 16;
default = null;
description = ''
Font size for the grub menu. Ignored unless font
diff --git a/nixos/modules/system/boot/loader/grub/ipxe.nix b/nixos/modules/system/boot/loader/grub/ipxe.nix
index 249c2761934d..ef8595592f41 100644
--- a/nixos/modules/system/boot/loader/grub/ipxe.nix
+++ b/nixos/modules/system/boot/loader/grub/ipxe.nix
@@ -33,7 +33,7 @@ in
booting from the GRUB boot menu.
'';
default = { };
- example = literalExample ''
+ example = literalExpression ''
{ demo = '''
#!ipxe
dhcp
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index 7134b4321630..c38bef9d6d4b 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -17,19 +17,28 @@ import glob
import os.path
from typing import Tuple, List, Optional
+SystemIdentifier = Tuple[Optional[str], int, Optional[str]]
+
def copy_if_not_exists(source: str, dest: str) -> None:
if not os.path.exists(dest):
shutil.copyfile(source, dest)
-def system_dir(profile: Optional[str], generation: int) -> str:
+def generation_dir(profile: Optional[str], generation: int) -> str:
if profile:
return "/nix/var/nix/profiles/system-profiles/%s-%d-link" % (profile, generation)
else:
return "/nix/var/nix/profiles/system-%d-link" % (generation)
-BOOT_ENTRY = """title NixOS{profile}
+def system_dir(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
+ d = generation_dir(profile, generation)
+ if specialisation:
+ return os.path.join(d, "specialisation", specialisation)
+ else:
+ return d
+
+BOOT_ENTRY = """title NixOS{profile}{specialisation}
version Generation {generation} {description}
linux {kernel}
initrd {initrd}
@@ -46,26 +55,34 @@ efi /efi/memtest86/BOOTX64.efi
"""
-def write_loader_conf(profile: Optional[str], generation: int) -> None:
+def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
+ pieces = [
+ "nixos",
+ profile or None,
+ "generation",
+ str(generation),
+ f"specialisation-{specialisation}" if specialisation else None,
+ ]
+ return "-".join(p for p in pieces if p) + ".conf"
+
+
+def write_loader_conf(profile: Optional[str], generation: int, specialisation: Optional[str]) -> None:
with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f:
if "@timeout@" != "":
f.write("timeout @timeout@\n")
- if profile:
- f.write("default nixos-%s-generation-%d.conf\n" % (profile, generation))
- else:
- f.write("default nixos-generation-%d.conf\n" % (generation))
+ f.write("default %s\n" % generation_conf_filename(profile, generation, specialisation))
if not @editor@:
f.write("editor 0\n");
f.write("console-mode @consoleMode@\n");
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
-def profile_path(profile: Optional[str], generation: int, name: str) -> str:
- return os.path.realpath("%s/%s" % (system_dir(profile, generation), name))
+def profile_path(profile: Optional[str], generation: int, specialisation: Optional[str], name: str) -> str:
+ return os.path.realpath("%s/%s" % (system_dir(profile, generation, specialisation), name))
-def copy_from_profile(profile: Optional[str], generation: int, name: str, dry_run: bool = False) -> str:
- store_file_path = profile_path(profile, generation, name)
+def copy_from_profile(profile: Optional[str], generation: int, specialisation: Optional[str], name: str, dry_run: bool = False) -> str:
+ store_file_path = profile_path(profile, generation, specialisation, name)
suffix = os.path.basename(store_file_path)
store_dir = os.path.basename(os.path.dirname(store_file_path))
efi_file_path = "/efi/nixos/%s-%s.efi" % (store_dir, suffix)
@@ -95,19 +112,17 @@ def describe_generation(generation_dir: str) -> str:
return description
-def write_entry(profile: Optional[str], generation: int, machine_id: str) -> None:
- kernel = copy_from_profile(profile, generation, "kernel")
- initrd = copy_from_profile(profile, generation, "initrd")
+def write_entry(profile: Optional[str], generation: int, specialisation: Optional[str], machine_id: str) -> None:
+ kernel = copy_from_profile(profile, generation, specialisation, "kernel")
+ initrd = copy_from_profile(profile, generation, specialisation, "initrd")
try:
- append_initrd_secrets = profile_path(profile, generation, "append-initrd-secrets")
+ append_initrd_secrets = profile_path(profile, generation, specialisation, "append-initrd-secrets")
subprocess.check_call([append_initrd_secrets, "@efiSysMountPoint@%s" % (initrd)])
except FileNotFoundError:
pass
- if profile:
- entry_file = "@efiSysMountPoint@/loader/entries/nixos-%s-generation-%d.conf" % (profile, generation)
- else:
- entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation)
- generation_dir = os.readlink(system_dir(profile, generation))
+ entry_file = "@efiSysMountPoint@/loader/entries/%s" % (
+ generation_conf_filename(profile, generation, specialisation))
+ generation_dir = os.readlink(system_dir(profile, generation, specialisation))
tmp_path = "%s.tmp" % (entry_file)
kernel_params = "init=%s/init " % generation_dir
@@ -115,6 +130,7 @@ def write_entry(profile: Optional[str], generation: int, machine_id: str) -> Non
kernel_params = kernel_params + params_file.read()
with open(tmp_path, 'w') as f:
f.write(BOOT_ENTRY.format(profile=" [" + profile + "]" if profile else "",
+ specialisation=" (%s)" % specialisation if specialisation else "",
generation=generation,
kernel=kernel,
initrd=initrd,
@@ -133,7 +149,7 @@ def mkdir_p(path: str) -> None:
raise
-def get_generations(profile: Optional[str] = None) -> List[Tuple[Optional[str], int]]:
+def get_generations(profile: Optional[str] = None) -> List[SystemIdentifier]:
gen_list = subprocess.check_output([
"@nix@/bin/nix-env",
"--list-generations",
@@ -145,10 +161,19 @@ def get_generations(profile: Optional[str] = None) -> List[Tuple[Optional[str],
gen_lines.pop()
configurationLimit = @configurationLimit@
- return [ (profile, int(line.split()[0])) for line in gen_lines ][-configurationLimit:]
+ configurations: List[SystemIdentifier] = [ (profile, int(line.split()[0]), None) for line in gen_lines ]
+ return configurations[-configurationLimit:]
-def remove_old_entries(gens: List[Tuple[Optional[str], int]]) -> None:
+def get_specialisations(profile: Optional[str], generation: int, _: Optional[str]) -> List[SystemIdentifier]:
+ specialisations_dir = os.path.join(
+ system_dir(profile, generation, None), "specialisation")
+ if not os.path.exists(specialisations_dir):
+ return []
+ return [(profile, generation, spec) for spec in os.listdir(specialisations_dir)]
+
+
+def remove_old_entries(gens: List[SystemIdentifier]) -> None:
rex_profile = re.compile("^@efiSysMountPoint@/loader/entries/nixos-(.*)-generation-.*\.conf$")
rex_generation = re.compile("^@efiSysMountPoint@/loader/entries/nixos.*-generation-(.*)\.conf$")
known_paths = []
@@ -208,10 +233,15 @@ def main() -> None:
if os.path.exists("@efiSysMountPoint@/loader/loader.conf"):
os.unlink("@efiSysMountPoint@/loader/loader.conf")
- if "@canTouchEfiVariables@" == "1":
- subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "install"])
- else:
- subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "--no-variables", "install"])
+ flags = []
+
+ if "@canTouchEfiVariables@" != "1":
+ flags.append("--no-variables")
+
+ if "@graceful@" == "1":
+ flags.append("--graceful")
+
+ subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@"] + flags + ["install"])
else:
# Update bootloader to latest if needed
systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
@@ -238,6 +268,8 @@ def main() -> None:
for gen in gens:
try:
write_entry(*gen, machine_id)
+ for specialisation in get_specialisations(*gen):
+ write_entry(*specialisation, machine_id)
if os.readlink(system_dir(*gen)) == args.default_config:
write_loader_conf(*gen)
except OSError as e:
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index ff304f570d35..0f76d7d6b24a 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -24,7 +24,7 @@ let
configurationLimit = if cfg.configurationLimit == null then 0 else cfg.configurationLimit;
- inherit (cfg) consoleMode;
+ inherit (cfg) consoleMode graceful;
inherit (efi) efiSysMountPoint canTouchEfiVariables;
@@ -126,6 +126,22 @@ in {
'';
};
};
+
+ graceful = mkOption {
+ default = false;
+
+ type = types.bool;
+
+ description = ''
+ Invoke bootctl install with the --graceful option,
+ which ignores errors when EFI variables cannot be written or when the EFI System Partition
+ cannot be found. Currently only applies to random seed operations.
+
+ Only enable this option if systemd-boot otherwise fails to install, as the
+ scope or implication of the --graceful option may change in the future.
+ '';
+ };
+
};
config = mkIf cfg.enable {
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index f87d3b07a360..f0d3170dc5ac 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -332,6 +332,7 @@ let
if [ $? == 0 ]; then
echo -ne "$new_salt\n$new_iterations" > /crypt-storage${dev.yubikey.storage.path}
+ sync /crypt-storage${dev.yubikey.storage.path}
else
echo "Warning: Could not update LUKS key, current challenge persists!"
fi
@@ -663,13 +664,11 @@ in
};
encryptedPass = mkOption {
- default = "";
type = types.path;
description = "Path to the GPG encrypted passphrase.";
};
publicKey = mkOption {
- default = "";
type = types.path;
description = "Path to the Public Key.";
};
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 1de58b3d2c4a..662dfe2db989 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -250,6 +250,16 @@ let
(assertRange "ERSPANIndex" 1 1048575)
];
+ sectionFooOverUDP = checkUnitConfig "FooOverUDP" [
+ (assertOnlyFields [
+ "Port"
+ "Encapsulation"
+ "Protocol"
+ ])
+ (assertPort "Port")
+ (assertValueOneOf "Encapsulation" ["FooOverUDP" "GenericUDPEncapsulation"])
+ ];
+
sectionPeer = checkUnitConfig "Peer" [
(assertOnlyFields [
"Name"
@@ -384,6 +394,7 @@ let
"AllMulticast"
"Unmanaged"
"RequiredForOnline"
+ "ActivationPolicy"
])
(assertMacAddress "MACAddress")
(assertByteFormat "MTUBytes")
@@ -402,6 +413,14 @@ let
"enslaved"
"routable"
]))
+ (assertValueOneOf "ActivationPolicy" ([
+ "up"
+ "always-up"
+ "manual"
+ "always-down"
+ "down"
+ "bound"
+ ]))
];
sectionNetwork = checkUnitConfig "Network" [
@@ -659,6 +678,9 @@ let
"SendOption"
"UserClass"
"VendorClass"
+ "DUIDType"
+ "DUIDRawData"
+ "IAID"
])
(assertValueOneOf "UseAddress" boolValues)
(assertValueOneOf "UseDNS" boolValues)
@@ -668,6 +690,7 @@ let
(assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues)
(assertValueOneOf "WithoutRA" ["solicit" "information-request"])
(assertRange "SendOption" 1 65536)
+ (assertInt "IAID")
];
sectionDHCPv6PrefixDelegation = checkUnitConfig "DHCPv6PrefixDelegation" [
@@ -835,7 +858,6 @@ let
options = {
wireguardPeerConfig = mkOption {
default = {};
- example = { };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
description = ''
Each attribute in this set specifies an option in the
@@ -850,7 +872,6 @@ let
netdevOptions = commonNetworkOptions // {
netdevConfig = mkOption {
- default = {};
example = { Name = "mybridge"; Kind = "bridge"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionNetdev;
description = ''
@@ -887,7 +908,6 @@ let
vxlanConfig = mkOption {
default = {};
- example = { Id = "4"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVXLAN;
description = ''
Each attribute in this set specifies an option in the
@@ -909,6 +929,18 @@ let
'';
};
+ fooOverUDPConfig = mkOption {
+ default = { };
+ example = { Port = 9001; };
+ type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionFooOverUDP;
+ description = ''
+ Each attribute in this set specifies an option in the
+ [FooOverUDP] section of the unit. See
+ systemd.netdev
+ 5 for details.
+ '';
+ };
+
peerConfig = mkOption {
default = {};
example = { Name = "veth2"; };
@@ -950,7 +982,7 @@ let
example = {
PrivateKeyFile = "/etc/wireguard/secret.key";
ListenPort = 51820;
- FwMark = 42;
+ FirewallMark = 42;
};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuard;
description = ''
@@ -1029,7 +1061,6 @@ let
addressOptions = {
options = {
addressConfig = mkOption {
- default = {};
example = { Address = "192.168.0.100/24"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
description = ''
@@ -1046,7 +1077,7 @@ let
options = {
routingPolicyRuleConfig = mkOption {
default = { };
- example = { routingPolicyRuleConfig = { Table = 10; IncomingInterface = "eth1"; Family = "both"; } ;};
+ example = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
description = ''
Each attribute in this set specifies an option in the
@@ -1137,7 +1168,7 @@ let
dhcpV6Config = mkOption {
default = {};
- example = { UseDNS = true; UseRoutes = true; };
+ example = { UseDNS = true; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6;
description = ''
Each attribute in this set specifies an option in the
@@ -1204,7 +1235,7 @@ let
ipv6Prefixes = mkOption {
default = [];
- example = { AddressAutoconfiguration = true; OnLink = true; };
+ example = [ { AddressAutoconfiguration = true; OnLink = true; } ];
type = with types; listOf (submodule ipv6PrefixOptions);
description = ''
A list of ipv6Prefix sections to be added to the unit. See
@@ -1440,6 +1471,10 @@ let
[Tunnel]
${attrsToSection def.tunnelConfig}
''
+ + optionalString (def.fooOverUDPConfig != { }) ''
+ [FooOverUDP]
+ ${attrsToSection def.fooOverUDPConfig}
+ ''
+ optionalString (def.peerConfig != { }) ''
[Peer]
${attrsToSection def.peerConfig}
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index 2a545e552513..4b8194d2f85c 100644
--- a/nixos/modules/system/boot/plymouth.nix
+++ b/nixos/modules/system/boot/plymouth.nix
@@ -62,6 +62,7 @@ in
font = mkOption {
default = "${pkgs.dejavu_fonts.minimal}/share/fonts/truetype/DejaVuSans.ttf";
+ defaultText = literalExpression ''"''${pkgs.dejavu_fonts.minimal}/share/fonts/truetype/DejaVuSans.ttf"'';
type = types.path;
description = ''
Font file made available for displaying text on the splash screen.
@@ -88,7 +89,7 @@ in
type = types.path;
# Dimensions are 48x48 to match GDM logo
default = "${nixos-icons}/share/icons/hicolor/48x48/apps/nix-snowflake-white.png";
- defaultText = ''pkgs.fetchurl {
+ defaultText = literalExpression ''pkgs.fetchurl {
url = "https://nixos.org/logo/nixos-hires.png";
sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";
}'';
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 03133fa1bc43..adbed9d8d58e 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -137,6 +137,14 @@ let
copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/resize2fs
''}
+ # Copy multipath.
+ ${optionalString config.services.multipath.enable ''
+ copy_bin_and_libs ${config.services.multipath.package}/bin/multipath
+ copy_bin_and_libs ${config.services.multipath.package}/bin/multipathd
+ # Copy lib/multipath manually.
+ cp -rpv ${config.services.multipath.package}/lib/multipath $out/lib
+ ''}
+
# Copy secrets if needed.
#
# TODO: move out to a separate script; see #85000.
@@ -199,6 +207,10 @@ let
$out/bin/dmsetup --version 2>&1 | tee -a log | grep -q "version:"
LVM_SYSTEM_DIR=$out $out/bin/lvm version 2>&1 | tee -a log | grep -q "LVM"
$out/bin/mdadm --version
+ ${optionalString config.services.multipath.enable ''
+ ($out/bin/multipath || true) 2>&1 | grep -q 'need to be root'
+ ($out/bin/multipathd || true) 2>&1 | grep -q 'need to be root'
+ ''}
${config.boot.initrd.extraUtilsCommandsTest}
fi
@@ -338,7 +350,26 @@ let
{ object = pkgs.kmod-debian-aliases;
symlink = "/etc/modprobe.d/debian.conf";
}
- ];
+ ] ++ lib.optionals config.services.multipath.enable [
+ { object = pkgs.runCommand "multipath.conf" {
+ src = config.environment.etc."multipath.conf".text;
+ preferLocalBuild = true;
+ } ''
+ target=$out
+ printf "$src" > $out
+ substituteInPlace $out \
+ --replace ${config.services.multipath.package}/lib ${extraUtils}/lib
+ '';
+ symlink = "/etc/multipath.conf";
+ }
+ ] ++ (lib.mapAttrsToList
+ (symlink: options:
+ {
+ inherit symlink;
+ object = options.source;
+ }
+ )
+ config.boot.initrd.extraFiles);
};
# Script to add secret files to the initrd at bootloader update time
@@ -411,7 +442,7 @@ in
boot.initrd.enable = mkOption {
type = types.bool;
default = !config.boot.isContainer;
- defaultText = "!config.boot.isContainer";
+ defaultText = literalExpression "!config.boot.isContainer";
description = ''
Whether to enable the NixOS initial RAM disk (initrd). This may be
needed to perform some initialisation tasks (like mounting
@@ -419,6 +450,22 @@ in
'';
};
+ boot.initrd.extraFiles = mkOption {
+ default = { };
+ type = types.attrsOf
+ (types.submodule {
+ options = {
+ source = mkOption {
+ type = types.package;
+ description = "The object to make available inside the initrd.";
+ };
+ };
+ });
+ description = ''
+ Extra files to link and copy in to the initrd.
+ '';
+ };
+
boot.initrd.prepend = mkOption {
default = [ ];
type = types.listOf types.str;
@@ -527,7 +574,7 @@ in
then "zstd"
else "gzip"
);
- defaultText = "zstd if the kernel supports it (5.9+), gzip if not.";
+ defaultText = literalDocBook "zstd if the kernel supports it (5.9+), gzip if not";
type = types.unspecified; # We don't have a function type...
description = ''
The compressor to use on the initrd image. May be any of:
@@ -559,7 +606,7 @@ in
is the path it should be copied from (or null for the same
path inside and out).
'';
- example = literalExample
+ example = literalExpression
''
{ "/etc/dropbear/dropbear_rsa_host_key" =
./secret-dropbear-key;
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index 50ee0b8841e5..afaca2e4158d 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -62,9 +62,11 @@ chown -f 0:30000 /nix/store
chmod -f 1775 /nix/store
if [ -n "@readOnlyStore@" ]; then
if ! [[ "$(findmnt --noheadings --output OPTIONS /nix/store)" =~ ro(,|$) ]]; then
- # FIXME when linux < 4.5 is EOL, switch to atomic bind mounts
- #mount /nix/store /nix/store -o bind,remount,ro
- mount --bind /nix/store /nix/store
+ if [ -z "$container" ]; then
+ mount --bind /nix/store /nix/store
+ else
+ mount --rbind /nix/store /nix/store
+ fi
mount -o remount,ro,bind /nix/store
fi
fi
diff --git a/nixos/modules/system/boot/systemd-lib.nix b/nixos/modules/system/boot/systemd-lib.nix
index 2dbf15031a08..6c4d27018eed 100644
--- a/nixos/modules/system/boot/systemd-lib.nix
+++ b/nixos/modules/system/boot/systemd-lib.nix
@@ -4,7 +4,7 @@ with lib;
let
cfg = config.systemd;
- lndir = "${pkgs.xorg.lndir}/bin/lndir";
+ lndir = "${pkgs.buildPackages.xorg.lndir}/bin/lndir";
in rec {
shellEscape = s: (replaceChars [ "\\" ] [ "\\\\" ] s);
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 9693e2e377a7..8fcf62d7fbff 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -26,6 +26,8 @@ let
"nss-user-lookup.target"
"time-sync.target"
"cryptsetup.target"
+ "cryptsetup-pre.target"
+ "remote-cryptsetup.target"
"sigpwr.target"
"timers.target"
"paths.target"
@@ -40,7 +42,7 @@ let
"systemd-udevd-kernel.socket"
"systemd-udevd.service"
"systemd-udev-settle.service"
- "systemd-udev-trigger.service"
+ ] ++ (optional (!config.boot.isContainer) "systemd-udev-trigger.service") ++ [
# hwdb.bin is managed by NixOS
# "systemd-hwdb-update.service"
@@ -426,7 +428,7 @@ in
systemd.package = mkOption {
default = pkgs.systemd;
- defaultText = "pkgs.systemd";
+ defaultText = literalExpression "pkgs.systemd";
type = types.package;
description = "The systemd package.";
};
@@ -446,7 +448,7 @@ in
systemd.packages = mkOption {
default = [];
type = types.listOf types.package;
- example = literalExample "[ pkgs.systemd-cryptsetup-generator ]";
+ example = literalExpression "[ pkgs.systemd-cryptsetup-generator ]";
description = "Packages providing systemd units and hooks.";
};
@@ -663,7 +665,7 @@ in
services.journald.forwardToSyslog = mkOption {
default = config.services.rsyslogd.enable || config.services.syslog-ng.enable;
- defaultText = "services.rsyslogd.enable || services.syslog-ng.enable";
+ defaultText = literalExpression "services.rsyslogd.enable || services.syslog-ng.enable";
type = types.bool;
description = ''
Whether to forward log messages to syslog.
@@ -722,7 +724,7 @@ in
services.logind.lidSwitchExternalPower = mkOption {
default = config.services.logind.lidSwitch;
- defaultText = "services.logind.lidSwitch";
+ defaultText = literalExpression "services.logind.lidSwitch";
example = "ignore";
type = logindHandlerType;
@@ -768,7 +770,7 @@ in
systemd.tmpfiles.packages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.lvm2 ]";
+ example = literalExpression "[ pkgs.lvm2 ]";
apply = map getLib;
description = ''
List of packages containing systemd-tmpfiles rules.
diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix
index 84468ea31f74..8f14f04a1f64 100644
--- a/nixos/modules/system/etc/etc.nix
+++ b/nixos/modules/system/etc/etc.nix
@@ -6,9 +6,7 @@ with lib;
let
- # if the source is a local file, it should be imported to the store
- localToStore = mapAttrs (name: value: if name == "source" then "${value}" else value);
- etc' = map localToStore (filter (f: f.enable) (attrValues config.environment.etc));
+ etc' = filter (f: f.enable) (attrValues config.environment.etc);
etc = pkgs.runCommandLocal "etc" {
# This is needed for the systemd module
@@ -55,7 +53,8 @@ let
mkdir -p "$out/etc"
${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
"makeEtcEntry"
- etcEntry.source
+ # Force local source paths to be added to the store
+ "${etcEntry.source}"
etcEntry.target
etcEntry.mode
etcEntry.user
@@ -73,7 +72,7 @@ in
environment.etc = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ example-configuration-file =
{ source = "/nix/store/.../etc/dir/file.conf.example";
mode = "0440";
diff --git a/nixos/modules/system/etc/setup-etc.pl b/nixos/modules/system/etc/setup-etc.pl
index eed20065087f..be6b2d9ae71e 100644
--- a/nixos/modules/system/etc/setup-etc.pl
+++ b/nixos/modules/system/etc/setup-etc.pl
@@ -138,3 +138,9 @@ foreach my $fn (@oldCopied) {
# Rewrite /etc/.clean.
close CLEAN;
write_file("/etc/.clean", map { "$_\n" } @copied);
+
+# Create /etc/NIXOS tag if not exists.
+# When /etc is not on a persistent filesystem, it will be wiped after reboot,
+# so we need to check and re-create it during activation.
+open TAG, ">>/etc/NIXOS";
+close TAG;
diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix
index 4f56504f45e7..225bcbe58e01 100644
--- a/nixos/modules/tasks/filesystems.nix
+++ b/nixos/modules/tasks/filesystems.nix
@@ -163,7 +163,7 @@ in
fileSystems = mkOption {
default = {};
- example = literalExample ''
+ example = literalExpression ''
{
"/".device = "/dev/hda1";
"/data" = {
diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix
index fd35c35d32ad..38c3920a78ad 100644
--- a/nixos/modules/tasks/filesystems/nfs.nix
+++ b/nixos/modules/tasks/filesystems/nfs.nix
@@ -35,7 +35,7 @@ in
for details.
'';
- example = literalExample ''
+ example = literalExpression ''
{
Translation = {
GSS-Methods = "static,nsswitch";
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index cb0e66402476..65364801c32a 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -104,7 +104,7 @@ in
readOnly = true;
type = types.package;
default = if config.boot.zfs.enableUnstable then pkgs.zfsUnstable else pkgs.zfs;
- defaultText = "if config.boot.zfs.enableUnstable then pkgs.zfsUnstable else pkgs.zfs";
+ defaultText = literalExpression "if config.boot.zfs.enableUnstable then pkgs.zfsUnstable else pkgs.zfs";
description = "Configured ZFS userland tools package.";
};
@@ -150,7 +150,6 @@ in
devNodes = mkOption {
type = types.path;
default = "/dev/disk/by-id";
- example = "/dev/disk/by-id";
description = ''
Name of directory from which to import ZFS devices.
@@ -351,7 +350,7 @@ in
settings = mkOption {
type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
- example = literalExample ''
+ example = literalExpression ''
{
ZED_DEBUG_LOG = "/tmp/zed.debug.log";
@@ -562,7 +561,8 @@ in
then cfgZfs.requestEncryptionCredentials
else cfgZfs.requestEncryptionCredentials != []) ''
${cfgZfs.package}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do
- (${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
+ {
+ ${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then
continue
fi
@@ -576,7 +576,8 @@ in
* )
${cfgZfs.package}/sbin/zfs load-key "$ds"
;;
- esac) < /dev/null # To protect while read ds kl in case anything reads stdin
+ esac
+ } < /dev/null # To protect while read ds kl in case anything reads stdin
done
''}
echo "Successfully imported ${pool}"
diff --git a/nixos/modules/tasks/lvm.nix b/nixos/modules/tasks/lvm.nix
index aaa76b49fa30..35316603c38f 100644
--- a/nixos/modules/tasks/lvm.nix
+++ b/nixos/modules/tasks/lvm.nix
@@ -9,7 +9,7 @@ in {
type = types.package;
default = if cfg.dmeventd.enable then pkgs.lvm2_dmeventd else pkgs.lvm2;
internal = true;
- defaultText = "pkgs.lvm2";
+ defaultText = literalExpression "pkgs.lvm2";
description = ''
This option allows you to override the LVM package that's used on the system
(udev rules, tmpfiles, systemd services).
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 11bd159319a3..e8e2de090b32 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -61,6 +61,8 @@ let
MACAddress = i.macAddress;
} // optionalAttrs (i.mtu != null) {
MTUBytes = toString i.mtu;
+ } // optionalAttrs (i.wakeOnLan.enable == true) {
+ WakeOnLan = "magic";
};
};
in listToAttrs (map createNetworkLink interfaces);
@@ -464,6 +466,39 @@ let
'';
});
+ createFouEncapsulation = n: v: nameValuePair "${n}-fou-encap"
+ (let
+ # if we have a device to bind to we can wait for its addresses to be
+ # configured, otherwise external sequencing is required.
+ deps = optionals (v.local != null && v.local.dev != null)
+ (deviceDependency v.local.dev ++ [ "network-addresses-${v.local.dev}.service" ]);
+ fouSpec = "port ${toString v.port} ${
+ if v.protocol != null then "ipproto ${toString v.protocol}" else "gue"
+ } ${
+ optionalString (v.local != null) "local ${escapeShellArg v.local.address} ${
+ optionalString (v.local.dev != null) "dev ${escapeShellArg v.local.dev}"
+ }"
+ }";
+ in
+ { description = "FOU endpoint ${n}";
+ wantedBy = [ "network-setup.service" (subsystemDevice n) ];
+ bindsTo = deps;
+ partOf = [ "network-setup.service" ];
+ after = [ "network-pre.target" ] ++ deps;
+ before = [ "network-setup.service" ];
+ serviceConfig.Type = "oneshot";
+ serviceConfig.RemainAfterExit = true;
+ path = [ pkgs.iproute2 ];
+ script = ''
+ # always remove previous incarnation since show can't filter
+ ip fou del ${fouSpec} >/dev/null 2>&1 || true
+ ip fou add ${fouSpec}
+ '';
+ postStop = ''
+ ip fou del ${fouSpec} || true
+ '';
+ });
+
createSitDevice = n: v: nameValuePair "${n}-netdev"
(let
deps = deviceDependency v.dev;
@@ -484,7 +519,12 @@ let
${optionalString (v.remote != null) "remote \"${v.remote}\""} \
${optionalString (v.local != null) "local \"${v.local}\""} \
${optionalString (v.ttl != null) "ttl ${toString v.ttl}"} \
- ${optionalString (v.dev != null) "dev \"${v.dev}\""}
+ ${optionalString (v.dev != null) "dev \"${v.dev}\""} \
+ ${optionalString (v.encapsulation != null)
+ "encap ${v.encapsulation.type} encap-dport ${toString v.encapsulation.port} ${
+ optionalString (v.encapsulation.sourcePort != null)
+ "encap-sport ${toString v.encapsulation.sourcePort}"
+ }"}
ip link set "${n}" up
'';
postStop = ''
@@ -528,6 +568,7 @@ let
// mapAttrs' createVswitchDevice cfg.vswitches
// mapAttrs' createBondDevice cfg.bonds
// mapAttrs' createMacvlanDevice cfg.macvlans
+ // mapAttrs' createFouEncapsulation cfg.fooOverUDP
// mapAttrs' createSitDevice cfg.sits
// mapAttrs' createVlanDevice cfg.vlans
// {
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 225f9dc67fcc..ccfd7fd4132b 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -47,6 +47,9 @@ in
} ] ++ flip mapAttrsToList cfg.bridges (n: { rstp, ... }: {
assertion = !rstp;
message = "networking.bridges.${n}.rstp is not supported by networkd.";
+ }) ++ flip mapAttrsToList cfg.fooOverUDP (n: { local, ... }: {
+ assertion = local == null;
+ message = "networking.fooOverUDP.${n}.local is not supported by networkd.";
});
networking.dhcpcd.enable = mkDefault false;
@@ -194,6 +197,23 @@ in
macvlan = [ name ];
} ]);
})))
+ (mkMerge (flip mapAttrsToList cfg.fooOverUDP (name: fou: {
+ netdevs."40-${name}" = {
+ netdevConfig = {
+ Name = name;
+ Kind = "fou";
+ };
+ # unfortunately networkd cannot encode dependencies of netdevs on addresses/routes,
+ # so we cannot specify Local=, Peer=, PeerPort=. this looks like a missing feature
+ # in networkd.
+ fooOverUDPConfig = {
+ Port = fou.port;
+ Encapsulation = if fou.protocol != null then "FooOverUDP" else "GenericUDPEncapsulation";
+ } // (optionalAttrs (fou.protocol != null) {
+ Protocol = fou.protocol;
+ });
+ };
+ })))
(mkMerge (flip mapAttrsToList cfg.sits (name: sit: {
netdevs."40-${name}" = {
netdevConfig = {
@@ -207,7 +227,17 @@ in
Local = sit.local;
}) // (optionalAttrs (sit.ttl != null) {
TTL = sit.ttl;
- });
+ }) // (optionalAttrs (sit.encapsulation != null) (
+ {
+ FooOverUDP = true;
+ Encapsulation =
+ if sit.encapsulation.type == "fou"
+ then "FooOverUDP"
+ else "GenericUDPEncapsulation";
+ FOUDestinationPort = sit.encapsulation.port;
+ } // (optionalAttrs (sit.encapsulation.sourcePort != null) {
+ FOUSourcePort = sit.encapsulation.sourcePort;
+ })));
};
networks = mkIf (sit.dev != null) {
"40-${sit.dev}" = (mkMerge [ (genericNetwork (mkOverride 999)) {
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index d934e3cf0224..4e20ec118464 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -10,6 +10,8 @@ let
hasVirtuals = any (i: i.virtual) interfaces;
hasSits = cfg.sits != { };
hasBonds = cfg.bonds != { };
+ hasFous = cfg.fooOverUDP != { }
+ || filterAttrs (_: s: s.encapsulation != null) cfg.sits != { };
slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds)
++ concatMap (i: i.interfaces) (attrValues cfg.bridges)
@@ -146,7 +148,7 @@ let
tempAddress = mkOption {
type = types.enum (lib.attrNames tempaddrValues);
default = cfg.tempAddresses;
- defaultText = literalExample ''config.networking.tempAddresses'';
+ defaultText = literalExpression ''config.networking.tempAddresses'';
description = ''
When IPv6 is enabled with SLAAC, this option controls the use of
temporary address (aka privacy extensions) on this
@@ -257,7 +259,7 @@ let
virtualType = mkOption {
default = if hasPrefix "tun" name then "tun" else "tap";
- defaultText = literalExample ''if hasPrefix "tun" name then "tun" else "tap"'';
+ defaultText = literalExpression ''if hasPrefix "tun" name then "tun" else "tap"'';
type = with types; enum [ "tun" "tap" ];
description = ''
The type of interface to create.
@@ -284,6 +286,13 @@ let
'';
};
+ wakeOnLan = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Wether to enable wol on this interface.";
+ };
+ };
};
config = {
@@ -420,7 +429,7 @@ in
The FQDN is required but cannot be determined. Please make sure that
both networking.hostName and networking.domain are set properly.
'';
- defaultText = literalExample ''''${networking.hostName}.''${networking.domain}'';
+ defaultText = literalExpression ''"''${networking.hostName}.''${networking.domain}"'';
description = ''
The fully qualified domain name (FQDN) of this host. It is the result
of combining networking.hostName and networking.domain. Using this
@@ -578,7 +587,6 @@ in
options = {
interfaces = mkOption {
- example = [ "eth0" "eth1" ];
description = "The physical network interfaces connected by the vSwitch.";
type = with types; attrsOf (submodule vswitchInterfaceOpts);
};
@@ -691,7 +699,7 @@ in
'';
in mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
bond0 = {
interfaces = [ "eth0" "wlan0" ];
@@ -720,7 +728,7 @@ in
driverOptions = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExample driverOptionsExample;
+ example = literalExpression driverOptionsExample;
description = ''
Options for the bonding driver.
Documentation can be found in
@@ -784,7 +792,7 @@ in
networking.macvlans = mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
wan = {
interface = "enp2s0";
@@ -817,9 +825,74 @@ in
});
};
+ networking.fooOverUDP = mkOption {
+ default = { };
+ example =
+ {
+ primary = { port = 9001; local = { address = "192.0.2.1"; dev = "eth0"; }; };
+ backup = { port = 9002; };
+ };
+ description = ''
+ This option allows you to configure Foo Over UDP and Generic UDP Encapsulation
+ endpoints. See ip-fou
+ 8 for details.
+ '';
+ type = with types; attrsOf (submodule {
+ options = {
+ port = mkOption {
+ type = port;
+ description = ''
+ Local port of the encapsulation UDP socket.
+ '';
+ };
+
+ protocol = mkOption {
+ type = nullOr (ints.between 1 255);
+ default = null;
+ description = ''
+ Protocol number of the encapsulated packets. Specifying null
+ (the default) creates a GUE endpoint, specifying a protocol number will create
+ a FOU endpoint.
+ '';
+ };
+
+ local = mkOption {
+ type = nullOr (submodule {
+ options = {
+ address = mkOption {
+ type = types.str;
+ description = ''
+ Local address to bind to. The address must be available when the FOU
+ endpoint is created, using the scripted network setup this can be achieved
+ either by setting dev or adding dependency information to
+ systemd.services.<name>-fou-encap; it isn't supported
+ when using networkd.
+ '';
+ };
+
+ dev = mkOption {
+ type = nullOr str;
+ default = null;
+ example = "eth0";
+ description = ''
+ Network device to bind to.
+ '';
+ };
+ };
+ });
+ default = null;
+ example = { address = "203.0.113.22"; };
+ description = ''
+ Local address (and optionally device) to bind to using the given port.
+ '';
+ };
+ };
+ });
+ };
+
networking.sits = mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
hurricane = {
remote = "10.0.0.1";
@@ -876,6 +949,44 @@ in
'';
};
+ encapsulation = with types; mkOption {
+ type = nullOr (submodule {
+ options = {
+ type = mkOption {
+ type = enum [ "fou" "gue" ];
+ description = ''
+ Selects encapsulation type. See
+ ip-link
+ 8 for details.
+ '';
+ };
+
+ port = mkOption {
+ type = port;
+ example = 9001;
+ description = ''
+ Destination port for encapsulated packets.
+ '';
+ };
+
+ sourcePort = mkOption {
+ type = nullOr types.port;
+ default = null;
+ example = 9002;
+ description = ''
+ Source port for encapsulated packets. Will be chosen automatically by
+ the kernel if unset.
+ '';
+ };
+ };
+ });
+ default = null;
+ example = { type = "fou"; port = 9001; };
+ description = ''
+ Configures encapsulation in UDP packets.
+ '';
+ };
+
};
});
@@ -883,7 +994,7 @@ in
networking.vlans = mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
vlan0 = {
id = 3;
@@ -927,7 +1038,7 @@ in
networking.wlanInterfaces = mkOption {
default = { };
- example = literalExample ''
+ example = literalExpression ''
{
wlan-station0 = {
device = "wlp6s0";
@@ -1110,7 +1221,8 @@ in
boot.kernelModules = [ ]
++ optional hasVirtuals "tun"
++ optional hasSits "sit"
- ++ optional hasBonds "bonding";
+ ++ optional hasBonds "bonding"
+ ++ optional hasFous "fou";
boot.extraModprobeConfig =
# This setting is intentional as it prevents default bond devices
@@ -1139,10 +1251,12 @@ in
source = "${pkgs.iputils.out}/bin/ping";
};
} else {
- setuid = true;
- owner = "root";
- group = "root";
- source = "${pkgs.iputils.out}/bin/ping";
+ ping = {
+ setuid = true;
+ owner = "root";
+ group = "root";
+ source = "${pkgs.iputils.out}/bin/ping";
+ };
};
security.apparmor.policies."bin.ping".profile = lib.mkIf config.security.apparmor.policies."bin.ping".enable (lib.mkAfter ''
/run/wrappers/bin/ping {
diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix
index be5fa88b8ade..a7011be7e042 100644
--- a/nixos/modules/testing/test-instrumentation.nix
+++ b/nixos/modules/testing/test-instrumentation.nix
@@ -4,7 +4,10 @@
{ options, config, lib, pkgs, ... }:
with lib;
-with import ../../lib/qemu-flags.nix { inherit pkgs; };
+
+let
+ qemu-common = import ../../lib/qemu-common.nix { inherit lib pkgs; };
+in
{
@@ -12,8 +15,8 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
systemd.services.backdoor =
{ wantedBy = [ "multi-user.target" ];
- requires = [ "dev-hvc0.device" "dev-${qemuSerialDevice}.device" ];
- after = [ "dev-hvc0.device" "dev-${qemuSerialDevice}.device" ];
+ requires = [ "dev-hvc0.device" "dev-${qemu-common.qemuSerialDevice}.device" ];
+ after = [ "dev-hvc0.device" "dev-${qemu-common.qemuSerialDevice}.device" ];
script =
''
export USER=root
@@ -30,7 +33,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
cd /tmp
exec < /dev/hvc0 > /dev/hvc0
- while ! exec 2> /dev/${qemuSerialDevice}; do sleep 0.1; done
+ while ! exec 2> /dev/${qemu-common.qemuSerialDevice}; do sleep 0.1; done
echo "connecting to host..." >&2
stty -F /dev/hvc0 raw -echo # prevent nl -> cr/nl conversion
echo
@@ -42,7 +45,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
# Prevent agetty from being instantiated on the serial device, since it
# interferes with the backdoor (writes to it will randomly fail
# with EIO). Likewise for hvc0.
- systemd.services."serial-getty@${qemuSerialDevice}".enable = false;
+ systemd.services."serial-getty@${qemu-common.qemuSerialDevice}".enable = false;
systemd.services."serial-getty@hvc0".enable = false;
# Only set these settings when the options exist. Some tests (e.g. those
@@ -57,7 +60,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
# we avoid defining consoles if not possible.
# TODO: refactor such that test-instrumentation can import qemu-vm
# or declare virtualisation.qemu.console option in a module that's always imported
- consoles = [ qemuSerialDevice ];
+ consoles = [ qemu-common.qemuSerialDevice ];
package = lib.mkDefault pkgs.qemu_test;
};
};
@@ -88,7 +91,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
# Panic if an error occurs in stage 1 (rather than waiting for
# user intervention).
boot.kernelParams =
- [ "console=${qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
+ [ "console=${qemu-common.qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
# `xwininfo' is used by the test driver to query open windows.
environment.systemPackages = [ pkgs.xorg.xwininfo ];
diff --git a/nixos/modules/virtualisation/anbox.nix b/nixos/modules/virtualisation/anbox.nix
index 7b096bd1a9fb..a4da62eb5f79 100644
--- a/nixos/modules/virtualisation/anbox.nix
+++ b/nixos/modules/virtualisation/anbox.nix
@@ -35,7 +35,7 @@ in
image = mkOption {
default = pkgs.anbox.image;
- example = literalExample "pkgs.anbox.image";
+ defaultText = literalExpression "pkgs.anbox.image";
type = types.package;
description = ''
Base android image for Anbox.
diff --git a/nixos/modules/virtualisation/containerd.nix b/nixos/modules/virtualisation/containerd.nix
index 43cb6273f253..898a66e7b04e 100644
--- a/nixos/modules/virtualisation/containerd.nix
+++ b/nixos/modules/virtualisation/containerd.nix
@@ -53,8 +53,11 @@ in
virtualisation.containerd = {
args.config = toString containerdConfigChecked;
settings = {
- plugins.cri.containerd.snapshotter = lib.mkIf config.boot.zfs.enabled "zfs";
- plugins.cri.cni.bin_dir = lib.mkDefault "${pkgs.cni-plugins}/bin";
+ plugins."io.containerd.grpc.v1.cri" = {
+ containerd.snapshotter =
+ lib.mkIf config.boot.zfs.enabled (lib.mkOptionDefault "zfs");
+ cni.bin_dir = lib.mkOptionDefault "${pkgs.cni-plugins}/bin";
+ };
};
};
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 84824e2f90f0..cea3d51d3aef 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -2,7 +2,7 @@
let
cfg = config.virtualisation.containers;
- inherit (lib) mkOption types;
+ inherit (lib) literalExpression mkOption types;
toml = pkgs.formats.toml { };
in
@@ -50,12 +50,12 @@ in
containersConf.cniPlugins = mkOption {
type = types.listOf types.package;
- defaultText = ''
+ defaultText = literalExpression ''
[
pkgs.cni-plugins
]
'';
- example = lib.literalExample ''
+ example = literalExpression ''
[
pkgs.cniPlugins.dnsname
]
@@ -106,7 +106,7 @@ in
policy = mkOption {
default = {};
type = types.attrs;
- example = lib.literalExample ''
+ example = literalExpression ''
{
default = [ { type = "insecureAcceptAnything"; } ];
transports = {
diff --git a/nixos/modules/virtualisation/cri-o.nix b/nixos/modules/virtualisation/cri-o.nix
index c135081959a6..38766113f391 100644
--- a/nixos/modules/virtualisation/cri-o.nix
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -38,27 +38,27 @@ in
type = types.nullOr types.str;
default = null;
description = "Override the default pause image for pod sandboxes";
- example = [ "k8s.gcr.io/pause:3.2" ];
+ example = "k8s.gcr.io/pause:3.2";
};
pauseCommand = mkOption {
type = types.nullOr types.str;
default = null;
description = "Override the default pause command";
- example = [ "/pause" ];
+ example = "/pause";
};
runtime = mkOption {
type = types.nullOr types.str;
default = null;
description = "Override the default runtime";
- example = [ "crun" ];
+ example = "crun";
};
extraPackages = mkOption {
type = with types; listOf package;
default = [ ];
- example = literalExample ''
+ example = literalExpression ''
[
pkgs.gvisor
]
diff --git a/nixos/modules/virtualisation/digital-ocean-init.nix b/nixos/modules/virtualisation/digital-ocean-init.nix
index 02f4de009fa8..4339d91de168 100644
--- a/nixos/modules/virtualisation/digital-ocean-init.nix
+++ b/nixos/modules/virtualisation/digital-ocean-init.nix
@@ -20,7 +20,7 @@ in {
options.virtualisation.digitalOcean.defaultConfigFile = mkOption {
type = types.path;
default = defaultConfigFile;
- defaultText = ''
+ defaultText = literalDocBook ''
The default configuration imports user-data if applicable and
(modulesPath + "/virtualisation/digital-ocean-config.nix").
'';
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index 29f133786d8d..06858e150309 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -138,8 +138,9 @@ in
package = mkOption {
default = pkgs.docker;
+ defaultText = literalExpression "pkgs.docker";
type = types.package;
- example = pkgs.docker-edge;
+ example = literalExpression "pkgs.docker-edge";
description = ''
Docker package to be used in the module.
'';
diff --git a/nixos/modules/virtualisation/ecs-agent.nix b/nixos/modules/virtualisation/ecs-agent.nix
index 93fefe56d1a5..aa38a02ea088 100644
--- a/nixos/modules/virtualisation/ecs-agent.nix
+++ b/nixos/modules/virtualisation/ecs-agent.nix
@@ -12,7 +12,7 @@ in {
type = types.path;
description = "The ECS agent package to use";
default = pkgs.ecs-agent;
- defaultText = "pkgs.ecs-agent";
+ defaultText = literalExpression "pkgs.ecs-agent";
};
extra-environment = mkOption {
diff --git a/nixos/modules/virtualisation/hyperv-guest.nix b/nixos/modules/virtualisation/hyperv-guest.nix
index b3bcfff19807..fb6502644b80 100644
--- a/nixos/modules/virtualisation/hyperv-guest.nix
+++ b/nixos/modules/virtualisation/hyperv-guest.nix
@@ -34,7 +34,7 @@ in {
initrd.availableKernelModules = [ "hyperv_keyboard" ];
kernelParams = [
- "video=hyperv_fb:${cfg.videoMode} elevator=noop"
+ "video=hyperv_fb:${cfg.videoMode}" "elevator=noop"
];
};
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index 3c291397a998..ab87394a30ee 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -13,23 +13,140 @@ let
'';
ovmfFilePrefix = if pkgs.stdenv.isAarch64 then "AAVMF" else "OVMF";
qemuConfigFile = pkgs.writeText "qemu.conf" ''
- ${optionalString cfg.qemuOvmf ''
+ ${optionalString cfg.qemu.ovmf.enable ''
nvram = [ "/run/libvirt/nix-ovmf/${ovmfFilePrefix}_CODE.fd:/run/libvirt/nix-ovmf/${ovmfFilePrefix}_VARS.fd" ]
''}
- ${optionalString (!cfg.qemuRunAsRoot) ''
+ ${optionalString (!cfg.qemu.runAsRoot) ''
user = "qemu-libvirtd"
group = "qemu-libvirtd"
''}
- ${cfg.qemuVerbatimConfig}
+ ${cfg.qemu.verbatimConfig}
'';
dirName = "libvirt";
subDirs = list: [ dirName ] ++ map (e: "${dirName}/${e}") list;
-in {
+ ovmfModule = types.submodule {
+ options = {
+ enable = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Allows libvirtd to take advantage of OVMF when creating new
+ QEMU VMs with UEFI boot.
+ '';
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.OVMF;
+ defaultText = literalExpression "pkgs.OVMF";
+ example = literalExpression "pkgs.OVMFFull";
+ description = ''
+ OVMF package to use.
+ '';
+ };
+ };
+ };
+
+ swtpmModule = types.submodule {
+ options = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Allows libvirtd to use swtpm to create an emulated TPM.
+ '';
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.swtpm;
+ defaultText = literalExpression "pkgs.swtpm";
+ description = ''
+ swtpm package to use.
+ '';
+ };
+ };
+ };
+
+ qemuModule = types.submodule {
+ options = {
+ package = mkOption {
+ type = types.package;
+ default = pkgs.qemu;
+ defaultText = literalExpression "pkgs.qemu";
+ description = ''
+ Qemu package to use with libvirt.
+ `pkgs.qemu` can emulate alien architectures (e.g. aarch64 on x86)
+ `pkgs.qemu_kvm` saves disk space allowing to emulate only host architectures.
+ '';
+ };
+
+ runAsRoot = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ If true, libvirtd runs qemu as root.
+ If false, libvirtd runs qemu as unprivileged user qemu-libvirtd.
+ Changing this option to false may cause file permission issues
+ for existing guests. To fix these, manually change ownership
+ of affected files in /var/lib/libvirt/qemu to qemu-libvirtd.
+ '';
+ };
+
+ verbatimConfig = mkOption {
+ type = types.lines;
+ default = ''
+ namespaces = []
+ '';
+ description = ''
+ Contents written to the qemu configuration file, qemu.conf.
+ Make sure to include a proper namespace configuration when
+ supplying custom configuration.
+ '';
+ };
+
+ ovmf = mkOption {
+ type = ovmfModule;
+ default = { };
+ description = ''
+ QEMU's OVMF options.
+ '';
+ };
+
+ swtpm = mkOption {
+ type = swtpmModule;
+ default = { };
+ description = ''
+ QEMU's swtpm options.
+ '';
+ };
+ };
+ };
+in
+{
imports = [
(mkRemovedOptionModule [ "virtualisation" "libvirtd" "enableKVM" ]
- "Set the option `virtualisation.libvirtd.qemuPackage' instead.")
+ "Set the option `virtualisation.libvirtd.qemu.package' instead.")
+ (mkRenamedOptionModule
+ [ "virtualisation" "libvirtd" "qemuPackage" ]
+ [ "virtualisation" "libvirtd" "qemu" "package" ])
+ (mkRenamedOptionModule
+ [ "virtualisation" "libvirtd" "qemuRunAsRoot" ]
+ [ "virtualisation" "libvirtd" "qemu" "runAsRoot" ])
+ (mkRenamedOptionModule
+ [ "virtualisation" "libvirtd" "qemuVerbatimConfig" ]
+ [ "virtualisation" "libvirtd" "qemu" "verbatimConfig" ])
+ (mkRenamedOptionModule
+ [ "virtualisation" "libvirtd" "qemuOvmf" ]
+ [ "virtualisation" "libvirtd" "qemu" "ovmf" "enable" ])
+ (mkRenamedOptionModule
+ [ "virtualisation" "libvirtd" "qemuOvmfPackage" ]
+ [ "virtualisation" "libvirtd" "qemu" "ovmf" "package" ])
+ (mkRenamedOptionModule
+ [ "virtualisation" "libvirtd" "qemuSwtpm" ]
+ [ "virtualisation" "libvirtd" "qemu" "swtpm" "enable" ])
];
###### interface
@@ -50,22 +167,12 @@ in {
package = mkOption {
type = types.package;
default = pkgs.libvirt;
- defaultText = "pkgs.libvirt";
+ defaultText = literalExpression "pkgs.libvirt";
description = ''
libvirt package to use.
'';
};
- qemuPackage = mkOption {
- type = types.package;
- default = pkgs.qemu;
- description = ''
- Qemu package to use with libvirt.
- `pkgs.qemu` can emulate alien architectures (e.g. aarch64 on x86)
- `pkgs.qemu_kvm` saves disk space allowing to emulate only host architectures.
- '';
- };
-
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -75,39 +182,6 @@ in {
'';
};
- qemuRunAsRoot = mkOption {
- type = types.bool;
- default = true;
- description = ''
- If true, libvirtd runs qemu as root.
- If false, libvirtd runs qemu as unprivileged user qemu-libvirtd.
- Changing this option to false may cause file permission issues
- for existing guests. To fix these, manually change ownership
- of affected files in /var/lib/libvirt/qemu to qemu-libvirtd.
- '';
- };
-
- qemuVerbatimConfig = mkOption {
- type = types.lines;
- default = ''
- namespaces = []
- '';
- description = ''
- Contents written to the qemu configuration file, qemu.conf.
- Make sure to include a proper namespace configuration when
- supplying custom configuration.
- '';
- };
-
- qemuOvmf = mkOption {
- type = types.bool;
- default = true;
- description = ''
- Allows libvirtd to take advantage of OVMF when creating new
- QEMU VMs with UEFI boot.
- '';
- };
-
extraOptions = mkOption {
type = types.listOf types.str;
default = [ ];
@@ -118,7 +192,7 @@ in {
};
onBoot = mkOption {
- type = types.enum ["start" "ignore" ];
+ type = types.enum [ "start" "ignore" ];
default = "start";
description = ''
Specifies the action to be done to / on the guests when the host boots.
@@ -130,7 +204,7 @@ in {
};
onShutdown = mkOption {
- type = types.enum ["shutdown" "suspend" ];
+ type = types.enum [ "shutdown" "suspend" ];
default = "suspend";
description = ''
When shutting down / restarting the host what method should
@@ -148,6 +222,13 @@ in {
'';
};
+ qemu = mkOption {
+ type = qemuModule;
+ default = { };
+ description = ''
+ QEMU related options.
+ '';
+ };
};
@@ -160,14 +241,20 @@ in {
assertion = config.security.polkit.enable;
message = "The libvirtd module currently requires Polkit to be enabled ('security.polkit.enable = true').";
}
+ {
+ assertion = builtins.elem "fd" cfg.qemu.ovmf.package.outputs;
+ message = "The option 'virtualisation.libvirtd.qemuOvmfPackage' needs a package that has an 'fd' output.";
+ }
];
environment = {
# this file is expected in /etc/qemu and not sysconfdir (/var/lib)
- etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
- "allow ${e}") cfg.allowedBridges;
- systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemuPackage ];
- etc.ethertypes.source = "${pkgs.ebtables}/etc/ethertypes";
+ etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n"
+ (e:
+ "allow ${e}")
+ cfg.allowedBridges;
+ systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemu.package ];
+ etc.ethertypes.source = "${pkgs.iptables}/etc/ethertypes";
};
boot.kernelModules = [ "tun" ];
@@ -208,17 +295,17 @@ in {
cp -f ${qemuConfigFile} /var/lib/${dirName}/qemu.conf
# stable (not GC'able as in /nix/store) paths for using in section of xml configs
- for emulator in ${cfg.package}/libexec/libvirt_lxc ${cfg.qemuPackage}/bin/qemu-kvm ${cfg.qemuPackage}/bin/qemu-system-*; do
+ for emulator in ${cfg.package}/libexec/libvirt_lxc ${cfg.qemu.package}/bin/qemu-kvm ${cfg.qemu.package}/bin/qemu-system-*; do
ln -s --force "$emulator" /run/${dirName}/nix-emulators/
done
for helper in libexec/qemu-bridge-helper bin/qemu-pr-helper; do
- ln -s --force ${cfg.qemuPackage}/$helper /run/${dirName}/nix-helpers/
+ ln -s --force ${cfg.qemu.package}/$helper /run/${dirName}/nix-helpers/
done
- ${optionalString cfg.qemuOvmf ''
- ln -s --force ${pkgs.OVMF.fd}/FV/${ovmfFilePrefix}_CODE.fd /run/${dirName}/nix-ovmf/
- ln -s --force ${pkgs.OVMF.fd}/FV/${ovmfFilePrefix}_VARS.fd /run/${dirName}/nix-ovmf/
+ ${optionalString cfg.qemu.ovmf.enable ''
+ ln -s --force ${cfg.qemu.ovmf.package.fd}/FV/${ovmfFilePrefix}_CODE.fd /run/${dirName}/nix-ovmf/
+ ln -s --force ${cfg.qemu.ovmf.package.fd}/FV/${ovmfFilePrefix}_VARS.fd /run/${dirName}/nix-ovmf/
''}
'';
@@ -234,15 +321,20 @@ in {
systemd.services.libvirtd = {
requires = [ "libvirtd-config.service" ];
after = [ "libvirtd-config.service" ]
- ++ optional vswitch.enable "ovs-vswitchd.service";
+ ++ optional vswitch.enable "ovs-vswitchd.service";
environment.LIBVIRTD_ARGS = escapeShellArgs (
- [ "--config" configFile
- "--timeout" "120" # from ${libvirt}/var/lib/sysconfig/libvirtd
- ] ++ cfg.extraOptions);
+ [
+ "--config"
+ configFile
+ "--timeout"
+ "120" # from ${libvirt}/var/lib/sysconfig/libvirtd
+ ] ++ cfg.extraOptions
+ );
- path = [ cfg.qemuPackage ] # libvirtd requires qemu-img to manage disk images
- ++ optional vswitch.enable vswitch.package;
+ path = [ cfg.qemu.package ] # libvirtd requires qemu-img to manage disk images
+ ++ optional vswitch.enable vswitch.package
+ ++ optional cfg.qemu.swtpm.enable cfg.qemu.swtpm.package;
serviceConfig = {
Type = "notify";
diff --git a/nixos/modules/virtualisation/lxc-container.nix b/nixos/modules/virtualisation/lxc-container.nix
index e47bd59dc016..9816cc2332fb 100644
--- a/nixos/modules/virtualisation/lxc-container.nix
+++ b/nixos/modules/virtualisation/lxc-container.nix
@@ -1,26 +1,174 @@
-{ lib, ... }:
+{ lib, config, pkgs, ... }:
with lib;
+let
+ templateSubmodule = { ... }: {
+ options = {
+ enable = mkEnableOption "this template";
+
+ target = mkOption {
+ description = "Path in the container";
+ type = types.path;
+ };
+ template = mkOption {
+ description = ".tpl file for rendering the target";
+ type = types.path;
+ };
+ when = mkOption {
+ description = "Events which trigger a rewrite (create, copy)";
+ type = types.listOf (types.str);
+ };
+ properties = mkOption {
+ description = "Additional properties";
+ type = types.attrs;
+ default = {};
+ };
+ };
+ };
+
+ toYAML = name: data: pkgs.writeText name (generators.toYAML {} data);
+
+ cfg = config.virtualisation.lxc;
+ templates = if cfg.templates != {} then let
+ list = mapAttrsToList (name: value: { inherit name; } // value)
+ (filterAttrs (name: value: value.enable) cfg.templates);
+ in
+ {
+ files = map (tpl: {
+ source = tpl.template;
+ target = "/templates/${tpl.name}.tpl";
+ }) list;
+ properties = listToAttrs (map (tpl: nameValuePair tpl.target {
+ when = tpl.when;
+ template = "${tpl.name}.tpl";
+ properties = tpl.properties;
+ }) list);
+ }
+ else { files = []; properties = {}; };
+
+in
{
imports = [
- ../profiles/docker-container.nix # FIXME, shouldn't include something from profiles/
+ ../installer/cd-dvd/channel.nix
+ ../profiles/minimal.nix
+ ../profiles/clone-config.nix
];
- # Allow the user to login as root without password.
- users.users.root.initialHashedPassword = mkOverride 150 "";
+ options = {
+ virtualisation.lxc = {
+ templates = mkOption {
+ description = "Templates for LXD";
+ type = types.attrsOf (types.submodule (templateSubmodule));
+ default = {};
+ example = literalExpression ''
+ {
+ # create /etc/hostname on container creation
+ "hostname" = {
+ enable = true;
+ target = "/etc/hostname";
+ template = builtins.writeFile "hostname.tpl" "{{ container.name }}";
+ when = [ "create" ];
+ };
+ # create /etc/nixos/hostname.nix with a configuration for keeping the hostname applied
+ "hostname-nix" = {
+ enable = true;
+ target = "/etc/nixos/hostname.nix";
+ template = builtins.writeFile "hostname-nix.tpl" "{ ... }: { networking.hostName = "{{ container.name }}"; }";
+ # copy keeps the file updated when the container is changed
+ when = [ "create" "copy" ];
+ };
+ # copy allow the user to specify a custom configuration.nix
+ "configuration-nix" = {
+ enable = true;
+ target = "/etc/nixos/configuration.nix";
+ template = builtins.writeFile "configuration-nix" "{{ config_get(\"user.user-data\", properties.default) }}";
+ when = [ "create" ];
+ };
+ };
+ '';
+ };
+ };
+ };
- # Some more help text.
- services.getty.helpLine =
- ''
+ config = {
+ boot.isContainer = true;
+ boot.postBootCommands =
+ ''
+ # After booting, register the contents of the Nix store in the Nix
+ # database.
+ if [ -f /nix-path-registration ]; then
+ ${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration &&
+ rm /nix-path-registration
+ fi
- Log in as "root" with an empty password.
+ # nixos-rebuild also requires a "system" profile
+ ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
+ '';
+
+ system.build.metadata = pkgs.callPackage ../../lib/make-system-tarball.nix {
+ contents = [
+ {
+ source = toYAML "metadata.yaml" {
+ architecture = builtins.elemAt (builtins.match "^([a-z0-9_]+).+" (toString pkgs.system)) 0;
+ creation_date = 1;
+ properties = {
+ description = "NixOS ${config.system.nixos.codeName} ${config.system.nixos.label} ${pkgs.system}";
+ os = "nixos";
+ release = "${config.system.nixos.codeName}";
+ };
+ templates = templates.properties;
+ };
+ target = "/metadata.yaml";
+ }
+ ] ++ templates.files;
+ };
+
+ # TODO: build rootfs as squashfs for faster unpack
+ system.build.tarball = pkgs.callPackage ../../lib/make-system-tarball.nix {
+ extraArgs = "--owner=0";
+
+ storeContents = [
+ {
+ object = config.system.build.toplevel;
+ symlink = "none";
+ }
+ ];
+
+ contents = [
+ {
+ source = config.system.build.toplevel + "/init";
+ target = "/sbin/init";
+ }
+ ];
+
+ extraCommands = "mkdir -p proc sys dev";
+ };
+
+ # Add the overrides from lxd distrobuilder
+ systemd.extraConfig = ''
+ [Service]
+ ProtectProc=default
+ ProtectControlGroups=no
+ ProtectKernelTunables=no
'';
- # Containers should be light-weight, so start sshd on demand.
- services.openssh.enable = mkDefault true;
- services.openssh.startWhenNeeded = mkDefault true;
+ # Allow the user to login as root without password.
+ users.users.root.initialHashedPassword = mkOverride 150 "";
- # Allow ssh connections
- networking.firewall.allowedTCPPorts = [ 22 ];
+ system.activationScripts.installInitScript = mkForce ''
+ ln -fs $systemConfig/init /sbin/init
+ '';
+
+ # Some more help text.
+ services.getty.helpLine =
+ ''
+
+ Log in as "root" with an empty password.
+ '';
+
+ # Containers should be light-weight, so start sshd on demand.
+ services.openssh.enable = mkDefault true;
+ services.openssh.startWhenNeeded = mkDefault true;
+ };
}
diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix
index 6732e244369f..18451b147ff5 100644
--- a/nixos/modules/virtualisation/lxd.nix
+++ b/nixos/modules/virtualisation/lxd.nix
@@ -34,8 +34,8 @@ in {
package = mkOption {
type = types.package;
- default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
- defaultText = "pkgs.lxd";
+ default = pkgs.lxd;
+ defaultText = literalExpression "pkgs.lxd";
description = ''
The LXD package to use.
'';
@@ -44,7 +44,7 @@ in {
lxcPackage = mkOption {
type = types.package;
default = pkgs.lxc;
- defaultText = "pkgs.lxc";
+ defaultText = literalExpression "pkgs.lxc";
description = ''
The LXC package to use with LXD (required for AppArmor profiles).
'';
@@ -53,7 +53,7 @@ in {
zfsSupport = mkOption {
type = types.bool;
default = config.boot.zfs.enabled;
- defaultText = "config.boot.zfs.enabled";
+ defaultText = literalExpression "config.boot.zfs.enabled";
description = ''
Enables lxd to use zfs as a storage for containers.
diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix
index f3f318412df1..279c96567353 100644
--- a/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixos/modules/virtualisation/nixos-containers.nix
@@ -530,7 +530,7 @@ in
nixpkgs = mkOption {
type = types.path;
default = pkgs.path;
- defaultText = "pkgs.path";
+ defaultText = literalExpression "pkgs.path";
description = ''
A path to the nixpkgs that provide the modules, pkgs and lib for evaluating the container.
@@ -636,7 +636,7 @@ in
bindMounts = mkOption {
type = with types; attrsOf (submodule bindMountOpts);
default = {};
- example = literalExample ''
+ example = literalExpression ''
{ "/home" = { hostPath = "/home/alice";
isReadOnly = false; };
}
@@ -707,7 +707,7 @@ in
}));
default = {};
- example = literalExample
+ example = literalExpression
''
{ webserver =
{ path = "/nix/var/nix/profiles/webserver";
diff --git a/nixos/modules/virtualisation/oci-containers.nix b/nixos/modules/virtualisation/oci-containers.nix
index a4a92f22506c..24573bba4800 100644
--- a/nixos/modules/virtualisation/oci-containers.nix
+++ b/nixos/modules/virtualisation/oci-containers.nix
@@ -28,7 +28,7 @@ let
You still need to set the image attribute, as it
will be used as the image name for docker to start a container.
'';
- example = literalExample "pkgs.dockerTools.buildDockerImage {...};";
+ example = literalExpression "pkgs.dockerTools.buildDockerImage {...};";
};
login = {
@@ -59,7 +59,7 @@ let
type = with types; listOf str;
default = [];
description = "Commandline arguments to pass to the image's entrypoint.";
- example = literalExample ''
+ example = literalExpression ''
["--port=9000"]
'';
};
@@ -75,7 +75,7 @@ let
type = with types; attrsOf str;
default = {};
description = "Environment variables to set for this container.";
- example = literalExample ''
+ example = literalExpression ''
{
DATABASE_HOST = "db.example.com";
DATABASE_PORT = "3306";
@@ -87,7 +87,7 @@ let
type = with types; listOf path;
default = [];
description = "Environment files for this container.";
- example = literalExample ''
+ example = literalExpression ''
[
/path/to/.env
/path/to/.env.secret
@@ -160,7 +160,7 @@ let
Docker engine documentation for full details.
'';
- example = literalExample ''
+ example = literalExpression ''
[
"8080:9000"
]
@@ -191,7 +191,7 @@ let
docker engine documentation for details.
'';
- example = literalExample ''
+ example = literalExpression ''
[
"volume_name:/path/inside/container"
"/path/on/host:/path/inside/container"
@@ -214,7 +214,7 @@ let
Use the same name as the attribute under virtualisation.oci-containers.containers.
'';
- example = literalExample ''
+ example = literalExpression ''
virtualisation.oci-containers.containers = {
node1 = {};
node2 = {
@@ -228,7 +228,7 @@ let
type = with types; listOf str;
default = [];
description = "Extra options for ${defaultBackend} run.";
- example = literalExample ''
+ example = literalExpression ''
["--network=host"]
'';
};
diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix
index ccf32641df62..325f6f5b43f4 100644
--- a/nixos/modules/virtualisation/openvswitch.nix
+++ b/nixos/modules/virtualisation/openvswitch.nix
@@ -31,7 +31,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.openvswitch;
- defaultText = "pkgs.openvswitch";
+ defaultText = literalExpression "pkgs.openvswitch";
description = ''
Open vSwitch package to use.
'';
diff --git a/nixos/modules/virtualisation/parallels-guest.nix b/nixos/modules/virtualisation/parallels-guest.nix
index 55605b388b7c..d950cecff6f0 100644
--- a/nixos/modules/virtualisation/parallels-guest.nix
+++ b/nixos/modules/virtualisation/parallels-guest.nix
@@ -34,8 +34,7 @@ in
package = mkOption {
type = types.nullOr types.package;
default = config.boot.kernelPackages.prl-tools;
- defaultText = "config.boot.kernelPackages.prl-tools";
- example = literalExample "config.boot.kernelPackages.prl-tools";
+ defaultText = literalExpression "config.boot.kernelPackages.prl-tools";
description = ''
Defines which package to use for prl-tools. Override to change the version.
'';
diff --git a/nixos/modules/virtualisation/podman.nix b/nixos/modules/virtualisation/podman.nix
index 893afee4c32d..385475c84a1a 100644
--- a/nixos/modules/virtualisation/podman.nix
+++ b/nixos/modules/virtualisation/podman.nix
@@ -95,7 +95,7 @@ in
extraPackages = mkOption {
type = with types; listOf package;
default = [ ];
- example = lib.literalExample ''
+ example = lib.literalExpression ''
[
pkgs.gvisor
]
diff --git a/nixos/modules/virtualisation/proxmox-image.nix b/nixos/modules/virtualisation/proxmox-image.nix
new file mode 100644
index 000000000000..c537d5aed447
--- /dev/null
+++ b/nixos/modules/virtualisation/proxmox-image.nix
@@ -0,0 +1,169 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+{
+ options.proxmox = {
+ qemuConf = {
+ # essential configs
+ boot = mkOption {
+ type = types.str;
+ default = "";
+ example = "order=scsi0;net0";
+ description = ''
+ Default boot device. PVE will try all devices in its default order if this value is empty.
+ '';
+ };
+ scsihw = mkOption {
+ type = types.str;
+ default = "virtio-scsi-pci";
+ example = "lsi";
+ description = ''
+ SCSI controller type. Must be one of the supported values given in
+
+ '';
+ };
+ virtio0 = mkOption {
+ type = types.str;
+ default = "local-lvm:vm-9999-disk-0";
+ example = "ceph:vm-123-disk-0";
+ description = ''
+ Configuration for the default virtio disk. It can be used as a cue for PVE to autodetect the target sotrage.
+ This parameter is required by PVE even if it isn't used.
+ '';
+ };
+ ostype = mkOption {
+ type = types.str;
+ default = "l26";
+ description = ''
+ Guest OS type
+ '';
+ };
+ cores = mkOption {
+ type = types.ints.positive;
+ default = 1;
+ description = ''
+ Guest core count
+ '';
+ };
+ memory = mkOption {
+ type = types.ints.positive;
+ default = 1024;
+ description = ''
+ Guest memory in MB
+ '';
+ };
+
+ # optional configs
+ name = mkOption {
+ type = types.str;
+ default = "nixos-${config.system.nixos.label}";
+ description = ''
+ VM name
+ '';
+ };
+ net0 = mkOption {
+ type = types.commas;
+ default = "virtio=00:00:00:00:00:00,bridge=vmbr0,firewall=1";
+ description = ''
+ Configuration for the default interface. When restoring from VMA, check the
+ "unique" box to ensure device mac is randomized.
+ '';
+ };
+ serial0 = mkOption {
+ type = types.str;
+ default = "socket";
+ example = "/dev/ttyS0";
+ description = ''
+ Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0),
+ or create a unix socket on the host side (use qm terminal to open a terminal connection).
+ '';
+ };
+ agent = mkOption {
+ type = types.bool;
+ apply = x: if x then "1" else "0";
+ default = true;
+ description = ''
+ Expect guest to have qemu agent running
+ '';
+ };
+ };
+ qemuExtraConf = mkOption {
+ type = with types; attrsOf (oneOf [ str int ]);
+ default = {};
+ example = literalExpression ''{
+ cpu = "host";
+ onboot = 1;
+ }'';
+ description = ''
+ Additional options appended to qemu-server.conf
+ '';
+ };
+ filenameSuffix = mkOption {
+ type = types.str;
+ default = config.proxmox.qemuConf.name;
+ example = "999-nixos_template";
+ description = ''
+ Filename of the image will be vzdump-qemu-''${filenameSuffix}.vma.zstd.
+ This will also determine the default name of the VM on restoring the VMA.
+ Start this value with a number if you want the VMA to be detected as a backup of
+ any specific VMID.
+ '';
+ };
+ };
+
+ config = let
+ cfg = config.proxmox;
+ cfgLine = name: value: ''
+ ${name}: ${builtins.toString value}
+ '';
+ cfgFile = fileName: properties: pkgs.writeTextDir fileName ''
+ # generated by NixOS
+ ${lib.concatStrings (lib.mapAttrsToList cfgLine properties)}
+ #qmdump#map:virtio0:drive-virtio0:local-lvm:raw:
+ '';
+ in {
+ system.build.VMA = import ../../lib/make-disk-image.nix {
+ name = "proxmox-${cfg.filenameSuffix}";
+ postVM = let
+ # Build qemu with PVE's patch that adds support for the VMA format
+ vma = pkgs.qemu_kvm.overrideAttrs ( super: {
+ patches = let
+ rev = "cc707c362ea5c8d832aac270d1ffa7ac66a8908f";
+ path = "debian/patches/pve/0025-PVE-Backup-add-vma-backup-format-code.patch";
+ vma-patch = pkgs.fetchpatch {
+ url = "https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;hb=${rev};f=${path}";
+ sha256 = "1z467xnmfmry3pjy7p34psd5xdil9x0apnbvfz8qbj0bf9fgc8zf";
+ };
+ in super.patches ++ [ vma-patch ];
+ buildInputs = super.buildInputs ++ [ pkgs.libuuid ];
+ });
+ in
+ ''
+ ${vma}/bin/vma create "vzdump-qemu-${cfg.filenameSuffix}.vma" \
+ -c ${cfgFile "qemu-server.conf" (cfg.qemuConf // cfg.qemuExtraConf)}/qemu-server.conf drive-virtio0=$diskImage
+ rm $diskImage
+ ${pkgs.zstd}/bin/zstd "vzdump-qemu-${cfg.filenameSuffix}.vma"
+ mv "vzdump-qemu-${cfg.filenameSuffix}.vma.zst" $out/
+ '';
+ format = "raw";
+ inherit config lib pkgs;
+ };
+
+ boot = {
+ growPartition = true;
+ kernelParams = [ "console=ttyS0" ];
+ loader.grub.device = lib.mkDefault "/dev/vda";
+ loader.timeout = 0;
+ initrd.availableKernelModules = [ "uas" "virtio_blk" "virtio_pci" ];
+ };
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/nixos";
+ autoResize = true;
+ fsType = "ext4";
+ };
+
+ services.qemuGuest.enable = lib.mkDefault true;
+ };
+}
diff --git a/nixos/modules/virtualisation/qemu-guest-agent.nix b/nixos/modules/virtualisation/qemu-guest-agent.nix
index 3824d0c168f7..37a93a29976b 100644
--- a/nixos/modules/virtualisation/qemu-guest-agent.nix
+++ b/nixos/modules/virtualisation/qemu-guest-agent.nix
@@ -15,6 +15,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.qemu.ga;
+ defaultText = literalExpression "pkgs.qemu.ga";
description = "The QEMU guest agent package.";
};
};
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index b51c29f83d6d..6ce4461babc7 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -10,10 +10,10 @@
{ config, lib, pkgs, options, ... }:
with lib;
-with import ../../lib/qemu-flags.nix { inherit pkgs; };
let
+ qemu-common = import ../../lib/qemu-common.nix { inherit lib pkgs; };
cfg = config.virtualisation;
@@ -75,7 +75,7 @@ let
in
"-drive ${driveOpts} ${device}";
- drivesCmdLine = drives: concatStringsSep " " (imap1 driveCmdline drives);
+ drivesCmdLine = drives: concatStringsSep "\\\n " (imap1 driveCmdline drives);
# Creates a device name from a 1-based a numerical index, e.g.
@@ -108,39 +108,50 @@ let
''
#! ${pkgs.runtimeShell}
- NIX_DISK_IMAGE=$(readlink -f ''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}})
+ set -e
+
+ NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}}")
if ! test -e "$NIX_DISK_IMAGE"; then
${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \
- ${toString config.virtualisation.diskSize}M || exit 1
+ ${toString config.virtualisation.diskSize}M
fi
# Create a directory for storing temporary data of the running VM.
- if [ -z "$TMPDIR" -o -z "$USE_TMPDIR" ]; then
+ if [ -z "$TMPDIR" ] || [ -z "$USE_TMPDIR" ]; then
TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi
- # Create a directory for exchanging data with the VM.
- mkdir -p $TMPDIR/xchg
+ ${lib.optionalString cfg.useNixStoreImage
+ ''
+ # Create a writable copy/snapshot of the store image.
+ ${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${storeImage}/nixos.qcow2 "$TMPDIR"/store.img
+ ''}
- ${if cfg.useBootLoader then ''
+ # Create a directory for exchanging data with the VM.
+ mkdir -p "$TMPDIR/xchg"
+
+ ${lib.optionalString cfg.useBootLoader
+ ''
# Create a writable copy/snapshot of the boot disk.
# A writable boot disk can be booted from automatically.
- ${qemu}/bin/qemu-img create -f qcow2 -b ${bootDisk}/disk.img $TMPDIR/disk.img || exit 1
+ ${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${bootDisk}/disk.img "$TMPDIR/disk.img"
- NIX_EFI_VARS=$(readlink -f ''${NIX_EFI_VARS:-${cfg.efiVars}})
+ NIX_EFI_VARS=$(readlink -f "''${NIX_EFI_VARS:-${cfg.efiVars}}")
- ${if cfg.useEFIBoot then ''
+ ${lib.optionalString cfg.useEFIBoot
+ ''
# VM needs writable EFI vars
if ! test -e "$NIX_EFI_VARS"; then
- cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS" || exit 1
- chmod 0644 "$NIX_EFI_VARS" || exit 1
+ cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS"
+ chmod 0644 "$NIX_EFI_VARS"
fi
- '' else ""}
- '' else ""}
+ ''}
+ ''}
- cd $TMPDIR
- idx=0
+ cd "$TMPDIR"
+
+ ${lib.optionalString (cfg.emptyDiskImages != []) "idx=0"}
${flip concatMapStrings cfg.emptyDiskImages (size: ''
if ! test -e "empty$idx.qcow2"; then
${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
@@ -149,23 +160,24 @@ let
'')}
# Start QEMU.
- exec ${qemuBinary qemu} \
+ exec ${qemu-common.qemuBinary qemu} \
-name ${config.system.name} \
-m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \
-device virtio-rng-pci \
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
- -virtfs local,path=/nix/store,security_model=none,mount_tag=store \
- -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
- -virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
+ ${concatStringsSep " \\\n "
+ (mapAttrsToList
+ (tag: share: "-virtfs local,path=${share.source},security_model=none,mount_tag=${tag}")
+ config.virtualisation.sharedDirectories)} \
${drivesCmdLine config.virtualisation.qemu.drives} \
- ${toString config.virtualisation.qemu.options} \
+ ${concatStringsSep " \\\n " config.virtualisation.qemu.options} \
$QEMU_OPTS \
"$@"
'';
- regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.pathsInNixDB; };
+ regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.additionalPaths; };
# Generate a hard disk image containing a /boot partition and GRUB
@@ -257,11 +269,24 @@ let
'' # */
);
+ storeImage = import ../../lib/make-disk-image.nix {
+ inherit pkgs config lib;
+ additionalPaths = [ regInfo ];
+ format = "qcow2";
+ onlyNixStore = true;
+ partitionTableType = "none";
+ installBootLoader = false;
+ diskSize = "auto";
+ additionalSpace = "0M";
+ copyChannel = false;
+ };
+
in
{
imports = [
../profiles/qemu-guest.nix
+ (mkRenamedOptionModule [ "virtualisation" "pathsInNixDB" ] [ "virtualisation" "additionalPaths" ])
];
options = {
@@ -270,20 +295,21 @@ in
virtualisation.memorySize =
mkOption {
+ type = types.ints.positive;
default = 384;
description =
''
- Memory size (M) of virtual machine.
+ The memory size in megabytes of the virtual machine.
'';
};
virtualisation.msize =
mkOption {
- default = null;
- type = types.nullOr types.ints.unsigned;
+ type = types.ints.positive;
+ default = 16384;
description =
''
- msize (maximum packet size) option passed to 9p file systems, in
+ The msize (maximum packet size) option passed to 9p file systems, in
bytes. Increasing this should increase performance significantly,
at the cost of higher RAM usage.
'';
@@ -291,15 +317,17 @@ in
virtualisation.diskSize =
mkOption {
- default = 512;
+ type = types.nullOr types.ints.positive;
+ default = 1024;
description =
''
- Disk size (M) of virtual machine.
+ The disk size in megabytes of the virtual machine.
'';
};
virtualisation.diskImage =
mkOption {
+ type = types.str;
default = "./${config.system.name}.qcow2";
description =
''
@@ -311,7 +339,7 @@ in
virtualisation.bootDevice =
mkOption {
- type = types.str;
+ type = types.path;
example = "/dev/vda";
description =
''
@@ -321,8 +349,8 @@ in
virtualisation.emptyDiskImages =
mkOption {
+ type = types.listOf types.ints.positive;
default = [];
- type = types.listOf types.int;
description =
''
Additional disk images to provide to the VM. The value is
@@ -333,6 +361,7 @@ in
virtualisation.graphics =
mkOption {
+ type = types.bool;
default = true;
description =
''
@@ -342,10 +371,20 @@ in
'';
};
+ virtualisation.resolution =
+ mkOption {
+ type = options.services.xserver.resolutions.type.nestedTypes.elemType;
+ default = { x = 1024; y = 768; };
+ description =
+ ''
+ The resolution of the virtual machine display.
+ '';
+ };
+
virtualisation.cores =
mkOption {
+ type = types.ints.positive;
default = 1;
- type = types.int;
description =
''
Specify the number of cores the guest is permitted to use.
@@ -354,21 +393,123 @@ in
'';
};
- virtualisation.pathsInNixDB =
+ virtualisation.sharedDirectories =
mkOption {
- default = [];
+ 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 =
''
- The list of paths whose closure is registered in the Nix
- database in the VM. All other paths in the host Nix store
- appear in the guest Nix store as well, but are considered
- garbage (because they are not registered in the Nix
- database in the guest).
+ 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.additionalPaths =
+ mkOption {
+ type = types.listOf types.path;
+ default = [];
+ description =
+ ''
+ A list of paths whose closure should be made available to
+ the VM.
+
+ When 9p is used, the closure is registered in the Nix
+ database in the VM. All other paths in the host Nix store
+ appear in the guest Nix store as well, but are considered
+ garbage (because they are not registered in the Nix
+ database of the guest).
+
+ When is
+ set, the closure is copied to the Nix store image.
+ '';
+ };
+
+ 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:
+
+ - "host" means traffic from the host ports
+ is forwarded to the given guest port.
+
+ - "guest" 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.literalExpression
+ ''
+ [ # 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.
+
+
+ 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.
+
+
+ Currently QEMU supports only IPv4 forwarding.
+ '';
+ };
+
virtualisation.vlans =
mkOption {
+ type = types.listOf types.ints.unsigned;
default = [ 1 ];
example = [ 1 2 ];
description =
@@ -386,6 +527,7 @@ in
virtualisation.writableStore =
mkOption {
+ type = types.bool;
default = true; # FIXME
description =
''
@@ -397,6 +539,7 @@ in
virtualisation.writableStoreUseTmpfs =
mkOption {
+ type = types.bool;
default = true;
description =
''
@@ -407,6 +550,7 @@ in
networking.primaryIPAddress =
mkOption {
+ type = types.str;
default = "";
internal = true;
description = "Primary IP address used in /etc/hosts.";
@@ -416,14 +560,14 @@ in
package =
mkOption {
type = types.package;
- default = pkgs.qemu;
+ default = pkgs.qemu_kvm;
example = "pkgs.qemu_test";
description = "QEMU package to use.";
};
options =
mkOption {
- type = types.listOf types.unspecified;
+ type = types.listOf types.str;
default = [];
example = [ "-vga std" ];
description = "Options passed to QEMU.";
@@ -432,7 +576,7 @@ in
consoles = mkOption {
type = types.listOf types.str;
default = let
- consoles = [ "${qemuSerialDevice},115200n8" "tty0" ];
+ consoles = [ "${qemu-common.qemuSerialDevice},115200n8" "tty0" ];
in if cfg.graphics then consoles else reverseList consoles;
example = [ "console=tty1" ];
description = ''
@@ -448,17 +592,18 @@ in
networkingOptions =
mkOption {
- default = [
- "-net nic,netdev=user.0,model=virtio"
- "-netdev user,id=user.0\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
- ];
type = types.listOf types.str;
+ default = [ ];
+ example = [
+ "-net nic,netdev=user.0,model=virtio"
+ "-netdev user,id=user.0,\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
+ ];
description = ''
Networking-related command-line options that should be passed to qemu.
- The default is to use userspace networking (slirp).
+ The default is to use userspace networking (SLiRP).
If you override this option, be advised to keep
- ''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the default)
+ ''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the example)
to keep the default runtime behaviour.
'';
};
@@ -472,24 +617,39 @@ in
diskInterface =
mkOption {
+ type = types.enum [ "virtio" "scsi" "ide" ];
default = "virtio";
example = "scsi";
- type = types.enum [ "virtio" "scsi" "ide" ];
description = "The interface used for the virtual hard disks.";
};
guestAgent.enable =
mkOption {
- default = true;
type = types.bool;
+ default = true;
description = ''
Enable the Qemu guest agent.
'';
};
};
+ virtualisation.useNixStoreImage =
+ mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Build and use a disk image for the Nix store, instead of
+ accessing the host's one through 9p.
+
+ For applications which do a lot of reads from the store,
+ this can drastically improve performance, but at the cost of
+ disk space and image build time.
+ '';
+ };
+
virtualisation.useBootLoader =
mkOption {
+ type = types.bool;
default = false;
description =
''
@@ -504,6 +664,7 @@ in
virtualisation.useEFIBoot =
mkOption {
+ type = types.bool;
default = false;
description =
''
@@ -515,6 +676,7 @@ in
virtualisation.efiVars =
mkOption {
+ type = types.str;
default = "./${config.system.name}-efi-vars.fd";
description =
''
@@ -525,8 +687,8 @@ in
virtualisation.bios =
mkOption {
- default = null;
type = types.nullOr types.package;
+ default = null;
description =
''
An alternate BIOS (such as qboot) with which to start the VM.
@@ -539,6 +701,25 @@ in
config = {
+ assertions =
+ lib.concatLists (lib.flip lib.imap cfg.forwardPorts (i: rule:
+ [
+ { assertion = rule.from == "guest" -> rule.proto == "tcp";
+ message =
+ ''
+ Invalid virtualisation.forwardPorts..proto:
+ Guest forwarding supports only TCP connections.
+ '';
+ }
+ { assertion = rule.from == "guest" -> lib.hasPrefix "10.0.2." rule.guest.address;
+ message =
+ ''
+ Invalid virtualisation.forwardPorts..guest.address:
+ The address must be in the default VLAN (10.0.2.0/24).
+ '';
+ }
+ ]));
+
# Note [Disk layout with `useBootLoader`]
#
# If `useBootLoader = true`, we configure 2 drives:
@@ -560,6 +741,7 @@ in
then driveDeviceName 2 # second disk
else cfg.bootDevice
);
+ boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
boot.initrd.extraUtilsCommands =
''
@@ -597,7 +779,7 @@ in
'';
# After booting, register the closure of the paths in
- # `virtualisation.pathsInNixDB' in the Nix database in the VM. This
+ # `virtualisation.additionalPaths' in the Nix database in the VM. This
# allows Nix operations to work in the VM. The path to the
# registration file is passed through the kernel command line to
# allow `system.build.toplevel' to be included. (If we had a direct
@@ -616,7 +798,38 @@ in
virtualisation.bootDevice = mkDefault (driveDeviceName 1);
- virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
+ virtualisation.additionalPaths = [ config.system.build.toplevel ];
+
+ virtualisation.sharedDirectories = {
+ nix-store = mkIf (!cfg.useNixStoreImage) {
+ source = builtins.storeDir;
+ 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\""
+ ];
# FIXME: Consolidate this one day.
virtualisation.qemu.options = mkMerge [
@@ -646,16 +859,21 @@ in
virtualisation.qemu.drives = mkMerge [
[{
name = "root";
- file = "$NIX_DISK_IMAGE";
+ file = ''"$NIX_DISK_IMAGE"'';
driveExtraOpts.cache = "writeback";
driveExtraOpts.werror = "report";
}]
+ (mkIf cfg.useNixStoreImage [{
+ name = "nix-store";
+ file = ''"$TMPDIR"/store.img'';
+ deviceExtraOpts.bootindex = if cfg.useBootLoader then "3" else "2";
+ }])
(mkIf cfg.useBootLoader [
# The order of this list determines the device names, see
# note [Disk layout with `useBootLoader`].
{
name = "boot";
- file = "$TMPDIR/disk.img";
+ file = ''"$TMPDIR"/disk.img'';
driveExtraOpts.media = "disk";
deviceExtraOpts.bootindex = "1";
}
@@ -672,15 +890,26 @@ in
# configuration, where the regular value for the `fileSystems'
# attribute should be disregarded for the purpose of building a VM
# test image (since those filesystems don't exist in the VM).
- fileSystems = mkVMOverride (
- cfg.fileSystems //
- { "/".device = cfg.bootDevice;
- ${if cfg.writableStore then "/nix/.ro-store" else "/nix/store"} =
- { device = "store";
- fsType = "9p";
- options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
- neededForBoot = true;
- };
+ fileSystems =
+ let
+ mkSharedDir = tag: share:
+ {
+ name =
+ if tag == "nix-store" && cfg.writableStore
+ then "/nix/.ro-store"
+ else share.target;
+ value.device = tag;
+ value.fsType = "9p";
+ value.neededForBoot = true;
+ value.options =
+ [ "trans=virtio" "version=9p2000.L" "msize=${toString cfg.msize}" ]
+ ++ lib.optional (tag == "nix-store") "cache=loose";
+ };
+ in
+ mkVMOverride (cfg.fileSystems //
+ {
+ "/".device = cfg.bootDevice;
+
"/tmp" = mkIf config.boot.tmpOnTmpfs
{ device = "tmpfs";
fsType = "tmpfs";
@@ -688,32 +917,27 @@ in
# Sync with systemd's tmp.mount;
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
};
- "/tmp/xchg" =
- { device = "xchg";
- fsType = "9p";
- options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
- neededForBoot = true;
- };
- "/tmp/shared" =
- { device = "shared";
- fsType = "9p";
- options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
- neededForBoot = true;
- };
- } // optionalAttrs (cfg.writableStore && cfg.writableStoreUseTmpfs)
- { "/nix/.rw-store" =
+
+ "/nix/${if cfg.writableStore then ".ro-store" else "store"}" =
+ mkIf cfg.useNixStoreImage
+ { device = "${lookupDriveDeviceName "nix-store" cfg.qemu.drives}";
+ neededForBoot = true;
+ options = [ "ro" ];
+ };
+
+ "/nix/.rw-store" = mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs)
{ fsType = "tmpfs";
options = [ "mode=0755" ];
neededForBoot = true;
};
- } // optionalAttrs cfg.useBootLoader
- { "/boot" =
+
+ "/boot" = mkIf cfg.useBootLoader
# see note [Disk layout with `useBootLoader`]
{ device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk`
fsType = "vfat";
noCheck = true; # fsck fails on a r/o filesystem
};
- });
+ } // lib.mapAttrs' mkSharedDir cfg.sharedDirectories);
swapDevices = mkVMOverride [ ];
boot.initrd.luks.devices = mkVMOverride {};
@@ -734,7 +958,7 @@ in
# video driver the host uses.
services.xserver.videoDrivers = mkVMOverride [ "modesetting" ];
services.xserver.defaultDepth = mkVMOverride 0;
- services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ];
+ services.xserver.resolutions = mkVMOverride [ cfg.resolution ];
services.xserver.monitorSection =
''
# Set a higher refresh rate so that resolutions > 800x600 work.
diff --git a/nixos/modules/virtualisation/railcar.nix b/nixos/modules/virtualisation/railcar.nix
index b603effef6e0..e719e25650d3 100644
--- a/nixos/modules/virtualisation/railcar.nix
+++ b/nixos/modules/virtualisation/railcar.nix
@@ -41,7 +41,7 @@ let
description = "Source for the in-container mount";
};
options = mkOption {
- type = attrsOf (str);
+ type = listOf str;
default = [ "bind" ];
description = ''
Mount options of the filesystem to be used.
@@ -77,9 +77,7 @@ in
The defaults have been chosen for simple bindmounts, meaning
that you only need to provide the "source" parameter.
'';
- example = ''
- { "/data" = { source = "/var/lib/data"; }; }
- '';
+ example = { "/data" = { source = "/var/lib/data"; }; };
};
runType = mkOption {
@@ -112,6 +110,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.railcar;
+ defaultText = literalExpression "pkgs.railcar";
description = "Railcar package to use";
};
};
diff --git a/nixos/modules/virtualisation/virtualbox-host.nix b/nixos/modules/virtualisation/virtualbox-host.nix
index ddb0a7bda4f3..2acf54aae2ef 100644
--- a/nixos/modules/virtualisation/virtualbox-host.nix
+++ b/nixos/modules/virtualisation/virtualbox-host.nix
@@ -6,7 +6,7 @@ let
cfg = config.virtualisation.virtualbox.host;
virtualbox = cfg.package.override {
- inherit (cfg) enableHardening headless;
+ inherit (cfg) enableHardening headless enableWebService;
extensionPack = if cfg.enableExtensionPack then pkgs.virtualboxExtpack else null;
};
@@ -43,7 +43,7 @@ in
package = mkOption {
type = types.package;
default = pkgs.virtualbox;
- defaultText = "pkgs.virtualbox";
+ defaultText = literalExpression "pkgs.virtualbox";
description = ''
Which VirtualBox package to use.
'';
@@ -80,6 +80,14 @@ in
and when virtual machines are controlled only via SSH.
'';
};
+
+ enableWebService = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Build VirtualBox web service tool (vboxwebsrv) to allow managing VMs via other webpage frontend tools. Useful for headless servers.
+ '';
+ };
};
config = mkIf cfg.enable (mkMerge [{
diff --git a/nixos/modules/virtualisation/vmware-guest.nix b/nixos/modules/virtualisation/vmware-guest.nix
index 7b25ffc440f8..480a9703cef3 100644
--- a/nixos/modules/virtualisation/vmware-guest.nix
+++ b/nixos/modules/virtualisation/vmware-guest.nix
@@ -38,7 +38,7 @@ in
};
# Mount the vmblock for drag-and-drop and copy-and-paste.
- systemd.mounts = [
+ systemd.mounts = mkIf (!cfg.headless) [
{
description = "VMware vmblock fuse mount";
documentation = [ "https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/vmblock-fuse/design.txt" ];
@@ -52,8 +52,8 @@ in
}
];
- security.wrappers.vmware-user-suid-wrapper =
- { setuid = true;
+ security.wrappers.vmware-user-suid-wrapper = mkIf (!cfg.headless) {
+ setuid = true;
owner = "root";
group = "root";
source = "${open-vm-tools}/bin/vmware-user-suid-wrapper";
diff --git a/nixos/modules/virtualisation/waydroid.nix b/nixos/modules/virtualisation/waydroid.nix
new file mode 100644
index 000000000000..854ab056dbb8
--- /dev/null
+++ b/nixos/modules/virtualisation/waydroid.nix
@@ -0,0 +1,66 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.virtualisation.waydroid;
+ kernelPackages = config.boot.kernelPackages;
+ waydroidGbinderConf = pkgs.writeText "waydroid.conf" ''
+ [Protocol]
+ /dev/binder = aidl2
+ /dev/vndbinder = aidl2
+ /dev/hwbinder = hidl
+
+ [ServiceManager]
+ /dev/binder = aidl2
+ /dev/vndbinder = aidl2
+ /dev/hwbinder = hidl
+ '';
+
+in {
+
+ options.virtualisation.waydroid = {
+ enable = mkEnableOption "Waydroid";
+ };
+
+ config = mkIf cfg.enable {
+ assertions = singleton {
+ assertion = versionAtLeast (getVersion config.boot.kernelPackages.kernel) "4.18";
+ message = "Waydroid needs user namespace support to work properly";
+ };
+
+ system.requiredKernelConfig = with config.lib.kernelConfig; [
+ (isEnabled "ANDROID_BINDER_IPC")
+ (isEnabled "ANDROID_BINDERFS")
+ (isEnabled "ASHMEM")
+ ];
+
+ environment.etc."gbinder.d/waydroid.conf".source = waydroidGbinderConf;
+
+ environment.systemPackages = with pkgs; [ waydroid ];
+
+ networking.firewall.trustedInterfaces = [ "waydroid0" ];
+
+ virtualisation.lxc.enable = true;
+
+ systemd.services.waydroid-container = {
+ description = "Waydroid Container";
+
+ wantedBy = [ "multi-user.target" ];
+
+ path = with pkgs; [ getent iptables iproute kmod nftables util-linux which ];
+
+ unitConfig = {
+ ConditionPathExists = "/var/lib/waydroid/lxc/waydroid";
+ };
+
+ serviceConfig = {
+ ExecStart = "${pkgs.waydroid}/bin/waydroid container start";
+ ExecStop = "${pkgs.waydroid}/bin/waydroid container stop";
+ ExecStopPost = "${pkgs.waydroid}/bin/waydroid session stop";
+ };
+ };
+ };
+
+}
diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix
index fea43727f2fb..f8f4af4f6b85 100644
--- a/nixos/modules/virtualisation/xen-dom0.nix
+++ b/nixos/modules/virtualisation/xen-dom0.nix
@@ -35,8 +35,8 @@ in
virtualisation.xen.package = mkOption {
type = types.package;
- defaultText = "pkgs.xen";
- example = literalExample "pkgs.xen-light";
+ defaultText = literalExpression "pkgs.xen";
+ example = literalExpression "pkgs.xen-light";
description = ''
The package used for Xen binary.
'';
@@ -45,8 +45,8 @@ in
virtualisation.xen.package-qemu = mkOption {
type = types.package;
- defaultText = "pkgs.xen";
- example = literalExample "pkgs.qemu_xen-light";
+ defaultText = literalExpression "pkgs.xen";
+ example = literalExpression "pkgs.qemu_xen-light";
description = ''
The package with qemu binaries for dom0 qemu and xendomains.
'';
diff --git a/nixos/release.nix b/nixos/release.nix
index 264d82bacc8a..6b7564a9b972 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -251,6 +251,37 @@ in rec {
);
+ # An image that can be imported into lxd and used for container creation
+ lxdImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
+
+ with import ./.. { inherit system; };
+
+ hydraJob ((import lib/eval-config.nix {
+ inherit system;
+ modules =
+ [ configuration
+ versionModule
+ ./maintainers/scripts/lxd/lxd-image.nix
+ ];
+ }).config.system.build.tarball)
+
+ );
+
+ # Metadata for the lxd image
+ lxdMeta = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
+
+ with import ./.. { inherit system; };
+
+ hydraJob ((import lib/eval-config.nix {
+ inherit system;
+ modules =
+ [ configuration
+ versionModule
+ ./maintainers/scripts/lxd/lxd-image.nix
+ ];
+ }).config.system.build.metadata)
+
+ );
# Ensure that all packages used by the minimal NixOS config end up in the channel.
dummy = forAllSystems (system: pkgs.runCommand "dummy"
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index a74814158f1b..0ee91ebffbed 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -26,17 +26,14 @@ in
agda = handleTest ./agda.nix {};
airsonic = handleTest ./airsonic.nix {};
amazon-init-shell = handleTest ./amazon-init-shell.nix {};
- ammonite = handleTest ./ammonite.nix {};
apparmor = handleTest ./apparmor.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
- awscli = handleTest ./awscli.nix { };
babeld = handleTest ./babeld.nix {};
- bat = handleTest ./bat.nix {};
bazarr = handleTest ./bazarr.nix {};
- bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
+ bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
beanstalkd = handleTest ./beanstalkd.nix {};
bees = handleTest ./bees.nix {};
bind = handleTest ./bind.nix {};
@@ -97,6 +94,7 @@ in
cryptpad = handleTest ./cryptpad.nix {};
deluge = handleTest ./deluge.nix {};
dendrite = handleTest ./dendrite.nix {};
+ dex-oidc = handleTest ./dex-oidc.nix {};
dhparams = handleTest ./dhparams.nix {};
disable-installer-tools = handleTest ./disable-installer-tools.nix {};
discourse = handleTest ./discourse.nix {};
@@ -130,7 +128,6 @@ in
ferm = handleTest ./ferm.nix {};
firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; };
firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job
- firefox-esr-78 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-78; };
firefox-esr-91 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-91; };
firejail = handleTest ./firejail.nix {};
firewall = handleTest ./firewall.nix {};
@@ -164,6 +161,7 @@ in
grocy = handleTest ./grocy.nix {};
grub = handleTest ./grub.nix {};
gvisor = handleTest ./gvisor.nix {};
+ hadoop.all = handleTestOn [ "x86_64-linux" ] ./hadoop/hadoop.nix {};
hadoop.hdfs = handleTestOn [ "x86_64-linux" ] ./hadoop/hdfs.nix {};
hadoop.yarn = handleTestOn [ "x86_64-linux" ] ./hadoop/yarn.nix {};
handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {};
@@ -172,7 +170,9 @@ in
hedgedoc = handleTest ./hedgedoc.nix {};
herbstluftwm = handleTest ./herbstluftwm.nix {};
installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
+ invidious = handleTest ./invidious.nix {};
oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {};
+ odoo = handleTest ./odoo.nix {};
# 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but
# not on other platforms.
@@ -189,7 +189,7 @@ in
i3wm = handleTest ./i3wm.nix {};
icingaweb2 = handleTest ./icingaweb2.nix {};
iftop = handleTest ./iftop.nix {};
- ihatemoney = handleTest ./ihatemoney.nix {};
+ ihatemoney = handleTest ./ihatemoney {};
incron = handleTest ./incron.nix {};
influxdb = handleTest ./influxdb.nix {};
initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
@@ -205,6 +205,7 @@ in
jackett = handleTest ./jackett.nix {};
jellyfin = handleTest ./jellyfin.nix {};
jenkins = handleTest ./jenkins.nix {};
+ jibri = handleTest ./jibri.nix {};
jirafeau = handleTest ./jirafeau.nix {};
jitsi-meet = handleTest ./jitsi-meet.nix {};
k3s = handleTest ./k3s.nix {};
@@ -223,7 +224,6 @@ in
krb5 = discoverTests (import ./krb5 {});
ksm = handleTest ./ksm.nix {};
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
- latestKernel.hardened = handleTest ./hardened.nix { latestKernel = true; };
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
leaps = handleTest ./leaps.nix {};
libreddit = handleTest ./libreddit.nix {};
@@ -235,9 +235,10 @@ in
locate = handleTest ./locate.nix {};
login = handleTest ./login.nix {};
loki = handleTest ./loki.nix {};
- lsd = handleTest ./lsd.nix {};
lxd = handleTest ./lxd.nix {};
+ lxd-image = handleTest ./lxd-image.nix {};
lxd-nftables = handleTest ./lxd-nftables.nix {};
+ lxd-image-server = handleTest ./lxd-image-server.nix {};
#logstash = handleTest ./logstash.nix {};
lorri = handleTest ./lorri/default.nix {};
magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
@@ -312,6 +313,7 @@ in
nitter = handleTest ./nitter.nix {};
nix-serve = handleTest ./nix-ssh-serve.nix {};
nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
+ nixops = handleTest ./nixops/default.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
node-red = handleTest ./node-red.nix {};
nomad = handleTest ./nomad.nix {};
@@ -323,12 +325,14 @@ in
ombi = handleTest ./ombi.nix {};
openarena = handleTest ./openarena.nix {};
openldap = handleTest ./openldap.nix {};
+ openresty-lua = handleTest ./openresty-lua.nix {};
opensmtpd = handleTest ./opensmtpd.nix {};
opensmtpd-rspamd = handleTest ./opensmtpd-rspamd.nix {};
openssh = handleTest ./openssh.nix {};
openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
opentabletdriver = handleTest ./opentabletdriver.nix {};
+ owncast = handleTest ./owncast.nix {};
image-contents = handleTest ./image-contents.nix {};
orangefs = handleTest ./orangefs.nix {};
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
@@ -343,6 +347,7 @@ in
parsedmarc = handleTest ./parsedmarc {};
pdns-recursor = handleTest ./pdns-recursor.nix {};
peerflix = handleTest ./peerflix.nix {};
+ peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
pgjwt = handleTest ./pgjwt.nix {};
pgmanage = handleTest ./pgmanage.nix {};
php = handleTest ./php {};
@@ -350,6 +355,7 @@ in
php80 = handleTest ./php { php = pkgs.php80; };
pinnwand = handleTest ./pinnwand.nix {};
plasma5 = handleTest ./plasma5.nix {};
+ plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
plausible = handleTest ./plausible.nix {};
pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
plikd = handleTest ./plikd.nix {};
@@ -366,6 +372,7 @@ in
postgresql = handleTest ./postgresql.nix {};
postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
powerdns = handleTest ./powerdns.nix {};
+ power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
pppd = handleTest ./pppd.nix {};
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
printing = handleTest ./printing.nix {};
@@ -376,14 +383,17 @@ in
prosody = handleTest ./xmpp/prosody.nix {};
prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {};
proxy = handleTest ./proxy.nix {};
+ prowlarr = handleTest ./prowlarr.nix {};
pt2-clone = handleTest ./pt2-clone.nix {};
qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
quorum = handleTest ./quorum.nix {};
rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {};
+ rasdaemon = handleTest ./rasdaemon.nix {};
redis = handleTest ./redis.nix {};
redmine = handleTest ./redmine.nix {};
+ restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
restic = handleTest ./restic.nix {};
robustirc-bridge = handleTest ./robustirc-bridge.nix {};
roundcube = handleTest ./roundcube.nix {};
@@ -395,6 +405,7 @@ in
samba-wsdd = handleTest ./samba-wsdd.nix {};
sanoid = handleTest ./sanoid.nix {};
sddm = handleTest ./sddm.nix {};
+ seafile = handleTest ./seafile.nix {};
searx = handleTest ./searx.nix {};
service-runner = handleTest ./service-runner.nix {};
shadow = handleTest ./shadow.nix {};
@@ -412,7 +423,7 @@ in
solr = handleTest ./solr.nix {};
sonarr = handleTest ./sonarr.nix {};
spacecookie = handleTest ./spacecookie.nix {};
- spike = handleTest ./spike.nix {};
+ spark = handleTestOn ["x86_64-linux"] ./spark {};
sslh = handleTest ./sslh.nix {};
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
@@ -429,6 +440,7 @@ in
systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
systemd-boot = handleTest ./systemd-boot.nix {};
systemd-confinement = handleTest ./systemd-confinement.nix {};
+ systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
systemd-journal = handleTest ./systemd-journal.nix {};
systemd-networkd = handleTest ./systemd-networkd.nix {};
systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
@@ -445,8 +457,8 @@ in
tinc = handleTest ./tinc {};
tinydns = handleTest ./tinydns.nix {};
tor = handleTest ./tor.nix {};
- # traefik test relies on docker-containers
trac = handleTest ./trac.nix {};
+ # traefik test relies on docker-containers
traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {};
trafficserver = handleTest ./trafficserver.nix {};
transmission = handleTest ./transmission.nix {};
@@ -458,7 +470,6 @@ in
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
tuxguitar = handleTest ./tuxguitar.nix {};
ucarp = handleTest ./ucarp.nix {};
- ucg = handleTest ./ucg.nix {};
udisks2 = handleTest ./udisks2.nix {};
unbound = handleTest ./unbound.nix {};
unit-php = handleTest ./web-servers/unit-php.nix {};
@@ -478,7 +489,9 @@ in
wasabibackend = handleTest ./wasabibackend.nix {};
wiki-js = handleTest ./wiki-js.nix {};
wireguard = handleTest ./wireguard {};
+ without-nix = handleTest ./without-nix.nix {};
wmderland = handleTest ./wmderland.nix {};
+ wpa_supplicant = handleTest ./wpa_supplicant.nix {};
wordpress = handleTest ./wordpress.nix {};
xandikos = handleTest ./xandikos.nix {};
xautolock = handleTest ./xautolock.nix {};
@@ -489,7 +502,6 @@ in
xterm = handleTest ./xterm.nix {};
yabar = handleTest ./yabar.nix {};
yggdrasil = handleTest ./yggdrasil.nix {};
- yq = handleTest ./yq.nix {};
zfs = handleTest ./zfs.nix {};
zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
zoneminder = handleTest ./zoneminder.nix {};
diff --git a/nixos/tests/ammonite.nix b/nixos/tests/ammonite.nix
deleted file mode 100644
index 4b674f35e3cb..000000000000
--- a/nixos/tests/ammonite.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
- name = "ammonite";
- meta = with pkgs.lib.maintainers; {
- maintainers = [ nequissimus ];
- };
-
- nodes = {
- amm =
- { pkgs, ... }:
- {
- environment.systemPackages = [ (pkgs.ammonite.override { jre = pkgs.jre8; }) ];
- };
- };
-
- testScript = ''
- start_all()
-
- amm.succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42")
- '';
-})
diff --git a/nixos/tests/atop.nix b/nixos/tests/atop.nix
index 1f8b005041f0..f7a90346f3d7 100644
--- a/nixos/tests/atop.nix
+++ b/nixos/tests/atop.nix
@@ -105,8 +105,6 @@ let assertions = rec {
};
in
{
- name = "atop";
-
justThePackage = makeTest {
name = "atop-justThePackage";
machine = {
diff --git a/nixos/tests/awscli.nix b/nixos/tests/awscli.nix
deleted file mode 100644
index e6741fcf1412..000000000000
--- a/nixos/tests/awscli.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
- name = "awscli";
- meta = with pkgs.lib.maintainers; {
- maintainers = [ nequissimus ];
- };
-
- machine = { pkgs, ... }:
- {
- environment.systemPackages = [ pkgs.awscli ];
- };
-
- testScript =
- ''
- assert "${pkgs.python3Packages.botocore.version}" in machine.succeed("aws --version")
- assert "${pkgs.awscli.version}" in machine.succeed("aws --version")
- '';
-})
diff --git a/nixos/tests/bat.nix b/nixos/tests/bat.nix
deleted file mode 100644
index 0f548a590fb0..000000000000
--- a/nixos/tests/bat.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
- name = "bat";
- meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
- machine = { pkgs, ... }: { environment.systemPackages = [ pkgs.bat ]; };
-
- testScript = ''
- machine.succeed("echo 'Foobar\n\n\n42' > /tmp/foo")
- assert "Foobar" in machine.succeed("bat -p /tmp/foo")
- assert "42" in machine.succeed("bat -p /tmp/foo -r 4:4")
- '';
-})
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index ee7a582922ce..11420cba9dce 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -26,7 +26,7 @@ let
enable = true;
settings = {
dht-enabled = false;
- message-level = 3;
+ message-level = 2;
inherit download-dir;
};
};
diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix
index bdae6341ec91..9945a1dcd62f 100644
--- a/nixos/tests/boot.nix
+++ b/nixos/tests/boot.nix
@@ -4,10 +4,10 @@
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
-with import ../lib/qemu-flags.nix { inherit pkgs; };
with pkgs.lib;
let
+ qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
iso =
(import ../lib/eval-config.nix {
@@ -23,7 +23,7 @@ let
makeBootTest = name: extraConfig:
let
machineConfig = pythonDict ({
- qemuBinary = qemuBinary pkgs.qemu_test;
+ qemuBinary = qemu-common.qemuBinary pkgs.qemu_test;
qemuFlags = "-m 768";
} // extraConfig);
in
@@ -36,7 +36,7 @@ let
machine = create_machine(${machineConfig})
machine.start()
machine.wait_for_unit("multi-user.target")
- machine.succeed("nix verify -r --no-trust /run/current-system")
+ machine.succeed("nix store verify --no-trust -r --option experimental-features nix-command /run/current-system")
with subtest("Check whether the channel got installed correctly"):
machine.succeed("nix-instantiate --dry-run '' -A hello")
@@ -65,7 +65,7 @@ let
];
};
machineConfig = pythonDict ({
- qemuBinary = qemuBinary pkgs.qemu_test;
+ qemuBinary = qemu-common.qemuBinary pkgs.qemu_test;
qemuFlags = "-boot order=n -m 2000";
netBackendArgs = "tftp=${ipxeBootDir},bootfile=netboot.ipxe";
} // extraConfig);
diff --git a/nixos/tests/borgbackup.nix b/nixos/tests/borgbackup.nix
index fae1d2d07138..cbb28689209b 100644
--- a/nixos/tests/borgbackup.nix
+++ b/nixos/tests/borgbackup.nix
@@ -81,6 +81,24 @@ in {
environment.BORG_RSH = "ssh -oStrictHostKeyChecking=no -i /root/id_ed25519.appendOnly";
};
+ commandSuccess = {
+ dumpCommand = pkgs.writeScript "commandSuccess" ''
+ echo -n test
+ '';
+ repo = remoteRepo;
+ encryption.mode = "none";
+ startAt = [ ];
+ environment.BORG_RSH = "ssh -oStrictHostKeyChecking=no -i /root/id_ed25519";
+ };
+
+ commandFail = {
+ dumpCommand = "${pkgs.coreutils}/bin/false";
+ repo = remoteRepo;
+ encryption.mode = "none";
+ startAt = [ ];
+ environment.BORG_RSH = "ssh -oStrictHostKeyChecking=no -i /root/id_ed25519";
+ };
+
};
};
@@ -171,5 +189,20 @@ in {
client.fail("{} list borg\@server:wrong".format(borg))
# TODO: Make sure that data is not actually deleted
+
+ with subtest("commandSuccess"):
+ server.wait_for_unit("sshd.service")
+ client.wait_for_unit("network.target")
+ client.systemctl("start --wait borgbackup-job-commandSuccess")
+ client.fail("systemctl is-failed borgbackup-job-commandSuccess")
+ id = client.succeed("borg-job-commandSuccess list | tail -n1 | cut -d' ' -f1").strip()
+ client.succeed(f"borg-job-commandSuccess extract ::{id} stdin")
+ assert "test" == client.succeed("cat stdin")
+
+ with subtest("commandFail"):
+ server.wait_for_unit("sshd.service")
+ client.wait_for_unit("network.target")
+ client.systemctl("start --wait borgbackup-job-commandFail")
+ client.succeed("systemctl is-failed borgbackup-job-commandFail")
'';
})
diff --git a/nixos/tests/calibre-web.nix b/nixos/tests/calibre-web.nix
index 0af997317fcd..9832d5469787 100644
--- a/nixos/tests/calibre-web.nix
+++ b/nixos/tests/calibre-web.nix
@@ -11,10 +11,6 @@ import ./make-test-python.nix (
meta.maintainers = with pkgs.lib.maintainers; [ pborzenkov ];
nodes = {
- default = { ... }: {
- services.calibre-web.enable = true;
- };
-
customized = { pkgs, ... }: {
services.calibre-web = {
enable = true;
@@ -33,12 +29,6 @@ import ./make-test-python.nix (
testScript = ''
start_all()
- default.wait_for_unit("calibre-web.service")
- default.wait_for_open_port(${toString defaultPort})
- default.succeed(
- "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep 'Basic Configuration'"
- )
-
customized.succeed(
"mkdir /tmp/books && calibredb --library-path /tmp/books add -e --title test-book"
)
diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix
index ea9e19cefbc9..8965646bc5dc 100644
--- a/nixos/tests/chromium.nix
+++ b/nixos/tests/chromium.nix
@@ -80,9 +80,13 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
binary = pname
# Add optional CLI options:
options = []
+ major_version = "${versions.major (getVersion chromiumPkg.name)}"
+ if major_version > "95" and not pname.startswith("google-chrome"):
+ # Workaround to avoid a GPU crash:
+ options.append("--use-gl=swiftshader")
# Launch the process:
options.append("file://${startupHTML}")
- machine.succeed(ru(f'ulimit -c unlimited; {binary} {shlex.join(options)} & disown'))
+ machine.succeed(ru(f'ulimit -c unlimited; {binary} {shlex.join(options)} >&2 & disown'))
if binary.startswith("google-chrome"):
# Need to click away the first window:
machine.wait_for_text("Make Google Chrome the default browser")
@@ -211,7 +215,7 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
clipboard = machine.succeed(
ru(
- "echo void | ${pkgs.xclip}/bin/xclip -i"
+ "echo void | ${pkgs.xclip}/bin/xclip -i >&2"
)
)
machine.succeed(
diff --git a/nixos/tests/cifs-utils.nix b/nixos/tests/cifs-utils.nix
deleted file mode 100644
index 98587b10d941..000000000000
--- a/nixos/tests/cifs-utils.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
- name = "cifs-utils";
-
- machine = { pkgs, ... }: { environment.systemPackages = [ pkgs.cifs-utils ]; };
-
- testScript = ''
- machine.succeed("smbinfo -h")
- machine.succeed("smb2-quota -h")
- assert "${pkgs.cifs-utils.version}" in machine.succeed("cifs.upcall -v")
- assert "${pkgs.cifs-utils.version}" in machine.succeed("mount.cifs -V")
- '';
-})
diff --git a/nixos/tests/cntr.nix b/nixos/tests/cntr.nix
index 8cffd97459d0..668470756209 100644
--- a/nixos/tests/cntr.nix
+++ b/nixos/tests/cntr.nix
@@ -9,7 +9,7 @@ let
makeTest {
name = "cntr-${backend}";
- meta = { maintainers = with lib.maintainers; [ srk mic92 ]; };
+ meta = { maintainers = with lib.maintainers; [ sorki mic92 ]; };
nodes = {
${backend} = { pkgs, ... }: {
diff --git a/nixos/tests/containers-bridge.nix b/nixos/tests/containers-bridge.nix
index 12fa67c8b015..a1b0c9469d83 100644
--- a/nixos/tests/containers-bridge.nix
+++ b/nixos/tests/containers-bridge.nix
@@ -56,7 +56,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''
diff --git a/nixos/tests/containers-extra_veth.nix b/nixos/tests/containers-extra_veth.nix
index cbbb25258325..172409f56e89 100644
--- a/nixos/tests/containers-extra_veth.nix
+++ b/nixos/tests/containers-extra_veth.nix
@@ -45,7 +45,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =
diff --git a/nixos/tests/containers-imperative.nix b/nixos/tests/containers-imperative.nix
index 1dcccfc306a3..34103ef7586b 100644
--- a/nixos/tests/containers-imperative.nix
+++ b/nixos/tests/containers-imperative.nix
@@ -17,7 +17,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
virtualisation.memorySize = 1024;
# Make sure we always have all the required dependencies for creating a
# container available within the VM, because we don't have network access.
- virtualisation.pathsInNixDB = let
+ virtualisation.additionalPaths = let
emptyContainer = import ../lib/eval-config.nix {
inherit (config.nixpkgs.localSystem) system;
modules = lib.singleton {
@@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
with subtest("Stop a container early"):
machine.succeed(f"nixos-container stop {id1}")
- machine.succeed(f"nixos-container start {id1} &")
+ machine.succeed(f"nixos-container start {id1} >&2 &")
machine.wait_for_console_text("Stage 2")
machine.succeed(f"nixos-container stop {id1}")
machine.wait_for_console_text(f"Container {id1} exited successfully")
diff --git a/nixos/tests/containers-ip.nix b/nixos/tests/containers-ip.nix
index 5abea2dbad9f..8fc42dab6241 100644
--- a/nixos/tests/containers-ip.nix
+++ b/nixos/tests/containers-ip.nix
@@ -27,7 +27,7 @@ in import ./make-test-python.nix ({ pkgs, lib, ... }: {
containers.webserver4 = webserverFor "10.231.136.1" "10.231.136.2";
containers.webserver6 = webserverFor "fc00::2" "fc00::1";
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = { nodes, ... }: ''
diff --git a/nixos/tests/containers-portforward.nix b/nixos/tests/containers-portforward.nix
index 221a6f50efd1..e21f6cee76a9 100644
--- a/nixos/tests/containers-portforward.nix
+++ b/nixos/tests/containers-portforward.nix
@@ -29,7 +29,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =
diff --git a/nixos/tests/containers-tmpfs.nix b/nixos/tests/containers-tmpfs.nix
index fd9f9a252ca8..0185c2d91f23 100644
--- a/nixos/tests/containers-tmpfs.nix
+++ b/nixos/tests/containers-tmpfs.nix
@@ -26,7 +26,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
config = { };
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''
diff --git a/nixos/tests/croc.nix b/nixos/tests/croc.nix
index 75a8fc991d47..5d709eb3d1cb 100644
--- a/nixos/tests/croc.nix
+++ b/nixos/tests/croc.nix
@@ -38,7 +38,7 @@ in {
sender.execute("echo Hello World > testfile01.txt")
sender.execute("echo Hello Earth > testfile02.txt")
sender.execute(
- "croc --pass ${pass} --relay relay send --code topSecret testfile01.txt testfile02.txt &"
+ "croc --pass ${pass} --relay relay send --code topSecret testfile01.txt testfile02.txt >&2 &"
)
# receive the testfiles and check them
diff --git a/nixos/tests/custom-ca.nix b/nixos/tests/custom-ca.nix
index 26f29a3e68fe..4480519c7edc 100644
--- a/nixos/tests/custom-ca.nix
+++ b/nixos/tests/custom-ca.nix
@@ -82,7 +82,7 @@ in
# chromium-based browsers refuse to run as root
test-support.displayManager.auto.user = "alice";
# browsers may hang with the default memory
- virtualisation.memorySize = "500";
+ virtualisation.memorySize = 500;
networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
@@ -109,11 +109,9 @@ in
environment.systemPackages = with pkgs; [
xdotool
- # Firefox was disabled here, because we needed to disable p11-kit support in nss,
- # which is why it will not use the system certificate store for the time being.
- # firefox
+ firefox
chromium
- falkon
+ qutebrowser
midori
];
};
@@ -152,21 +150,19 @@ in
with subtest("Unknown CA is untrusted in curl"):
machine.fail("curl -fv https://bad.example.com")
- browsers = [
- # Firefox was disabled here, because we needed to disable p11-kit support in nss,
- # which is why it will not use the system certificate store for the time being.
- # "firefox",
- "chromium",
- "falkon",
- "midori"
- ]
- errors = ["Security Risk", "not private", "Certificate Error", "Security"]
+ browsers = {
+ "firefox": "Security Risk",
+ "chromium": "not private",
+ "qutebrowser -T": "Certificate error",
+ "midori": "Security"
+ }
machine.wait_for_x()
- for browser, error in zip(browsers, errors):
+ for command, error in browsers.items():
+ browser = command.split()[0]
with subtest("Good certificate is trusted in " + browser):
execute_as(
- "alice", f"env P11_KIT_DEBUG=trust {browser} https://good.example.com & >&2"
+ "alice", f"env P11_KIT_DEBUG=trust {command} https://good.example.com & >&2"
)
wait_for_window_as("alice", browser)
machine.wait_for_text("It works!")
@@ -174,7 +170,7 @@ in
execute_as("alice", "xdotool key ctrl+w") # close tab
with subtest("Unknown CA is untrusted in " + browser):
- execute_as("alice", f"{browser} https://bad.example.com & >&2")
+ execute_as("alice", f"{command} https://bad.example.com & >&2")
machine.wait_for_text(error)
machine.screenshot("bad" + browser)
machine.succeed("pkill " + browser)
diff --git a/nixos/tests/deluge.nix b/nixos/tests/deluge.nix
index f673ec2db5a7..33c57ce7c36c 100644
--- a/nixos/tests/deluge.nix
+++ b/nixos/tests/deluge.nix
@@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
nodes = {
- simple2 = {
+ simple = {
services.deluge = {
enable = true;
package = pkgs.deluge-2_x;
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
};
- declarative2 = {
+ declarative = {
services.deluge = {
enable = true;
package = pkgs.deluge-2_x;
@@ -45,27 +45,16 @@ import ./make-test-python.nix ({ pkgs, ...} : {
testScript = ''
start_all()
- simple1.wait_for_unit("deluged")
- simple2.wait_for_unit("deluged")
- simple1.wait_for_unit("delugeweb")
- simple2.wait_for_unit("delugeweb")
- simple1.wait_for_open_port("8112")
- simple2.wait_for_open_port("8112")
- declarative1.wait_for_unit("network.target")
- declarative2.wait_for_unit("network.target")
- declarative1.wait_until_succeeds("curl --fail http://simple1:8112")
- declarative2.wait_until_succeeds("curl --fail http://simple2:8112")
+ simple.wait_for_unit("deluged")
+ simple.wait_for_unit("delugeweb")
+ simple.wait_for_open_port("8112")
+ declarative.wait_for_unit("network.target")
+ declarative.wait_until_succeeds("curl --fail http://simple:8112")
- declarative1.wait_for_unit("deluged")
- declarative2.wait_for_unit("deluged")
- declarative1.wait_for_unit("delugeweb")
- declarative2.wait_for_unit("delugeweb")
- declarative1.wait_until_succeeds("curl --fail http://declarative1:3142")
- declarative2.wait_until_succeeds("curl --fail http://declarative2:3142")
- declarative1.succeed(
- "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'"
- )
- declarative2.succeed(
+ declarative.wait_for_unit("deluged")
+ declarative.wait_for_unit("delugeweb")
+ declarative.wait_until_succeeds("curl --fail http://declarative:3142")
+ declarative.succeed(
"deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'"
)
'';
diff --git a/nixos/tests/dex-oidc.nix b/nixos/tests/dex-oidc.nix
new file mode 100644
index 000000000000..37275a97ef0f
--- /dev/null
+++ b/nixos/tests/dex-oidc.nix
@@ -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=\\(.*\\)&.*/\\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}"
+ )
+ '';
+})
diff --git a/nixos/tests/discourse.nix b/nixos/tests/discourse.nix
index 7dd39085a007..cfac5f84a62f 100644
--- a/nixos/tests/discourse.nix
+++ b/nixos/tests/discourse.nix
@@ -28,6 +28,8 @@ import ./make-test-python.nix (
{ nodes, ... }:
{
virtualisation.memorySize = 2048;
+ virtualisation.cores = 4;
+ virtualisation.useNixStoreImage = true;
imports = [ common/user-account.nix ];
diff --git a/nixos/tests/doas.nix b/nixos/tests/doas.nix
index 5e9ce4b2c799..7f038b2bee29 100644
--- a/nixos/tests/doas.nix
+++ b/nixos/tests/doas.nix
@@ -85,6 +85,14 @@ import ./make-test-python.nix (
# ../../pkgs/tools/security/doas/0001-add-NixOS-specific-dirs-to-safe-PATH.patch
with subtest("recursive calls to doas from subprocesses should succeed"):
machine.succeed('doas -u test0 sh -c "doas -u test0 true"')
+
+ with subtest("test0 should inherit TERMINFO_DIRS from the user environment"):
+ dirs = machine.succeed(
+ "su - test0 -c 'doas -u root $SHELL -c \"echo \$TERMINFO_DIRS\"'"
+ )
+
+ if not "test0" in dirs:
+ raise Exception(f"user profile TERMINFO_DIRS is not preserved: {dirs}")
'';
}
)
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 4c3c26980aa2..7110187e8d76 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
with subtest("The pullImage tool works"):
docker.succeed(
- "docker load --input='${examples.nixFromDockerHub}'",
+ "docker load --input='${examples.testNixFromDockerHub}'",
"docker run --rm nix:2.2.1 nix-store --version",
"docker rmi nix:2.2.1",
)
@@ -378,5 +378,23 @@ import ./make-test-python.nix ({ pkgs, ... }: {
docker.succeed(
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
)
+
+ with subtest("exportImage produces a valid tarball"):
+ docker.succeed(
+ "tar -tf ${examples.exportBash} | grep '\./bin/bash' > /dev/null"
+ )
+
+ with subtest("Ensure bare paths in contents are loaded correctly"):
+ docker.succeed(
+ "docker load --input='${examples.build-image-with-path}'",
+ "docker run --rm build-image-with-path bash -c '[[ -e /hello.txt ]]'",
+ "docker rmi build-image-with-path",
+ )
+ docker.succeed(
+ "${examples.layered-image-with-path} | docker load",
+ "docker run --rm layered-image-with-path bash -c '[[ -e /hello.txt ]]'",
+ "docker rmi layered-image-with-path",
+ )
+
'';
})
diff --git a/nixos/tests/ec2.nix b/nixos/tests/ec2.nix
index df0672480168..aa3c2b7051f6 100644
--- a/nixos/tests/ec2.nix
+++ b/nixos/tests/ec2.nix
@@ -24,6 +24,11 @@ let
ln -s vda1 /dev/xvda1
'';
+ # In a NixOS test the serial console is occupied by the "backdoor"
+ # (see testing/test-instrumentation.nix) and is incompatible with
+ # the configuration in virtualisation/amazon-image.nix.
+ systemd.services."serial-getty@ttyS0".enable = mkForce false;
+
# Needed by nixos-rebuild due to the lack of network
# access. Determined by trial and error.
system.extraDependencies = with pkgs; ( [
diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix
index 2a1a4cba2956..ae746d7e1f03 100644
--- a/nixos/tests/elk.nix
+++ b/nixos/tests/elk.nix
@@ -1,12 +1,15 @@
+# To run the test on the unfree ELK use the folllowing command:
+# cd path/to/nixpkgs
+# NIXPKGS_ALLOW_UNFREE=1 nix-build -A nixosTests.elk.unfree.ELK-6
+
{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; },
- enableUnfree ? false
- # To run the test on the unfree ELK use the folllowing command:
- # NIXPKGS_ALLOW_UNFREE=1 nix-build nixos/tests/elk.nix -A ELK-6 --arg enableUnfree true
}:
let
+ inherit (pkgs) lib;
+
esUrl = "http://localhost:9200";
mkElkTest = name : elk :
@@ -215,38 +218,40 @@ let
'! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^'
)
'';
- }) {};
-in pkgs.lib.mapAttrs mkElkTest {
- ELK-6 =
- if enableUnfree
- then {
+ }) { inherit pkgs system; };
+in {
+ ELK-6 = mkElkTest "elk-6-oss" {
+ name = "elk-6-oss";
+ elasticsearch = pkgs.elasticsearch6-oss;
+ logstash = pkgs.logstash6-oss;
+ kibana = pkgs.kibana6-oss;
+ journalbeat = pkgs.journalbeat6;
+ metricbeat = pkgs.metricbeat6;
+ };
+ # We currently only package upstream binaries.
+ # Feel free to package an SSPL licensed source-based package!
+ # ELK-7 = mkElkTest "elk-7-oss" {
+ # name = "elk-7";
+ # elasticsearch = pkgs.elasticsearch7-oss;
+ # logstash = pkgs.logstash7-oss;
+ # kibana = pkgs.kibana7-oss;
+ # journalbeat = pkgs.journalbeat7;
+ # metricbeat = pkgs.metricbeat7;
+ # };
+ unfree = lib.dontRecurseIntoAttrs {
+ ELK-6 = mkElkTest "elk-6" {
elasticsearch = pkgs.elasticsearch6;
logstash = pkgs.logstash6;
kibana = pkgs.kibana6;
journalbeat = pkgs.journalbeat6;
metricbeat = pkgs.metricbeat6;
- }
- else {
- elasticsearch = pkgs.elasticsearch6-oss;
- logstash = pkgs.logstash6-oss;
- kibana = pkgs.kibana6-oss;
- journalbeat = pkgs.journalbeat6;
- metricbeat = pkgs.metricbeat6;
};
- ELK-7 =
- if enableUnfree
- then {
+ ELK-7 = mkElkTest "elk-7" {
elasticsearch = pkgs.elasticsearch7;
logstash = pkgs.logstash7;
kibana = pkgs.kibana7;
journalbeat = pkgs.journalbeat7;
metricbeat = pkgs.metricbeat7;
- }
- else {
- elasticsearch = pkgs.elasticsearch7-oss;
- logstash = pkgs.logstash7-oss;
- kibana = pkgs.kibana7-oss;
- journalbeat = pkgs.journalbeat7;
- metricbeat = pkgs.metricbeat7;
};
+ };
}
diff --git a/nixos/tests/emacs-daemon.nix b/nixos/tests/emacs-daemon.nix
index 58bcd095990a..e12da56021da 100644
--- a/nixos/tests/emacs-daemon.nix
+++ b/nixos/tests/emacs-daemon.nix
@@ -33,7 +33,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
)
# connects to the daemon
- machine.succeed("emacsclient --create-frame $EDITOR &")
+ machine.succeed("emacsclient --create-frame $EDITOR >&2 &")
# checks that Emacs shows the edited filename
machine.wait_for_text("emacseditor")
diff --git a/nixos/tests/enlightenment.nix b/nixos/tests/enlightenment.nix
index cc1da649d493..c5f0e208906b 100644
--- a/nixos/tests/enlightenment.nix
+++ b/nixos/tests/enlightenment.nix
@@ -11,8 +11,8 @@ import ./make-test-python.nix ({ pkgs, ...} :
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.desktopManager.enlightenment.enable = true;
- services.xserver.displayManager.lightdm = {
- enable = true;
+ services.xserver.displayManager = {
+ lightdm.enable = true;
autoLogin = {
enable = true;
user = "alice";
@@ -88,7 +88,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
machine.screenshot("wizard12")
with subtest("Run Terminology"):
- machine.succeed("terminology &")
+ machine.succeed("terminology >&2 &")
machine.sleep(5)
machine.send_chars("ls --color -alF\n")
machine.sleep(2)
diff --git a/nixos/tests/etesync-dav.nix b/nixos/tests/etesync-dav.nix
index da5c056f5349..6a747e23f76f 100644
--- a/nixos/tests/etesync-dav.nix
+++ b/nixos/tests/etesync-dav.nix
@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
''
machine.wait_for_unit("multi-user.target")
machine.succeed("etesync-dav --version")
- machine.execute("etesync-dav &")
+ machine.execute("etesync-dav >&2 &")
machine.wait_for_open_port(37358)
with subtest("Check that the web interface is accessible"):
assert "Add User" in machine.succeed("curl -s http://localhost:37358/.web/add/")
diff --git a/nixos/tests/firefox.nix b/nixos/tests/firefox.nix
index 4ad45c022407..7216ad43b8e9 100644
--- a/nixos/tests/firefox.nix
+++ b/nixos/tests/firefox.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, firefoxPackage, ... }: {
];
# Need some more memory to record audio.
- virtualisation.memorySize = "500";
+ virtualisation.memorySize = 500;
# Create a virtual sound device, with mixing
# and all, for recording audio.
@@ -91,7 +91,7 @@ import ./make-test-python.nix ({ pkgs, firefoxPackage, ... }: {
with subtest("Wait until Firefox has finished loading the Valgrind docs page"):
machine.execute(
- "xterm -e 'firefox file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html' &"
+ "xterm -e 'firefox file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html' >&2 &"
)
machine.wait_for_window("Valgrind")
machine.sleep(40)
@@ -99,7 +99,7 @@ import ./make-test-python.nix ({ pkgs, firefoxPackage, ... }: {
with subtest("Check whether Firefox can play sound"):
with audio_recording(machine):
machine.succeed(
- "firefox file://${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/phone-incoming-call.oga &"
+ "firefox file://${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/phone-incoming-call.oga >&2 &"
)
wait_for_sound(machine)
machine.copy_from_vm("/tmp/record.wav")
diff --git a/nixos/tests/ft2-clone.nix b/nixos/tests/ft2-clone.nix
index c877054234ec..71eda43e2b24 100644
--- a/nixos/tests/ft2-clone.nix
+++ b/nixos/tests/ft2-clone.nix
@@ -22,7 +22,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
# Add a dummy sound card, or the program won't start
machine.execute("modprobe snd-dummy")
- machine.execute("ft2-clone &")
+ machine.execute("ft2-clone >&2 &")
machine.wait_for_window(r"Fasttracker")
machine.sleep(5)
diff --git a/nixos/tests/ghostunnel.nix b/nixos/tests/ghostunnel.nix
index a82cff8082b7..8bea64854021 100644
--- a/nixos/tests/ghostunnel.nix
+++ b/nixos/tests/ghostunnel.nix
@@ -1,5 +1,4 @@
-{ pkgs, ... }: import ./make-test-python.nix {
-
+import ./make-test-python.nix ({ pkgs, ... }: {
nodes = {
backend = { pkgs, ... }: {
services.nginx.enable = true;
@@ -101,4 +100,4 @@
meta.maintainers = with pkgs.lib.maintainers; [
roberth
];
-}
+})
diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix
index 3e9feeb0769d..dc3b889c8e8e 100644
--- a/nixos/tests/gitlab.nix
+++ b/nixos/tests/gitlab.nix
@@ -14,6 +14,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
imports = [ common/user-account.nix ];
virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
+ virtualisation.cores = 4;
+ virtualisation.useNixStoreImage = true;
systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
systemd.services.gitaly.serviceConfig.Restart = mkForce "no";
diff --git a/nixos/tests/gnome-xorg.nix b/nixos/tests/gnome-xorg.nix
index 55f9c90c20a0..b9ff5e682875 100644
--- a/nixos/tests/gnome-xorg.nix
+++ b/nixos/tests/gnome-xorg.nix
@@ -25,6 +25,21 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
services.xserver.desktopManager.gnome.debug = true;
services.xserver.displayManager.defaultSession = "gnome-xorg";
+ systemd.user.services = {
+ "org.gnome.Shell@x11" = {
+ serviceConfig = {
+ ExecStart = [
+ # Clear the list before overriding it.
+ ""
+ # Eval API is now internal so Shell needs to run in unsafe mode.
+ # TODO: improve test driver so that it supports openqa-like manipulation
+ # that would allow us to drop this mess.
+ "${pkgs.gnome.gnome-shell}/bin/gnome-shell --unsafe-mode"
+ ];
+ };
+ };
+ };
+
virtualisation.memorySize = 1024;
};
diff --git a/nixos/tests/gnome.nix b/nixos/tests/gnome.nix
index e8d18a41bd06..1da97f733cfd 100644
--- a/nixos/tests/gnome.nix
+++ b/nixos/tests/gnome.nix
@@ -30,6 +30,21 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
})
];
+ systemd.user.services = {
+ "org.gnome.Shell@wayland" = {
+ serviceConfig = {
+ ExecStart = [
+ # Clear the list before overriding it.
+ ""
+ # Eval API is now internal so Shell needs to run in unsafe mode.
+ # TODO: improve test driver so that it supports openqa-like manipulation
+ # that would allow us to drop this mess.
+ "${pkgs.gnome.gnome-shell}/bin/gnome-shell --unsafe-mode"
+ ];
+ };
+ };
+ };
+
virtualisation.memorySize = 1024;
};
diff --git a/nixos/tests/hadoop/hadoop.nix b/nixos/tests/hadoop/hadoop.nix
new file mode 100644
index 000000000000..b4ed0e17a852
--- /dev/null
+++ b/nixos/tests/hadoop/hadoop.nix
@@ -0,0 +1,230 @@
+# This test is very comprehensive. It tests whether all hadoop services work well with each other.
+# Run this when updating the Hadoop package or making significant changes to the hadoop module.
+# For a more basic test, see hdfs.nix and yarn.nix
+import ../make-test-python.nix ({pkgs, ...}: {
+
+ nodes = let
+ package = pkgs.hadoop;
+ coreSite = {
+ "fs.defaultFS" = "hdfs://ns1";
+ };
+ hdfsSite = {
+ "dfs.namenode.rpc-bind-host" = "0.0.0.0";
+ "dfs.namenode.http-bind-host" = "0.0.0.0";
+ "dfs.namenode.servicerpc-bind-host" = "0.0.0.0";
+
+ # HA Quorum Journal Manager configuration
+ "dfs.nameservices" = "ns1";
+ "dfs.ha.namenodes.ns1" = "nn1,nn2";
+ "dfs.namenode.shared.edits.dir.ns1.nn1" = "qjournal://jn1:8485;jn2:8485;jn3:8485/ns1";
+ "dfs.namenode.shared.edits.dir.ns1.nn2" = "qjournal://jn1:8485;jn2:8485;jn3:8485/ns1";
+ "dfs.namenode.rpc-address.ns1.nn1" = "nn1:8020";
+ "dfs.namenode.rpc-address.ns1.nn2" = "nn2:8020";
+ "dfs.namenode.servicerpc-address.ns1.nn1" = "nn1:8022";
+ "dfs.namenode.servicerpc-address.ns1.nn2" = "nn2:8022";
+ "dfs.namenode.http-address.ns1.nn1" = "nn1:9870";
+ "dfs.namenode.http-address.ns1.nn2" = "nn2:9870";
+
+ # Automatic failover configuration
+ "dfs.client.failover.proxy.provider.ns1" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider";
+ "dfs.ha.automatic-failover.enabled.ns1" = "true";
+ "dfs.ha.fencing.methods" = "shell(true)";
+ "ha.zookeeper.quorum" = "zk1:2181";
+ };
+ yarnSiteHA = {
+ "yarn.resourcemanager.zk-address" = "zk1:2181";
+ "yarn.resourcemanager.ha.enabled" = "true";
+ "yarn.resourcemanager.ha.rm-ids" = "rm1,rm2";
+ "yarn.resourcemanager.hostname.rm1" = "rm1";
+ "yarn.resourcemanager.hostname.rm2" = "rm2";
+ "yarn.resourcemanager.ha.automatic-failover.enabled" = "true";
+ "yarn.resourcemanager.cluster-id" = "cluster1";
+ # yarn.resourcemanager.webapp.address needs to be defined even though yarn.resourcemanager.hostname is set. This shouldn't be necessary, but there's a bug in
+ # hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmFilterInitializer.java:70
+ # that causes AM containers to fail otherwise.
+ "yarn.resourcemanager.webapp.address.rm1" = "rm1:8088";
+ "yarn.resourcemanager.webapp.address.rm2" = "rm2:8088";
+ };
+ in {
+ zk1 = { ... }: {
+ services.zookeeper.enable = true;
+ networking.firewall.allowedTCPPorts = [ 2181 ];
+ };
+
+ # HDFS cluster
+ nn1 = {pkgs, options, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ hdfs.namenode.enable = true;
+ hdfs.zkfc.enable = true;
+ };
+ };
+ nn2 = {pkgs, options, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ hdfs.namenode.enable = true;
+ hdfs.zkfc.enable = true;
+ };
+ };
+
+ jn1 = {pkgs, options, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ hdfs.journalnode.enable = true;
+ };
+ };
+ jn2 = {pkgs, options, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ hdfs.journalnode.enable = true;
+ };
+ };
+ jn3 = {pkgs, options, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ hdfs.journalnode.enable = true;
+ };
+ };
+
+ dn1 = {pkgs, options, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ hdfs.datanode.enable = true;
+ };
+ };
+
+ # YARN cluster
+ rm1 = {pkgs, options, ...}: {
+ virtualisation.memorySize = 1024;
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+ yarn.resourcemanager.enable = true;
+ };
+ };
+ rm2 = {pkgs, options, ...}: {
+ virtualisation.memorySize = 1024;
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+ yarn.resourcemanager.enable = true;
+ };
+ };
+ nm1 = {pkgs, options, ...}: {
+ virtualisation.memorySize = 2048;
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+ yarn.nodemanager.enable = true;
+ };
+ };
+ };
+
+ testScript = ''
+ start_all()
+
+ #### HDFS tests ####
+
+ zk1.wait_for_unit("network.target")
+ jn1.wait_for_unit("network.target")
+ jn2.wait_for_unit("network.target")
+ jn3.wait_for_unit("network.target")
+ nn1.wait_for_unit("network.target")
+ nn2.wait_for_unit("network.target")
+ dn1.wait_for_unit("network.target")
+
+ zk1.wait_for_unit("zookeeper")
+ jn1.wait_for_unit("hdfs-journalnode")
+ jn2.wait_for_unit("hdfs-journalnode")
+ jn3.wait_for_unit("hdfs-journalnode")
+
+ zk1.wait_for_open_port(2181)
+ jn1.wait_for_open_port(8480)
+ jn1.wait_for_open_port(8485)
+ jn2.wait_for_open_port(8480)
+ jn2.wait_for_open_port(8485)
+
+ # Namenodes must be stopped before initializing the cluster
+ nn1.succeed("systemctl stop hdfs-namenode")
+ nn2.succeed("systemctl stop hdfs-namenode")
+ nn1.succeed("systemctl stop hdfs-zkfc")
+ nn2.succeed("systemctl stop hdfs-zkfc")
+
+ # Initialize zookeeper for failover controller
+ nn1.succeed("sudo -u hdfs hdfs zkfc -formatZK 2>&1 | systemd-cat")
+
+ # Format NN1 and start it
+ nn1.succeed("sudo -u hdfs hadoop namenode -format 2>&1 | systemd-cat")
+ nn1.succeed("systemctl start hdfs-namenode")
+ nn1.wait_for_open_port(9870)
+ nn1.wait_for_open_port(8022)
+ nn1.wait_for_open_port(8020)
+
+ # Bootstrap NN2 from NN1 and start it
+ nn2.succeed("sudo -u hdfs hdfs namenode -bootstrapStandby 2>&1 | systemd-cat")
+ nn2.succeed("systemctl start hdfs-namenode")
+ nn2.wait_for_open_port(9870)
+ nn2.wait_for_open_port(8022)
+ nn2.wait_for_open_port(8020)
+ nn1.succeed("netstat -tulpne | systemd-cat")
+
+ # Start failover controllers
+ nn1.succeed("systemctl start hdfs-zkfc")
+ nn2.succeed("systemctl start hdfs-zkfc")
+
+ # DN should have started by now, but confirm anyway
+ dn1.wait_for_unit("hdfs-datanode")
+ # Print states of namenodes
+ dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+ # Wait for cluster to exit safemode
+ dn1.succeed("sudo -u hdfs hdfs dfsadmin -safemode wait")
+ dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+ # test R/W
+ dn1.succeed("echo testfilecontents | sudo -u hdfs hdfs dfs -put - /testfile")
+ assert "testfilecontents" in dn1.succeed("sudo -u hdfs hdfs dfs -cat /testfile")
+
+ # Test NN failover
+ nn1.succeed("systemctl stop hdfs-namenode")
+ assert "active" in dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState")
+ dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+ assert "testfilecontents" in dn1.succeed("sudo -u hdfs hdfs dfs -cat /testfile")
+
+ nn1.succeed("systemctl start hdfs-namenode")
+ nn1.wait_for_open_port(9870)
+ nn1.wait_for_open_port(8022)
+ nn1.wait_for_open_port(8020)
+ assert "standby" in dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState")
+ dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+
+ #### YARN tests ####
+
+ rm1.wait_for_unit("network.target")
+ rm2.wait_for_unit("network.target")
+ nm1.wait_for_unit("network.target")
+
+ rm1.wait_for_unit("yarn-resourcemanager")
+ rm1.wait_for_open_port(8088)
+ rm2.wait_for_unit("yarn-resourcemanager")
+ rm2.wait_for_open_port(8088)
+
+ nm1.wait_for_unit("yarn-nodemanager")
+ nm1.wait_for_open_port(8042)
+ nm1.wait_for_open_port(8040)
+ nm1.wait_until_succeeds("yarn node -list | grep Nodes:1")
+ nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
+ nm1.succeed("sudo -u yarn yarn node -list | systemd-cat")
+
+ # Test RM failover
+ rm1.succeed("systemctl stop yarn-resourcemanager")
+ assert "standby" not in nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState")
+ nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
+ rm1.succeed("systemctl start yarn-resourcemanager")
+ rm1.wait_for_unit("yarn-resourcemanager")
+ rm1.wait_for_open_port(8088)
+ assert "standby" in nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState")
+ nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
+
+ assert "Estimated value of Pi is" in nm1.succeed("HADOOP_USER_NAME=hdfs yarn jar $(readlink $(which yarn) | sed -r 's~bin/yarn~lib/hadoop-*/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar~g') pi 2 10")
+ assert "SUCCEEDED" in nm1.succeed("yarn application -list -appStates FINISHED")
+ '';
+})
diff --git a/nixos/tests/hadoop/hdfs.nix b/nixos/tests/hadoop/hdfs.nix
index f1f98ed42eb3..360dbd60ed27 100644
--- a/nixos/tests/hadoop/hdfs.nix
+++ b/nixos/tests/hadoop/hdfs.nix
@@ -1,36 +1,34 @@
+# Test a minimal HDFS cluster with no HA
import ../make-test-python.nix ({...}: {
nodes = {
namenode = {pkgs, ...}: {
+ virtualisation.memorySize = 1024;
services.hadoop = {
- package = pkgs.hadoop_3_1;
- hdfs.namenode.enabled = true;
+ package = pkgs.hadoop;
+ hdfs = {
+ namenode = {
+ enable = true;
+ formatOnInit = true;
+ };
+ httpfs.enable = true;
+ };
coreSite = {
"fs.defaultFS" = "hdfs://namenode:8020";
- };
- hdfsSite = {
- "dfs.replication" = 1;
- "dfs.namenode.rpc-bind-host" = "0.0.0.0";
- "dfs.namenode.http-bind-host" = "0.0.0.0";
+ "hadoop.proxyuser.httpfs.groups" = "*";
+ "hadoop.proxyuser.httpfs.hosts" = "*";
};
};
- networking.firewall.allowedTCPPorts = [
- 9870 # namenode.http-address
- 8020 # namenode.rpc-address
- ];
};
datanode = {pkgs, ...}: {
services.hadoop = {
- package = pkgs.hadoop_3_1;
- hdfs.datanode.enabled = true;
+ package = pkgs.hadoop;
+ hdfs.datanode.enable = true;
coreSite = {
"fs.defaultFS" = "hdfs://namenode:8020";
+ "hadoop.proxyuser.httpfs.groups" = "*";
+ "hadoop.proxyuser.httpfs.hosts" = "*";
};
};
- networking.firewall.allowedTCPPorts = [
- 9864 # datanode.http.address
- 9866 # datanode.address
- 9867 # datanode.ipc.address
- ];
};
};
@@ -50,5 +48,13 @@ import ../make-test-python.nix ({...}: {
namenode.succeed("curl -f http://namenode:9870")
datanode.succeed("curl -f http://datanode:9864")
+
+ datanode.succeed("sudo -u hdfs hdfs dfsadmin -safemode wait")
+ datanode.succeed("echo testfilecontents | sudo -u hdfs hdfs dfs -put - /testfile")
+ assert "testfilecontents" in datanode.succeed("sudo -u hdfs hdfs dfs -cat /testfile")
+
+ namenode.wait_for_unit("hdfs-httpfs")
+ namenode.wait_for_open_port(14000)
+ assert "testfilecontents" in datanode.succeed("curl -f \"http://namenode:14000/webhdfs/v1/testfile?user.name=hdfs&op=OPEN\" 2>&1")
'';
})
diff --git a/nixos/tests/hadoop/yarn.nix b/nixos/tests/hadoop/yarn.nix
index 01077245d397..09bdb35791c7 100644
--- a/nixos/tests/hadoop/yarn.nix
+++ b/nixos/tests/hadoop/yarn.nix
@@ -1,28 +1,20 @@
+# This only tests if YARN is able to start its services
import ../make-test-python.nix ({...}: {
nodes = {
resourcemanager = {pkgs, ...}: {
- services.hadoop.package = pkgs.hadoop_3_1;
- services.hadoop.yarn.resourcemanager.enabled = true;
+ services.hadoop.package = pkgs.hadoop;
+ services.hadoop.yarn.resourcemanager.enable = true;
services.hadoop.yarnSite = {
"yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler";
};
- networking.firewall.allowedTCPPorts = [
- 8088 # resourcemanager.webapp.address
- 8031 # resourcemanager.resource-tracker.address
- ];
};
nodemanager = {pkgs, ...}: {
- services.hadoop.package = pkgs.hadoop_3_1;
- services.hadoop.yarn.nodemanager.enabled = true;
+ services.hadoop.package = pkgs.hadoop;
+ services.hadoop.yarn.nodemanager.enable = true;
services.hadoop.yarnSite = {
"yarn.resourcemanager.hostname" = "resourcemanager";
"yarn.nodemanager.log-dirs" = "/tmp/userlogs";
- "yarn.nodemanager.address" = "0.0.0.0:8041";
};
- networking.firewall.allowedTCPPorts = [
- 8042 # nodemanager.webapp.address
- 8041 # nodemanager.address
- ];
};
};
@@ -38,7 +30,6 @@ import ../make-test-python.nix ({...}: {
nodemanager.wait_for_unit("yarn-nodemanager")
nodemanager.wait_for_unit("network.target")
nodemanager.wait_for_open_port(8042)
- nodemanager.wait_for_open_port(8041)
resourcemanager.succeed("curl -f http://localhost:8088")
nodemanager.succeed("curl -f http://localhost:8042")
diff --git a/nixos/tests/handbrake.nix b/nixos/tests/handbrake.nix
index c92fb5db7d6c..d2d41b372be1 100644
--- a/nixos/tests/handbrake.nix
+++ b/nixos/tests/handbrake.nix
@@ -1,11 +1,15 @@
import ./make-test-python.nix ({ pkgs, ... }:
+
let
# Download Big Buck Bunny example, licensed under CC Attribution 3.0.
testMkv = pkgs.fetchurl {
url = "https://github.com/Matroska-Org/matroska-test-files/blob/cf0792be144ac470c4b8052cfe19bb691993e3a2/test_files/test1.mkv?raw=true";
sha256 = "1hfxbbgxwfkzv85pvpvx55a72qsd0hxjbm9hkl5r3590zw4s75h9";
+ name = "test1.mkv";
};
-in {
+
+in
+{
name = "handbrake";
meta = {
@@ -21,11 +25,9 @@ in {
# only takes a few seconds.
start_all()
- machine.succeed(
- "HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160"
- )
- machine.succeed(
- "HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160"
- )
+ machine.succeed("HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160")
+ machine.succeed("test -e test.mp4")
+ machine.succeed("HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160")
+ machine.succeed("test -e test.mkv")
'';
})
diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix
index b76ae83a3287..da7e0972e131 100644
--- a/nixos/tests/hardened.nix
+++ b/nixos/tests/hardened.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "hardened";
meta = with pkgs.lib.maintainers; {
maintainers = [ joachifm ];
@@ -10,8 +10,6 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
{ users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; };
users.users.sybil = { isNormalUser = true; group = "wheel"; };
imports = [ ../modules/profiles/hardened.nix ];
- boot.kernelPackages =
- lib.mkIf latestKernel pkgs.linuxPackages_latest_hardened;
environment.memoryAllocator.provider = "graphene-hardened";
nix.useSandbox = false;
virtualisation.emptyDiskImages = [ 4096 ];
diff --git a/nixos/tests/herbstluftwm.nix b/nixos/tests/herbstluftwm.nix
index 2c98cceee6a2..7d079f4bfb69 100644
--- a/nixos/tests/herbstluftwm.nix
+++ b/nixos/tests/herbstluftwm.nix
@@ -3,7 +3,6 @@ import ./make-test-python.nix ({ lib, ...} : {
meta = {
maintainers = with lib.maintainers; [ thibautmarty ];
- timeout = 30;
};
machine = { pkgs, lib, ... }: {
diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix
index ae506c8542fe..4f05b99a5a11 100644
--- a/nixos/tests/hibernate.nix
+++ b/nixos/tests/hibernate.nix
@@ -68,7 +68,7 @@ in makeTest {
testScript =
''
def create_named_machine(name):
- return create_machine(
+ machine = create_machine(
{
"qemuFlags": "-cpu max ${
if system == "x86_64-linux" then "-m 1024"
@@ -78,6 +78,8 @@ in makeTest {
"name": name,
}
)
+ driver.machines.append(machine)
+ return machine
# Install NixOS
@@ -93,7 +95,7 @@ in makeTest {
"mkswap /dev/vda1 -L swap",
# Install onto /mnt
"nix-store --load-db < ${pkgs.closureInfo {rootPaths = [installedSystem];}}/registration",
- "nixos-install --root /mnt --system ${installedSystem} --no-root-passwd",
+ "nixos-install --root /mnt --system ${installedSystem} --no-root-passwd --no-channel-copy >&2",
)
machine.shutdown()
@@ -108,7 +110,7 @@ in makeTest {
)
# Hibernate machine
- hibernate.succeed("systemctl hibernate &")
+ hibernate.execute("systemctl hibernate >&2 &", check_return=False)
hibernate.wait_for_shutdown()
# Restore machine from hibernation, validate our ramfs file is there.
diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix
index 699be8fd7dc6..0894736bac9c 100644
--- a/nixos/tests/home-assistant.nix
+++ b/nixos/tests/home-assistant.nix
@@ -12,13 +12,14 @@ in {
environment.systemPackages = with pkgs; [ mosquitto ];
services.mosquitto = {
enable = true;
- checkPasswords = true;
- users = {
- "${mqttUsername}" = {
- acl = [ "topic readwrite #" ];
- password = mqttPassword;
+ listeners = [ {
+ users = {
+ "${mqttUsername}" = {
+ acl = [ "readwrite #" ];
+ password = mqttPassword;
+ };
};
- };
+ } ];
};
services.home-assistant = {
inherit configDir;
diff --git a/nixos/tests/ihatemoney.nix b/nixos/tests/ihatemoney/default.nix
similarity index 52%
rename from nixos/tests/ihatemoney.nix
rename to nixos/tests/ihatemoney/default.nix
index 0451a4505808..78278d2e8699 100644
--- a/nixos/tests/ihatemoney.nix
+++ b/nixos/tests/ihatemoney/default.nix
@@ -1,22 +1,36 @@
{ system ? builtins.currentSystem,
config ? {},
- pkgs ? import ../.. { inherit system config; }
+ pkgs ? import ../../.. { inherit system config; }
}:
let
- inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
+ inherit (import ../../lib/testing-python.nix { inherit system pkgs; }) makeTest;
f = backend: makeTest {
name = "ihatemoney-${backend}";
- machine = { lib, ... }: {
+ machine = { nodes, lib, ... }: {
services.ihatemoney = {
enable = true;
enablePublicProjectCreation = true;
+ secureCookie = false;
inherit backend;
uwsgiConfig = {
http = ":8000";
};
};
boot.cleanTmpDir = true;
+ # for exchange rates
+ security.pki.certificateFiles = [ ./server.crt ];
+ networking.extraHosts = "127.0.0.1 api.exchangerate.host";
+ services.nginx = {
+ enable = true;
+ virtualHosts."api.exchangerate.host" = {
+ addSSL = true;
+ # openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 1000000 -nodes -subj '/CN=api.exchangerate.host'
+ sslCertificate = ./server.crt;
+ sslCertificateKey = ./server.key;
+ locations."/".return = "200 '${builtins.readFile ./rates.json}'";
+ };
+ };
# ihatemoney needs a local smtp server otherwise project creation just crashes
services.opensmtpd = {
enable = true;
@@ -30,11 +44,13 @@ let
testScript = ''
machine.wait_for_open_port(8000)
machine.wait_for_unit("uwsgi.service")
- machine.wait_until_succeeds("curl http://localhost:8000")
+ machine.wait_until_succeeds("curl --fail https://api.exchangerate.host")
+ machine.wait_until_succeeds("curl --fail http://localhost:8000")
- assert '"yay"' in machine.succeed(
- "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com'"
+ result = machine.succeed(
+ "curl --fail -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com&default_currency=XXX'"
)
+ assert '"yay"' in result, repr(result)
owner, timestamp = machine.succeed(
"stat --printf %U:%G___%Y /var/lib/ihatemoney/secret_key"
).split("___")
@@ -47,13 +63,13 @@ let
machine.wait_for_unit("uwsgi.service")
with subtest("check that the database is really persistent"):
- machine.succeed("curl --basic -u yay:yay http://localhost:8000/api/projects/yay")
+ machine.succeed("curl --fail --basic -u yay:yay http://localhost:8000/api/projects/yay")
with subtest("check that the secret key is really persistent"):
timestamp2 = machine.succeed("stat --printf %Y /var/lib/ihatemoney/secret_key")
assert timestamp == timestamp2
- assert "ihatemoney" in machine.succeed("curl http://localhost:8000")
+ assert "ihatemoney" in machine.succeed("curl --fail http://localhost:8000")
'';
};
in {
diff --git a/nixos/tests/ihatemoney/rates.json b/nixos/tests/ihatemoney/rates.json
new file mode 100644
index 000000000000..ebdd2651b040
--- /dev/null
+++ b/nixos/tests/ihatemoney/rates.json
@@ -0,0 +1,39 @@
+{
+ "rates": {
+ "CAD": 1.3420055134,
+ "HKD": 7.7513783598,
+ "ISK": 135.9407305307,
+ "PHP": 49.3762922123,
+ "DKK": 6.4126464507,
+ "HUF": 298.9145416954,
+ "CZK": 22.6292212267,
+ "GBP": 0.7838128877,
+ "RON": 4.1630771881,
+ "SEK": 8.8464851826,
+ "IDR": 14629.5658166782,
+ "INR": 74.8328738801,
+ "BRL": 5.2357856651,
+ "RUB": 71.8416609235,
+ "HRK": 6.4757064094,
+ "JPY": 106.2715368711,
+ "THB": 31.7203652653,
+ "CHF": 0.9243625086,
+ "EUR": 0.8614748449,
+ "MYR": 4.2644727774,
+ "BGN": 1.6848725017,
+ "TRY": 6.8483804273,
+ "CNY": 7.0169710544,
+ "NOK": 9.213731909,
+ "NZD": 1.5080978635,
+ "ZAR": 16.7427636113,
+ "USD": 1,
+ "MXN": 22.4676085458,
+ "SGD": 1.3855099931,
+ "AUD": 1.4107512061,
+ "ILS": 3.4150585803,
+ "KRW": 1203.3339076499,
+ "PLN": 3.794452102
+ },
+ "base": "USD",
+ "date": "2020-07-24"
+}
diff --git a/nixos/tests/ihatemoney/server.crt b/nixos/tests/ihatemoney/server.crt
new file mode 100644
index 000000000000..10e568b14b14
--- /dev/null
+++ b/nixos/tests/ihatemoney/server.crt
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEvjCCAqYCCQDkTQrENPCZjjANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVh
+cGkuZXhjaGFuZ2VyYXRlLmhvc3QwIBcNMjEwNzE0MTI1MzQ0WhgPNDc1OTA2MTEx
+MjUzNDRaMCAxHjAcBgNVBAMMFWFwaS5leGNoYW5nZXJhdGUuaG9zdDCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL5zpwUYa/ySqvJ/PUnXYsl1ww5SNGJh
+NujCRxC0Gw+5t5O7USSHRdz7Eb2PNFMa7JR+lliLAWdjHfqPXJWmP10X5ebvyxeQ
+TJkR1HpDSY6TQQlJvwr/JNGryyoQYjXvnyeyVu4TS3U0TTI631OonDAj+HbFIs9L
+gr/HfHzFmxRVLwaJ7hebanihc5RzoWTxgswiOwYQu5AivXQqcvUIxELeT7CxWwiw
+be/SlalDgoezB/poqaa215FUuN2av+nTn+swH3WOi9kwePLgVKn9BnDMwyh8et13
+yt27RWCSOcZagRSYsSbBaEJbClZvnuYvDqooJEy0GVbGBZpClKRKe92yd0PTf3ZJ
+GupyNoCFQlGugY//WLrsPv/Q4WwP+qZ6t97sV0CdM+epKVde/LfPKn+tFMv86qIg
+Q/uGHdDwUI8XH2EysAavhdlssSrovmpl4hyo9UkzTWfJgAbmOZY3Vba41wsq12FT
+usDsswGLBD10MdXWltR/Hdk8OnosLmeJxfZODAv31KSfd+4b6Ntr9BYQvAQSO+1/
+Mf7gEQtNhO003VKIyV5cpH4kVQieEcvoEKgq32NVBSKVf6UIPWIefu19kvrttaUu
+Q2QW2Qm4Ph/4cWpxl0jcrN5rjmgaBtIMmKYjRIS0ThDWzfVkJdmJuATzExJAplLN
+nYPBG3gOtQQpAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJzt/aN7wl88WrvBasVi
+fSJmJjRaW2rYyBUMptQNkm9ElHN2eQQxJgLi8+9ArQxuGKhHx+D1wMGF8w2yOp0j
+4atfbXDcT+cTQY55qdEeYgU8KhESHHGszGsUpv7hzU2cACZiXG0YbOmORFYcn49Z
+yPyN98kW8BViLzNF9v+I/NJPuaaCeWKjXCqY2GCzddiuotrlLtz0CODXZJ506I1F
+38vQgZb10yAe6+R4y0BK7sUlmfr9BBqVcDQ/z74Kph1aB32zwP8KrNitwG1Tyk6W
+rxD1dStEQyX8uDPAspe2JrToMWsOMje9F5lotmuzyvwRJYfAav300EtIggBqpiHR
+o0P/1xxBzmaCHxEUJegdoYg8Q27llqsjR2T78uv/BlxpX9Dv5kNex5EZThKqyz4a
+Fn1VqiA3D9IsvxH4ud+8eDaP24u1yYObSTDIBsw9xDvoV8fV+NWoNNhcAL5GwC0P
+Goh7/brZSHUprxGpwRB524E//8XmCsRd/+ShtXbi4gEODMH4xLdkD7fZIJC4eG1H
+GOVc1MwjiYvbQlPs6MOcQ0iKQneSlaEJmyyO5Ro5OKiKj89Az/mLYX3R17AIsu0T
+Q5pGcmhKVRyu0zXvkGfK352TLwoe+4vbmakDq21Pkkcy8V9M4wP+vpCfQkg1REQ1
++mr1Vg+SFya3mlCxpFTy3j8E
+-----END CERTIFICATE-----
diff --git a/nixos/tests/ihatemoney/server.key b/nixos/tests/ihatemoney/server.key
new file mode 100644
index 000000000000..72a43577d64d
--- /dev/null
+++ b/nixos/tests/ihatemoney/server.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC+c6cFGGv8kqry
+fz1J12LJdcMOUjRiYTbowkcQtBsPubeTu1Ekh0Xc+xG9jzRTGuyUfpZYiwFnYx36
+j1yVpj9dF+Xm78sXkEyZEdR6Q0mOk0EJSb8K/yTRq8sqEGI1758nslbuE0t1NE0y
+Ot9TqJwwI/h2xSLPS4K/x3x8xZsUVS8Gie4Xm2p4oXOUc6Fk8YLMIjsGELuQIr10
+KnL1CMRC3k+wsVsIsG3v0pWpQ4KHswf6aKmmtteRVLjdmr/p05/rMB91jovZMHjy
+4FSp/QZwzMMofHrdd8rdu0VgkjnGWoEUmLEmwWhCWwpWb57mLw6qKCRMtBlWxgWa
+QpSkSnvdsndD0392SRrqcjaAhUJRroGP/1i67D7/0OFsD/qmerfe7FdAnTPnqSlX
+Xvy3zyp/rRTL/OqiIEP7hh3Q8FCPFx9hMrAGr4XZbLEq6L5qZeIcqPVJM01nyYAG
+5jmWN1W2uNcLKtdhU7rA7LMBiwQ9dDHV1pbUfx3ZPDp6LC5nicX2TgwL99Skn3fu
+G+jba/QWELwEEjvtfzH+4BELTYTtNN1SiMleXKR+JFUInhHL6BCoKt9jVQUilX+l
+CD1iHn7tfZL67bWlLkNkFtkJuD4f+HFqcZdI3Kzea45oGgbSDJimI0SEtE4Q1s31
+ZCXZibgE8xMSQKZSzZ2DwRt4DrUEKQIDAQABAoICAQCpwU465XTDUTvcH/vSCJB9
+/2BYMH+OvRYDS7+qLM7+Kkxt+oWt6IEmIgfDDZTXCmWbSmXaEDS1IYzEG+qrXN6X
+rMh4Gn7MxwrvWQwp2jYDRk+u5rPJKnh4Bwd0u9u+NZKIAJcpZ7tXgcHZJs6Os/hb
+lIRP4RFQ8f5d0IKueDftXKwoyOKW2imB0m7CAHr4DajHKS+xDVMRe1Wg6IFE1YaS
+D7O6S6tXyGKFZA+QKqN7LuHKmmW1Or5URM7uf5PV6JJfQKqZzu/qLCFyYvA0AFsw
+SeMeAC5HnxIMp3KETHIA0gTCBgPJBpVWp+1D9AQPKhyJIHSShekcBi9SO0xgUB+s
+h1UEcC2zf95Vson0KySX9zWRUZkrU8/0KYhYljN2/vdW8XxkRBC0pl3xWzq2kMgz
+SscZqI/MzyeUHaQno62GRlWn+WKP2NidDfR0Td/ybge1DJX+aDIfjalfCEIbJeqm
+BHn0CZ5z1RofatDlPj4p8+f2Trpcz/JCVKbGiQXi/08ZlCwkSIiOIcBVvAFErWop
+GJOBDU3StS/MXhQVb8ZeCkPBz0TM24Sv1az/MuW4w8gavpQuBC4aD5zY/TOwG8ei
+6S1sAZ0G2uc1A0FOngNvOyYYv+LImZKkWGXrLCRsqq6o/mh3M8bCHEY/lOZW8ZpL
+FCsDOO8deVZl/OX1VtB0bQKCAQEA3qRWDlUpCAU8BKa5Z1oRUz06e5KD58t2HpG8
+ndM3UO/F1XNB/6OGMWpL/XuBKOnWIB39UzsnnEtehKURTqqAsB1K3JQ5Q/FyuXRj
++o7XnNXe5lHBL5JqBIoESDchSAooQhBlQSjLSL2lg//igk0puv08wMK7UtajkV7U
+35WDa6ks6jfoSeuVibfdobkTgfw5edirOBE2Q0U2KtGsnyAzsM6tRbtgI1Yhg7eX
+nSIc4IYgq2hNLBKsegeiz1w4M6O4CQDVYFWKHyKpdrvj/fG7YZMr6YtTkuC+QPDK
+mmQIEL/lj8E26MnPLKtnTFc06LQry2V3pLWNf4mMLPNLEupEXwKCAQEA2vyg8Npn
+EZRunIr51rYScC6U6iryDjJWCwJxwr8vGU+bkqUOHTl3EqZOi5tDeYJJ+WSBqjfW
+IWrPRFZzTITlAslZ02DQ5enS9PwgUUjl7LUEbHHh+fSNIgkVfDhsuNKFzcEaIM1X
+Dl4lI2T8jEzmBep+k8f6gNmgKBgqlCf7XraorIM5diLFzy2G10zdOQTw5hW3TsVY
+d968YpfC5j57/hCrf36ahIT7o1vxLD+L27Mm9Eiib45woWjaAR1Nc9kUjqY4yV7t
+3QOw/Id9+/Sx5tZftOBvHlFyz23e1yaI3VxsiLDO9RxJwAKyA+KOvAybE2VU28hI
+s5tAYOMV6BpEdwKCAQBqRIQyySERi/YOvkmGdC4KzhHJA7DkBXA2vRcLOdKQVjHW
+ZPIeg728fmEQ90856QrkP4w3mueYKT1PEL7HDojoBsNBr5n5vRgmPtCtulpdqJOA
+2YrdGwRxcDMFCRNgoECA7/R0enU1HhgPfiZuTUha0R6bXxcsPfjKnTn8EhAtZg1j
+KhY8mi7BEjq+Q2l1RJ9mci2fUE/XIgTtwTCkrykc/jkkLICBvU234fyC6tJftIWJ
+avpSzAL5KAXk9b55n25rFbPDDHEl1VSPsLTs8+GdfDKcgXz9gTouIwCBWreizwVS
+bUW5LQIu7w0aGhHN9JlmtuK5glKsikmW9vVhbOH/AoIBAE//O7fgwQguBh5Psqca
+CjBLBAFrQNOo1b/d27r95nHDoBx5CWfppzL75/Od+4825lkhuzB4h1Pb1e2r+yC3
+54UWEydh1c43leYC+LdY/w1yrzQCgj+yc6A8W0nuvuDhnxmj8iyLdsL752s/p/aE
+3P7KRAUuZ7eMSLJ86YkH9g8KgSHMKkCawVJG2lxqauI6iNo0kqtG8mOPzZfiwsMj
+jl4ors27bSz9+4MYwkicyjWvA4r3wcco7MI6MHF5x+KLKbRWyqXddN1pTM1jncVe
+BWNDauEDn/QeYuedxmsoW5Up/0gL9v6Zn+Nx2KAMsoHFxRzXxqEnUE+0Zlc+fbE1
+b08CggEBAMiZmWtRmfueu9NMh6mgs+cmMA1ZHmbnIbtFpVjc37lrKUcjLzGF3tmp
+zQl2wy8IcHpNv8F9aKhwAInxD49RUjyqvRD6Pru+EWN6gOPJIUVuZ6mvaf7BOxbn
+Rve63hN5k4znQ1MOqGRiUkBxYSJ5wnFyQP0/8Y6+JM5uAuRUcKVNyoGURpfMrmB3
+r+KHWltM9/5iIfiDNhwStFiuOJj1YBJVzrcAn8Zh5Q0+s1hXoOUs4doLcaPHTCTU
+3hyX78yROMcZto0pVzxgQrYz31yQ5ocy9WcOYbPbQ5gdlnBEv8d7umNY1siz2wkI
+NaEkKVO0D0jFtk37s/YqJpCsXg/B7yc=
+-----END PRIVATE KEY-----
diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix
index 6c2846a1636b..08785e5e6669 100644
--- a/nixos/tests/installed-tests/default.nix
+++ b/nixos/tests/installed-tests/default.nix
@@ -104,5 +104,6 @@ in
malcontent = callInstalledTest ./malcontent.nix {};
ostree = callInstalledTest ./ostree.nix {};
pipewire = callInstalledTest ./pipewire.nix {};
+ power-profiles-daemon = callInstalledTest ./power-profiles-daemon.nix {};
xdg-desktop-portal = callInstalledTest ./xdg-desktop-portal.nix {};
}
diff --git a/nixos/tests/installed-tests/power-profiles-daemon.nix b/nixos/tests/installed-tests/power-profiles-daemon.nix
new file mode 100644
index 000000000000..43629a0155d2
--- /dev/null
+++ b/nixos/tests/installed-tests/power-profiles-daemon.nix
@@ -0,0 +1,9 @@
+{ pkgs, lib, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.power-profiles-daemon;
+
+ testConfig = {
+ services.power-profiles-daemon.enable = true;
+ };
+}
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 48f0f5934255..73dc676ca32d 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -184,11 +184,12 @@ let
with subtest("Check whether nixos-rebuild works"):
machine.succeed("nixos-rebuild switch >&2")
- with subtest("Test nixos-option"):
- kernel_modules = machine.succeed("nixos-option boot.initrd.kernelModules")
- assert "virtio_console" in kernel_modules
- assert "List of modules" in kernel_modules
- assert "qemu-guest.nix" in kernel_modules
+ # FIXME: Nix 2.4 broke nixos-option, someone has to fix it.
+ # with subtest("Test nixos-option"):
+ # kernel_modules = machine.succeed("nixos-option boot.initrd.kernelModules")
+ # assert "virtio_console" in kernel_modules
+ # assert "List of modules" in kernel_modules
+ # assert "qemu-guest.nix" in kernel_modules
machine.shutdown()
diff --git a/nixos/tests/invidious.nix b/nixos/tests/invidious.nix
new file mode 100644
index 000000000000..8b831715a441
--- /dev/null
+++ b/nixos/tests/invidious.nix
@@ -0,0 +1,81 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "invidious";
+
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ sbruder ];
+ };
+
+ machine = { config, lib, pkgs, ... }: {
+ services.invidious = {
+ enable = true;
+ };
+
+ specialisation = {
+ nginx.configuration = {
+ services.invidious = {
+ nginx.enable = true;
+ domain = "invidious.example.com";
+ };
+ services.nginx.virtualHosts."invidious.example.com" = {
+ forceSSL = false;
+ enableACME = false;
+ };
+ networking.hosts."127.0.0.1" = [ "invidious.example.com" ];
+ };
+ postgres-tcp.configuration = {
+ services.invidious = {
+ database = {
+ createLocally = false;
+ host = "127.0.0.1";
+ passwordFile = toString (pkgs.writeText "database-password" "correct horse battery staple");
+ };
+ };
+ # Normally not needed because when connecting to postgres over TCP/IP
+ # the database is most likely on another host.
+ systemd.services.invidious = {
+ after = [ "postgresql.service" ];
+ requires = [ "postgresql.service" ];
+ };
+ services.postgresql =
+ let
+ inherit (config.services.invidious.settings.db) dbname user;
+ in
+ {
+ enable = true;
+ initialScript = pkgs.writeText "init-postgres-with-password" ''
+ CREATE USER kemal WITH PASSWORD 'correct horse battery staple';
+ CREATE DATABASE invidious;
+ GRANT ALL PRIVILEGES ON DATABASE invidious TO kemal;
+ '';
+ };
+ };
+ };
+ };
+
+ testScript = { nodes, ... }: ''
+ def curl_assert_status_code(url, code, form=None):
+ assert int(machine.succeed(f"curl -s -o /dev/null -w %{{http_code}} {'-F ' + form + ' ' if form else '''}{url}")) == code
+
+
+ def activate_specialisation(name: str):
+ machine.succeed(f"${nodes.machine.config.system.build.toplevel}/specialisation/{name}/bin/switch-to-configuration test >&2")
+
+
+ url = "http://localhost:${toString nodes.machine.config.services.invidious.port}"
+ port = ${toString nodes.machine.config.services.invidious.port}
+
+ machine.wait_for_open_port(port)
+ curl_assert_status_code(f"{url}/search", 200)
+
+ activate_specialisation("nginx")
+ machine.wait_for_open_port(80)
+ curl_assert_status_code("http://invidious.example.com/search", 200)
+
+ # Remove the state so the `initialScript` gets run
+ machine.succeed("systemctl stop postgresql")
+ machine.succeed("rm -r /var/lib/postgresql")
+ activate_specialisation("postgres-tcp")
+ machine.wait_for_open_port(port)
+ curl_assert_status_code(f"{url}/search", 200)
+ '';
+})
diff --git a/nixos/tests/iscsi-multipath-root.nix b/nixos/tests/iscsi-multipath-root.nix
new file mode 100644
index 000000000000..a26fea503b62
--- /dev/null
+++ b/nixos/tests/iscsi-multipath-root.nix
@@ -0,0 +1,267 @@
+import ./make-test-python.nix (
+ { pkgs, lib, ... }:
+ let
+ initiatorName = "iqn.2020-08.org.linux-iscsi.initiatorhost:example";
+ targetName = "iqn.2003-01.org.linux-iscsi.target.x8664:sn.acf8fd9c23af";
+ in
+ {
+ name = "iscsi";
+ meta = {
+ maintainers = pkgs.lib.teams.deshaw.members;
+ };
+
+ nodes = {
+ target = { config, pkgs, lib, ... }: {
+ virtualisation.vlans = [ 1 2 ];
+ services.target = {
+ enable = true;
+ config = {
+ fabric_modules = [ ];
+ storage_objects = [
+ {
+ dev = "/dev/vdb";
+ name = "test";
+ plugin = "block";
+ write_back = true;
+ wwn = "92b17c3f-6b40-4168-b082-ceeb7b495522";
+ }
+ ];
+ targets = [
+ {
+ fabric = "iscsi";
+ tpgs = [
+ {
+ enable = true;
+ attributes = {
+ authentication = 0;
+ generate_node_acls = 1;
+ };
+ luns = [
+ {
+ alias = "94dfe06967";
+ alua_tg_pt_gp_name = "default_tg_pt_gp";
+ index = 0;
+ storage_object = "/backstores/block/test";
+ }
+ ];
+ node_acls = [
+ {
+ mapped_luns = [
+ {
+ alias = "d42f5bdf8a";
+ index = 0;
+ tpg_lun = 0;
+ write_protect = false;
+ }
+ ];
+ node_wwn = initiatorName;
+ }
+ ];
+ portals = [
+ {
+ ip_address = "0.0.0.0";
+ iser = false;
+ offload = false;
+ port = 3260;
+ }
+ ];
+ tag = 1;
+ }
+ ];
+ wwn = targetName;
+ }
+ ];
+ };
+ };
+
+ networking.firewall.allowedTCPPorts = [ 3260 ];
+ networking.firewall.allowedUDPPorts = [ 3260 ];
+
+ virtualisation.memorySize = 2048;
+ virtualisation.emptyDiskImages = [ 2048 ];
+ };
+
+ initiatorAuto = { nodes, config, pkgs, ... }: {
+ virtualisation.vlans = [ 1 2 ];
+
+ services.multipath = {
+ enable = true;
+ defaults = ''
+ find_multipaths yes
+ user_friendly_names yes
+ '';
+ pathGroups = [
+ {
+ alias = 123456;
+ wwid = "3600140592b17c3f6b404168b082ceeb7";
+ }
+ ];
+ };
+
+ services.openiscsi = {
+ enable = true;
+ enableAutoLoginOut = true;
+ discoverPortal = "target";
+ name = initiatorName;
+ };
+
+ environment.systemPackages = with pkgs; [
+ xfsprogs
+ ];
+
+ environment.etc."initiator-root-disk-closure".source = nodes.initiatorRootDisk.config.system.build.toplevel;
+
+ nix.binaryCaches = lib.mkForce [ ];
+ nix.extraOptions = ''
+ hashed-mirrors =
+ connect-timeout = 1
+ '';
+ };
+
+ initiatorRootDisk = { config, pkgs, modulesPath, lib, ... }: {
+ boot.initrd.network.enable = true;
+ boot.loader.grub.enable = false;
+
+ boot.kernelParams = lib.mkOverride 5 (
+ [
+ "boot.shell_on_fail"
+ "console=tty1"
+ "ip=192.168.1.1:::255.255.255.0::ens9:none"
+ "ip=192.168.2.1:::255.255.255.0::ens10:none"
+ ]
+ );
+
+ # defaults to true, puts some code in the initrd that tries to mount an overlayfs on /nix/store
+ virtualisation.writableStore = false;
+ virtualisation.vlans = [ 1 2 ];
+
+ services.multipath = {
+ enable = true;
+ defaults = ''
+ find_multipaths yes
+ user_friendly_names yes
+ '';
+ pathGroups = [
+ {
+ alias = 123456;
+ wwid = "3600140592b17c3f6b404168b082ceeb7";
+ }
+ ];
+ };
+
+ fileSystems = lib.mkOverride 5 {
+ "/" = {
+ fsType = "xfs";
+ device = "/dev/mapper/123456";
+ options = [ "_netdev" ];
+ };
+ };
+
+ boot.initrd.extraFiles."etc/multipath/wwids".source = pkgs.writeText "wwids" "/3600140592b17c3f6b404168b082ceeb7/";
+
+ boot.iscsi-initiator = {
+ discoverPortal = "target";
+ name = initiatorName;
+ target = targetName;
+ extraIscsiCommands = ''
+ iscsiadm -m discovery -o update -t sendtargets -p 192.168.2.3 --login
+ '';
+ };
+ };
+
+ };
+
+ testScript = { nodes, ... }: ''
+ target.start()
+ target.wait_for_unit("iscsi-target.service")
+
+ initiatorAuto.start()
+
+ initiatorAuto.wait_for_unit("iscsid.service")
+ initiatorAuto.wait_for_unit("iscsi.service")
+ initiatorAuto.get_unit_info("iscsi")
+
+ # Expecting this to fail since we should already know about 192.168.1.3
+ initiatorAuto.fail("iscsiadm -m discovery -o update -t sendtargets -p 192.168.1.3 --login")
+ # Expecting this to succeed since we don't yet know about 192.168.2.3
+ initiatorAuto.succeed("iscsiadm -m discovery -o update -t sendtargets -p 192.168.2.3 --login")
+
+ # /dev/sda is provided by iscsi on target
+ initiatorAuto.succeed("set -x; while ! test -e /dev/sda; do sleep 1; done")
+
+ initiatorAuto.succeed("mkfs.xfs /dev/sda")
+ initiatorAuto.succeed("mkdir /mnt")
+
+ # Start by verifying /dev/sda and /dev/sdb are both the same disk
+ initiatorAuto.succeed("mount /dev/sda /mnt")
+ initiatorAuto.succeed("touch /mnt/hi")
+ initiatorAuto.succeed("umount /mnt")
+
+ initiatorAuto.succeed("mount /dev/sdb /mnt")
+ initiatorAuto.succeed("test -e /mnt/hi")
+ initiatorAuto.succeed("umount /mnt")
+
+ initiatorAuto.succeed("systemctl restart multipathd")
+ initiatorAuto.succeed("multipath -ll | systemd-cat")
+
+ # Install our RootDisk machine to 123456, the alias to the device that multipath is now managing
+ initiatorAuto.succeed("mount /dev/mapper/123456 /mnt")
+ initiatorAuto.succeed("mkdir -p /mnt/etc/{multipath,iscsi}")
+ initiatorAuto.succeed("cp -r /etc/multipath/wwids /mnt/etc/multipath/wwids")
+ initiatorAuto.succeed("cp -r /etc/iscsi/{nodes,send_targets} /mnt/etc/iscsi")
+ initiatorAuto.succeed(
+ "nixos-install --no-bootloader --no-root-passwd --system /etc/initiator-root-disk-closure"
+ )
+ initiatorAuto.succeed("umount /mnt")
+ initiatorAuto.shutdown()
+
+ initiatorRootDisk.start()
+ initiatorRootDisk.wait_for_unit("multi-user.target")
+ initiatorRootDisk.wait_for_unit("iscsid")
+
+ # Log in over both nodes
+ initiatorRootDisk.fail("iscsiadm -m discovery -o update -t sendtargets -p 192.168.1.3 --login")
+ initiatorRootDisk.fail("iscsiadm -m discovery -o update -t sendtargets -p 192.168.2.3 --login")
+ initiatorRootDisk.succeed("systemctl restart multipathd")
+ initiatorRootDisk.succeed("multipath -ll | systemd-cat")
+
+ # Verify we can write and sync the root disk
+ initiatorRootDisk.succeed("mkdir /scratch")
+ initiatorRootDisk.succeed("touch /scratch/both-up")
+ initiatorRootDisk.succeed("sync /scratch")
+
+ # Verify we can write to the root with ens9 (sda, 192.168.1.3) down
+ initiatorRootDisk.succeed("ip link set ens9 down")
+ initiatorRootDisk.succeed("touch /scratch/ens9-down")
+ initiatorRootDisk.succeed("sync /scratch")
+ initiatorRootDisk.succeed("ip link set ens9 up")
+
+ # todo: better way to wait until multipath notices the link is back
+ initiatorRootDisk.succeed("sleep 5")
+ initiatorRootDisk.succeed("touch /scratch/both-down")
+ initiatorRootDisk.succeed("sync /scratch")
+
+ # Verify we can write to the root with ens10 (sdb, 192.168.2.3) down
+ initiatorRootDisk.succeed("ip link set ens10 down")
+ initiatorRootDisk.succeed("touch /scratch/ens10-down")
+ initiatorRootDisk.succeed("sync /scratch")
+ initiatorRootDisk.succeed("ip link set ens10 up")
+ initiatorRootDisk.succeed("touch /scratch/ens10-down")
+ initiatorRootDisk.succeed("sync /scratch")
+
+ initiatorRootDisk.succeed("ip link set ens9 up")
+ initiatorRootDisk.succeed("ip link set ens10 up")
+ initiatorRootDisk.shutdown()
+
+ # Verify we can boot with the target's eth1 down, forcing
+ # it to multipath via the second link
+ target.succeed("ip link set eth1 down")
+ initiatorRootDisk.start()
+ initiatorRootDisk.wait_for_unit("multi-user.target")
+ initiatorRootDisk.wait_for_unit("iscsid")
+ initiatorRootDisk.succeed("test -e /scratch/both-up")
+ '';
+ }
+)
+
+
diff --git a/nixos/tests/jibri.nix b/nixos/tests/jibri.nix
new file mode 100644
index 000000000000..3dd28e6aac1a
--- /dev/null
+++ b/nixos/tests/jibri.nix
@@ -0,0 +1,69 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "jibri";
+ meta = with pkgs.lib; {
+ maintainers = teams.jitsi.members;
+ };
+
+ machine = { config, pkgs, ... }: {
+ virtualisation.memorySize = 5120;
+
+ services.jitsi-meet = {
+ enable = true;
+ hostName = "machine";
+ jibri.enable = true;
+ };
+ services.jibri.ignoreCert = true;
+ services.jitsi-videobridge.openFirewall = true;
+
+ networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+ services.nginx.virtualHosts.machine = {
+ enableACME = true;
+ forceSSL = true;
+ };
+
+ security.acme.email = "me@example.org";
+ security.acme.acceptTerms = true;
+ security.acme.server = "https://example.com"; # self-signed only
+ };
+
+ testScript = ''
+ machine.wait_for_unit("jitsi-videobridge2.service")
+ machine.wait_for_unit("jicofo.service")
+ machine.wait_for_unit("nginx.service")
+ machine.wait_for_unit("prosody.service")
+ machine.wait_for_unit("jibri.service")
+
+ machine.wait_until_succeeds(
+ "journalctl -b -u jitsi-videobridge2 -o cat | grep -q 'Performed a successful health check'", timeout=30
+ )
+ machine.wait_until_succeeds(
+ "journalctl -b -u prosody -o cat | grep -q 'Authenticated as focus@auth.machine'", timeout=31
+ )
+ machine.wait_until_succeeds(
+ "journalctl -b -u prosody -o cat | grep -q 'Authenticated as jvb@auth.machine'", timeout=32
+ )
+ machine.wait_until_succeeds(
+ "journalctl -b -u prosody -o cat | grep -q 'Authenticated as jibri@auth.machine'", timeout=33
+ )
+ machine.wait_until_succeeds(
+ "cat /var/log/jitsi/jibri/log.0.txt | grep -q 'Joined MUC: jibribrewery@internal.machine'", timeout=34
+ )
+
+ assert '"busyStatus":"IDLE","health":{"healthStatus":"HEALTHY"' in machine.succeed(
+ "curl -X GET http://machine:2222/jibri/api/v1.0/health"
+ )
+ machine.succeed(
+ """curl -H "Content-Type: application/json" -X POST http://localhost:2222/jibri/api/v1.0/startService -d '{"sessionId": "RecordTest","callParams":{"callUrlInfo":{"baseUrl": "https://machine","callName": "TestCall"}},"callLoginParams":{"domain": "recorder.machine", "username": "recorder", "password": "'"$(cat /var/lib/jitsi-meet/jibri-recorder-secret)"'" },"sinkType": "file"}'"""
+ )
+ machine.wait_until_succeeds(
+ "cat /var/log/jitsi/jibri/log.0.txt | grep -q 'File recording service transitioning from state Starting up to Running'", timeout=35
+ )
+ machine.succeed(
+ """sleep 15 && curl -H "Content-Type: application/json" -X POST http://localhost:2222/jibri/api/v1.0/stopService -d '{"sessionId": "RecordTest","callParams":{"callUrlInfo":{"baseUrl": "https://machine","callName": "TestCall"}},"callLoginParams":{"domain": "recorder.machine", "username": "recorder", "password": "'"$(cat /var/lib/jitsi-meet/jibri-recorder-secret)"'" },"sinkType": "file"}'"""
+ )
+ machine.wait_until_succeeds(
+ "cat /var/log/jitsi/jibri/log.0.txt | grep -q 'Recording finalize script finished with exit value 0'", timeout=36
+ )
+ '';
+})
diff --git a/nixos/tests/keepassxc.nix b/nixos/tests/keepassxc.nix
index 98902187f6ac..685a200b3187 100644
--- a/nixos/tests/keepassxc.nix
+++ b/nixos/tests/keepassxc.nix
@@ -26,7 +26,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
machine.wait_for_x()
# start KeePassXC window
- machine.execute("su - alice -c keepassxc &")
+ machine.execute("su - alice -c keepassxc >&2 &")
machine.wait_for_text("KeePassXC ${pkgs.keepassxc.version}")
machine.screenshot("KeePassXC")
diff --git a/nixos/tests/kerberos/heimdal.nix b/nixos/tests/kerberos/heimdal.nix
index 8abae667d043..391a61cc9a90 100644
--- a/nixos/tests/kerberos/heimdal.nix
+++ b/nixos/tests/kerberos/heimdal.nix
@@ -9,7 +9,7 @@ import ../make-test-python.nix ({pkgs, ...}: {
};
krb5 = {
enable = true;
- kerberos = pkgs.heimdalFull;
+ kerberos = pkgs.heimdal;
libdefaults = {
default_realm = "FOO.BAR";
};
diff --git a/nixos/tests/kernel-generic.nix b/nixos/tests/kernel-generic.nix
index e88b60d33534..3fdd3995b7aa 100644
--- a/nixos/tests/kernel-generic.nix
+++ b/nixos/tests/kernel-generic.nix
@@ -23,23 +23,14 @@ let
assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a")
'';
}) args);
- kernels = {
- inherit (pkgs)
- linuxPackages_4_4
- linuxPackages_4_9
- linuxPackages_4_14
- linuxPackages_4_19
- linuxPackages_5_4
- linuxPackages_5_10
- linuxPackages_5_13
- linuxPackages_5_14
+ kernels = pkgs.linuxKernel.vanillaPackages // {
+ inherit (pkgs.linuxKernel.packages)
+ linux_4_14_hardened
+ linux_4_19_hardened
+ linux_5_4_hardened
+ linux_5_10_hardened
- linuxPackages_4_14_hardened
- linuxPackages_4_19_hardened
- linuxPackages_5_4_hardened
- linuxPackages_5_10_hardened
-
- linuxPackages_testing;
+ linux_testing;
};
in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
diff --git a/nixos/tests/kexec.nix b/nixos/tests/kexec.nix
index ec0cd9796b0e..b0d072167fad 100644
--- a/nixos/tests/kexec.nix
+++ b/nixos/tests/kexec.nix
@@ -18,7 +18,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
testScript =
''
machine.wait_for_unit("multi-user.target")
- machine.execute("systemctl kexec &")
+ machine.execute("systemctl kexec >&2 &", check_return=False)
machine.connected = False
machine.wait_for_unit("multi-user.target")
'';
diff --git a/nixos/tests/keymap.nix b/nixos/tests/keymap.nix
index a18a05f90c6d..4306a9ae2cf9 100644
--- a/nixos/tests/keymap.nix
+++ b/nixos/tests/keymap.nix
@@ -46,7 +46,7 @@ let
# set up process that expects all the keys to be entered
machine.succeed(
- "{} {} {} {} &".format(
+ "{} {} {} {} >&2 &".format(
cmd,
"${testReader}",
len(inputs),
diff --git a/nixos/tests/libreswan.nix b/nixos/tests/libreswan.nix
index 17ae60af8eed..56ab908aed9a 100644
--- a/nixos/tests/libreswan.nix
+++ b/nixos/tests/libreswan.nix
@@ -89,7 +89,7 @@ in
"""
Sends a message as Alice to Bob
"""
- bob.execute("nc -lu ::0 1234 >/tmp/msg &")
+ bob.execute("nc -lu ::0 1234 >/tmp/msg >&2 &")
alice.sleep(1)
alice.succeed(f"echo '{msg}' | nc -uw 0 bob 1234")
bob.succeed(f"grep '{msg}' /tmp/msg")
@@ -100,7 +100,7 @@ in
Starts eavesdropping on Alice and Bob
"""
match = "src host alice and dst host bob"
- eve.execute(f"tcpdump -i br0 -c 1 -Avv {match} >/tmp/log &")
+ eve.execute(f"tcpdump -i br0 -c 1 -Avv {match} >/tmp/log >&2 &")
start_all()
@@ -120,7 +120,7 @@ in
alice.succeed("ipsec verify 1>&2")
with subtest("Alice and Bob can start the tunnel"):
- alice.execute("ipsec auto --start tunnel &")
+ alice.execute("ipsec auto --start tunnel >&2 &")
bob.succeed("ipsec auto --start tunnel")
# apparently this is needed to "wake" the tunnel
bob.execute("ping -c1 alice")
diff --git a/nixos/tests/lorri/default.nix b/nixos/tests/lorri/default.nix
index c33c7503993d..147ae999fdb1 100644
--- a/nixos/tests/lorri/default.nix
+++ b/nixos/tests/lorri/default.nix
@@ -14,7 +14,7 @@ import ../make-test-python.nix {
)
# Start the daemon and wait until it is ready
- machine.execute("lorri daemon > lorri.stdout 2> lorri.stderr &")
+ machine.execute("lorri daemon > lorri.stdout 2> lorri.stderr >&2 &")
machine.wait_until_succeeds("grep --fixed-strings 'ready' lorri.stdout")
# Ping the daemon
diff --git a/nixos/tests/lsd.nix b/nixos/tests/lsd.nix
deleted file mode 100644
index c643f2f0b7b7..000000000000
--- a/nixos/tests/lsd.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
- name = "lsd";
- meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
- nodes.lsd = { pkgs, ... }: { environment.systemPackages = [ pkgs.lsd ]; };
-
- testScript = ''
- lsd.succeed('echo "abc" > /tmp/foo')
- assert "4 B /tmp/foo" in lsd.succeed('lsd --classic --blocks "size,name" -l /tmp/foo')
- assert "lsd ${pkgs.lsd.version}" in lsd.succeed("lsd --version")
- '';
-})
diff --git a/nixos/tests/lxd-image-server.nix b/nixos/tests/lxd-image-server.nix
new file mode 100644
index 000000000000..9f060fed38d8
--- /dev/null
+++ b/nixos/tests/lxd-image-server.nix
@@ -0,0 +1,127 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+let
+ # Since we don't have access to the internet during the tests, we have to
+ # pre-fetch lxd containers beforehand.
+ #
+ # I've chosen to import Alpine Linux, because its image is turbo-tiny and,
+ # generally, sufficient for our tests.
+ alpine-meta = pkgs.fetchurl {
+ url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz";
+ hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA=";
+ };
+
+ alpine-rootfs = pkgs.fetchurl {
+ url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz";
+ hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA=";
+ };
+
+ lxd-config = pkgs.writeText "config.yaml" ''
+ storage_pools:
+ - name: default
+ driver: dir
+ config:
+ source: /var/lxd-pool
+
+ networks:
+ - name: lxdbr0
+ type: bridge
+ config:
+ ipv4.address: auto
+ ipv6.address: none
+
+ profiles:
+ - name: default
+ devices:
+ eth0:
+ name: eth0
+ network: lxdbr0
+ type: nic
+ root:
+ path: /
+ pool: default
+ type: disk
+ '';
+
+
+in {
+ name = "lxd-image-server";
+
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ mkg20001 ];
+ };
+
+ machine = { lib, ... }: {
+ virtualisation = {
+ cores = 2;
+
+ memorySize = 2048;
+ diskSize = 4096;
+
+ lxc.lxcfs.enable = true;
+ lxd.enable = true;
+ };
+
+ security.pki.certificates = [
+ (builtins.readFile ./common/acme/server/ca.cert.pem)
+ ];
+
+ services.nginx = {
+ enable = true;
+ };
+
+ services.lxd-image-server = {
+ enable = true;
+ nginx = {
+ enable = true;
+ domain = "acme.test";
+ };
+ };
+
+ services.nginx.virtualHosts."acme.test" = {
+ enableACME = false;
+ sslCertificate = ./common/acme/server/acme.test.cert.pem;
+ sslCertificateKey = ./common/acme/server/acme.test.key.pem;
+ };
+
+ networking.hosts = {
+ "::1" = [ "acme.test" ];
+ };
+ };
+
+ testScript = ''
+ machine.wait_for_unit("sockets.target")
+ machine.wait_for_unit("lxd.service")
+ machine.wait_for_file("/var/lib/lxd/unix.socket")
+
+ # It takes additional second for lxd to settle
+ machine.sleep(1)
+
+ # lxd expects the pool's directory to already exist
+ machine.succeed("mkdir /var/lxd-pool")
+
+
+ machine.succeed(
+ "cat ${lxd-config} | lxd init --preseed"
+ )
+
+ machine.succeed(
+ "lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine"
+ )
+
+ loc = "/var/www/simplestreams/images/iats/alpine/amd64/default/v1"
+
+ with subtest("push image to server"):
+ machine.succeed("lxc launch alpine test")
+ machine.succeed("lxc stop test")
+ machine.succeed("lxc publish --public test --alias=testimg")
+ machine.succeed("lxc image export testimg")
+ machine.succeed("ls >&2")
+ machine.succeed("mkdir -p " + loc)
+ machine.succeed("mv *.tar.gz " + loc)
+
+ with subtest("pull image from server"):
+ machine.succeed("lxc remote add img https://acme.test --protocol=simplestreams")
+ machine.succeed("lxc image list img: >&2")
+ '';
+})
diff --git a/nixos/tests/lxd-image.nix b/nixos/tests/lxd-image.nix
new file mode 100644
index 000000000000..bc8274eebedd
--- /dev/null
+++ b/nixos/tests/lxd-image.nix
@@ -0,0 +1,91 @@
+# This test ensures that the nixOS lxd images builds and functions properly
+# It has been extracted from `lxd.nix` to seperate failures of just the image and the lxd software
+
+import ./make-test-python.nix ({ pkgs, ...} : let
+ release = import ../release.nix {
+ /* configuration = {
+ environment.systemPackages = with pkgs; [ stdenv ]; # inject stdenv so rebuild test works
+ }; */
+ };
+
+ metadata = release.lxdMeta.${pkgs.system};
+ image = release.lxdImage.${pkgs.system};
+
+ lxd-config = pkgs.writeText "config.yaml" ''
+ storage_pools:
+ - name: default
+ driver: dir
+ config:
+ source: /var/lxd-pool
+
+ networks:
+ - name: lxdbr0
+ type: bridge
+ config:
+ ipv4.address: auto
+ ipv6.address: none
+
+ profiles:
+ - name: default
+ devices:
+ eth0:
+ name: eth0
+ network: lxdbr0
+ type: nic
+ root:
+ path: /
+ pool: default
+ type: disk
+ '';
+in {
+ name = "lxd-image";
+
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ mkg20001 ];
+ };
+
+ machine = { lib, ... }: {
+ virtualisation = {
+ # OOMs otherwise
+ memorySize = 1024;
+ # disk full otherwise
+ diskSize = 2048;
+
+ lxc.lxcfs.enable = true;
+ lxd.enable = true;
+ };
+ };
+
+ testScript = ''
+ machine.wait_for_unit("sockets.target")
+ machine.wait_for_unit("lxd.service")
+ machine.wait_for_file("/var/lib/lxd/unix.socket")
+
+ # It takes additional second for lxd to settle
+ machine.sleep(1)
+
+ # lxd expects the pool's directory to already exist
+ machine.succeed("mkdir /var/lxd-pool")
+
+ machine.succeed(
+ "cat ${lxd-config} | lxd init --preseed"
+ )
+
+ # TODO: test custom built container aswell
+
+ with subtest("importing container works"):
+ machine.succeed("lxc image import ${metadata}/*/*.tar.xz ${image}/*/*.tar.xz --alias nixos")
+
+ with subtest("launching container works"):
+ machine.succeed("lxc launch nixos machine -c security.nesting=true")
+ # make sure machine boots up properly
+ machine.sleep(5)
+
+ with subtest("container shell works"):
+ machine.succeed("echo true | lxc exec machine /run/current-system/sw/bin/bash -")
+ machine.succeed("lxc exec machine /run/current-system/sw/bin/true")
+
+ # with subtest("rebuilding works"):
+ # machine.succeed("lxc exec machine /run/current-system/sw/bin/nixos-rebuild switch")
+ '';
+})
diff --git a/nixos/tests/lxd.nix b/nixos/tests/lxd.nix
index 889ca9598e3f..1a3b84a85cf6 100644
--- a/nixos/tests/lxd.nix
+++ b/nixos/tests/lxd.nix
@@ -133,9 +133,5 @@ in {
)
machine.succeed("lxc delete -f test")
-
- with subtest("Unless explicitly changed, lxd leans on iptables"):
- machine.succeed("lsmod | grep ip_tables")
- machine.fail("lsmod | grep nf_tables")
'';
})
diff --git a/nixos/tests/magic-wormhole-mailbox-server.nix b/nixos/tests/magic-wormhole-mailbox-server.nix
index afdf7124fdc5..54088ac60f28 100644
--- a/nixos/tests/magic-wormhole-mailbox-server.nix
+++ b/nixos/tests/magic-wormhole-mailbox-server.nix
@@ -29,7 +29,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
# Create a secret file and send it to Bob
client_alice.succeed("echo mysecret > secretfile")
- client_alice.succeed("wormhole --relay-url=ws://server:4000/v1 send -0 secretfile &")
+ client_alice.succeed("wormhole --relay-url=ws://server:4000/v1 send -0 secretfile >&2 &")
# Retrieve a secret file from Alice and check its content
client_bob.succeed("wormhole --relay-url=ws://server:4000/v1 receive -0 --accept-file")
diff --git a/nixos/tests/matrix-appservice-irc.nix b/nixos/tests/matrix-appservice-irc.nix
index 79b07ef83c57..e1da410af060 100644
--- a/nixos/tests/matrix-appservice-irc.nix
+++ b/nixos/tests/matrix-appservice-irc.nix
@@ -25,7 +25,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
"bind_address" = "";
"port" = 8448;
"resources" = [
- { "compress" = true; "names" = [ "client" "webclient" ]; }
+ { "compress" = true; "names" = [ "client" ]; }
{ "compress" = false; "names" = [ "federation" ]; }
];
"tls" = false;
@@ -85,52 +85,108 @@ import ./make-test-python.nix ({ pkgs, ... }:
client = { pkgs, ... }: {
environment.systemPackages = [
(pkgs.writers.writePython3Bin "do_test"
- { libraries = [ pkgs.python3Packages.matrix-client ]; } ''
- import socket
- from matrix_client.client import MatrixClient
- from time import sleep
+ {
+ libraries = [ pkgs.python3Packages.matrix-nio ];
+ flakeIgnore = [
+ # We don't live in the dark ages anymore.
+ # Languages like Python that are whitespace heavy will overrun
+ # 79 characters..
+ "E501"
+ ];
+ } ''
+ import sys
+ import socket
+ import functools
+ from time import sleep
+ import asyncio
- matrix = MatrixClient("${homeserverUrl}")
- matrix.register_with_password(username="alice", password="foobar")
-
- irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- irc.connect(("ircd", 6667))
- irc.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
- irc.send(b"USER bob bob bob :bob\n")
- irc.send(b"NICK bob\n")
-
- m_room = matrix.join_room("#irc_#test:homeserver")
- irc.send(b"JOIN #test\n")
-
- # plenty of time for the joins to happen
- sleep(10)
-
- m_room.send_text("hi from matrix")
- irc.send(b"PRIVMSG #test :hi from irc \r\n")
-
- print("Waiting for irc message...")
- while True:
- buf = irc.recv(10000)
- if b"hi from matrix" in buf:
- break
-
- print("Waiting for matrix message...")
+ from nio import AsyncClient, RoomMessageText, JoinResponse
- def callback(room, e):
- if "hi from irc" in e['content']['body']:
- exit(0)
+ async def matrix_room_message_text_callback(matrix: AsyncClient, msg: str, _r, e):
+ print("Received matrix text message: ", e)
+ if msg in e.body:
+ print("Received hi from IRC")
+ await matrix.close()
+ exit(0) # Actual exit point
- m_room.add_listener(callback, "m.room.message")
- matrix.listen_forever()
- ''
+ class IRC:
+ def __init__(self):
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect(("ircd", 6667))
+ sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+ sock.send(b"USER bob bob bob :bob\n")
+ sock.send(b"NICK bob\n")
+ self.sock = sock
+
+ def join(self, room: str):
+ self.sock.send(f"JOIN {room}\n".encode())
+
+ def privmsg(self, room: str, msg: str):
+ self.sock.send(f"PRIVMSG {room} :{msg}\n".encode())
+
+ def expect_msg(self, body: str):
+ buffer = ""
+ while True:
+ buf = self.sock.recv(1024).decode()
+ buffer += buf
+ if body in buffer:
+ return
+
+
+ async def run(homeserver: str):
+ irc = IRC()
+
+ matrix = AsyncClient(homeserver)
+ response = await matrix.register("alice", "foobar")
+ print("Matrix register response: ", response)
+
+ response = await matrix.join("#irc_#test:homeserver")
+ print("Matrix join room response:", response)
+ assert isinstance(response, JoinResponse)
+ room_id = response.room_id
+
+ irc.join("#test")
+ # FIXME: what are we waiting on here? Matrix? IRC? Both?
+ # 10s seem bad for busy hydra machines.
+ sleep(10)
+
+ # Exchange messages
+ print("Sending text message to matrix room")
+ response = await matrix.room_send(
+ room_id=room_id,
+ message_type="m.room.message",
+ content={"msgtype": "m.text", "body": "hi from matrix"},
+ )
+ print("Matrix room send response: ", response)
+ irc.privmsg("#test", "hi from irc")
+
+ print("Waiting for the matrix message to appear on the IRC side...")
+ irc.expect_msg("hi from matrix")
+
+ callback = functools.partial(
+ matrix_room_message_text_callback, matrix, "hi from irc"
+ )
+ matrix.add_event_callback(callback, RoomMessageText)
+
+ print("Waiting for matrix message...")
+ await matrix.sync_forever()
+
+ exit(1) # Unreachable
+
+
+ if __name__ == "__main__":
+ asyncio.run(run(sys.argv[1]))
+ ''
)
];
};
};
testScript = ''
+ import pathlib
+
start_all()
ircd.wait_for_unit("ngircd.service")
@@ -156,7 +212,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
homeserver.wait_for_open_port(8448)
with subtest("ensure messages can be exchanged"):
- client.succeed("do_test")
+ client.succeed("do_test ${homeserverUrl} >&2")
'';
-
})
diff --git a/nixos/tests/meilisearch.nix b/nixos/tests/meilisearch.nix
index ef5781458ffd..c379bda74c59 100644
--- a/nixos/tests/meilisearch.nix
+++ b/nixos/tests/meilisearch.nix
@@ -10,7 +10,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
'';
in {
name = "meilisearch";
- meta.maintainers = with lib.maintainers; [ filalex77 ];
+ meta.maintainers = with lib.maintainers; [ Br1ght0ne ];
machine = { ... }: {
environment.systemPackages = with pkgs; [ curl jq ];
diff --git a/nixos/tests/minecraft.nix b/nixos/tests/minecraft.nix
index 3225ebac392a..1c34f04b4df2 100644
--- a/nixos/tests/minecraft.nix
+++ b/nixos/tests/minecraft.nix
@@ -20,7 +20,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
let user = nodes.client.config.users.users.alice;
in ''
client.wait_for_x()
- client.execute("su - alice -c minecraft-launcher &")
+ client.execute("su - alice -c minecraft-launcher >&2 &")
client.wait_for_text("Create a new Microsoft account")
client.sleep(10)
client.screenshot("launcher")
diff --git a/nixos/tests/minio.nix b/nixos/tests/minio.nix
index e49c517098ae..ad51f738d490 100644
--- a/nixos/tests/minio.nix
+++ b/nixos/tests/minio.nix
@@ -28,7 +28,10 @@ in {
machine = { pkgs, ... }: {
services.minio = {
enable = true;
- inherit accessKey secretKey;
+ rootCredentialsFile = pkgs.writeText "minio-credentials" ''
+ MINIO_ROOT_USER=${accessKey}
+ MINIO_ROOT_PASSWORD=${secretKey}
+ '';
};
environment.systemPackages = [ pkgs.minio-client ];
diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix
index fb19b7060562..0587912c9a22 100644
--- a/nixos/tests/misc.nix
+++ b/nixos/tests/misc.nix
@@ -50,17 +50,18 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
def get_path_info(path):
- result = machine.succeed(f"nix path-info --json {path}")
+ result = machine.succeed(f"nix --option experimental-features nix-command path-info --json {path}")
parsed = json.loads(result)
return parsed
with subtest("nix-db"):
info = get_path_info("${foo}")
+ print(info)
if (
info[0]["narHash"]
- != "sha256:0afw0d9j1hvwiz066z93jiddc33nxg6i6qyp26vnqyglpyfivlq5"
+ != "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
):
raise Exception("narHash not set")
diff --git a/nixos/tests/mosquitto.nix b/nixos/tests/mosquitto.nix
index e29bd559ed9b..36cc8e3e3d9b 100644
--- a/nixos/tests/mosquitto.nix
+++ b/nixos/tests/mosquitto.nix
@@ -2,13 +2,60 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
let
port = 1888;
- username = "mqtt";
+ tlsPort = 1889;
+ anonPort = 1890;
password = "VERY_secret";
+ hashedPassword = "$7$101$/WJc4Mp+I+uYE9sR$o7z9rD1EYXHPwEP5GqQj6A7k4W1yVbePlb8TqNcuOLV9WNCiDgwHOB0JHC1WCtdkssqTBduBNUnUGd6kmZvDSw==";
topic = "test/foo";
+
+ snakeOil = pkgs.runCommand "snakeoil-certs" {
+ buildInputs = [ pkgs.gnutls.bin ];
+ caTemplate = pkgs.writeText "snakeoil-ca.template" ''
+ cn = server
+ expiration_days = -1
+ cert_signing_key
+ ca
+ '';
+ certTemplate = pkgs.writeText "snakeoil-cert.template" ''
+ cn = server
+ expiration_days = -1
+ tls_www_server
+ encryption_key
+ signing_key
+ '';
+ userCertTemplate = pkgs.writeText "snakeoil-user-cert.template" ''
+ organization = snakeoil
+ cn = client1
+ expiration_days = -1
+ tls_www_client
+ encryption_key
+ signing_key
+ '';
+ } ''
+ mkdir "$out"
+
+ certtool -p --bits 2048 --outfile "$out/ca.key"
+ certtool -s --template "$caTemplate" --load-privkey "$out/ca.key" \
+ --outfile "$out/ca.crt"
+ certtool -p --bits 2048 --outfile "$out/server.key"
+ certtool -c --template "$certTemplate" \
+ --load-ca-privkey "$out/ca.key" \
+ --load-ca-certificate "$out/ca.crt" \
+ --load-privkey "$out/server.key" \
+ --outfile "$out/server.crt"
+
+ certtool -p --bits 2048 --outfile "$out/client1.key"
+ certtool -c --template "$userCertTemplate" \
+ --load-privkey "$out/client1.key" \
+ --load-ca-privkey "$out/ca.key" \
+ --load-ca-certificate "$out/ca.crt" \
+ --outfile "$out/client1.crt"
+ '';
+
in {
name = "mosquitto";
meta = with pkgs.lib; {
- maintainers = with maintainers; [ peterhoeg ];
+ maintainers = with maintainers; [ pennae peterhoeg ];
};
nodes = let
@@ -17,77 +64,145 @@ in {
};
in {
server = { pkgs, ... }: {
- networking.firewall.allowedTCPPorts = [ port ];
+ networking.firewall.allowedTCPPorts = [ port tlsPort anonPort ];
services.mosquitto = {
- inherit port;
enable = true;
- host = "0.0.0.0";
- checkPasswords = true;
- users.${username} = {
- inherit password;
- acl = [
- "topic readwrite ${topic}"
- ];
+ settings = {
+ sys_interval = 1;
};
- };
+ listeners = [
+ {
+ inherit port;
+ users = {
+ password_store = {
+ inherit password;
+ };
+ password_file = {
+ passwordFile = pkgs.writeText "mqtt-password" password;
+ };
+ hashed_store = {
+ inherit hashedPassword;
+ };
+ hashed_file = {
+ hashedPasswordFile = pkgs.writeText "mqtt-hashed-password" hashedPassword;
+ };
- # disable private /tmp for this test
- systemd.services.mosquitto.serviceConfig.PrivateTmp = lib.mkForce false;
+ reader = {
+ inherit password;
+ acl = [
+ "read ${topic}"
+ "read $SYS/#" # so we always have something to read
+ ];
+ };
+ writer = {
+ inherit password;
+ acl = [ "write ${topic}" ];
+ };
+ };
+ }
+ {
+ port = tlsPort;
+ users.client1 = {
+ acl = [ "read $SYS/#" ];
+ };
+ settings = {
+ cafile = "${snakeOil}/ca.crt";
+ certfile = "${snakeOil}/server.crt";
+ keyfile = "${snakeOil}/server.key";
+ require_certificate = true;
+ use_identity_as_username = true;
+ };
+ }
+ {
+ port = anonPort;
+ omitPasswordAuth = true;
+ settings.allow_anonymous = true;
+ acl = [ "pattern read #" ];
+ users = {
+ anonWriter = {
+ password = "" + password;
+ acl = [ "write ${topic}" ];
+ };
+ };
+ }
+ ];
+ };
};
client1 = client;
client2 = client;
};
- testScript = let
- file = "/tmp/msg";
- in ''
- def mosquitto_cmd(binary):
+ testScript = ''
+ def mosquitto_cmd(binary, user, topic, port):
return (
- "${pkgs.mosquitto}/bin/mosquitto_{} "
+ "mosquitto_{} "
"-V mqttv311 "
"-h server "
- "-p ${toString port} "
- "-u ${username} "
+ "-p {} "
+ "-u {} "
"-P '${password}' "
- "-t ${topic}"
- ).format(binary)
+ "-t '{}'"
+ ).format(binary, port, user, topic)
- def publish(args):
- return "{} {}".format(mosquitto_cmd("pub"), args)
+ def publish(args, user, topic="${topic}", port=${toString port}):
+ return "{} {}".format(mosquitto_cmd("pub", user, topic, port), args)
+ def subscribe(args, user, topic="${topic}", port=${toString port}):
+ return "{} -W 5 -C 1 {}".format(mosquitto_cmd("sub", user, topic, port), args)
- def subscribe(args):
- return "({} -C 1 {} | tee ${file} &)".format(mosquitto_cmd("sub"), args)
+ def parallel(*fns):
+ from threading import Thread
+ threads = [ Thread(target=fn) for fn in fns ]
+ for t in threads: t.start()
+ for t in threads: t.join()
start_all()
server.wait_for_unit("mosquitto.service")
- for machine in server, client1, client2:
- machine.fail("test -f ${file}")
+ with subtest("check passwords"):
+ client1.succeed(publish("-m test", "password_store"))
+ client1.succeed(publish("-m test", "password_file"))
+ client1.succeed(publish("-m test", "hashed_store"))
+ client1.succeed(publish("-m test", "hashed_file"))
- # QoS = 0, so only one subscribers should get it
- server.execute(subscribe("-q 0"))
+ with subtest("check acl"):
+ client1.succeed(subscribe("", "reader", topic="$SYS/#"))
+ client1.fail(subscribe("", "writer", topic="$SYS/#"))
- # we need to give the subscribers some time to connect
- client2.execute("sleep 5")
- client2.succeed(publish("-m FOO -q 0"))
+ parallel(
+ lambda: client1.succeed(subscribe("-i 3688cdd7-aa07-42a4-be22-cb9352917e40", "reader")),
+ lambda: [
+ server.wait_for_console_text("3688cdd7-aa07-42a4-be22-cb9352917e40"),
+ client2.succeed(publish("-m test", "writer"))
+ ])
- server.wait_until_succeeds("grep -q FOO ${file}")
- server.execute("rm ${file}")
+ parallel(
+ lambda: client1.fail(subscribe("-i 24ff16a2-ae33-4a51-9098-1b417153c712", "reader")),
+ lambda: [
+ server.wait_for_console_text("24ff16a2-ae33-4a51-9098-1b417153c712"),
+ client2.succeed(publish("-m test", "reader"))
+ ])
- # QoS = 1, so both subscribers should get it
- server.execute(subscribe("-q 1"))
- client1.execute(subscribe("-q 1"))
+ with subtest("check tls"):
+ client1.succeed(
+ subscribe(
+ "--cafile ${snakeOil}/ca.crt "
+ "--cert ${snakeOil}/client1.crt "
+ "--key ${snakeOil}/client1.key",
+ topic="$SYS/#",
+ port=${toString tlsPort},
+ user="no_such_user"))
- # we need to give the subscribers some time to connect
- client2.execute("sleep 5")
- client2.succeed(publish("-m BAR -q 1"))
-
- for machine in server, client1:
- machine.wait_until_succeeds("grep -q BAR ${file}")
- machine.execute("rm ${file}")
+ with subtest("check omitPasswordAuth"):
+ parallel(
+ lambda: client1.succeed(subscribe("-i fd56032c-d9cb-4813-a3b4-6be0e04c8fc3",
+ "anonReader", port=${toString anonPort})),
+ lambda: [
+ server.wait_for_console_text("fd56032c-d9cb-4813-a3b4-6be0e04c8fc3"),
+ client2.succeed(publish("-m test", "anonWriter", port=${toString anonPort}))
+ ])
'';
})
diff --git a/nixos/tests/mpv.nix b/nixos/tests/mpv.nix
index bcfc17cf3328..a4803f3cb5b5 100644
--- a/nixos/tests/mpv.nix
+++ b/nixos/tests/mpv.nix
@@ -14,14 +14,14 @@ in
{
environment.systemPackages = [
pkgs.curl
- (pkgs.mpv-with-scripts.override {
+ (pkgs.wrapMpv pkgs.mpv-unwrapped {
scripts = [ pkgs.mpvScripts.simple-mpv-webui ];
})
];
};
testScript = ''
- machine.execute("set -m; mpv --script-opts=webui-port=${port} --idle=yes &")
+ machine.execute("set -m; mpv --script-opts=webui-port=${port} --idle=yes >&2 &")
machine.wait_for_open_port(${port})
assert "simple-mpv-webui" in machine.succeed("curl -s localhost:${port}")
'';
diff --git a/nixos/tests/mumble.nix b/nixos/tests/mumble.nix
index 717f3c789288..2b5cc20163bc 100644
--- a/nixos/tests/mumble.nix
+++ b/nixos/tests/mumble.nix
@@ -38,8 +38,8 @@ in
client1.wait_for_x()
client2.wait_for_x()
- client1.execute("mumble mumble://client1:testpassword\@server/test &")
- client2.execute("mumble mumble://client2:testpassword\@server/test &")
+ client1.execute("mumble mumble://client1:testpassword\@server/test >&2 &")
+ client2.execute("mumble mumble://client2:testpassword\@server/test >&2 &")
# cancel client audio configuration
client1.wait_for_window(r"Audio Tuning Wizard")
diff --git a/nixos/tests/musescore.nix b/nixos/tests/musescore.nix
index 96481a9a8bf4..7fd80d70df12 100644
--- a/nixos/tests/musescore.nix
+++ b/nixos/tests/musescore.nix
@@ -44,7 +44,7 @@ in
)
# Start MuseScore window
- machine.execute("DISPLAY=:0.0 mscore &")
+ machine.execute("DISPLAY=:0.0 mscore >&2 &")
# Wait until MuseScore has launched
machine.wait_for_window("MuseScore")
diff --git a/nixos/tests/mysql/mariadb-galera-mariabackup.nix b/nixos/tests/mysql/mariadb-galera-mariabackup.nix
index 1c73bc854a57..10682c361d1d 100644
--- a/nixos/tests/mysql/mariadb-galera-mariabackup.nix
+++ b/nixos/tests/mysql/mariadb-galera-mariabackup.nix
@@ -4,6 +4,16 @@ let
mysqlenv-common = pkgs.buildEnv { name = "mysql-path-env-common"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
mysqlenv-mariabackup = pkgs.buildEnv { name = "mysql-path-env-mariabackup"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ gzip iproute2 netcat procps pv socat ]; };
+ # Common user configuration
+ users = { ... }:
+ {
+ users.users.testuser = {
+ isSystemUser = true;
+ group = "testusers";
+ };
+ users.groups.testusers = { };
+ };
+
in {
name = "mariadb-galera-mariabackup";
meta = with pkgs.lib.maintainers; {
@@ -17,6 +27,7 @@ in {
galera_01 =
{ pkgs, ... }:
{
+ imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
@@ -31,7 +42,6 @@ in {
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
- users.users.testuser = { isSystemUser = true; };
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-mariabackup ];
};
@@ -75,6 +85,7 @@ in {
galera_02 =
{ pkgs, ... }:
{
+ imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
@@ -89,7 +100,6 @@ in {
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
- users.users.testuser = { isSystemUser = true; };
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-mariabackup ];
};
@@ -122,6 +132,7 @@ in {
galera_03 =
{ pkgs, ... }:
{
+ imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
@@ -136,7 +147,6 @@ in {
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
- users.users.testuser = { isSystemUser = true; };
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-mariabackup ];
};
diff --git a/nixos/tests/mysql/mariadb-galera-rsync.nix b/nixos/tests/mysql/mariadb-galera-rsync.nix
index 709a8b5085cb..701e01e88718 100644
--- a/nixos/tests/mysql/mariadb-galera-rsync.nix
+++ b/nixos/tests/mysql/mariadb-galera-rsync.nix
@@ -4,6 +4,16 @@ let
mysqlenv-common = pkgs.buildEnv { name = "mysql-path-env-common"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
mysqlenv-rsync = pkgs.buildEnv { name = "mysql-path-env-rsync"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ lsof procps rsync stunnel ]; };
+ # Common user configuration
+ users = { ... }:
+ {
+ users.users.testuser = {
+ isSystemUser = true;
+ group = "testusers";
+ };
+ users.groups.testusers = { };
+ };
+
in {
name = "mariadb-galera-rsync";
meta = with pkgs.lib.maintainers; {
@@ -17,6 +27,7 @@ in {
galera_04 =
{ pkgs, ... }:
{
+ imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
@@ -31,7 +42,6 @@ in {
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
- users.users.testuser = { isSystemUser = true; };
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-rsync ];
};
@@ -70,6 +80,7 @@ in {
galera_05 =
{ pkgs, ... }:
{
+ imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
@@ -84,7 +95,6 @@ in {
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
- users.users.testuser = { isSystemUser = true; };
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-rsync ];
};
@@ -116,6 +126,7 @@ in {
galera_06 =
{ pkgs, ... }:
{
+ imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
@@ -130,7 +141,6 @@ in {
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
- users.users.testuser = { isSystemUser = true; };
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-rsync ];
};
diff --git a/nixos/tests/mysql/mysql.nix b/nixos/tests/mysql/mysql.nix
index 2ec9c3d50a3c..dce5fa26acf7 100644
--- a/nixos/tests/mysql/mysql.nix
+++ b/nixos/tests/mysql/mysql.nix
@@ -1,4 +1,26 @@
-import ./../make-test-python.nix ({ pkgs, ...} : {
+import ./../make-test-python.nix ({ pkgs, ...}:
+
+
+let
+ # Setup common users
+ users = { ... }:
+ {
+ users.groups.testusers = { };
+
+ users.users.testuser = {
+ isSystemUser = true;
+ group = "testusers";
+ };
+
+ users.users.testuser2 = {
+ isSystemUser = true;
+ group = "testusers";
+ };
+ };
+
+in
+
+{
name = "mysql";
meta = with pkgs.lib.maintainers; {
maintainers = [ eelco shlevy ];
@@ -9,8 +31,8 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
{ pkgs, ... }:
{
- users.users.testuser = { isSystemUser = true; };
- users.users.testuser2 = { isSystemUser = true; };
+ imports = [ users ];
+
services.mysql.enable = true;
services.mysql.initialDatabases = [
{ name = "testdb3"; schema = ./testdb.sql; }
@@ -40,12 +62,12 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
{ pkgs, ... }:
{
+ imports = [ users ];
+
# prevent oom:
# Kernel panic - not syncing: Out of memory: compulsory panic_on_oom is enabled
virtualisation.memorySize = 1024;
- users.users.testuser = { isSystemUser = true; };
- users.users.testuser2 = { isSystemUser = true; };
services.mysql.enable = true;
services.mysql.initialDatabases = [
{ name = "testdb3"; schema = ./testdb.sql; }
@@ -75,8 +97,8 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
{ pkgs, ... }:
{
- users.users.testuser = { isSystemUser = true; };
- users.users.testuser2 = { isSystemUser = true; };
+ imports = [ users ];
+
services.mysql.enable = true;
services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
ALTER USER root@localhost IDENTIFIED WITH unix_socket;
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 22f7ca5a9b82..647c8942b37d 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -8,7 +8,7 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
with pkgs.lib;
let
- qemu-flags = import ../lib/qemu-flags.nix { inherit pkgs; };
+ qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
router = { config, pkgs, lib, ... }:
with pkgs.lib;
@@ -42,7 +42,7 @@ let
machines = flip map vlanIfs (vlan:
{
hostName = "client${toString vlan}";
- ethernetAddress = qemu-flags.qemuNicMac vlan 1;
+ ethernetAddress = qemu-common.qemuNicMac vlan 1;
ipAddress = "192.168.${toString vlan}.2";
}
);
@@ -380,12 +380,57 @@ let
router.wait_until_succeeds("ping -c 1 192.168.1.3")
'';
};
+ fou = {
+ name = "foo-over-udp";
+ nodes.machine = { ... }: {
+ virtualisation.vlans = [ 1 ];
+ networking = {
+ useNetworkd = networkd;
+ useDHCP = false;
+ interfaces.eth1.ipv4.addresses = mkOverride 0
+ [ { address = "192.168.1.1"; prefixLength = 24; } ];
+ fooOverUDP = {
+ fou1 = { port = 9001; };
+ fou2 = { port = 9002; protocol = 41; };
+ fou3 = mkIf (!networkd)
+ { port = 9003; local.address = "192.168.1.1"; };
+ fou4 = mkIf (!networkd)
+ { port = 9004; local = { address = "192.168.1.1"; dev = "eth1"; }; };
+ };
+ };
+ systemd.services = {
+ fou3-fou-encap.after = optional (!networkd) "network-addresses-eth1.service";
+ };
+ };
+ testScript = { ... }:
+ ''
+ import json
+
+ machine.wait_for_unit("network.target")
+ fous = json.loads(machine.succeed("ip -json fou show"))
+ assert {"port": 9001, "gue": None, "family": "inet"} in fous, "fou1 exists"
+ assert {"port": 9002, "ipproto": 41, "family": "inet"} in fous, "fou2 exists"
+ '' + optionalString (!networkd) ''
+ assert {
+ "port": 9003,
+ "gue": None,
+ "family": "inet",
+ "local": "192.168.1.1",
+ } in fous, "fou3 exists"
+ assert {
+ "port": 9004,
+ "gue": None,
+ "family": "inet",
+ "local": "192.168.1.1",
+ "dev": "eth1",
+ } in fous, "fou4 exists"
+ '';
+ };
sit = let
node = { address4, remote, address6 }: { pkgs, ... }: with pkgs.lib; {
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
- firewall.enable = false;
useDHCP = false;
sits.sit = {
inherit remote;
@@ -400,8 +445,30 @@ let
};
in {
name = "Sit";
- nodes.client1 = node { address4 = "192.168.1.1"; remote = "192.168.1.2"; address6 = "fc00::1"; };
- nodes.client2 = node { address4 = "192.168.1.2"; remote = "192.168.1.1"; address6 = "fc00::2"; };
+ # note on firewalling: the two nodes are explicitly asymmetric.
+ # client1 sends SIT packets in UDP, but accepts only proto-41 incoming.
+ # client2 does the reverse, sending in proto-41 and accepting only UDP incoming.
+ # that way we'll notice when either SIT itself or FOU breaks.
+ nodes.client1 = args@{ pkgs, ... }:
+ mkMerge [
+ (node { address4 = "192.168.1.1"; remote = "192.168.1.2"; address6 = "fc00::1"; } args)
+ {
+ networking = {
+ firewall.extraCommands = "iptables -A INPUT -p 41 -j ACCEPT";
+ sits.sit.encapsulation = { type = "fou"; port = 9001; };
+ };
+ }
+ ];
+ nodes.client2 = args@{ pkgs, ... }:
+ mkMerge [
+ (node { address4 = "192.168.1.2"; remote = "192.168.1.1"; address6 = "fc00::2"; } args)
+ {
+ networking = {
+ firewall.allowedUDPPorts = [ 9001 ];
+ fooOverUDP.fou1 = { port = 9001; protocol = 41; };
+ };
+ }
+ ];
testScript = { ... }:
''
start_all()
diff --git a/nixos/tests/nextcloud/basic.nix b/nixos/tests/nextcloud/basic.nix
index c4ce34748ace..eb37470a4c7b 100644
--- a/nixos/tests/nextcloud/basic.nix
+++ b/nixos/tests/nextcloud/basic.nix
@@ -1,4 +1,6 @@
-import ../make-test-python.nix ({ pkgs, ...}: let
+args@{ pkgs, nextcloudVersion ? 22, ... }:
+
+(import ../make-test-python.nix ({ pkgs, ...}: let
adminpass = "notproduction";
adminuser = "root";
in {
@@ -31,14 +33,20 @@ in {
in {
networking.firewall.allowedTCPPorts = [ 80 ];
+ systemd.tmpfiles.rules = [
+ "d /var/lib/nextcloud-data 0750 nextcloud nginx - -"
+ ];
+
services.nextcloud = {
enable = true;
+ datadir = "/var/lib/nextcloud-data";
hostName = "nextcloud";
config = {
# Don't inherit adminuser since "root" is supposed to be the default
- inherit adminpass;
+ adminpassFile = "${pkgs.writeText "adminpass" adminpass}"; # Don't try this at home!
dbtableprefix = "nixos_";
};
+ package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
autoUpdateApps = {
enable = true;
startAt = "20:00";
@@ -95,9 +103,10 @@ in {
"${withRcloneEnv} ${copySharedFile}"
)
client.wait_for_unit("multi-user.target")
+ nextcloud.succeed("test -f /var/lib/nextcloud-data/data/root/files/test-shared-file")
client.succeed(
"${withRcloneEnv} ${diffSharedFile}"
)
assert "hi" in client.succeed("cat /mnt/dav/test-shared-file")
'';
-})
+})) args
diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix
index e4c7a70606cf..bd7a7aacdc91 100644
--- a/nixos/tests/nextcloud/default.nix
+++ b/nixos/tests/nextcloud/default.nix
@@ -2,8 +2,20 @@
config ? {},
pkgs ? import ../../.. { inherit system config; }
}:
-{
- basic = import ./basic.nix { inherit system pkgs; };
- with-postgresql-and-redis = import ./with-postgresql-and-redis.nix { inherit system pkgs; };
- with-mysql-and-memcached = import ./with-mysql-and-memcached.nix { inherit system pkgs; };
-}
+
+with pkgs.lib;
+
+foldl
+ (matrix: ver: matrix // {
+ "basic${toString ver}" = import ./basic.nix { inherit system pkgs; nextcloudVersion = ver; };
+ "with-postgresql-and-redis${toString ver}" = import ./with-postgresql-and-redis.nix {
+ inherit system pkgs;
+ nextcloudVersion = ver;
+ };
+ "with-mysql-and-memcached${toString ver}" = import ./with-mysql-and-memcached.nix {
+ inherit system pkgs;
+ nextcloudVersion = ver;
+ };
+ })
+ {}
+ [ 21 22 ]
diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
index 82041874de43..80cb63df5dbe 100644
--- a/nixos/tests/nextcloud/with-mysql-and-memcached.nix
+++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
@@ -1,4 +1,6 @@
-import ../make-test-python.nix ({ pkgs, ...}: let
+args@{ pkgs, nextcloudVersion ? 22, ... }:
+
+(import ../make-test-python.nix ({ pkgs, ...}: let
adminpass = "hunter2";
adminuser = "root";
in {
@@ -18,6 +20,7 @@ in {
enable = true;
hostName = "nextcloud";
https = true;
+ package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
caching = {
apcu = true;
redis = false;
@@ -29,9 +32,9 @@ in {
dbuser = "nextcloud";
dbhost = "127.0.0.1";
dbport = 3306;
- dbpass = "hunter2";
+ dbpassFile = "${pkgs.writeText "dbpass" "hunter2" }";
# Don't inherit adminuser since "root" is supposed to be the default
- inherit adminpass;
+ adminpassFile = "${pkgs.writeText "adminpass" adminpass}"; # Don't try this at home!
};
};
@@ -39,6 +42,13 @@ in {
enable = true;
bind = "127.0.0.1";
package = pkgs.mariadb;
+
+ # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6,
+ # this is a workaround.
+ # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
+ extraOptions = ''
+ innodb_read_only_compressed=0
+ '';
initialScript = pkgs.writeText "mysql-init" ''
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'hunter2';
CREATE DATABASE IF NOT EXISTS nextcloud;
@@ -96,4 +106,4 @@ in {
"${withRcloneEnv} ${diffSharedFile}"
)
'';
-})
+})) args
diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
index 81af620598ee..36a69fda505b 100644
--- a/nixos/tests/nextcloud/with-postgresql-and-redis.nix
+++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -1,4 +1,6 @@
-import ../make-test-python.nix ({ pkgs, ...}: let
+args@{ pkgs, nextcloudVersion ? 22, ... }:
+
+(import ../make-test-python.nix ({ pkgs, ...}: let
adminpass = "hunter2";
adminuser = "custom-admin-username";
in {
@@ -17,6 +19,7 @@ in {
services.nextcloud = {
enable = true;
hostName = "nextcloud";
+ package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
caching = {
apcu = false;
redis = true;
@@ -96,4 +99,4 @@ in {
"${withRcloneEnv} ${diffSharedFile}"
)
'';
-})
+})) args
diff --git a/nixos/tests/nfs/simple.nix b/nixos/tests/nfs/simple.nix
index 6a01089c0828..1e319a8eec81 100644
--- a/nixos/tests/nfs/simple.nix
+++ b/nixos/tests/nfs/simple.nix
@@ -66,7 +66,7 @@ in
client2.succeed("time flock -n -s /data/lock true")
with subtest("client 2 fails to acquire lock held by client 1"):
- client1.succeed("flock -x /data/lock -c 'touch locked; sleep 100000' &")
+ client1.succeed("flock -x /data/lock -c 'touch locked; sleep 100000' >&2 &")
client1.wait_for_file("locked")
client2.fail("flock -n -s /data/lock true")
diff --git a/nixos/tests/nginx-etag.nix b/nixos/tests/nginx-etag.nix
index 63ab2e0c6c27..a7bfc0d26958 100644
--- a/nixos/tests/nginx-etag.nix
+++ b/nixos/tests/nginx-etag.nix
@@ -76,7 +76,7 @@ import ./make-test-python.nix {
server.wait_for_unit("nginx.service")
client.wait_for_unit("multi-user.target")
- client.execute("test-runner &")
+ client.execute("test-runner >&2 &")
client.wait_for_file("/tmp/passed_stage1")
server.succeed(
diff --git a/nixos/tests/nixops/default.nix b/nixos/tests/nixops/default.nix
new file mode 100644
index 000000000000..3fb81906a522
--- /dev/null
+++ b/nixos/tests/nixops/default.nix
@@ -0,0 +1,115 @@
+{ pkgs, ... }:
+let
+ inherit (pkgs) lib;
+
+ tests = {
+ # TODO: uncomment stable
+ # - Blocked on https://github.com/NixOS/nixpkgs/issues/138584 which has a
+ # PR in staging: https://github.com/NixOS/nixpkgs/pull/139986
+ # - Alternatively, blocked on a NixOps 2 release
+ # https://github.com/NixOS/nixops/issues/1242
+ # stable = testsLegacyNetwork { nixopsPkg = pkgs.nixops; };
+ unstable = testsForPackage { nixopsPkg = pkgs.nixopsUnstable; };
+
+ # inherit testsForPackage;
+ };
+
+ testsForPackage = lib.makeOverridable (args: lib.recurseIntoAttrs {
+ legacyNetwork = testLegacyNetwork args;
+ });
+
+ testLegacyNetwork = { nixopsPkg }: pkgs.nixosTest ({
+ nodes = {
+ deployer = { config, lib, nodes, pkgs, ... }: {
+ imports = [ ../../modules/installer/cd-dvd/channel.nix ];
+ environment.systemPackages = [ nixopsPkg ];
+ nix.binaryCaches = lib.mkForce [ ];
+ users.users.person.isNormalUser = true;
+ virtualisation.writableStore = true;
+ virtualisation.memorySize = 1024 /*MiB*/;
+ virtualisation.additionalPaths = [
+ pkgs.hello
+ pkgs.figlet
+
+ # This includes build dependencies all the way down. Not efficient,
+ # but we do need build deps to an *arbitrary* depth, which is hard to
+ # determine.
+ (allDrvOutputs nodes.server.config.system.build.toplevel)
+ ];
+ };
+ server = { lib, ... }: {
+ imports = [ ./legacy/base-configuration.nix ];
+ };
+ };
+
+ testScript = { nodes }:
+ let
+ deployerSetup = pkgs.writeScript "deployerSetup" ''
+ #!${pkgs.runtimeShell}
+ set -eux -o pipefail
+ cp --no-preserve=mode -r ${./legacy} unicorn
+ cp --no-preserve=mode ${../ssh-keys.nix} unicorn/ssh-keys.nix
+ mkdir -p ~/.ssh
+ cp ${snakeOilPrivateKey} ~/.ssh/id_ed25519
+ chmod 0400 ~/.ssh/id_ed25519
+ '';
+ serverNetworkJSON = pkgs.writeText "server-network.json"
+ (builtins.toJSON nodes.server.config.system.build.networkConfig);
+ in
+ ''
+ import shlex
+
+ def deployer_do(cmd):
+ cmd = shlex.quote(cmd)
+ return deployer.succeed(f"su person -l -c {cmd} &>/dev/console")
+
+ start_all()
+
+ deployer_do("cat /etc/hosts")
+
+ deployer_do("${deployerSetup}")
+ deployer_do("cp ${serverNetworkJSON} unicorn/server-network.json")
+
+ # Establish that ssh works, regardless of nixops
+ # Easy way to accept the server host key too.
+ server.wait_for_open_port(22)
+ deployer.wait_for_unit("network.target")
+
+ # Put newlines on console, to flush the console reader's line buffer
+ # in case nixops' last output did not end in a newline, as is the case
+ # with a status line (if implemented?)
+ deployer.succeed("while sleep 60s; do echo [60s passed]; done >&2 &")
+
+ deployer_do("cd ~/unicorn; ssh -oStrictHostKeyChecking=accept-new root@server echo hi")
+
+ # Create and deploy
+ deployer_do("cd ~/unicorn; nixops create")
+
+ deployer_do("cd ~/unicorn; nixops deploy --confirm")
+
+ deployer_do("cd ~/unicorn; nixops ssh server 'hello | figlet'")
+ '';
+ });
+
+ inherit (import ../ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
+
+ /*
+ Return a store path with a closure containing everything including
+ derivations and all build dependency outputs, all the way down.
+ */
+ allDrvOutputs = pkg:
+ let name = lib.strings.sanitizeDerivationName "allDrvOutputs-${pkg.pname or pkg.name or "unknown"}";
+ in
+ pkgs.runCommand name { refs = pkgs.writeReferencesToFile pkg.drvPath; } ''
+ touch $out
+ while read ref; do
+ case $ref in
+ *.drv)
+ cat $ref >>$out
+ ;;
+ esac
+ done <$refs
+ '';
+
+in
+tests
diff --git a/nixos/tests/nixops/legacy/base-configuration.nix b/nixos/tests/nixops/legacy/base-configuration.nix
new file mode 100644
index 000000000000..dba960f595c2
--- /dev/null
+++ b/nixos/tests/nixops/legacy/base-configuration.nix
@@ -0,0 +1,31 @@
+{ lib, modulesPath, pkgs, ... }:
+let
+ ssh-keys =
+ if builtins.pathExists ../../ssh-keys.nix
+ then # Outside sandbox
+ ../../ssh-keys.nix
+ else # In sandbox
+ ./ssh-keys.nix;
+
+ inherit (import ssh-keys pkgs)
+ snakeOilPrivateKey snakeOilPublicKey;
+in
+{
+ imports = [
+ (modulesPath + "/virtualisation/qemu-vm.nix")
+ (modulesPath + "/testing/test-instrumentation.nix")
+ ];
+ virtualisation.writableStore = true;
+ nix.binaryCaches = lib.mkForce [ ];
+ virtualisation.graphics = false;
+ documentation.enable = false;
+ services.qemuGuest.enable = true;
+ boot.loader.grub.enable = false;
+
+ services.openssh.enable = true;
+ users.users.root.openssh.authorizedKeys.keys = [
+ snakeOilPublicKey
+ ];
+ security.pam.services.sshd.limits =
+ [{ domain = "*"; item = "memlock"; type = "-"; value = 1024; }];
+}
diff --git a/nixos/tests/nixops/legacy/nixops.nix b/nixos/tests/nixops/legacy/nixops.nix
new file mode 100644
index 000000000000..795dc2a71825
--- /dev/null
+++ b/nixos/tests/nixops/legacy/nixops.nix
@@ -0,0 +1,15 @@
+{
+ network = {
+ description = "Legacy Network using and legacy state.";
+ # NB this is not really what makes it a legacy network; lack of flakes is.
+ storage.legacy = { };
+ };
+ server = { lib, pkgs, ... }: {
+ deployment.targetEnv = "none";
+ imports = [
+ ./base-configuration.nix
+ (lib.modules.importJSON ./server-network.json)
+ ];
+ environment.systemPackages = [ pkgs.hello pkgs.figlet ];
+ };
+}
diff --git a/nixos/tests/odoo.nix b/nixos/tests/odoo.nix
new file mode 100644
index 000000000000..96e3405482b4
--- /dev/null
+++ b/nixos/tests/odoo.nix
@@ -0,0 +1,27 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
+ name = "odoo";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ mkg20001 ];
+ };
+
+ nodes = {
+ server = { ... }: {
+ services.nginx = {
+ enable = true;
+ recommendedProxySettings = true;
+ };
+
+ services.odoo = {
+ enable = true;
+ domain = "localhost";
+ };
+ };
+ };
+
+ testScript = { nodes, ... }:
+ ''
+ server.wait_for_unit("odoo.service")
+ server.wait_until_succeeds("curl -s http://localhost:8069/web/database/selector | grep 'Odoo'")
+ server.succeed("curl -s http://localhost/web/database/selector | grep 'Odoo'")
+ '';
+})
diff --git a/nixos/tests/openarena.nix b/nixos/tests/openarena.nix
index 461a35e89fe7..63dc1b9a6857 100644
--- a/nixos/tests/openarena.nix
+++ b/nixos/tests/openarena.nix
@@ -38,8 +38,8 @@ in {
client1.wait_for_x()
client2.wait_for_x()
- client1.execute("openarena +set r_fullscreen 0 +set name Foo +connect server &")
- client2.execute("openarena +set r_fullscreen 0 +set name Bar +connect server &")
+ client1.execute("openarena +set r_fullscreen 0 +set name Foo +connect server >&2 &")
+ client2.execute("openarena +set r_fullscreen 0 +set name Bar +connect server >&2 &")
server.wait_until_succeeds(
"journalctl -u openarena -e | grep -q 'Foo.*entered the game'"
diff --git a/nixos/tests/openresty-lua.nix b/nixos/tests/openresty-lua.nix
new file mode 100644
index 000000000000..b177b3c194d7
--- /dev/null
+++ b/nixos/tests/openresty-lua.nix
@@ -0,0 +1,55 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+ let
+ lualibs = [
+ pkgs.lua.pkgs.markdown
+ ];
+
+ getPath = lib: type: "${lib}/share/lua/${pkgs.lua.luaversion}/?.${type}";
+ getLuaPath = lib: getPath lib "lua";
+ luaPath = lib.concatStringsSep ";" (map getLuaPath lualibs);
+ in
+ {
+ name = "openresty-lua";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ bbigras ];
+ };
+
+ nodes = {
+ webserver = { pkgs, lib, ... }: {
+ services.nginx = {
+ enable = true;
+ package = pkgs.openresty;
+
+ commonHttpConfig = ''
+ lua_package_path '${luaPath};;';
+ '';
+
+ virtualHosts."default" = {
+ default = true;
+ locations."/" = {
+ extraConfig = ''
+ default_type text/html;
+ access_by_lua '
+ local markdown = require "markdown"
+ markdown("source")
+ ';
+ '';
+ };
+ };
+ };
+ };
+ };
+
+ testScript = { nodes, ... }:
+ ''
+ url = "http://localhost"
+
+ webserver.wait_for_unit("nginx")
+ webserver.wait_for_open_port(80)
+
+ http_code = webserver.succeed(
+ f"curl -w '%{{http_code}}' --head --fail {url}"
+ )
+ assert http_code.split("\n")[-1] == "200"
+ '';
+ })
diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix
index 3cc38ebe3471..a7b955d44721 100644
--- a/nixos/tests/os-prober.nix
+++ b/nixos/tests/os-prober.nix
@@ -58,9 +58,9 @@ let
[ ./hardware-configuration.nix
];
- } // (builtins.fromJSON (builtins.readFile ${
+ } // pkgs.lib.importJSON ${
pkgs.writeText "simpleConfig.json" (builtins.toJSON simpleConfig)
- })))
+ })
'';
in {
name = "os-prober";
diff --git a/nixos/tests/owncast.nix b/nixos/tests/owncast.nix
new file mode 100644
index 000000000000..debb34f5009d
--- /dev/null
+++ b/nixos/tests/owncast.nix
@@ -0,0 +1,42 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "owncast";
+ meta = with pkgs.lib.maintainers; { maintainers = [ MayNiklas ]; };
+
+ nodes = {
+ client = { pkgs, ... }: with pkgs.lib; {
+ networking = {
+ dhcpcd.enable = false;
+ interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::2"; prefixLength = 64; } ];
+ interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.2"; prefixLength = 24; } ];
+ };
+ };
+ server = { pkgs, ... }: with pkgs.lib; {
+ networking = {
+ dhcpcd.enable = false;
+ useNetworkd = true;
+ useDHCP = false;
+ interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ];
+ interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ];
+
+ firewall.allowedTCPPorts = [ 8080 ];
+ };
+
+ services.owncast = {
+ enable = true;
+ listen = "0.0.0.0";
+ };
+ };
+ };
+
+ testScript = ''
+ start_all()
+
+ client.wait_for_unit("network-online.target")
+ server.wait_for_unit("network-online.target")
+ server.wait_for_unit("owncast.service")
+ server.wait_until_succeeds("ss -ntl | grep -q 8080")
+
+ client.succeed("curl http://192.168.1.1:8080/api/status")
+ client.succeed("curl http://[fd00::1]:8080/api/status")
+ '';
+})
diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix
index 07588ddc3176..aebf6b534476 100644
--- a/nixos/tests/pantheon.nix
+++ b/nixos/tests/pantheon.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, lib, ...} :
{
name = "pantheon";
@@ -51,7 +51,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
machine.wait_for_window("plank")
with subtest("Open elementary terminal"):
- machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.terminal &'")
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.terminal >&2 &'")
machine.wait_for_window("io.elementary.terminal")
machine.sleep(20)
machine.screenshot("screen")
diff --git a/nixos/tests/pict-rs.nix b/nixos/tests/pict-rs.nix
new file mode 100644
index 000000000000..432fd6a50ccd
--- /dev/null
+++ b/nixos/tests/pict-rs.nix
@@ -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")
+ '';
+ })
diff --git a/nixos/tests/plasma5-systemd-start.nix b/nixos/tests/plasma5-systemd-start.nix
new file mode 100644
index 000000000000..ac6fad7da6c6
--- /dev/null
+++ b/nixos/tests/plasma5-systemd-start.nix
@@ -0,0 +1,43 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+{
+ name = "plasma5-systemd-start";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ oxalica ];
+ };
+
+ machine = { ... }:
+
+ {
+ imports = [ ./common/user-account.nix ];
+ services.xserver = {
+ enable = true;
+ displayManager.sddm.enable = true;
+ displayManager.defaultSession = "plasma";
+ desktopManager.plasma5.enable = true;
+ desktopManager.plasma5.runUsingSystemd = true;
+ displayManager.autoLogin = {
+ enable = true;
+ user = "alice";
+ };
+ };
+ virtualisation.memorySize = 1024;
+ };
+
+ testScript = { nodes, ... }: let
+ user = nodes.machine.config.users.users.alice;
+ in ''
+ with subtest("Wait for login"):
+ start_all()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+
+ with subtest("Check plasmashell started"):
+ machine.wait_until_succeeds("pgrep plasmashell")
+ machine.wait_for_window("^Desktop ")
+
+ status, result = machine.systemctl('--no-pager show plasma-plasmashell.service', user='alice')
+ assert status == 0, 'Service not found'
+ assert 'ActiveState=active' in result.split('\n'), 'Systemd service not active'
+ '';
+})
diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix
index f09859a055d5..281c9843e901 100644
--- a/nixos/tests/plasma5.nix
+++ b/nixos/tests/plasma5.nix
@@ -12,7 +12,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
- services.xserver.displayManager.defaultSession = "plasma5";
+ services.xserver.displayManager.defaultSession = "plasma";
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.displayManager.autoLogin = {
enable = true;
@@ -42,15 +42,15 @@ import ./make-test-python.nix ({ pkgs, ...} :
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Run Dolphin"):
- machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 dolphin &'")
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 dolphin >&2 &'")
machine.wait_for_window(" Dolphin")
with subtest("Run Konsole"):
- machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 konsole &'")
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 konsole >&2 &'")
machine.wait_for_window("Konsole")
with subtest("Run systemsettings"):
- machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 systemsettings5 &'")
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 systemsettings5 >&2 &'")
machine.wait_for_window("Settings")
with subtest("Wait to get a screenshot"):
diff --git a/nixos/tests/plotinus.nix b/nixos/tests/plotinus.nix
index ddd6a4c11946..af38b41813b7 100644
--- a/nixos/tests/plotinus.nix
+++ b/nixos/tests/plotinus.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
testScript = ''
machine.wait_for_x()
- machine.succeed("gnome-calculator &")
+ machine.succeed("gnome-calculator >&2 &")
machine.wait_for_window("gnome-calculator")
machine.succeed(
"xdotool search --sync --onlyvisible --class gnome-calculator "
diff --git a/nixos/tests/postfixadmin.nix b/nixos/tests/postfixadmin.nix
index aba5e3eed102..b2712f4699ae 100644
--- a/nixos/tests/postfixadmin.nix
+++ b/nixos/tests/postfixadmin.nix
@@ -1,6 +1,6 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "postfixadmin";
- meta = with pkgs.stdenv.lib.maintainers; {
+ meta = with pkgs.lib.maintainers; {
maintainers = [ globin ];
};
diff --git a/nixos/tests/printing.nix b/nixos/tests/printing.nix
index badcb99a57af..6338fd8d8ac1 100644
--- a/nixos/tests/printing.nix
+++ b/nixos/tests/printing.nix
@@ -53,18 +53,10 @@ in {
start_all()
- with subtest("Make sure that cups is up on both sides"):
+ with subtest("Make sure that cups is up on both sides and printers are set up"):
serviceServer.wait_for_unit("cups.service")
serviceClient.wait_for_unit("cups.service")
-
- with subtest(
- "Wait until cups is fully initialized and ensure-printers has "
- "executed with 10s delay"
- ):
- serviceClient.sleep(20)
- socketActivatedClient.wait_until_succeeds(
- "systemctl show ensure-printers | grep -q -E 'code=exited ; status=0'"
- )
+ socketActivatedClient.wait_for_unit("ensure-printers.service")
def test_printing(client, server):
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index c6e8fa5a9ee1..38b93c4087c0 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -280,6 +280,7 @@ let
};
exporterTest = ''
wait_for_unit("prometheus-influxdb-exporter.service")
+ wait_for_open_port(9122)
succeed(
"curl -XPOST http://localhost:9122/write --data-binary 'influxdb_exporter,distro=nixos,added_in=21.09 value=1'"
)
@@ -554,7 +555,11 @@ let
WorkingDirectory = "/var/spool/mail";
};
};
- users.users.mailexporter.isSystemUser = true;
+ users.users.mailexporter = {
+ isSystemUser = true;
+ group = "mailexporter";
+ };
+ users.groups.mailexporter = {};
};
exporterTest = ''
wait_for_unit("postfix.service")
diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix
index 70ac78a4a468..20f8c4459e10 100644
--- a/nixos/tests/prometheus.nix
+++ b/nixos/tests/prometheus.nix
@@ -41,6 +41,7 @@ in import ./make-test-python.nix {
networking.firewall.allowedTCPPorts = [ grpcPort ];
services.prometheus = {
enable = true;
+ enableReload = true;
scrapeConfigs = [
{
job_name = "prometheus";
@@ -118,6 +119,32 @@ in import ./make-test-python.nix {
# };
#};
};
+ # Adds a "specialisation" of the above config which allows us to
+ # "switch" to it and see if the services.prometheus.enableReload
+ # functionality actually reloads the prometheus service instead of
+ # restarting it.
+ specialisation = {
+ "prometheus-config-change" = {
+ configuration = {
+ environment.systemPackages = [ pkgs.yq ];
+
+ # This configuration just adds a new prometheus job
+ # to scrape the node_exporter metrics of the s3 machine.
+ services.prometheus = {
+ scrapeConfigs = [
+ {
+ job_name = "s3-node_exporter";
+ static_configs = [
+ {
+ targets = [ "s3:9100" ];
+ }
+ ];
+ }
+ ];
+ };
+ };
+ };
+ };
};
query = { pkgs, ... }: {
@@ -171,10 +198,17 @@ in import ./make-test-python.nix {
};
environment.systemPackages = [ pkgs.minio-client ];
+
+ services.prometheus.exporters.node = {
+ enable = true;
+ openFirewall = true;
+ };
};
};
testScript = { nodes, ... } : ''
+ import json
+
# Before starting the other machines we first make sure that our S3 service is online
# and has a bucket added for thanos:
s3.start()
@@ -193,6 +227,7 @@ in import ./make-test-python.nix {
# Check if prometheus responds to requests:
prometheus.wait_for_unit("prometheus.service")
+
prometheus.wait_for_open_port(${toString queryPort})
prometheus.succeed("curl -sf http://127.0.0.1:${toString queryPort}/metrics")
@@ -245,5 +280,61 @@ in import ./make-test-python.nix {
+ "jq .thanos.labels.some_label | "
+ "grep 'required by thanos'"
)
+
+ # Check if switching to a NixOS configuration that changes the prometheus
+ # configuration reloads (instead of restarts) prometheus before the switch
+ # finishes successfully:
+ with subtest("config change reloads prometheus"):
+ # We check if prometheus has finished reloading by looking for the message
+ # "Completed loading of configuration file" in the journal between the start
+ # and finish of switching to the new NixOS configuration.
+ #
+ # To mark the start we record the journal cursor before starting the switch:
+ cursor_before_switching = json.loads(
+ prometheus.succeed("journalctl -n1 -o json --output-fields=__CURSOR")
+ )["__CURSOR"]
+
+ # Now we switch:
+ prometheus_config_change = prometheus.succeed(
+ "readlink /run/current-system/specialisation/prometheus-config-change"
+ ).strip()
+ prometheus.succeed(prometheus_config_change + "/bin/switch-to-configuration test")
+
+ # Next we retrieve all logs since the start of switching:
+ logs_after_starting_switching = prometheus.succeed(
+ """
+ journalctl --after-cursor='{cursor_before_switching}' -o json --output-fields=MESSAGE
+ """.format(
+ cursor_before_switching=cursor_before_switching
+ )
+ )
+
+ # Finally we check if the message "Completed loading of configuration file"
+ # occurs before the "finished switching to system configuration" message:
+ finished_switching_msg = (
+ "finished switching to system configuration " + prometheus_config_change
+ )
+ reloaded_before_switching_finished = False
+ finished_switching = False
+ for log_line in logs_after_starting_switching.split("\n"):
+ msg = json.loads(log_line)["MESSAGE"]
+ if "Completed loading of configuration file" in msg:
+ reloaded_before_switching_finished = True
+ if msg == finished_switching_msg:
+ finished_switching = True
+ break
+
+ assert reloaded_before_switching_finished
+ assert finished_switching
+
+ # Check if the reloaded config includes the new s3-node_exporter job:
+ prometheus.succeed(
+ """
+ curl -sf http://127.0.0.1:${toString queryPort}/api/v1/status/config \
+ | jq -r .data.yaml \
+ | yq '.scrape_configs | any(.job_name == "s3-node_exporter")' \
+ | grep true
+ """
+ )
'';
}
diff --git a/nixos/tests/prowlarr.nix b/nixos/tests/prowlarr.nix
new file mode 100644
index 000000000000..4cbca107568f
--- /dev/null
+++ b/nixos/tests/prowlarr.nix
@@ -0,0 +1,18 @@
+import ./make-test-python.nix ({ lib, ... }:
+
+with lib;
+
+{
+ name = "prowlarr";
+ meta.maintainers = with maintainers; [ jdreaver ];
+
+ nodes.machine =
+ { pkgs, ... }:
+ { services.prowlarr.enable = true; };
+
+ testScript = ''
+ machine.wait_for_unit("prowlarr.service")
+ machine.wait_for_open_port("9696")
+ machine.succeed("curl --fail http://localhost:9696/")
+ '';
+})
diff --git a/nixos/tests/pt2-clone.nix b/nixos/tests/pt2-clone.nix
index 3c090b7de428..364920c39871 100644
--- a/nixos/tests/pt2-clone.nix
+++ b/nixos/tests/pt2-clone.nix
@@ -22,7 +22,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
# Add a dummy sound card, or the program won't start
machine.execute("modprobe snd-dummy")
- machine.execute("pt2-clone &")
+ machine.execute("pt2-clone >&2 &")
machine.wait_for_window(r"ProTracker")
machine.sleep(5)
diff --git a/nixos/tests/rasdaemon.nix b/nixos/tests/rasdaemon.nix
new file mode 100644
index 000000000000..e4bd8d96a8d5
--- /dev/null
+++ b/nixos/tests/rasdaemon.nix
@@ -0,0 +1,34 @@
+import ./make-test-python.nix ({ pkgs, ... } : {
+ name = "rasdaemon";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ evils ];
+ };
+
+ machine = { pkgs, ... }: {
+ imports = [ ../modules/profiles/minimal.nix ];
+ hardware.rasdaemon = {
+ enable = true;
+ # should be enabled by default, just making sure
+ record = true;
+ # nonsense label
+ labels = ''
+ vendor: none
+ product: none
+ model: none
+ DIMM_0: 0.0.0;
+ '';
+ };
+ };
+
+ testScript =
+ ''
+ start_all()
+ machine.wait_for_unit("multi-user.target")
+ # confirm rasdaemon is running and has a valid database
+ # some disk errors detected in qemu for some reason ¯\_(ツ)_/¯
+ machine.succeed("ras-mc-ctl --errors | tee /dev/stderr | grep -q 'No .* errors.'")
+ # confirm the supplied labels text made it into the system
+ machine.succeed("grep -q 'vendor: none' /etc/ras/dimm_labels.d/labels >&2")
+ machine.shutdown()
+ '';
+})
diff --git a/nixos/tests/restart-by-activation-script.nix b/nixos/tests/restart-by-activation-script.nix
new file mode 100644
index 000000000000..0eec292ea9e2
--- /dev/null
+++ b/nixos/tests/restart-by-activation-script.nix
@@ -0,0 +1,73 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+ name = "restart-by-activation-script";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ das_j ];
+ };
+
+ machine = { pkgs, ... }: {
+ imports = [ ../modules/profiles/minimal.nix ];
+
+ systemd.services.restart-me = {
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ };
+ };
+
+ systemd.services.reload-me = {
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = rec {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ ExecReload = ExecStart;
+ };
+ };
+
+ system.activationScripts.test = {
+ supportsDryActivation = true;
+ text = ''
+ if [ -e /test-the-activation-script ]; then
+ if [ "$NIXOS_ACTION" != dry-activate ]; then
+ touch /activation-was-run
+ echo restart-me.service > /run/nixos/activation-restart-list
+ echo reload-me.service > /run/nixos/activation-reload-list
+ else
+ echo restart-me.service > /run/nixos/dry-activation-restart-list
+ echo reload-me.service > /run/nixos/dry-activation-reload-list
+ fi
+ fi
+ '';
+ };
+ };
+
+ testScript = /* python */ ''
+ machine.wait_for_unit("multi-user.target")
+
+ with subtest("nothing happens when the activation script does nothing"):
+ out = machine.succeed("/run/current-system/bin/switch-to-configuration dry-activate 2>&1")
+ assert 'restart' not in out
+ assert 'reload' not in out
+ out = machine.succeed("/run/current-system/bin/switch-to-configuration test")
+ assert 'restart' not in out
+ assert 'reload' not in out
+
+ machine.succeed("touch /test-the-activation-script")
+
+ with subtest("dry activation"):
+ out = machine.succeed("/run/current-system/bin/switch-to-configuration dry-activate 2>&1")
+ assert 'would restart the following units: restart-me.service' in out
+ assert 'would reload the following units: reload-me.service' in out
+ machine.fail("test -f /run/nixos/dry-activation-restart-list")
+ machine.fail("test -f /run/nixos/dry-activation-reload-list")
+
+ with subtest("real activation"):
+ out = machine.succeed("/run/current-system/bin/switch-to-configuration test 2>&1")
+ assert 'restarting the following units: restart-me.service' in out
+ assert 'reloading the following units: reload-me.service' in out
+ machine.fail("test -f /run/nixos/activation-restart-list")
+ machine.fail("test -f /run/nixos/activation-reload-list")
+ '';
+})
diff --git a/nixos/tests/samba.nix b/nixos/tests/samba.nix
index d1d50caabfa5..252c3dd9c76e 100644
--- a/nixos/tests/samba.nix
+++ b/nixos/tests/samba.nix
@@ -20,6 +20,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
server =
{ ... }:
{ services.samba.enable = true;
+ services.samba.openFirewall = true;
services.samba.shares.public =
{ path = "/public";
"read only" = true;
@@ -27,8 +28,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
"guest ok" = "yes";
comment = "Public samba share.";
};
- networking.firewall.allowedTCPPorts = [ 139 445 ];
- networking.firewall.allowedUDPPorts = [ 137 138 ];
};
};
diff --git a/nixos/tests/seafile.nix b/nixos/tests/seafile.nix
new file mode 100644
index 000000000000..70b9ba55457e
--- /dev/null
+++ b/nixos/tests/seafile.nix
@@ -0,0 +1,123 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+ let
+ client = { config, pkgs, ... }: {
+ virtualisation.memorySize = 256;
+ environment.systemPackages = [ pkgs.seafile-shared pkgs.curl ];
+ };
+ in {
+ name = "seafile";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ kampfschlaefer schmittlauch ];
+ };
+
+ nodes = {
+ server = { config, pkgs, ... }: {
+ virtualisation.memorySize = 512;
+ services.seafile = {
+ enable = true;
+ ccnetSettings.General.SERVICE_URL = "http://server";
+ adminEmail = "admin@example.com";
+ initialAdminPassword = "seafile_password";
+ };
+ services.nginx = {
+ enable = true;
+ virtualHosts."server" = {
+ locations."/".proxyPass = "http://unix:/run/seahub/gunicorn.sock";
+ locations."/seafhttp" = {
+ proxyPass = "http://127.0.0.1:8082";
+ extraConfig = ''
+ rewrite ^/seafhttp(.*)$ $1 break;
+ client_max_body_size 0;
+ proxy_connect_timeout 36000s;
+ proxy_read_timeout 36000s;
+ proxy_send_timeout 36000s;
+ send_timeout 36000s;
+ proxy_http_version 1.1;
+ '';
+ };
+ };
+ };
+ networking.firewall = { allowedTCPPorts = [ 80 ]; };
+ };
+ client1 = client pkgs;
+ client2 = client pkgs;
+ };
+
+ testScript = ''
+ start_all()
+
+ with subtest("start seaf-server"):
+ server.wait_for_unit("seaf-server.service")
+ server.wait_for_file("/run/seafile/seafile.sock")
+
+ with subtest("start seahub"):
+ server.wait_for_unit("seahub.service")
+ server.wait_for_unit("nginx.service")
+ server.wait_for_file("/run/seahub/gunicorn.sock")
+
+ with subtest("client1 fetch seahub page"):
+ client1.succeed("curl -L http://server | grep 'Log In' >&2")
+
+ with subtest("client1 connect"):
+ client1.wait_for_unit("default.target")
+ client1.succeed("seaf-cli init -d . >&2")
+ client1.succeed("seaf-cli start >&2")
+ client1.succeed(
+ "seaf-cli list-remote -s http://server -u admin\@example.com -p seafile_password >&2"
+ )
+
+ libid = client1.succeed(
+ 'seaf-cli create -s http://server -n test01 -u admin\@example.com -p seafile_password -t "first test library"'
+ ).strip()
+
+ client1.succeed(
+ "seaf-cli list-remote -s http://server -u admin\@example.com -p seafile_password |grep test01"
+ )
+ client1.fail(
+ "seaf-cli list-remote -s http://server -u admin\@example.com -p seafile_password |grep test02"
+ )
+
+ client1.succeed(
+ f"seaf-cli download -l {libid} -s http://server -u admin\@example.com -p seafile_password -d . >&2"
+ )
+
+ client1.sleep(3)
+
+ client1.succeed("seaf-cli status |grep synchronized >&2")
+
+ client1.succeed("ls -la >&2")
+ client1.succeed("ls -la test01 >&2")
+
+ client1.execute("echo bla > test01/first_file")
+
+ client1.sleep(2)
+
+ client1.succeed("seaf-cli status |grep synchronized >&2")
+
+ with subtest("client2 sync"):
+ client2.wait_for_unit("default.target")
+
+ client2.succeed("seaf-cli init -d . >&2")
+ client2.succeed("seaf-cli start >&2")
+
+ client2.succeed(
+ "seaf-cli list-remote -s http://server -u admin\@example.com -p seafile_password >&2"
+ )
+
+ libid = client2.succeed(
+ "seaf-cli list-remote -s http://server -u admin\@example.com -p seafile_password |grep test01 |cut -d' ' -f 2"
+ ).strip()
+
+ client2.succeed(
+ f"seaf-cli download -l {libid} -s http://server -u admin\@example.com -p seafile_password -d . >&2"
+ )
+
+ client2.sleep(3)
+
+ client2.succeed("seaf-cli status |grep synchronized >&2")
+
+ client2.succeed("ls -la test01 >&2")
+
+ client2.succeed('[ `cat test01/first_file` = "bla" ]')
+ '';
+ })
diff --git a/nixos/tests/service-runner.nix b/nixos/tests/service-runner.nix
index 58f46735f56d..79d96f739a6c 100644
--- a/nixos/tests/service-runner.nix
+++ b/nixos/tests/service-runner.nix
@@ -24,7 +24,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
machine.succeed(
"""
mkdir -p /run/nginx /var/log/nginx /var/cache/nginx
- ${nodes.machine.config.systemd.services.nginx.runner} &
+ ${nodes.machine.config.systemd.services.nginx.runner} >&2 &
echo $!>my-nginx.pid
"""
)
diff --git a/nixos/tests/shattered-pixel-dungeon.nix b/nixos/tests/shattered-pixel-dungeon.nix
index d8c4b44819e4..d4e5de22ab9d 100644
--- a/nixos/tests/shattered-pixel-dungeon.nix
+++ b/nixos/tests/shattered-pixel-dungeon.nix
@@ -19,7 +19,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
testScript =
''
machine.wait_for_x()
- machine.execute("shattered-pixel-dungeon &")
+ machine.execute("shattered-pixel-dungeon >&2 &")
machine.wait_for_window(r"Shattered Pixel Dungeon")
machine.sleep(5)
if "Enter" not in machine.get_screen_text():
diff --git a/nixos/tests/signal-desktop.nix b/nixos/tests/signal-desktop.nix
index 379af4d3912b..7bc7cfe18cf8 100644
--- a/nixos/tests/signal-desktop.nix
+++ b/nixos/tests/signal-desktop.nix
@@ -41,7 +41,7 @@ in {
machine.wait_for_x()
# start signal desktop
- machine.execute("su - alice -c signal-desktop &")
+ machine.execute("su - alice -c signal-desktop >&2 &")
# Wait for the Signal window to appear. Since usually the tests
# are run sandboxed and therfore with no internet, we can not wait
diff --git a/nixos/tests/soapui.nix b/nixos/tests/soapui.nix
index 205128df91f4..76a87ed5efa1 100644
--- a/nixos/tests/soapui.nix
+++ b/nixos/tests/soapui.nix
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
testScript = ''
machine.wait_for_x()
- machine.succeed("soapui &")
+ machine.succeed("soapui >&2 &")
machine.wait_for_window(r"SoapUI \d+\.\d+\.\d+")
machine.sleep(1)
machine.screenshot("soapui")
diff --git a/nixos/tests/spike.nix b/nixos/tests/spike.nix
deleted file mode 100644
index 09035a156418..000000000000
--- a/nixos/tests/spike.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }:
-
-let
- riscvPkgs = import ../.. { crossSystem = pkgs.lib.systems.examples.riscv64-embedded; };
-in
-{
- name = "spike";
- meta = with pkgs.lib.maintainers; { maintainers = [ blitz ]; };
-
- machine = { pkgs, lib, ... }: {
- environment.systemPackages = [ pkgs.spike riscvPkgs.riscv-pk riscvPkgs.hello ];
- };
-
- # Run the RISC-V hello applications using the proxy kernel on the
- # Spike emulator and see whether we get the expected output.
- testScript =
- ''
- machine.wait_for_unit("multi-user.target")
- output = machine.succeed("spike -m64 $(which pk) $(which hello)")
- assert "Hello, world!" in output
- '';
-})
diff --git a/nixos/tests/sssd-ldap.nix b/nixos/tests/sssd-ldap.nix
index e3119348eac7..5c58eaef7146 100644
--- a/nixos/tests/sssd-ldap.nix
+++ b/nixos/tests/sssd-ldap.nix
@@ -1,96 +1,94 @@
-({ pkgs, ... }:
- let
- dbDomain = "example.org";
- dbSuffix = "dc=example,dc=org";
+let
+ dbDomain = "example.org";
+ dbSuffix = "dc=example,dc=org";
- ldapRootUser = "admin";
- ldapRootPassword = "foobar";
+ ldapRootUser = "admin";
+ ldapRootPassword = "foobar";
- testUser = "alice";
- in import ./make-test-python.nix {
- name = "sssd-ldap";
+ testUser = "alice";
+in import ./make-test-python.nix ({pkgs, ...}: {
+ name = "sssd-ldap";
- meta = with pkgs.lib.maintainers; {
- maintainers = [ bbigras ];
- };
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ bbigras ];
+ };
- machine = { pkgs, ... }: {
- services.openldap = {
- enable = true;
- settings = {
- children = {
- "cn=schema".includes = [
- "${pkgs.openldap}/etc/schema/core.ldif"
- "${pkgs.openldap}/etc/schema/cosine.ldif"
- "${pkgs.openldap}/etc/schema/inetorgperson.ldif"
- "${pkgs.openldap}/etc/schema/nis.ldif"
- ];
- "olcDatabase={1}mdb" = {
- attrs = {
- objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
- olcDatabase = "{1}mdb";
- olcDbDirectory = "/var/db/openldap";
- olcSuffix = dbSuffix;
- olcRootDN = "cn=${ldapRootUser},${dbSuffix}";
- olcRootPW = ldapRootPassword;
- };
+ machine = { pkgs, ... }: {
+ services.openldap = {
+ enable = true;
+ settings = {
+ children = {
+ "cn=schema".includes = [
+ "${pkgs.openldap}/etc/schema/core.ldif"
+ "${pkgs.openldap}/etc/schema/cosine.ldif"
+ "${pkgs.openldap}/etc/schema/inetorgperson.ldif"
+ "${pkgs.openldap}/etc/schema/nis.ldif"
+ ];
+ "olcDatabase={1}mdb" = {
+ attrs = {
+ objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
+ olcDatabase = "{1}mdb";
+ olcDbDirectory = "/var/db/openldap";
+ olcSuffix = dbSuffix;
+ olcRootDN = "cn=${ldapRootUser},${dbSuffix}";
+ olcRootPW = ldapRootPassword;
};
};
};
- declarativeContents = {
- ${dbSuffix} = ''
- dn: ${dbSuffix}
- objectClass: top
- objectClass: dcObject
- objectClass: organization
- o: ${dbDomain}
-
- dn: ou=posix,${dbSuffix}
- objectClass: top
- objectClass: organizationalUnit
-
- dn: ou=accounts,ou=posix,${dbSuffix}
- objectClass: top
- objectClass: organizationalUnit
-
- dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
- objectClass: person
- objectClass: posixAccount
- # userPassword: somePasswordHash
- homeDirectory: /home/${testUser}
- uidNumber: 1234
- gidNumber: 1234
- cn: ""
- sn: ""
- '';
- };
};
+ declarativeContents = {
+ ${dbSuffix} = ''
+ dn: ${dbSuffix}
+ objectClass: top
+ objectClass: dcObject
+ objectClass: organization
+ o: ${dbDomain}
- services.sssd = {
- enable = true;
- config = ''
- [sssd]
- config_file_version = 2
- services = nss, pam, sudo
- domains = ${dbDomain}
+ dn: ou=posix,${dbSuffix}
+ objectClass: top
+ objectClass: organizationalUnit
- [domain/${dbDomain}]
- auth_provider = ldap
- id_provider = ldap
- ldap_uri = ldap://127.0.0.1:389
- ldap_search_base = ${dbSuffix}
- ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
- ldap_default_authtok_type = password
- ldap_default_authtok = ${ldapRootPassword}
+ dn: ou=accounts,ou=posix,${dbSuffix}
+ objectClass: top
+ objectClass: organizationalUnit
+
+ dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
+ objectClass: person
+ objectClass: posixAccount
+ # userPassword: somePasswordHash
+ homeDirectory: /home/${testUser}
+ uidNumber: 1234
+ gidNumber: 1234
+ cn: ""
+ sn: ""
'';
};
};
- testScript = ''
- machine.start()
- machine.wait_for_unit("openldap.service")
- machine.wait_for_unit("sssd.service")
- machine.succeed("getent passwd ${testUser}")
- '';
- }
-)
+ services.sssd = {
+ enable = true;
+ config = ''
+ [sssd]
+ config_file_version = 2
+ services = nss, pam, sudo
+ domains = ${dbDomain}
+
+ [domain/${dbDomain}]
+ auth_provider = ldap
+ id_provider = ldap
+ ldap_uri = ldap://127.0.0.1:389
+ ldap_search_base = ${dbSuffix}
+ ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
+ ldap_default_authtok_type = password
+ ldap_default_authtok = ${ldapRootPassword}
+ '';
+ };
+ };
+
+ testScript = ''
+ machine.start()
+ machine.wait_for_unit("openldap.service")
+ machine.wait_for_unit("sssd.service")
+ machine.succeed("getent passwd ${testUser}")
+ '';
+})
diff --git a/nixos/tests/switch-test.nix b/nixos/tests/switch-test.nix
index 78adf7ffa7da..7ea07a390b80 100644
--- a/nixos/tests/switch-test.nix
+++ b/nixos/tests/switch-test.nix
@@ -7,15 +7,224 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
nodes = {
- machine = { ... }: {
+ machine = { config, pkgs, lib, ... }: {
+ environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
users.mutableUsers = false;
+
+ specialisation = {
+ # A system with a simple socket-activated unit
+ simple-socket.configuration = {
+ systemd.services.socket-activated.serviceConfig = {
+ ExecStart = pkgs.writeScript "socket-test.py" /* python */ ''
+ #!${pkgs.python3}/bin/python3
+
+ from socketserver import TCPServer, StreamRequestHandler
+ import socket
+
+ class Handler(StreamRequestHandler):
+ def handle(self):
+ self.wfile.write("hello".encode("utf-8"))
+
+ class Server(TCPServer):
+ def __init__(self, server_address, handler_cls):
+ # Invoke base but omit bind/listen steps (performed by systemd activation!)
+ TCPServer.__init__(
+ self, server_address, handler_cls, bind_and_activate=False)
+ # Override socket
+ self.socket = socket.fromfd(3, self.address_family, self.socket_type)
+
+ if __name__ == "__main__":
+ server = Server(("localhost", 1234), Handler)
+ server.serve_forever()
+ '';
+ };
+ systemd.sockets.socket-activated = {
+ wantedBy = [ "sockets.target" ];
+ listenStreams = [ "/run/test.sock" ];
+ socketConfig.SocketMode = lib.mkDefault "0777";
+ };
+ };
+
+ # The same system but the socket is modified
+ modified-socket.configuration = {
+ imports = [ config.specialisation.simple-socket.configuration ];
+ systemd.sockets.socket-activated.socketConfig.SocketMode = "0666";
+ };
+
+ # The same system but the service is modified
+ modified-service.configuration = {
+ imports = [ config.specialisation.simple-socket.configuration ];
+ systemd.services.socket-activated.serviceConfig.X-Test = "test";
+ };
+
+ # The same system but both service and socket are modified
+ modified-service-and-socket.configuration = {
+ imports = [ config.specialisation.simple-socket.configuration ];
+ systemd.services.socket-activated.serviceConfig.X-Test = "some_value";
+ systemd.sockets.socket-activated.socketConfig.SocketMode = "0444";
+ };
+
+ # A system with a socket-activated service and some simple services
+ service-and-socket.configuration = {
+ imports = [ config.specialisation.simple-socket.configuration ];
+ systemd.services.simple-service = {
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ };
+ };
+
+ systemd.services.simple-restart-service = {
+ stopIfChanged = false;
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ };
+ };
+
+ systemd.services.simple-reload-service = {
+ reloadIfChanged = true;
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ ExecReload = "${pkgs.coreutils}/bin/true";
+ };
+ };
+
+ systemd.services.no-restart-service = {
+ restartIfChanged = false;
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ };
+ };
+ };
+
+ # The same system but with an activation script that restarts all services
+ restart-and-reload-by-activation-script.configuration = {
+ imports = [ config.specialisation.service-and-socket.configuration ];
+ system.activationScripts.restart-and-reload-test = {
+ supportsDryActivation = true;
+ deps = [];
+ text = ''
+ if [ "$NIXOS_ACTION" = dry-activate ]; then
+ f=/run/nixos/dry-activation-restart-list
+ else
+ f=/run/nixos/activation-restart-list
+ fi
+ cat <> "$f"
+ simple-service.service
+ simple-restart-service.service
+ simple-reload-service.service
+ no-restart-service.service
+ socket-activated.service
+ EOF
+ '';
+ };
+ };
+
+ # A system with a timer
+ with-timer.configuration = {
+ systemd.timers.test-timer = {
+ wantedBy = [ "timers.target" ];
+ timerConfig.OnCalendar = "@1395716396"; # chosen by fair dice roll
+ };
+ systemd.services.test-timer = {
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ };
+ };
+ };
+
+ # The same system but with another time
+ with-timer-modified.configuration = {
+ imports = [ config.specialisation.with-timer.configuration ];
+ systemd.timers.test-timer.timerConfig.OnCalendar = lib.mkForce "Fri 2012-11-23 16:00:00";
+ };
+
+ # A system with a systemd mount
+ with-mount.configuration = {
+ systemd.mounts = [
+ {
+ description = "Testmount";
+ what = "tmpfs";
+ type = "tmpfs";
+ where = "/testmount";
+ options = "size=1M";
+ wantedBy = [ "local-fs.target" ];
+ }
+ ];
+ };
+
+ # The same system but with another time
+ with-mount-modified.configuration = {
+ systemd.mounts = [
+ {
+ description = "Testmount";
+ what = "tmpfs";
+ type = "tmpfs";
+ where = "/testmount";
+ options = "size=10M";
+ wantedBy = [ "local-fs.target" ];
+ }
+ ];
+ };
+
+ # A system with a path unit
+ with-path.configuration = {
+ systemd.paths.test-watch = {
+ wantedBy = [ "paths.target" ];
+ pathConfig.PathExists = "/testpath";
+ };
+ systemd.services.test-watch = {
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "${pkgs.coreutils}/bin/touch /testpath-modified";
+ };
+ };
+ };
+
+ # The same system but watching another file
+ with-path-modified.configuration = {
+ imports = [ config.specialisation.with-path.configuration ];
+ systemd.paths.test-watch.pathConfig.PathExists = lib.mkForce "/testpath2";
+ };
+
+ # A system with a slice
+ with-slice.configuration = {
+ systemd.slices.testslice.sliceConfig.MemoryMax = "1"; # don't allow memory allocation
+ systemd.services.testservice = {
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.coreutils}/bin/true";
+ Slice = "testslice.slice";
+ };
+ };
+ };
+
+ # The same system but the slice allows to allocate memory
+ with-slice-non-crashing.configuration = {
+ imports = [ config.specialisation.with-slice.configuration ];
+ systemd.slices.testslice.sliceConfig.MemoryMax = lib.mkForce null;
+ };
+ };
};
other = { ... }: {
users.mutableUsers = true;
};
};
- testScript = {nodes, ...}: let
+ testScript = { nodes, ... }: let
originalSystem = nodes.machine.config.system.build.toplevel;
otherSystem = nodes.other.config.system.build.toplevel;
@@ -27,12 +236,183 @@ import ./make-test-python.nix ({ pkgs, ...} : {
set -o pipefail
exec env -i "$@" | tee /dev/stderr
'';
- in ''
+ in /* python */ ''
+ def switch_to_specialisation(name, action="test"):
+ out = machine.succeed(f"${originalSystem}/specialisation/{name}/bin/switch-to-configuration {action} 2>&1")
+ assert_lacks(out, "switch-to-configuration line") # Perl warnings
+ return out
+
+ def assert_contains(haystack, needle):
+ if needle not in haystack:
+ print("The haystack that will cause the following exception is:")
+ print("---")
+ print(haystack)
+ print("---")
+ raise Exception(f"Expected string '{needle}' was not found")
+
+ def assert_lacks(haystack, needle):
+ if needle in haystack:
+ print("The haystack that will cause the following exception is:")
+ print("---")
+ print(haystack, end="")
+ print("---")
+ raise Exception(f"Unexpected string '{needle}' was found")
+
+
machine.succeed(
"${stderrRunner} ${originalSystem}/bin/switch-to-configuration test"
)
machine.succeed(
"${stderrRunner} ${otherSystem}/bin/switch-to-configuration test"
)
+
+ with subtest("systemd sockets"):
+ machine.succeed("${originalSystem}/bin/switch-to-configuration test")
+
+ # Simple socket is created
+ out = switch_to_specialisation("simple-socket")
+ assert_lacks(out, "stopping the following units:")
+ # not checking for reload because dbus gets reloaded
+ assert_lacks(out, "restarting the following units:")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_contains(out, "the following new units were started: socket-activated.socket\n")
+ assert_lacks(out, "as well:")
+ machine.succeed("[ $(stat -c%a /run/test.sock) = 777 ]")
+
+ # Changing the socket restarts it
+ out = switch_to_specialisation("modified-socket")
+ assert_lacks(out, "stopping the following units:")
+ #assert_lacks(out, "reloading the following units:")
+ assert_contains(out, "restarting the following units: socket-activated.socket\n")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+ machine.succeed("[ $(stat -c%a /run/test.sock) = 666 ]") # change was applied
+
+ # The unit is properly activated when the socket is accessed
+ if machine.succeed("socat - UNIX-CONNECT:/run/test.sock") != "hello":
+ raise Exception("Socket was not properly activated")
+
+ # Changing the socket restarts it and ignores the active service
+ out = switch_to_specialisation("simple-socket")
+ assert_contains(out, "stopping the following units: socket-activated.service\n")
+ assert_lacks(out, "reloading the following units:")
+ assert_contains(out, "restarting the following units: socket-activated.socket\n")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+ machine.succeed("[ $(stat -c%a /run/test.sock) = 777 ]") # change was applied
+
+ # Changing the service does nothing when the service is not active
+ out = switch_to_specialisation("modified-service")
+ assert_lacks(out, "stopping the following units:")
+ assert_lacks(out, "reloading the following units:")
+ assert_lacks(out, "restarting the following units:")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+
+ # Activating the service and modifying it stops it but leaves the socket untouched
+ machine.succeed("socat - UNIX-CONNECT:/run/test.sock")
+ out = switch_to_specialisation("simple-socket")
+ assert_contains(out, "stopping the following units: socket-activated.service\n")
+ assert_lacks(out, "reloading the following units:")
+ assert_lacks(out, "restarting the following units:")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+
+ # Activating the service and both the service and the socket stops the service and restarts the socket
+ machine.succeed("socat - UNIX-CONNECT:/run/test.sock")
+ out = switch_to_specialisation("modified-service-and-socket")
+ assert_contains(out, "stopping the following units: socket-activated.service\n")
+ assert_lacks(out, "reloading the following units:")
+ assert_contains(out, "restarting the following units: socket-activated.socket\n")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+
+ with subtest("restart and reload by activation file"):
+ out = switch_to_specialisation("service-and-socket")
+ # Switch to a system where the example services get restarted
+ # by the activation script
+ out = switch_to_specialisation("restart-and-reload-by-activation-script")
+ assert_lacks(out, "stopping the following units:")
+ assert_contains(out, "stopping the following units as well: simple-service.service, socket-activated.service\n")
+ assert_contains(out, "reloading the following units: simple-reload-service.service\n")
+ assert_contains(out, "restarting the following units: simple-restart-service.service\n")
+ assert_contains(out, "\nstarting the following units: simple-service.service")
+
+ # The same, but in dry mode
+ switch_to_specialisation("service-and-socket")
+ out = switch_to_specialisation("restart-and-reload-by-activation-script", action="dry-activate")
+ assert_lacks(out, "would stop the following units:")
+ assert_contains(out, "would stop the following units as well: simple-service.service, socket-activated.service\n")
+ assert_contains(out, "would reload the following units: simple-reload-service.service\n")
+ assert_contains(out, "would restart the following units: simple-restart-service.service\n")
+ assert_contains(out, "\nwould start the following units: simple-service.service")
+
+ with subtest("mounts"):
+ switch_to_specialisation("with-mount")
+ out = machine.succeed("mount | grep 'on /testmount'")
+ assert_contains(out, "size=1024k")
+
+ out = switch_to_specialisation("with-mount-modified")
+ assert_lacks(out, "stopping the following units:")
+ assert_contains(out, "reloading the following units: testmount.mount\n")
+ assert_lacks(out, "restarting the following units:")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+ # It changed
+ out = machine.succeed("mount | grep 'on /testmount'")
+ assert_contains(out, "size=10240k")
+
+ with subtest("timers"):
+ switch_to_specialisation("with-timer")
+ out = machine.succeed("systemctl show test-timer.timer")
+ assert_contains(out, "OnCalendar=2014-03-25 02:59:56 UTC")
+
+ out = switch_to_specialisation("with-timer-modified")
+ assert_lacks(out, "stopping the following units:")
+ assert_lacks(out, "reloading the following units:")
+ assert_contains(out, "restarting the following units: test-timer.timer\n")
+ assert_lacks(out, "\nstarting the following units:")
+ assert_lacks(out, "the following new units were started:")
+ assert_lacks(out, "as well:")
+ # It changed
+ out = machine.succeed("systemctl show test-timer.timer")
+ assert_contains(out, "OnCalendar=Fri 2012-11-23 16:00:00")
+
+ with subtest("paths"):
+ switch_to_specialisation("with-path")
+ machine.fail("test -f /testpath-modified")
+
+ # touch the file, unit should be triggered
+ machine.succeed("touch /testpath")
+ machine.wait_until_succeeds("test -f /testpath-modified")
+
+ machine.succeed("rm /testpath")
+ machine.succeed("rm /testpath-modified")
+ switch_to_specialisation("with-path-modified")
+
+ machine.succeed("touch /testpath")
+ machine.fail("test -f /testpath-modified")
+ machine.succeed("touch /testpath2")
+ machine.wait_until_succeeds("test -f /testpath-modified")
+
+ # This test ensures that changes to slice configuration get applied.
+ # We test this by having a slice that allows no memory allocation at
+ # all and starting a service within it. If the service crashes, the slice
+ # is applied and if we modify the slice to allow memory allocation, the
+ # service should successfully start.
+ with subtest("slices"):
+ machine.succeed("echo 0 > /proc/sys/vm/panic_on_oom") # allow OOMing
+ out = switch_to_specialisation("with-slice")
+ machine.fail("systemctl start testservice.service")
+ out = switch_to_specialisation("with-slice-non-crashing")
+ machine.succeed("systemctl start testservice.service")
+ machine.succeed("echo 1 > /proc/sys/vm/panic_on_oom") # disallow OOMing
+
'';
})
diff --git a/nixos/tests/systemd-boot.nix b/nixos/tests/systemd-boot.nix
index 3c93cb82d646..a6742606dbef 100644
--- a/nixos/tests/systemd-boot.nix
+++ b/nixos/tests/systemd-boot.nix
@@ -39,6 +39,29 @@ in
'';
};
+ # Check that specialisations create corresponding boot entries.
+ specialisation = makeTest {
+ name = "systemd-boot-specialisation";
+ meta.maintainers = with pkgs.lib.maintainers; [ lukegb ];
+
+ machine = { pkgs, lib, ... }: {
+ imports = [ common ];
+ specialisation.something.configuration = {};
+ };
+
+ testScript = ''
+ machine.start()
+ machine.wait_for_unit("multi-user.target")
+
+ machine.succeed(
+ "test -e /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
+ )
+ machine.succeed(
+ "grep -q 'title NixOS (something)' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
+ )
+ '';
+ };
+
# Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI"
fallback = makeTest {
name = "systemd-boot-fallback";
diff --git a/nixos/tests/systemd-confinement.nix b/nixos/tests/systemd-confinement.nix
index e6a308f46d27..8fafb11e1e8c 100644
--- a/nixos/tests/systemd-confinement.nix
+++ b/nixos/tests/systemd-confinement.nix
@@ -44,30 +44,26 @@ import ./make-test-python.nix {
{ config.confinement.mode = "chroot-only";
testScript = ''
with subtest("chroot-only confinement"):
- machine.succeed(
- 'test "$(chroot-exec ls -1 / | paste -sd,)" = bin,nix',
- 'test "$(chroot-exec id -u)" = 0',
- "chroot-exec chown 65534 /bin",
- )
+ paths = machine.succeed('chroot-exec ls -1 / | paste -sd,').strip()
+ assert_eq(paths, "bin,nix,run")
+ uid = machine.succeed('chroot-exec id -u').strip()
+ assert_eq(uid, "0")
+ machine.succeed("chroot-exec chown 65534 /bin")
'';
}
{ testScript = ''
with subtest("full confinement with APIVFS"):
- machine.fail(
- "chroot-exec ls -l /etc",
- "chroot-exec ls -l /run",
- "chroot-exec chown 65534 /bin",
- )
- machine.succeed(
- 'test "$(chroot-exec id -u)" = 0',
- "chroot-exec chown 0 /bin",
- )
+ machine.fail("chroot-exec ls -l /etc")
+ machine.fail("chroot-exec chown 65534 /bin")
+ assert_eq(machine.succeed('chroot-exec id -u').strip(), "0")
+ machine.succeed("chroot-exec chown 0 /bin")
'';
}
{ config.serviceConfig.BindReadOnlyPaths = [ "/etc" ];
testScript = ''
with subtest("check existence of bind-mounted /etc"):
- machine.succeed('test -n "$(chroot-exec cat /etc/passwd)"')
+ passwd = machine.succeed('chroot-exec cat /etc/passwd').strip()
+ assert len(passwd) > 0, "/etc/passwd must not be empty"
'';
}
{ config.serviceConfig.User = "chroot-testuser";
@@ -75,7 +71,8 @@ import ./make-test-python.nix {
testScript = ''
with subtest("check if User/Group really runs as non-root"):
machine.succeed("chroot-exec ls -l /dev")
- machine.succeed('test "$(chroot-exec id -u)" != 0')
+ uid = machine.succeed('chroot-exec id -u').strip()
+ assert uid != "0", "UID of chroot-testuser shouldn't be 0"
machine.fail("chroot-exec touch /bin/test")
'';
}
@@ -88,10 +85,8 @@ import ./make-test-python.nix {
testScript = ''
with subtest("check if symlinks are properly bind-mounted"):
machine.fail("chroot-exec test -e /etc")
- machine.succeed(
- "chroot-exec cat ${symlink} >&2",
- 'test "$(chroot-exec cat ${symlink})" = "got me"',
- )
+ text = machine.succeed('chroot-exec cat ${symlink}').strip()
+ assert_eq(text, "got me")
'';
})
{ config.serviceConfig.User = "chroot-testuser";
@@ -158,6 +153,9 @@ import ./make-test-python.nix {
};
testScript = { nodes, ... }: ''
+ def assert_eq(a, b):
+ assert a == b, f"{a} != {b}"
+
machine.wait_for_unit("multi-user.target")
'' + nodes.machine.config.__testSteps;
}
diff --git a/nixos/tests/systemd-cryptenroll.nix b/nixos/tests/systemd-cryptenroll.nix
new file mode 100644
index 000000000000..2c436f2de890
--- /dev/null
+++ b/nixos/tests/systemd-cryptenroll.nix
@@ -0,0 +1,55 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "systemd-cryptenroll";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ ymatsiuk ];
+ };
+
+ machine = { pkgs, lib, ... }: {
+ environment.systemPackages = [ pkgs.cryptsetup ];
+ virtualisation = {
+ emptyDiskImages = [ 512 ];
+ memorySize = 1024;
+ qemu.options = [
+ "-chardev socket,id=chrtpm,path=/tmp/swtpm-sock"
+ "-tpmdev emulator,id=tpm0,chardev=chrtpm"
+ "-device tpm-tis,tpmdev=tpm0"
+ ];
+ };
+ };
+
+ testScript = ''
+ import subprocess
+ import tempfile
+
+ def start_swtpm(tpmstate):
+ subprocess.Popen(["${pkgs.swtpm}/bin/swtpm", "socket", "--tpmstate", "dir="+tpmstate, "--ctrl", "type=unixio,path=/tmp/swtpm-sock", "--log", "level=0", "--tpm2"])
+
+ with tempfile.TemporaryDirectory() as tpmstate:
+ start_swtpm(tpmstate)
+ machine.start()
+
+ # Verify the TPM device is available and accessible by systemd-cryptenroll
+ machine.succeed("test -e /dev/tpm0")
+ machine.succeed("test -e /dev/tpmrm0")
+ machine.succeed("systemd-cryptenroll --tpm2-device=list")
+
+ # Create LUKS partition
+ machine.succeed("echo -n lukspass | cryptsetup luksFormat -q /dev/vdb -")
+ # Enroll new LUKS key and bind it to Secure Boot state
+ # For more details on PASSWORD variable, check the following issue:
+ # https://github.com/systemd/systemd/issues/20955
+ machine.succeed("PASSWORD=lukspass systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/vdb")
+ # Add LUKS partition to /etc/crypttab to test auto unlock
+ machine.succeed("echo 'luks /dev/vdb - tpm2-device=auto' >> /etc/crypttab")
+ machine.shutdown()
+
+ start_swtpm(tpmstate)
+ machine.start()
+
+ # Test LUKS partition automatic unlock on boot
+ machine.wait_for_unit("systemd-cryptsetup@luks.service")
+ # Wipe TPM2 slot
+ machine.succeed("systemd-cryptenroll --wipe-slot=tpm2 /dev/vdb")
+ '';
+})
+
diff --git a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index 94f17605e001..68836c730729 100644
--- a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -42,6 +42,8 @@ import ./make-test-python.nix ({pkgs, ...}: {
# DO NOT COPY THIS TO PRODUCTION AS IS. Think about it at least twice.
# Everyone on the "isp" machine will be able to add routes to the kernel.
security.wrappers.add-dhcpd-lease = {
+ owner = "root";
+ group = "root";
source = pkgs.writeShellScript "add-dhcpd-lease" ''
exec ${pkgs.iproute2}/bin/ip -6 route replace "$1" via "$2"
'';
diff --git a/nixos/tests/tigervnc.nix b/nixos/tests/tigervnc.nix
index c0a52808b279..ed575682d933 100644
--- a/nixos/tests/tigervnc.nix
+++ b/nixos/tests/tigervnc.nix
@@ -6,7 +6,7 @@
with import ../lib/testing-python.nix { inherit system pkgs; };
makeTest {
name = "tigervnc";
- meta = with pkgs.stdenv.lib.maintainers; {
+ meta = with pkgs.lib.maintainers; {
maintainers = [ lheckemann ];
};
@@ -35,13 +35,13 @@ makeTest {
for host in [server, client]:
host.succeed("echo foobar | vncpasswd -f > vncpasswd")
- server.succeed("Xvnc -geometry 720x576 :1 -PasswordFile vncpasswd &")
+ server.succeed("Xvnc -geometry 720x576 :1 -PasswordFile vncpasswd >&2 &")
server.wait_until_succeeds("nc -z localhost 5901", timeout=10)
server.succeed("DISPLAY=:1 xwininfo -root | grep 720x576")
- server.execute("DISPLAY=:1 display -size 360x200 -font sans -gravity south label:'HELLO VNC WORLD' &")
+ server.execute("DISPLAY=:1 display -size 360x200 -font sans -gravity south label:'HELLO VNC WORLD' >&2 &")
client.wait_for_x()
- client.execute("vncviewer server:1 -PasswordFile vncpasswd &")
+ client.execute("vncviewer server:1 -PasswordFile vncpasswd >&2 &")
client.wait_for_window(r"VNC")
client.screenshot("screenshot")
text = client.get_screen_text()
diff --git a/nixos/tests/tinydns.nix b/nixos/tests/tinydns.nix
index b80e3451700a..124508bc004b 100644
--- a/nixos/tests/tinydns.nix
+++ b/nixos/tests/tinydns.nix
@@ -21,6 +21,20 @@ import ./make-test-python.nix ({ lib, ...} : {
testScript = ''
nameserver.start()
nameserver.wait_for_unit("tinydns.service")
- nameserver.succeed("host bla.foo.bar 192.168.1.1 | grep '1\.2\.3\.4'")
+
+ # We query tinydns a few times to trigger the bug:
+ #
+ # nameserver # [ 6.105872] mmap: tinydns (842): VmData 331776 exceed data ulimit 300000. Update limits or use boot option ignore_rlimit_data.
+ #
+ # which was reported in https://github.com/NixOS/nixpkgs/issues/119066.
+ # Without the patch
+ # it fails on the 10th iteration.
+ nameserver.succeed(
+ """
+ for i in {1..100}; do
+ host bla.foo.bar 192.168.1.1 | grep '1\.2\.3\.4'
+ done
+ """
+ )
'';
})
diff --git a/nixos/tests/turbovnc-headless-server.nix b/nixos/tests/turbovnc-headless-server.nix
index dfa17d65f85e..7d705c56ecf3 100644
--- a/nixos/tests/turbovnc-headless-server.nix
+++ b/nixos/tests/turbovnc-headless-server.nix
@@ -97,7 +97,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
)
machine.execute(
# Note trailing & for backgrounding.
- f"({xvnc_command} | tee /tmp/Xvnc.stdout) 3>&1 1>&2 2>&3 | tee /tmp/Xvnc.stderr &",
+ f"({xvnc_command} | tee /tmp/Xvnc.stdout) 3>&1 1>&2 2>&3 | tee /tmp/Xvnc.stderr >&2 &",
)
@@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
def test_glxgears_failing_with_bad_driver_path():
machine.execute(
# Note trailing & for backgrounding.
- "(env DISPLAY=:0 LIBGL_DRIVERS_PATH=/nonexistent glxgears -info | tee /tmp/glxgears-should-fail.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears-should-fail.stderr &"
+ "(env DISPLAY=:0 LIBGL_DRIVERS_PATH=/nonexistent glxgears -info | tee /tmp/glxgears-should-fail.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears-should-fail.stderr >&2 &"
)
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
wait_until_terminated_or_succeeds(
@@ -136,7 +136,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
def test_glxgears_prints_renderer():
machine.execute(
# Note trailing & for backgrounding.
- "(env DISPLAY=:0 glxgears -info | tee /tmp/glxgears.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears.stderr &"
+ "(env DISPLAY=:0 glxgears -info | tee /tmp/glxgears.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears.stderr >&2 &"
)
machine.wait_until_succeeds("test -f /tmp/glxgears.stderr")
wait_until_terminated_or_succeeds(
diff --git a/nixos/tests/tuxguitar.nix b/nixos/tests/tuxguitar.nix
index 6586132d3cd4..63a7b6c7dec9 100644
--- a/nixos/tests/tuxguitar.nix
+++ b/nixos/tests/tuxguitar.nix
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
testScript = ''
machine.wait_for_x()
- machine.succeed("tuxguitar &")
+ machine.succeed("tuxguitar >&2 &")
machine.wait_for_window("TuxGuitar - Untitled.tg")
machine.sleep(1)
machine.screenshot("tuxguitar")
diff --git a/nixos/tests/ucg.nix b/nixos/tests/ucg.nix
deleted file mode 100644
index 7769fd01fce4..000000000000
--- a/nixos/tests/ucg.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
- name = "ucg";
- meta = with pkgs.lib.maintainers; {
- maintainers = [ AndersonTorres ];
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = [ pkgs.ucg ];
- };
-
- testScript = ''
- machine.succeed("echo 'Lorem ipsum dolor sit amet\n2.7182818284590' > /tmp/foo")
- assert "dolor" in machine.succeed("ucg 'dolor' /tmp/foo")
- assert "Lorem" in machine.succeed("ucg --ignore-case 'lorem' /tmp/foo")
- machine.fail("ucg --word-regexp '2718' /tmp/foo")
- machine.fail("ucg 'pisum' /tmp/foo")
- '';
-})
diff --git a/nixos/tests/udisks2.nix b/nixos/tests/udisks2.nix
index 1f01cc6de4d6..6c4b71aaa2ed 100644
--- a/nixos/tests/udisks2.nix
+++ b/nixos/tests/udisks2.nix
@@ -34,7 +34,7 @@ in
with lzma.open(
"${stick}"
- ) as data, open(machine.state_dir + "/usbstick.img", "wb") as stick:
+ ) as data, open(machine.state_dir / "usbstick.img", "wb") as stick:
stick.write(data.read())
machine.succeed("udisksctl info -b /dev/vda >&2")
diff --git a/nixos/tests/usbguard.nix b/nixos/tests/usbguard.nix
index cba905db44f3..bb707bdbf702 100644
--- a/nixos/tests/usbguard.nix
+++ b/nixos/tests/usbguard.nix
@@ -22,7 +22,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
testScript = ''
# create a blank disk image for our fake USB stick
- with open(machine.state_dir + "/usbstick.img", "wb") as stick:
+ with open(machine.state_dir / "usbstick.img", "wb") as stick:
stick.write(b"\x00" * (1024 * 1024))
# wait for machine to have started and the usbguard service to be up
diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix
index 09314d93b7d0..f15412d365fa 100644
--- a/nixos/tests/virtualbox.nix
+++ b/nixos/tests/virtualbox.nix
@@ -430,7 +430,7 @@ in mapAttrs (mkVBoxTest false vboxVMs) {
create_vm_simple()
- machine.succeed(ru("VirtualBox &"))
+ machine.succeed(ru("VirtualBox >&2 &"))
machine.wait_until_succeeds(ru("xprop -name 'Oracle VM VirtualBox Manager'"))
machine.sleep(5)
machine.screenshot("gui_manager_started")
diff --git a/nixos/tests/vscodium.nix b/nixos/tests/vscodium.nix
index ca75da35b1e1..033090aa0e3d 100644
--- a/nixos/tests/vscodium.nix
+++ b/nixos/tests/vscodium.nix
@@ -31,7 +31,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
# Start VSCodium with a file that doesn't exist yet
machine.fail("ls /home/alice/foo.txt")
- machine.succeed("su - alice -c 'codium foo.txt' &")
+ machine.succeed("su - alice -c 'codium foo.txt' >&2 &")
# Wait for the window to appear
machine.wait_for_text("VSCodium")
diff --git a/nixos/tests/wasabibackend.nix b/nixos/tests/wasabibackend.nix
index 1832698ab698..75730fe24d09 100644
--- a/nixos/tests/wasabibackend.nix
+++ b/nixos/tests/wasabibackend.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
port = 18332;
};
};
- services.bitcoind = {
+ services.bitcoind."testnet" = {
enable = true;
testnet = true;
rpc.users = {
diff --git a/nixos/tests/web-apps/peertube.nix b/nixos/tests/web-apps/peertube.nix
new file mode 100644
index 000000000000..38b31f6c3325
--- /dev/null
+++ b/nixos/tests/web-apps/peertube.nix
@@ -0,0 +1,127 @@
+import ../make-test-python.nix ({pkgs, ...}:
+{
+ name = "peertube";
+ meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
+
+ nodes = {
+ database = {
+ networking = {
+ interfaces.eth1 = {
+ ipv4.addresses = [
+ { address = "192.168.2.10"; prefixLength = 24; }
+ ];
+ };
+ firewall.allowedTCPPorts = [ 5432 6379 ];
+ };
+
+ services.postgresql = {
+ enable = true;
+ enableTCPIP = true;
+ authentication = ''
+ hostnossl peertube_local peertube_test 192.168.2.11/32 md5
+ '';
+ initialScript = pkgs.writeText "postgresql_init.sql" ''
+ CREATE ROLE peertube_test LOGIN PASSWORD '0gUN0C1mgST6czvjZ8T9';
+ CREATE DATABASE peertube_local TEMPLATE template0 ENCODING UTF8;
+ GRANT ALL PRIVILEGES ON DATABASE peertube_local TO peertube_test;
+ \connect peertube_local
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
+ CREATE EXTENSION IF NOT EXISTS unaccent;
+ '';
+ };
+
+ services.redis = {
+ enable = true;
+ bind = "0.0.0.0";
+ requirePass = "turrQfaQwnanGbcsdhxy";
+ };
+ };
+
+ server = { pkgs, ... }: {
+ environment = {
+ etc = {
+ "peertube/password-posgressql-db".text = ''
+ 0gUN0C1mgST6czvjZ8T9
+ '';
+ "peertube/password-redis-db".text = ''
+ turrQfaQwnanGbcsdhxy
+ '';
+ };
+ };
+
+ networking = {
+ interfaces.eth1 = {
+ ipv4.addresses = [
+ { address = "192.168.2.11"; prefixLength = 24; }
+ ];
+ };
+ extraHosts = ''
+ 192.168.2.11 peertube.local
+ '';
+ firewall.allowedTCPPorts = [ 9000 ];
+ };
+
+ services.peertube = {
+ enable = true;
+ localDomain = "peertube.local";
+ enableWebHttps = false;
+
+ database = {
+ host = "192.168.2.10";
+ name = "peertube_local";
+ user = "peertube_test";
+ passwordFile = "/etc/peertube/password-posgressql-db";
+ };
+
+ redis = {
+ host = "192.168.2.10";
+ passwordFile = "/etc/peertube/password-redis-db";
+ };
+
+ settings = {
+ listen = {
+ hostname = "0.0.0.0";
+ };
+ instance = {
+ name = "PeerTube Test Server";
+ };
+ };
+ };
+ };
+
+ client = {
+ environment.systemPackages = [ pkgs.jq ];
+ networking = {
+ interfaces.eth1 = {
+ ipv4.addresses = [
+ { address = "192.168.2.12"; prefixLength = 24; }
+ ];
+ };
+ extraHosts = ''
+ 192.168.2.11 peertube.local
+ '';
+ };
+ };
+
+ };
+
+ testScript = ''
+ start_all()
+
+ database.wait_for_unit("postgresql.service")
+ database.wait_for_unit("redis.service")
+
+ database.wait_for_open_port(5432)
+ database.wait_for_open_port(6379)
+
+ server.wait_for_unit("peertube.service")
+ server.wait_for_open_port(9000)
+
+ # Check if PeerTube is running
+ client.succeed("curl --fail http://peertube.local:9000/api/v1/config/about | jq -r '.instance.name' | grep 'PeerTube\ Test\ Server'")
+
+ client.shutdown()
+ server.shutdown()
+ database.shutdown()
+ '';
+})
diff --git a/nixos/tests/wine.nix b/nixos/tests/wine.nix
new file mode 100644
index 000000000000..c46c7d338b2e
--- /dev/null
+++ b/nixos/tests/wine.nix
@@ -0,0 +1,41 @@
+{ system ? builtins.currentSystem
+, pkgs ? import ../.. { inherit system; config = { }; }
+}:
+
+let
+ inherit (pkgs.lib) concatMapStrings listToAttrs;
+ inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
+
+ hello32 = "${pkgs.pkgsCross.mingw32.hello}/bin/hello.exe";
+ hello64 = "${pkgs.pkgsCross.mingwW64.hello}/bin/hello.exe";
+
+ makeWineTest = packageSet: exes: variant: rec {
+ name = "${packageSet}-${variant}";
+ value = makeTest {
+ inherit name;
+ meta = with pkgs.lib.maintainers; { maintainers = [ chkno ]; };
+
+ machine = { pkgs, ... }: {
+ environment.systemPackages = [ pkgs."${packageSet}"."${variant}" ];
+ virtualisation.diskSize = "800";
+ };
+
+ testScript = ''
+ machine.wait_for_unit("multi-user.target")
+ ${concatMapStrings (exe: ''
+ greeting = machine.succeed(
+ "bash -c 'wine ${exe} 2> >(tee wine-stderr >&2)'"
+ )
+ assert 'Hello, world!' in greeting
+ machine.fail(
+ "fgrep 'Could not find Wine Gecko. HTML rendering will be disabled.' wine-stderr"
+ )
+ '') exes}
+ '';
+ };
+ };
+
+ variants = [ "base" "full" "minimal" "staging" "unstable" ];
+
+in listToAttrs (map (makeWineTest "winePackages" [ hello32 ]) variants
+ ++ map (makeWineTest "wineWowPackages" [ hello32 hello64 ]) variants)
diff --git a/nixos/tests/without-nix.nix b/nixos/tests/without-nix.nix
new file mode 100644
index 000000000000..2fc00b04144f
--- /dev/null
+++ b/nixos/tests/without-nix.nix
@@ -0,0 +1,23 @@
+import ./make-test-python.nix ({ lib, ... }: {
+ name = "without-nix";
+ meta = with lib.maintainers; {
+ maintainers = [ ericson2314 ];
+ };
+
+ nixpkgs.overlays = [
+ (self: super: {
+ nix = throw "don't want to use this";
+ })
+ ];
+
+ nodes.machine = { ... }: {
+ nix.enable = false;
+ };
+
+ testScript = ''
+ start_all()
+
+ machine.succeed("which which")
+ machine.fail("which nix")
+ '';
+})
diff --git a/nixos/tests/wpa_supplicant.nix b/nixos/tests/wpa_supplicant.nix
new file mode 100644
index 000000000000..1d669d5016a7
--- /dev/null
+++ b/nixos/tests/wpa_supplicant.nix
@@ -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"
+ )
+ '';
+})
diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix
index 99e30342e593..148eccdbe308 100644
--- a/nixos/tests/xfce.nix
+++ b/nixos/tests/xfce.nix
@@ -38,7 +38,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
# Check that logging in has given the user ownership of devices.
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
- machine.succeed("su - ${user.name} -c 'DISPLAY=:0.0 xfce4-terminal &'")
+ machine.succeed("su - ${user.name} -c 'DISPLAY=:0.0 xfce4-terminal >&2 &'")
machine.wait_for_window("Terminal")
machine.sleep(10)
machine.screenshot("screen")
diff --git a/nixos/tests/xrdp.nix b/nixos/tests/xrdp.nix
index 92eb7d4772ef..0e1d521c5ace 100644
--- a/nixos/tests/xrdp.nix
+++ b/nixos/tests/xrdp.nix
@@ -32,13 +32,13 @@ import ./make-test-python.nix ({ pkgs, ...} : {
client.sleep(5)
- client.execute("xterm &")
+ client.execute("xterm >&2 &")
client.sleep(1)
client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:${user.name} /p:${user.password}\n")
client.sleep(5)
client.screenshot("localrdp")
- client.execute("xterm &")
+ client.execute("xterm >&2 &")
client.sleep(1)
client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:${user.name} /p:${user.password}\n")
client.sleep(5)
diff --git a/nixos/tests/xterm.nix b/nixos/tests/xterm.nix
index 078d1dca9642..4ee31139ab52 100644
--- a/nixos/tests/xterm.nix
+++ b/nixos/tests/xterm.nix
@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
testScript =
''
machine.wait_for_x()
- machine.succeed("DISPLAY=:0 xterm -title testterm -class testterm -fullscreen &")
+ machine.succeed("DISPLAY=:0 xterm -title testterm -class testterm -fullscreen >&2 &")
machine.sleep(2)
machine.send_chars("echo $XTERM_VERSION >> /tmp/xterm_version\n")
machine.wait_for_file("/tmp/xterm_version")
diff --git a/nixos/tests/yq.nix b/nixos/tests/yq.nix
deleted file mode 100644
index cdcb3d6e2462..000000000000
--- a/nixos/tests/yq.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
- name = "yq";
- meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
- nodes.yq = { pkgs, ... }: { environment.systemPackages = with pkgs; [ jq yq ]; };
-
- testScript = ''
- assert "hello:\n foo: bar\n" in yq.succeed(
- 'echo \'{"hello":{"foo":"bar"}}\' | yq -y .'
- )
- '';
-})
diff --git a/pkgs/applications/audio/ChowKick/default.nix b/pkgs/applications/audio/ChowKick/default.nix
new file mode 100644
index 000000000000..135ed3a11a1c
--- /dev/null
+++ b/pkgs/applications/audio/ChowKick/default.nix
@@ -0,0 +1,106 @@
+{ alsa-lib
+, at-spi2-core
+, brotli
+, cmake
+, curl
+, dbus
+, epoxy
+, fetchFromGitHub
+, freeglut
+, freetype
+, gtk2-x11
+, lib
+, libGL
+, libXcursor
+, libXdmcp
+, libXext
+, libXinerama
+, libXrandr
+, libXtst
+, libdatrie
+, libjack2
+, libpsl
+, libselinux
+, libsepol
+, libsysprof-capture
+, libthai
+, libxkbcommon
+, lv2
+, pcre
+, pkg-config
+, python3
+, sqlite
+, stdenv
+, util-linuxMinimal
+, webkitgtk
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ChowKick";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "Chowdhury-DSP";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0amnp0p7ckbbr9dcbdnld1ryv46kvza2dj8m6hzmi7c1s4df8x5q";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ ];
+ buildInputs = [
+ alsa-lib
+ at-spi2-core
+ brotli
+ curl
+ dbus
+ epoxy
+ freeglut
+ freetype
+ gtk2-x11
+ libGL
+ libXcursor
+ libXdmcp
+ libXext
+ libXinerama
+ libXrandr
+ libXtst
+ libdatrie
+ libjack2
+ libpsl
+ libselinux
+ libsepol
+ libsysprof-capture
+ libthai
+ libxkbcommon
+ lv2
+ pcre
+ python3
+ sqlite
+ util-linuxMinimal
+ webkitgtk
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
+ "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin
+ cp -r ChowKick_artefacts/Release/LV2//${pname}.lv2 $out/lib/lv2
+ cp -r ChowKick_artefacts/Release/VST3/${pname}.vst3 $out/lib/vst3
+ cp ChowKick_artefacts/Release/Standalone/${pname} $out/bin
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/Chowdhury-DSP/ChowKick";
+ description = "Kick synthesizer based on old-school drum machine circuits";
+ license = with licenses; [ bsd3 ];
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/audio/aether-lv2/default.nix b/pkgs/applications/audio/aether-lv2/default.nix
new file mode 100644
index 000000000000..e912c7fa49a4
--- /dev/null
+++ b/pkgs/applications/audio/aether-lv2/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, lv2, libX11, libGL, libGLU, mesa, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "aether-lv2";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "Dougal-s";
+ repo = "aether";
+ rev = "v${version}";
+ sha256 = "0xhih4smjxn87s0f4gaab51d8594qlp0lyypzxl5lm37j1i9zigs";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ lv2 libX11 libGL libGLU mesa
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2
+ cp -r aether.lv2 $out/lib/lv2
+ '';
+
+ meta = with lib; {
+ homepage = "https://dougal-s.github.io/Aether/";
+ description = "An algorithmic reverb LV2 based on Cloudseed";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.mit;
+ };
+}
diff --git a/pkgs/applications/audio/ardour/5.nix b/pkgs/applications/audio/ardour/5.nix
deleted file mode 100644
index b25f9339da13..000000000000
--- a/pkgs/applications/audio/ardour/5.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ lib, stdenv
-, fetchgit
-, alsa-lib
-, aubio
-, boost
-, cairomm
-, curl
-, doxygen
-, fftwSinglePrec
-, flac
-, glibmm
-, graphviz
-, gtkmm2
-, libjack2
-, liblo
-, libogg
-, libsamplerate
-, libsigcxx
-, libsndfile
-, libusb1
-, fluidsynth_1
-, hidapi
-, libltc
-, qm-dsp
-, libxml2
-, lilv
-, lrdf
-, lv2
-, perl
-, pkg-config
-, itstool
-, python2
-, rubberband
-, serd
-, sord
-, sratom
-, taglib
-, vamp-plugin-sdk
-, dbus
-, fftw
-, pango
-, suil
-, libarchive
-, wafHook
-}:
-let
- # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
- # tags are used for MAJOR.MINOR versioning, and lightweight tags are used
- # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
- # last annotated tag. A slightly different version string format is needed
- # for the 'revision' info that is built into the binary; it is the format of
- # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
-
- # Version to build.
- tag = "5.12";
-in stdenv.mkDerivation rec {
- pname = "ardour_5";
- version = "5.12";
-
- src = fetchgit {
- url = "git://git.ardour.org/ardour/ardour.git";
- rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
- sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
- };
-
- nativeBuildInputs = [
- wafHook
- pkg-config
- itstool
- doxygen
- graphviz # for dot
- perl
- python2
- ];
-
- buildInputs = [
- alsa-lib
- aubio
- boost
- cairomm
- curl
- dbus
- fftw
- fftwSinglePrec
- flac
- glibmm
- gtkmm2
- libjack2
- liblo
- libogg
- libsamplerate
- libsigcxx
- libsndfile
- libusb1
- fluidsynth_1
- hidapi
- libltc
- qm-dsp
- libxml2
- lilv
- lrdf
- lv2
- pango
- rubberband
- serd
- sord
- sratom
- suil
- taglib
- vamp-plugin-sdk
- libarchive
- ];
-
- wafConfigureFlags = [
- "--optimize"
- "--docs"
- "--use-external-libs"
- "--freedesktop"
- "--with-backends=jack,alsa,dummy"
- ];
-
- NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
-
- # ardour's wscript has a "tarball" target but that required the git revision
- # be available. Since this is an unzipped tarball fetched from github we
- # have to do that ourself.
- postPatch = ''
- printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
- patchShebangs ./tools/
- '';
-
- postInstall = ''
- # wscript does not install these for some reason
- install -vDm 644 "build/gtk2_ardour/ardour.xml" \
- -t "$out/share/mime/packages"
- install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
- -t "$out/share/applications"
- for size in 16 22 32 48 256 512; do
- install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
- "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
- done
- install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
- '';
-
- meta = with lib; {
- description = "Multi-track hard disk recording software";
- longDescription = ''
- Ardour is a digital audio workstation (DAW), You can use it to
- record, edit and mix multi-track audio and midi. Produce your
- own CDs. Mix video soundtracks. Experiment with new ideas about
- music and sound.
-
- Please consider supporting the ardour project financially:
- https://community.ardour.org/donate
- '';
- homepage = "https://ardour.org/";
- license = licenses.gpl2;
- platforms = platforms.linux;
- maintainers = with maintainers; [ goibhniu fps ];
- };
-}
diff --git a/pkgs/applications/audio/ashuffle/default.nix b/pkgs/applications/audio/ashuffle/default.nix
index e445132ee3c0..5a1be2eaf0c3 100644
--- a/pkgs/applications/audio/ashuffle/default.nix
+++ b/pkgs/applications/audio/ashuffle/default.nix
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "ashuffle";
- version = "3.10.1";
+ version = "3.12.3";
src = fetchFromGitHub {
owner = "joshkunz";
repo = "ashuffle";
rev = "v${version}";
- sha256 = "103jhajqwryiaf52qqgshajcnsxsz4l8gn3sz6bxs7k0yq5x1knr";
+ sha256 = "sha256-y2DH8SjSZ8hV6DAC4uDw5Wn7O0oj/WIhIr4BE/+jUxM=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/audio/aumix/default.nix b/pkgs/applications/audio/aumix/default.nix
index b1808ed90f11..51dda20cc3a1 100644
--- a/pkgs/applications/audio/aumix/default.nix
+++ b/pkgs/applications/audio/aumix/default.nix
@@ -1,30 +1,34 @@
-{lib, stdenv, fetchurl, gettext, ncurses
+{ lib
+, stdenv
+, fetchurl
+, gettext
+, ncurses
, gtkGUI ? false
-, pkg-config ? null
-, gtk2 ? null}:
-
-assert gtkGUI -> pkg-config != null && gtk2 != null;
+, pkg-config
+, gtk2
+}:
stdenv.mkDerivation rec {
- name = "aumix-2.9.1";
+ pname = "aumix";
+ version = "2.9.1";
+
src = fetchurl {
- url = "http://www.jpj.net/~trevor/aumix/releases/${name}.tar.bz2";
+ url = "http://www.jpj.net/~trevor/aumix/releases/aumix-${version}.tar.bz2";
sha256 = "0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj";
};
buildInputs = [ gettext ncurses ]
- ++ (if gtkGUI then [pkg-config gtk2] else []);
+ ++ lib.optionals gtkGUI [ pkg-config gtk2 ];
- meta = {
+ meta = with lib; {
description = "Audio mixer for X and the console";
longDescription = ''
Aumix adjusts an audio mixer from X, the console, a terminal,
the command line or a script.
'';
homepage = "http://www.jpj.net/~trevor/aumix.html";
- license = lib.licenses.gpl2Plus;
-
- maintainers = [ ];
- platforms = lib.platforms.linux;
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index 591c14c1adfa..b2cce97bbc46 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -30,13 +30,9 @@ mkDerivation rec {
postConfigure = "make qmake_all";
- # 1. installs app bundle on darwin, move to app bundle dir & link binary to bin
- # 2. wrapQtAppsHook fails to wrap mach-o binaries automatically, manually call wrapper
- # (see https://github.com/NixOS/nixpkgs/issues/102044)
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv $out/{bin,Applications}/BambooTracker.app
- wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker
ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker
'';
diff --git a/pkgs/applications/audio/bespokesynth/default.nix b/pkgs/applications/audio/bespokesynth/default.nix
new file mode 100644
index 000000000000..c3c33267f65d
--- /dev/null
+++ b/pkgs/applications/audio/bespokesynth/default.nix
@@ -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 <|<)=[0-9\.]+\"/\"\1\"/g" setup.py
+ '';
+
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
+ postInstall = ''
+ substituteInPlace $out/share/applications/friture.desktop --replace usr/bin/friture friture
+
+ for size in 16 32 128 256 512
+ do
+ mkdir -p $out/share/icons/hicolor/$size\x$size
+ cp $src/resources/images/friture.iconset/icon_$size\x$size.png $out/share/icons/hicolor/$size\x$size/friture.png
+ done
+ mkdir -p $out/share/icons/hicolor/scalable/apps/
+ cp $src/resources/images-src/window-icon.svg $out/share/icons/hicolor/scalable/apps/friture.svg
+ '';
+
meta = with lib; {
description = "A real-time audio analyzer";
homepage = "https://friture.org/";
license = licenses.gpl3;
platforms = platforms.linux; # fails on Darwin
- maintainers = [ maintainers.laikq ];
+ maintainers = with maintainers; [ laikq alyaeanyx ];
};
}
diff --git a/pkgs/applications/audio/friture/unlock_constraints.patch b/pkgs/applications/audio/friture/unlock_constraints.patch
deleted file mode 100644
index 6ee474794b2b..000000000000
--- a/pkgs/applications/audio/friture/unlock_constraints.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 4092388..6cb7dac 100644
---- a/setup.py
-+++ b/setup.py
-@@ -50,19 +50,19 @@ ext_modules = [LateIncludeExtension("friture_extensions.exp_smoothing_conv",
- # these will be installed when calling 'pip install friture'
- # they are also retrieved by 'requirements.txt'
- install_requires = [
-- "sounddevice==0.4.2",
-- "rtmixer==0.1.3",
-- "PyOpenGL==3.1.5",
-- "PyOpenGL-accelerate==3.1.5",
-- "docutils==0.17.1",
-- "numpy==1.21.1",
-- "PyQt5==5.15.4",
-- "appdirs==1.4.4",
-- "pyrr==0.10.3",
-+ "sounddevice>=0.4.1",
-+ "rtmixer>=0.1.1",
-+ "PyOpenGL>=3.1.4",
-+ "PyOpenGL-accelerate>=3.1.5",
-+ "docutils>=0.17.1",
-+ "numpy>=1.20.3",
-+ "PyQt5>=5.15.4",
-+ "appdirs>=1.4.4",
-+ "pyrr>=0.10.3",
- ]
-
- # Cython and numpy are needed when running setup.py, to build extensions
--setup_requires=["numpy==1.21.1", "Cython==0.29.24"]
-+setup_requires=["numpy>=1.20.3", "Cython>=0.29.22"]
-
- with open(join(dirname(__file__), 'README.rst')) as f:
- long_description = f.read()
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
index b49335298e01..4b7b760db355 100644
--- a/pkgs/applications/audio/giada/default.nix
+++ b/pkgs/applications/audio/giada/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, autoreconfHook
+, cmake
+, pkg-config
, fltk
-, jansson
, rtmidi
, libsamplerate
, libsndfile
@@ -10,51 +11,65 @@
, alsa-lib
, libpulseaudio
, libXpm
-, libXinerama
-, libXcursor
-, catch2
-, nlohmann_json
+, flac
+, libogg
+, libvorbis
+, libopus
}:
stdenv.mkDerivation rec {
pname = "giada";
- version = "0.16.4";
+ version = "unstable-2021-09-24";
src = fetchFromGitHub {
owner = "monocasual";
repo = pname;
- rev = "v${version}";
- sha256 = "0qyx0bvivlvly0vj5nnnbiks22xh13sqlw4mfgplq2lbbpgisigp";
+ # Using master with https://github.com/monocasual/giada/pull/509 till a new release is done.
+ rev = "f117a8b8eef08d904ef1ab22c45f0e1fad6b8a56";
+ sha256 = "01hb981lrsyk870zs8xph5fm0z7bbffpkxgw04hq487r804mkx9j";
+ fetchSubmodules = true;
};
- configureFlags = [
- "--target=linux"
- "--enable-system-catch"
+ NIX_CFLAGS_COMPILE = [
+ "-w"
+ "-Wno-error"
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_BINDIR=bin"
+ "-DCMAKE_BUILD_TYPE=Release"
];
nativeBuildInputs = [
- autoreconfHook
+ cmake
+ pkg-config
];
buildInputs = [
+ rtmidi
fltk
libsndfile
libsamplerate
- jansson
- rtmidi
- libXpm
- jack2
alsa-lib
+ libXpm
libpulseaudio
- libXinerama
- libXcursor
- catch2
- nlohmann_json
+ jack2
+ flac
+ libogg
+ libvorbis
+ libopus
];
postPatch = ''
- sed -i 's:"deps/json/single_include/nlohmann/json\.hpp"::' \
- src/core/{conf,init,midiMapConf,patch}.cpp
+ local fixup_list=(
+ src/core/kernelMidi.cpp
+ src/gui/elems/config/tabMidi.cpp
+ src/utils/ver.cpp
+ )
+ for f in "''${fixup_list[@]}"; do
+ substituteInPlace "$f" \
+ --replace "" "<${rtmidi.src}/RtMidi.h>"
+ done
'';
meta = with lib; {
@@ -63,6 +78,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl3;
maintainers = with maintainers; [ petabyteboy ];
platforms = platforms.all;
- broken = stdenv.hostPlatform.isAarch64; # produces build failure on aarch64-linux
};
}
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index f90cae115b4e..b6ce0daef0d2 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -24,7 +24,7 @@
, lrdf
, lv2
, pkg-config
-, python2
+, python3
, sassc
, serd
, sord
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
hicolor-icon-theme
intltool
pkg-config
- python2
+ python3
wafHook
wrapGAppsHook
];
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
index 86497e090f43..720fd2b11a13 100644
--- a/pkgs/applications/audio/helm/default.nix
+++ b/pkgs/applications/audio/helm/default.nix
@@ -26,10 +26,13 @@
buildInputs = [
xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext
xorg.libXinerama xorg.libXrender xorg.libXrandr
- freetype alsa-lib curl libjack2 pkg-config libGLU libGL lv2
+ freetype alsa-lib curl libjack2 libGLU libGL lv2
];
+ nativeBuildInputs = [ pkg-config ];
CXXFLAGS = "-DHAVE_LROUND";
+ enableParallelBuilding = true;
+ makeFlags = [ "DESTDIR=$(out)" ];
patches = [
# gcc9 compatibility https://github.com/mtytel/helm/pull/233
@@ -41,15 +44,7 @@
prePatch = ''
sed -i 's|usr/||g' Makefile
- '';
-
- buildPhase = ''
- make lv2
- make standalone
- '';
-
- installPhase = ''
- make DESTDIR="$out" install
+ sed -i "s|/usr/share/|$out/share/|" src/common/load_save.cpp
'';
meta = with lib; {
@@ -72,7 +67,7 @@
Simple arpeggiator
Effects: Formant filter, stutter, delay
'';
- license = lib.licenses.gpl3;
+ license = lib.licenses.gpl3Plus;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
};
diff --git a/pkgs/applications/audio/helvum/default.nix b/pkgs/applications/audio/helvum/default.nix
index 39c8a3b3184c..757b83cd4d57 100644
--- a/pkgs/applications/audio/helvum/default.nix
+++ b/pkgs/applications/audio/helvum/default.nix
@@ -13,17 +13,17 @@
rustPlatform.buildRustPackage rec {
pname = "helvum";
- version = "0.3.0";
+ version = "0.3.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "ryuukyu";
repo = pname;
rev = version;
- sha256 = "sha256-AlHCK4pWaoNjR0eflxHBsuVaaily/RvCbgJv/ByQZK4=";
+ sha256 = "sha256-f6+6Qicg5J6oWcafG4DF0HovTmF4r6yfw6p/3dJHmB4=";
};
- cargoSha256 = "sha256-mAhh12rGvQjs2xtm+OrtVv0fgG6qni/QM/oRYoFR7U8=";
+ cargoSha256 = "sha256-zGa6nAmOOrpiMr865J06Ez3L6lPL0j18/lW8lw1jPyU=";
nativeBuildInputs = [ clang copyDesktopItems pkg-config ];
buildInputs = [ glib gtk4 pipewire ];
diff --git a/pkgs/applications/audio/hushboard/default.nix b/pkgs/applications/audio/hushboard/default.nix
new file mode 100644
index 000000000000..e9d88d1f236f
--- /dev/null
+++ b/pkgs/applications/audio/hushboard/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, gobject-introspection
+, gtk3
+, libappindicator
+, libpulseaudio
+, librsvg
+, pycairo
+, pygobject3
+, six
+, wrapGAppsHook
+, xlib
+}:
+
+buildPythonApplication {
+ pname = "hushboard";
+ version = "unstable-2021-03-17";
+
+ src = fetchFromGitHub {
+ owner = "stuartlangridge";
+ repo = "hushboard";
+ rev = "c16611c539be111891116a737b02c5fb359ad1fc";
+ sha256 = "06jav6j0bsxhawrq31cnls8zpf80fpwk0cak5s82js6wl4vw2582";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ gtk3
+ libappindicator
+ libpulseaudio
+ ];
+
+ propagatedBuildInputs = [
+ pycairo
+ pygobject3
+ six
+ xlib
+ ];
+
+ postPatch = ''
+ substituteInPlace hushboard/_pulsectl.py \
+ --replace "ctypes.util.find_library('libpulse') or 'libpulse.so.0'" "'${libpulseaudio}/lib/libpulse.so.0'"
+ substituteInPlace snap/gui/hushboard.desktop \
+ --replace "\''${SNAP}/hushboard/icons/hushboard.svg" "hushboard"
+ '';
+
+ postInstall = ''
+ # Fix tray icon, see e.g. https://github.com/NixOS/nixpkgs/pull/43421
+ wrapProgram $out/bin/hushboard \
+ --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
+
+ mkdir -p $out/share/applications $out/share/icons/hicolor/{scalable,512x512}/apps
+ cp snap/gui/hushboard.desktop $out/share/applications
+ cp hushboard/icons/hushboard.svg $out/share/icons/hicolor/scalable/apps
+ cp hushboard-512.png $out/share/icons/hicolor/512x512/apps/hushboard.png
+ '';
+
+ # There are no tests
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://kryogenix.org/code/hushboard/";
+ license = licenses.mit;
+ description = "Mute your microphone while typing";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ sersorrel ];
+ };
+}
diff --git a/pkgs/applications/audio/in-formant/default.nix b/pkgs/applications/audio/in-formant/default.nix
new file mode 100644
index 000000000000..7cf0fb8c1454
--- /dev/null
+++ b/pkgs/applications/audio/in-formant/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, cmake, lib, fetchFromGitHub, qt5, fftw, libtorch-bin, portaudio, eigen
+, xorg, pkg-config, autoPatchelfHook, soxr
+}:
+
+stdenv.mkDerivation rec {
+ pname = "in-formant";
+ version = "2021-06-30";
+
+ # no Qt6 yet, so we're stuck in the last Qt5-supporting commit: https://github.com/NixOS/nixpkgs/issues/108008
+ src = fetchFromGitHub {
+ owner = "in-formant";
+ repo = "in-formant";
+ rev = "e28e628cf5ff0949a7b046d220cc884f6035f31a";
+ sha256 = "sha256-YvtV0wGUNmI/+GGxrIfTk/l8tqUsWgc/LAI17X+AWGI=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkg-config qt5.wrapQtAppsHook autoPatchelfHook ];
+
+ buildInputs = [
+ qt5.qtbase
+ qt5.qtquickcontrols
+ qt5.qtquickcontrols2
+ qt5.qtcharts
+ fftw
+ libtorch-bin
+ portaudio
+ eigen
+ xorg.libxcb
+ soxr
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp in-formant $out/bin
+ '';
+
+ meta = with lib; {
+ description = "A real-time pitch and formant tracking software";
+ homepage = "https://github.com/in-formant/in-formant";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ckie ];
+ };
+}
diff --git a/pkgs/applications/audio/jconvolver/default.nix b/pkgs/applications/audio/jconvolver/default.nix
new file mode 100644
index 000000000000..5294ae5f13a1
--- /dev/null
+++ b/pkgs/applications/audio/jconvolver/default.nix
@@ -0,0 +1,114 @@
+{ lib, stdenv, fetchurl, flac, unzip, fftwFloat, hybridreverb2, libclthreads, libjack2, libsndfile, zita-convolver }:
+
+stdenv.mkDerivation rec {
+ pname = "jconvolver";
+ version = "1.1.0";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "03fq1rk5wyn32w0aaa9vqijnw9x9i0i7sv4nhsf949bk5lvi2nmc";
+ };
+
+ reverbs = fetchurl {
+ url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/jconvolver-reverbs.tar.bz2";
+ sha256 = "127aj211xfqp37c94d9cn0mmwzbjkj3f6br5gr67ckqirvsdkndi";
+ };
+ weird = fetchurl {
+ url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/weird.wav";
+ sha256 = "14xchdikx5k8zlgwglrqi168vki3n3rwhn73dkbj5qwh2ndrlyrc";
+ };
+
+ porihall-sf = fetchurl {
+ url = "http://legacy.spa.aalto.fi/projects/poririrs/wavs/sndfld.zip";
+ sha256 = "0z1kmdin3vcy6wmnym9jlfh8hwvci9404hff02cb98iw2slxid42";
+ };
+ porihall-bd = fetchurl {
+ url = "http://legacy.spa.aalto.fi/projects/poririrs/wavs/bin_dfeq.zip";
+ sha256 = "03m2brfxs851sag4z7kd71h6anv6hj34zcambwib0v1byg8vyplp";
+ };
+ porihall-c = fetchurl {
+ url = "http://legacy.spa.aalto.fi/projects/poririrs/wavs/cardioid.zip";
+ sha256 = "0ilbfvb2kvg5z6zi0mf2k4n0vgpir3iz5fa53xw92c07fs0cx36w";
+ };
+
+ spacenet-hm2 = fetchurl {
+ url = "https://webfiles.york.ac.uk/OPENAIR/IRs/hamilton-mausoleum/b-format/hm2_000_bformat_48k.wav";
+ sha256 = "1icnzfzq3mccbmnvmvh22mw8g8dci4i9h7lgrpmycj58v3gnb1p5";
+ };
+ spacenet-lyd3 = fetchurl {
+ url = "https://webfiles.york.ac.uk/OPENAIR/IRs/st-andrews-church/b-format/lyd3_000_bformat_48k.wav";
+ sha256 = "144cc0i91q5i72lwbxydx3nvxrd12j7clxjhwa2b8sf69ypz58wd";
+ };
+ spacenet-mh3 = fetchurl {
+ url = "https://webfiles.york.ac.uk/OPENAIR/IRs/maes-howe/b-format/mh3_000_bformat_48k.wav";
+ sha256 = "1c6v9jlm88l1sx2383yivycdrs9jqfsfx8cpbkjg19v2x1dfns0b";
+ };
+ spacenet-minster1 = fetchurl {
+ url = "https://webfiles.york.ac.uk/OPENAIR/IRs/york-minster/b-format/minster1_bformat_48k.wav";
+ sha256 = "1cs26pawjkv6qvwhfirfvzh21xvnmx8yh7f4xcr79cxv5c6hhnrw";
+ };
+
+ nativeBuildInputs = [ flac unzip ];
+
+ buildInputs = [
+ fftwFloat
+ hybridreverb2
+ libclthreads
+ libjack2
+ libsndfile
+ zita-convolver
+ ];
+
+ outputs = [ "bin" "out" "doc" ];
+
+ preConfigure = ''
+ cd source
+ '';
+
+ makeFlags = [
+ "PREFIX=$(bin)"
+ ];
+
+ postInstall = ''
+ mkdir -p $doc/share/doc/jconvolver
+ cp -r ../[A-Z]* $doc/share/doc/jconvolver/
+
+ mkdir -p $out/share/jconvolver
+ cp -r ../config-files $out/share/jconvolver/
+ cd $out/share/jconvolver
+ for conf in */*.conf */*/*.conf; do
+ if grep -q /audio/ $conf; then
+ substituteInPlace $conf --replace /audio/ $out/share/jconvolver/
+ fi
+ done
+ substituteInPlace config-files/xtalk-cancel/EYCv2-44.conf --replace /cd "#/cd"
+ ln -s ${weird} config-files/weird.wav
+
+ tar xf ${reverbs}
+ cd reverbs
+ unzip -d porihall ${porihall-sf} s1_r4_sf.wav
+ unzip -d porihall ${porihall-bd} s1_r3_bd.wav
+ unzip -d porihall ${porihall-c} s1_r3_c.wav
+
+ mkdir spacenet
+ ln -s ${spacenet-hm2} spacenet/HM2_000_WXYZ_48k.amb
+ ln -s ${spacenet-lyd3} spacenet/Lyd3_000_WXYZ_48k.amb
+ ln -s ${spacenet-mh3} spacenet/MH3_000_WXYZ_48k.amb
+ ln -s ${spacenet-minster1} spacenet/Minster1_000_WXYZ_48k.amb
+
+ mkdir -p hybridreverb-database/large_concert_hall/music/8m
+ for flac in ${hybridreverb2}/share/HybridReverb2/RIR_Database/large_concert_hall/music/8m/*.flac; do
+ flac --output-prefix=hybridreverb-database/large_concert_hall/music/8m/ -d $flac
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A JACK client and audio file convolver with reverb samples";
+ homepage = "https://kokkinizita.linuxaudio.org/linuxaudio/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/audio/kapitonov-plugins-pack/default.nix b/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
index 6e5cc0d51916..655fc6a9608c 100644
--- a/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
+++ b/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Set of LADSPA and LV2 plugins for guitar sound processing";
- homepage = https://github.com/olegkapitonov/Kapitonov-Plugins-Pack;
+ homepage = "https://github.com/olegkapitonov/Kapitonov-Plugins-Pack";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/applications/audio/librespot/cargo-lock.patch b/pkgs/applications/audio/librespot/cargo-lock.patch
deleted file mode 100644
index 0c2af8f80c60..000000000000
--- a/pkgs/applications/audio/librespot/cargo-lock.patch
+++ /dev/null
@@ -1,3817 +0,0 @@
---- source/Cargo.lock 1970-01-01 01:00:01.000000000 +0100
-+++ ../nix-build-librespot-0.1.6.drv-0/source/Cargo.lock 2021-04-27 19:07:38.535244188 +0200
-@@ -4,2784 +4,2782 @@
- name = "aes"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9"
- dependencies = [
-- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "aes-soft",
-+ "aesni",
-+ "block-cipher-trait",
- ]
-
- [[package]]
- name = "aes-ctr"
- version = "0.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee"
- dependencies = [
-- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "aes-soft",
-+ "aesni",
-+ "ctr",
-+ "stream-cipher",
- ]
-
- [[package]]
- name = "aes-soft"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d"
- dependencies = [
-- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-cipher-trait",
-+ "byteorder",
-+ "opaque-debug",
- ]
-
- [[package]]
- name = "aesni"
- version = "0.6.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100"
- dependencies = [
-- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-cipher-trait",
-+ "opaque-debug",
-+ "stream-cipher",
- ]
-
- [[package]]
- name = "alga"
- version = "0.9.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2"
- dependencies = [
-- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "approx",
-+ "num-complex",
-+ "num-traits",
- ]
-
- [[package]]
- name = "alsa"
- version = "0.2.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32"
- dependencies = [
-- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "alsa-sys",
-+ "bitflags 0.9.1",
-+ "libc",
-+ "nix",
- ]
-
- [[package]]
- name = "alsa-sys"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "approx"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
- dependencies = [
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits",
- ]
-
- [[package]]
- name = "arc-swap"
- version = "0.4.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
-
- [[package]]
- name = "atty"
- version = "0.2.14"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
- dependencies = [
-- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hermit-abi",
-+ "libc",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "autocfg"
- version = "0.1.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-
- [[package]]
- name = "autocfg"
- version = "1.0.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-
- [[package]]
- name = "base64"
- version = "0.9.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
-+ "safemem",
- ]
-
- [[package]]
- name = "base64"
- version = "0.10.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
- ]
-
- [[package]]
- name = "bindgen"
- version = "0.53.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "cexpr",
-+ "cfg-if",
-+ "clang-sys",
-+ "lazy_static",
-+ "lazycell",
-+ "peeking_take_while",
-+ "proc-macro2 1.0.19",
-+ "quote 1.0.7",
-+ "regex",
-+ "rustc-hash",
-+ "shlex",
- ]
-
- [[package]]
- name = "bit-set"
- version = "0.5.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
- dependencies = [
-- "bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bit-vec",
- ]
-
- [[package]]
- name = "bit-vec"
- version = "0.6.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3"
-
- [[package]]
- name = "bitflags"
- version = "0.7.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-
- [[package]]
- name = "bitflags"
- version = "0.9.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
-
- [[package]]
- name = "bitflags"
- version = "1.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
- [[package]]
- name = "block-buffer"
- version = "0.7.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
- dependencies = [
-- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-padding",
-+ "byte-tools",
-+ "byteorder",
-+ "generic-array",
- ]
-
- [[package]]
- name = "block-cipher-trait"
- version = "0.6.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774"
- dependencies = [
-- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "generic-array",
- ]
-
- [[package]]
- name = "block-modes"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529"
- dependencies = [
-- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-cipher-trait",
-+ "block-padding",
- ]
-
- [[package]]
- name = "block-padding"
- version = "0.1.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
- dependencies = [
-- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byte-tools",
- ]
-
- [[package]]
- name = "byte-tools"
- version = "0.3.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-
- [[package]]
- name = "byteorder"
- version = "1.3.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-
- [[package]]
- name = "bytes"
- version = "0.4.12"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
-+ "iovec",
- ]
-
- [[package]]
- name = "cc"
- version = "1.0.58"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
-
- [[package]]
- name = "cexpr"
- version = "0.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
- dependencies = [
-- "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nom",
- ]
-
- [[package]]
- name = "cfg-if"
- version = "0.1.10"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
- [[package]]
- name = "chrono"
- version = "0.4.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
- dependencies = [
-- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer",
-+ "num-traits",
-+ "time",
- ]
-
- [[package]]
- name = "clang-sys"
- version = "0.29.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
- dependencies = [
-- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glob",
-+ "libc",
-+ "libloading 0.5.2",
- ]
-
- [[package]]
- name = "cloudabi"
- version = "0.0.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
- ]
-
- [[package]]
- name = "core-foundation-sys"
- version = "0.5.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
- ]
-
- [[package]]
- name = "coreaudio-rs"
- version = "0.9.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "coreaudio-sys",
- ]
-
- [[package]]
- name = "coreaudio-sys"
- version = "0.2.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4"
- dependencies = [
-- "bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bindgen",
- ]
-
- [[package]]
- name = "cpal"
- version = "0.8.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e"
- dependencies = [
-- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "alsa-sys",
-+ "core-foundation-sys",
-+ "coreaudio-rs",
-+ "lazy_static",
-+ "libc",
-+ "stdweb",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "crossbeam-deque"
- version = "0.7.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
- dependencies = [
-- "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-epoch",
-+ "crossbeam-utils 0.7.2",
-+ "maybe-uninit",
- ]
-
- [[package]]
- name = "crossbeam-epoch"
- version = "0.8.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "cfg-if",
-+ "crossbeam-utils 0.7.2",
-+ "lazy_static",
-+ "maybe-uninit",
-+ "memoffset",
-+ "scopeguard",
- ]
-
- [[package]]
- name = "crossbeam-queue"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
- dependencies = [
-- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.6.6",
- ]
-
- [[package]]
- name = "crossbeam-queue"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "crossbeam-utils 0.7.2",
-+ "maybe-uninit",
- ]
-
- [[package]]
- name = "crossbeam-utils"
- version = "0.6.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "lazy_static",
- ]
-
- [[package]]
- name = "crossbeam-utils"
- version = "0.7.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "cfg-if",
-+ "lazy_static",
- ]
-
- [[package]]
- name = "crypto-mac"
- version = "0.7.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
- dependencies = [
-- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "generic-array",
-+ "subtle",
- ]
-
- [[package]]
- name = "ctr"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736"
- dependencies = [
-- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-cipher-trait",
-+ "stream-cipher",
- ]
-
- [[package]]
- name = "digest"
- version = "0.8.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
- dependencies = [
-- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "generic-array",
- ]
-
- [[package]]
- name = "dns-sd"
- version = "0.1.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "env_logger"
- version = "0.6.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
- dependencies = [
-- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
-- "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty",
-+ "humantime",
-+ "log 0.4.11",
-+ "termcolor",
- ]
-
- [[package]]
- name = "error-chain"
- version = "0.12.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
- dependencies = [
-- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "version_check",
- ]
-
- [[package]]
- name = "fake-simd"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
- [[package]]
- name = "fnv"
- version = "1.0.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
- [[package]]
- name = "fuchsia-cprng"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
- [[package]]
- name = "fuchsia-zircon"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "fuchsia-zircon-sys",
- ]
-
- [[package]]
- name = "fuchsia-zircon-sys"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
- [[package]]
- name = "futures"
- version = "0.1.29"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
-
- [[package]]
- name = "futures-channel"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
- dependencies = [
-- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures-core",
- ]
-
- [[package]]
- name = "futures-core"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
-
- [[package]]
- name = "futures-cpupool"
- version = "0.1.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
-+ "num_cpus",
- ]
-
- [[package]]
- name = "futures-executor"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
- dependencies = [
-- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures-core",
-+ "futures-task",
-+ "futures-util",
- ]
-
- [[package]]
- name = "futures-macro"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
- dependencies = [
-- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro-hack",
-+ "proc-macro2 1.0.19",
-+ "quote 1.0.7",
-+ "syn 1.0.35",
- ]
-
- [[package]]
- name = "futures-sink"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
-
- [[package]]
- name = "futures-task"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
- dependencies = [
-- "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "once_cell",
- ]
-
- [[package]]
- name = "futures-util"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
- dependencies = [
-- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures-core",
-+ "futures-macro",
-+ "futures-task",
-+ "pin-project",
-+ "pin-utils",
-+ "proc-macro-hack",
-+ "proc-macro-nested",
-+ "slab 0.4.2",
- ]
-
- [[package]]
- name = "gcc"
- version = "0.3.55"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
-
- [[package]]
- name = "generic-array"
- version = "0.12.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
- dependencies = [
-- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typenum",
- ]
-
- [[package]]
- name = "getopts"
- version = "0.2.21"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
- dependencies = [
-- "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width",
- ]
-
- [[package]]
- name = "getrandom"
- version = "0.1.14"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "libc",
-+ "wasi",
- ]
-
- [[package]]
- name = "glib"
- version = "0.9.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "futures-channel",
-+ "futures-core",
-+ "futures-executor",
-+ "futures-task",
-+ "futures-util",
-+ "glib-sys",
-+ "gobject-sys",
-+ "lazy_static",
-+ "libc",
- ]
-
- [[package]]
- name = "glib-sys"
- version = "0.9.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "glob"
- version = "0.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
- [[package]]
- name = "gobject-sys"
- version = "0.9.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
- dependencies = [
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "gstreamer"
- version = "0.15.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "cfg-if",
-+ "futures-channel",
-+ "futures-core",
-+ "futures-util",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gstreamer-sys",
-+ "lazy_static",
-+ "libc",
-+ "muldiv",
-+ "num-rational",
-+ "paste",
- ]
-
- [[package]]
- name = "gstreamer-app"
- version = "0.15.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "futures-core",
-+ "futures-sink",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gstreamer",
-+ "gstreamer-app-sys",
-+ "gstreamer-base",
-+ "gstreamer-sys",
-+ "lazy_static",
-+ "libc",
- ]
-
- [[package]]
- name = "gstreamer-app-sys"
- version = "0.8.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167"
- dependencies = [
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys",
-+ "gstreamer-base-sys",
-+ "gstreamer-sys",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "gstreamer-base"
- version = "0.15.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gstreamer",
-+ "gstreamer-base-sys",
-+ "gstreamer-sys",
-+ "libc",
- ]
-
- [[package]]
- name = "gstreamer-base-sys"
- version = "0.8.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed"
- dependencies = [
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gstreamer-sys",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "gstreamer-sys"
- version = "0.8.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db"
- dependencies = [
-- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "hermit-abi"
- version = "0.1.15"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
- ]
-
- [[package]]
- name = "hex"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
-
- [[package]]
- name = "hmac"
- version = "0.7.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
- dependencies = [
-- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crypto-mac",
-+ "digest",
- ]
-
- [[package]]
- name = "hostname"
- version = "0.3.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "match_cfg",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "httparse"
- version = "1.3.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
-
- [[package]]
- name = "humantime"
- version = "1.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
- dependencies = [
-- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quick-error",
- ]
-
- [[package]]
- name = "hyper"
- version = "0.11.27"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7"
- dependencies = [
-- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
-- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
-- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "base64 0.9.3",
-+ "bytes",
-+ "futures",
-+ "futures-cpupool",
-+ "httparse",
-+ "iovec",
-+ "language-tags",
-+ "log 0.4.11",
-+ "mime",
-+ "net2",
-+ "percent-encoding",
-+ "relay",
-+ "time",
-+ "tokio-core",
-+ "tokio-io",
-+ "tokio-proto",
-+ "tokio-service",
-+ "unicase",
-+ "want",
- ]
-
- [[package]]
- name = "hyper-proxy"
- version = "0.4.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "hyper",
-+ "tokio-core",
-+ "tokio-io",
- ]
-
- [[package]]
- name = "idna"
- version = "0.1.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
- dependencies = [
-- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "matches",
-+ "unicode-bidi",
-+ "unicode-normalization",
- ]
-
- [[package]]
- name = "if-addrs"
- version = "0.6.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48"
- dependencies = [
-- "if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "if-addrs-sys",
-+ "libc",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "if-addrs-sys"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
- dependencies = [
-- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc",
-+ "libc",
- ]
-
- [[package]]
- name = "iovec"
- version = "0.1.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
- ]
-
- [[package]]
- name = "itoa"
- version = "0.4.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
-
- [[package]]
- name = "jack"
- version = "0.5.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df"
- dependencies = [
-- "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 0.7.0",
-+ "jack-sys",
-+ "lazy_static",
-+ "libc",
- ]
-
- [[package]]
- name = "jack-sys"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3"
- dependencies = [
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static",
-+ "libc",
-+ "libloading 0.4.3",
- ]
-
- [[package]]
- name = "kernel32-sys"
- version = "0.2.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
- dependencies = [
-- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8",
-+ "winapi-build",
- ]
-
- [[package]]
- name = "language-tags"
- version = "0.2.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
-
- [[package]]
- name = "lazy_static"
- version = "1.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
- [[package]]
- name = "lazycell"
- version = "1.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
-
- [[package]]
- name = "lewton"
- version = "0.9.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
-+ "ogg",
-+ "smallvec 0.6.13",
- ]
-
- [[package]]
- name = "libc"
- version = "0.2.73"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
-
- [[package]]
- name = "libloading"
- version = "0.4.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9"
- dependencies = [
-- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys",
-+ "lazy_static",
-+ "winapi 0.2.8",
- ]
-
- [[package]]
- name = "libloading"
- version = "0.5.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
- dependencies = [
-- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "libm"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
-
- [[package]]
- name = "libmdns"
- version = "0.2.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
-+ "futures",
-+ "hostname",
-+ "if-addrs",
-+ "log 0.4.11",
-+ "multimap",
-+ "net2",
-+ "quick-error",
-+ "rand 0.7.3",
-+ "tokio-core",
- ]
-
- [[package]]
- name = "libpulse-sys"
- version = "0.0.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
- ]
-
- [[package]]
- name = "librespot"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-audio 0.1.5",
-- "librespot-connect 0.1.5",
-- "librespot-core 0.1.5",
-- "librespot-metadata 0.1.5",
-- "librespot-playback 0.1.5",
-- "librespot-protocol 0.1.5",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "base64 0.10.1",
-+ "env_logger",
-+ "futures",
-+ "getopts",
-+ "hex",
-+ "hyper",
-+ "librespot-audio",
-+ "librespot-connect",
-+ "librespot-core",
-+ "librespot-metadata",
-+ "librespot-playback",
-+ "librespot-protocol",
-+ "log 0.4.11",
-+ "num-bigint",
-+ "protobuf",
-+ "rand 0.7.3",
-+ "rpassword",
-+ "sha-1",
-+ "tokio-core",
-+ "tokio-io",
-+ "tokio-process",
-+ "tokio-signal",
-+ "url",
- ]
-
- [[package]]
- name = "librespot-audio"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-core 0.1.5",
-- "librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "aes-ctr",
-+ "bit-set",
-+ "byteorder",
-+ "bytes",
-+ "futures",
-+ "lewton",
-+ "librespot-core",
-+ "librespot-tremor",
-+ "log 0.4.11",
-+ "num-bigint",
-+ "num-traits",
-+ "tempfile",
-+ "vorbis",
- ]
-
- [[package]]
- name = "librespot-connect"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-core 0.1.5",
-- "librespot-playback 0.1.5",
-- "librespot-protocol 0.1.5",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
-- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "aes-ctr",
-+ "base64 0.10.1",
-+ "block-modes",
-+ "dns-sd",
-+ "futures",
-+ "hmac",
-+ "hyper",
-+ "libmdns",
-+ "librespot-core",
-+ "librespot-playback",
-+ "librespot-protocol",
-+ "log 0.4.11",
-+ "num-bigint",
-+ "protobuf",
-+ "rand 0.7.3",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "sha-1",
-+ "tokio-core",
-+ "url",
- ]
-
- [[package]]
- name = "librespot-core"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-protocol 0.1.5",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
-- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "aes",
-+ "base64 0.10.1",
-+ "byteorder",
-+ "bytes",
-+ "error-chain",
-+ "futures",
-+ "hmac",
-+ "httparse",
-+ "hyper",
-+ "hyper-proxy",
-+ "lazy_static",
-+ "librespot-protocol",
-+ "log 0.4.11",
-+ "num-bigint",
-+ "num-integer",
-+ "num-traits",
-+ "pbkdf2",
-+ "protobuf",
-+ "rand 0.7.3",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "sha-1",
-+ "shannon",
-+ "tokio-codec",
-+ "tokio-core",
-+ "tokio-io",
-+ "url",
-+ "uuid",
-+ "vergen",
- ]
-
- [[package]]
- name = "librespot-metadata"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-core 0.1.5",
-- "librespot-protocol 0.1.5",
-- "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
-+ "futures",
-+ "librespot-core",
-+ "librespot-protocol",
-+ "linear-map",
-+ "log 0.4.11",
-+ "protobuf",
- ]
-
- [[package]]
- name = "librespot-playback"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-audio 0.1.5",
-- "librespot-core 0.1.5",
-- "librespot-metadata 0.1.5",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "alsa",
-+ "byteorder",
-+ "cpal",
-+ "futures",
-+ "glib",
-+ "gstreamer",
-+ "gstreamer-app",
-+ "jack",
-+ "libc",
-+ "libpulse-sys",
-+ "librespot-audio",
-+ "librespot-core",
-+ "librespot-metadata",
-+ "log 0.4.11",
-+ "portaudio-rs",
-+ "rodio",
-+ "sdl2",
-+ "shell-words",
-+ "zerocopy",
- ]
-
- [[package]]
- name = "librespot-protocol"
--version = "0.1.5"
-+version = "0.1.6"
- dependencies = [
-- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glob",
-+ "protobuf",
-+ "protobuf-codegen",
-+ "protobuf-codegen-pure",
- ]
-
- [[package]]
- name = "librespot-tremor"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe"
- dependencies = [
-- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc",
-+ "libc",
-+ "ogg-sys",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "linear-map"
- version = "1.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
-
- [[package]]
- name = "lock_api"
- version = "0.3.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
- dependencies = [
-- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scopeguard",
- ]
-
- [[package]]
- name = "log"
- version = "0.3.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
- dependencies = [
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.11",
- ]
-
- [[package]]
- name = "log"
- version = "0.4.11"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
- ]
-
- [[package]]
- name = "match_cfg"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
-
- [[package]]
- name = "matches"
- version = "0.1.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-
- [[package]]
- name = "matrixmultiply"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f"
- dependencies = [
-- "rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rawpointer",
- ]
-
- [[package]]
- name = "maybe-uninit"
- version = "2.0.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-
- [[package]]
- name = "memchr"
- version = "2.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-
- [[package]]
- name = "memoffset"
- version = "0.5.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
- ]
-
- [[package]]
- name = "mime"
- version = "0.3.16"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-
- [[package]]
- name = "mio"
- version = "0.6.22"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
-- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "fuchsia-zircon",
-+ "fuchsia-zircon-sys",
-+ "iovec",
-+ "kernel32-sys",
-+ "libc",
-+ "log 0.4.11",
-+ "miow 0.2.1",
-+ "net2",
-+ "slab 0.4.2",
-+ "winapi 0.2.8",
- ]
-
- [[package]]
- name = "mio-named-pipes"
- version = "0.1.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
- dependencies = [
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.11",
-+ "mio",
-+ "miow 0.3.5",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "mio-uds"
- version = "0.6.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
- dependencies = [
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec",
-+ "libc",
-+ "mio",
- ]
-
- [[package]]
- name = "miow"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
- dependencies = [
-- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys",
-+ "net2",
-+ "winapi 0.2.8",
-+ "ws2_32-sys",
- ]
-
- [[package]]
- name = "miow"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
- dependencies = [
-- "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "socket2",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "muldiv"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
-
- [[package]]
- name = "multimap"
- version = "0.8.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce"
- dependencies = [
-- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde",
- ]
-
- [[package]]
- name = "nalgebra"
- version = "0.18.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2"
- dependencies = [
-- "alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "alga",
-+ "approx",
-+ "generic-array",
-+ "matrixmultiply",
-+ "num-complex",
-+ "num-rational",
-+ "num-traits",
-+ "rand 0.6.5",
-+ "typenum",
- ]
-
- [[package]]
- name = "net2"
- version = "0.2.34"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "libc",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "nix"
- version = "0.9.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32"
- dependencies = [
-- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 0.9.1",
-+ "cfg-if",
-+ "libc",
-+ "void",
- ]
-
- [[package]]
- name = "nom"
- version = "5.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
- dependencies = [
-- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr",
-+ "version_check",
- ]
-
- [[package]]
- name = "num"
- version = "0.1.42"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
- dependencies = [
-- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer",
-+ "num-iter",
-+ "num-traits",
- ]
-
- [[package]]
- name = "num-bigint"
- version = "0.2.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "num-integer",
-+ "num-traits",
- ]
-
- [[package]]
- name = "num-complex"
- version = "0.2.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "num-traits",
- ]
-
- [[package]]
- name = "num-integer"
- version = "0.1.43"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "num-traits",
- ]
-
- [[package]]
- name = "num-iter"
- version = "0.1.41"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "num-integer",
-+ "num-traits",
- ]
-
- [[package]]
- name = "num-rational"
- version = "0.2.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "num-integer",
-+ "num-traits",
- ]
-
- [[package]]
- name = "num-traits"
- version = "0.2.12"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
- dependencies = [
-- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 1.0.0",
-+ "libm",
- ]
-
- [[package]]
- name = "num_cpus"
- version = "1.13.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
- dependencies = [
-- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hermit-abi",
-+ "libc",
- ]
-
- [[package]]
- name = "ogg"
- version = "0.7.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
- ]
-
- [[package]]
- name = "ogg-sys"
- version = "0.0.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2"
- dependencies = [
-- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gcc",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "once_cell"
- version = "1.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
-
- [[package]]
- name = "opaque-debug"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-
- [[package]]
- name = "parking_lot"
- version = "0.9.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
- dependencies = [
-- "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lock_api",
-+ "parking_lot_core",
-+ "rustc_version",
- ]
-
- [[package]]
- name = "parking_lot_core"
- version = "0.6.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "cloudabi",
-+ "libc",
-+ "redox_syscall",
-+ "rustc_version",
-+ "smallvec 0.6.13",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "paste"
- version = "0.1.18"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
- dependencies = [
-- "paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "paste-impl",
-+ "proc-macro-hack",
- ]
-
- [[package]]
- name = "paste-impl"
- version = "0.1.18"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
- dependencies = [
-- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro-hack",
- ]
-
- [[package]]
- name = "pbkdf2"
- version = "0.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"
- dependencies = [
-- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "base64 0.9.3",
-+ "byteorder",
-+ "crypto-mac",
-+ "hmac",
-+ "rand 0.5.6",
-+ "sha2",
-+ "subtle",
- ]
-
- [[package]]
- name = "peeking_take_while"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
- [[package]]
- name = "percent-encoding"
- version = "1.0.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-
- [[package]]
- name = "pin-project"
- version = "0.4.22"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
- dependencies = [
-- "pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pin-project-internal",
- ]
-
- [[package]]
- name = "pin-project-internal"
- version = "0.4.22"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
- dependencies = [
-- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 1.0.19",
-+ "quote 1.0.7",
-+ "syn 1.0.35",
- ]
-
- [[package]]
- name = "pin-utils"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
- [[package]]
- name = "pkg-config"
- version = "0.3.18"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
-
- [[package]]
- name = "portaudio-rs"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "libc",
-+ "portaudio-sys",
- ]
-
- [[package]]
- name = "portaudio-sys"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "ppv-lite86"
- version = "0.2.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
-
- [[package]]
- name = "proc-macro-hack"
- version = "0.5.16"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
-
- [[package]]
- name = "proc-macro-nested"
- version = "0.1.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
-
- [[package]]
- name = "proc-macro2"
- version = "0.4.30"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
- dependencies = [
-- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0",
- ]
-
- [[package]]
- name = "proc-macro2"
- version = "1.0.19"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
- dependencies = [
-- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.1",
- ]
-
- [[package]]
- name = "protobuf"
- version = "2.14.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
-
- [[package]]
- name = "protobuf-codegen"
- version = "2.14.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c"
- dependencies = [
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "protobuf",
- ]
-
- [[package]]
- name = "protobuf-codegen-pure"
- version = "2.14.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440"
- dependencies = [
-- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "protobuf",
-+ "protobuf-codegen",
- ]
-
- [[package]]
- name = "quick-error"
- version = "1.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
- [[package]]
- name = "quote"
- version = "0.6.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
- dependencies = [
-- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30",
- ]
-
- [[package]]
- name = "quote"
- version = "1.0.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
- dependencies = [
-- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 1.0.19",
- ]
-
- [[package]]
- name = "rand"
- version = "0.3.23"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "rand 0.4.6",
- ]
-
- [[package]]
- name = "rand"
- version = "0.4.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
- dependencies = [
-- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.3.1",
-+ "rdrand",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "rand"
- version = "0.5.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
- dependencies = [
-- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.3.1",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "rand"
- version = "0.6.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 0.1.7",
-+ "libc",
-+ "rand_chacha 0.1.1",
-+ "rand_core 0.4.2",
-+ "rand_hc 0.1.0",
-+ "rand_isaac",
-+ "rand_jitter",
-+ "rand_os",
-+ "rand_pcg",
-+ "rand_xorshift",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "rand"
- version = "0.7.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
- dependencies = [
-- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "getrandom",
-+ "libc",
-+ "rand_chacha 0.2.2",
-+ "rand_core 0.5.1",
-+ "rand_hc 0.2.0",
- ]
-
- [[package]]
- name = "rand_chacha"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 0.1.7",
-+ "rand_core 0.3.1",
- ]
-
- [[package]]
- name = "rand_chacha"
- version = "0.2.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
- dependencies = [
-- "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ppv-lite86",
-+ "rand_core 0.5.1",
- ]
-
- [[package]]
- name = "rand_core"
- version = "0.3.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
- dependencies = [
-- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2",
- ]
-
- [[package]]
- name = "rand_core"
- version = "0.4.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-
- [[package]]
- name = "rand_core"
- version = "0.5.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
- dependencies = [
-- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "getrandom",
- ]
-
- [[package]]
- name = "rand_hc"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
- dependencies = [
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1",
- ]
-
- [[package]]
- name = "rand_hc"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
- dependencies = [
-- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1",
- ]
-
- [[package]]
- name = "rand_isaac"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
- dependencies = [
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1",
- ]
-
- [[package]]
- name = "rand_jitter"
- version = "0.1.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "rand_core 0.4.2",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "rand_os"
- version = "0.1.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
- dependencies = [
-- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.4.2",
-+ "rdrand",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "rand_pcg"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg 0.1.7",
-+ "rand_core 0.4.2",
- ]
-
- [[package]]
- name = "rand_xorshift"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
- dependencies = [
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1",
- ]
-
- [[package]]
- name = "rawpointer"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
-
- [[package]]
- name = "rdrand"
- version = "0.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
- dependencies = [
-- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1",
- ]
-
- [[package]]
- name = "redox_syscall"
- version = "0.1.57"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-
- [[package]]
- name = "regex"
- version = "1.3.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
- dependencies = [
-- "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax",
- ]
-
- [[package]]
- name = "regex-syntax"
- version = "0.6.18"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
-
- [[package]]
- name = "relay"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
- ]
-
- [[package]]
- name = "remove_dir_all"
- version = "0.5.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
- dependencies = [
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "rodio"
- version = "0.9.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d"
- dependencies = [
-- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cpal",
-+ "lazy_static",
-+ "nalgebra",
- ]
-
- [[package]]
- name = "rpassword"
- version = "3.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e"
- dependencies = [
-- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys",
-+ "libc",
-+ "winapi 0.2.8",
- ]
-
- [[package]]
- name = "rustc-hash"
- version = "1.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
- [[package]]
- name = "rustc_version"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
- dependencies = [
-- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "semver",
- ]
-
- [[package]]
- name = "ryu"
- version = "1.0.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
-
- [[package]]
- name = "safemem"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
- [[package]]
- name = "scoped-tls"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
-
- [[package]]
- name = "scopeguard"
- version = "1.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
- [[package]]
- name = "sdl2"
- version = "0.32.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "lazy_static",
-+ "libc",
-+ "num",
-+ "rand 0.6.5",
-+ "sdl2-sys",
- ]
-
- [[package]]
- name = "sdl2-sys"
- version = "0.32.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "libc",
- ]
-
- [[package]]
- name = "semver"
- version = "0.9.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
- dependencies = [
-- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "semver-parser",
- ]
-
- [[package]]
- name = "semver-parser"
- version = "0.7.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-
- [[package]]
- name = "serde"
- version = "1.0.114"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
-
- [[package]]
- name = "serde_derive"
- version = "1.0.114"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
- dependencies = [
-- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 1.0.19",
-+ "quote 1.0.7",
-+ "syn 1.0.35",
- ]
-
- [[package]]
- name = "serde_json"
- version = "1.0.56"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
- dependencies = [
-- "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itoa",
-+ "ryu",
-+ "serde",
- ]
-
- [[package]]
- name = "sha-1"
- version = "0.8.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
- dependencies = [
-- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-buffer",
-+ "digest",
-+ "fake-simd",
-+ "opaque-debug",
- ]
-
- [[package]]
- name = "sha2"
- version = "0.8.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
- dependencies = [
-- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "block-buffer",
-+ "digest",
-+ "fake-simd",
-+ "opaque-debug",
- ]
-
- [[package]]
- name = "shannon"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
- ]
-
- [[package]]
- name = "shell-words"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a"
-
- [[package]]
- name = "shlex"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
-
- [[package]]
- name = "signal-hook-registry"
- version = "1.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
- dependencies = [
-- "arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "arc-swap",
-+ "libc",
- ]
-
- [[package]]
- name = "slab"
- version = "0.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
-
- [[package]]
- name = "slab"
- version = "0.4.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-
- [[package]]
- name = "smallvec"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013"
-
- [[package]]
- name = "smallvec"
- version = "0.6.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
- dependencies = [
-- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "maybe-uninit",
- ]
-
- [[package]]
- name = "socket2"
- version = "0.3.12"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "stdweb"
- version = "0.1.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e"
-
- [[package]]
- name = "stream-cipher"
- version = "0.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c"
- dependencies = [
-- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "generic-array",
- ]
-
- [[package]]
- name = "subtle"
- version = "1.0.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
-
- [[package]]
- name = "syn"
- version = "0.15.44"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
- dependencies = [
-- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30",
-+ "quote 0.6.13",
-+ "unicode-xid 0.1.0",
- ]
-
- [[package]]
- name = "syn"
- version = "1.0.35"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
- dependencies = [
-- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 1.0.19",
-+ "quote 1.0.7",
-+ "unicode-xid 0.2.1",
- ]
-
- [[package]]
- name = "synstructure"
- version = "0.10.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
- dependencies = [
-- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30",
-+ "quote 0.6.13",
-+ "syn 0.15.44",
-+ "unicode-xid 0.1.0",
- ]
-
- [[package]]
- name = "take"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
-
- [[package]]
- name = "tempfile"
- version = "3.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
-- "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "libc",
-+ "rand 0.7.3",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "termcolor"
- version = "1.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
- dependencies = [
-- "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-util",
- ]
-
- [[package]]
- name = "time"
- version = "0.1.43"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "tinyvec"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
-
- [[package]]
- name = "tokio"
- version = "0.1.22"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "mio",
-+ "num_cpus",
-+ "tokio-codec",
-+ "tokio-current-thread",
-+ "tokio-executor",
-+ "tokio-fs",
-+ "tokio-io",
-+ "tokio-reactor",
-+ "tokio-sync",
-+ "tokio-tcp",
-+ "tokio-threadpool",
-+ "tokio-timer",
-+ "tokio-udp",
-+ "tokio-uds",
- ]
-
- [[package]]
- name = "tokio-codec"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "tokio-io",
- ]
-
- [[package]]
- name = "tokio-core"
- version = "0.1.17"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "iovec",
-+ "log 0.4.11",
-+ "mio",
-+ "scoped-tls",
-+ "tokio",
-+ "tokio-executor",
-+ "tokio-io",
-+ "tokio-reactor",
-+ "tokio-timer",
- ]
-
- [[package]]
- name = "tokio-current-thread"
- version = "0.1.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
-+ "tokio-executor",
- ]
-
- [[package]]
- name = "tokio-executor"
- version = "0.1.10"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
- dependencies = [
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.2",
-+ "futures",
- ]
-
- [[package]]
- name = "tokio-fs"
- version = "0.1.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
-+ "tokio-io",
-+ "tokio-threadpool",
- ]
-
- [[package]]
- name = "tokio-io"
- version = "0.1.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "log 0.4.11",
- ]
-
- [[package]]
- name = "tokio-process"
- version = "0.2.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43"
- dependencies = [
-- "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-queue 0.1.2",
-+ "futures",
-+ "lazy_static",
-+ "libc",
-+ "log 0.4.11",
-+ "mio",
-+ "mio-named-pipes",
-+ "tokio-io",
-+ "tokio-reactor",
-+ "tokio-signal",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "tokio-proto"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-- "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
-+ "log 0.3.9",
-+ "net2",
-+ "rand 0.3.23",
-+ "slab 0.3.0",
-+ "smallvec 0.2.1",
-+ "take",
-+ "tokio-core",
-+ "tokio-io",
-+ "tokio-service",
- ]
-
- [[package]]
- name = "tokio-reactor"
- version = "0.1.12"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
- dependencies = [
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.2",
-+ "futures",
-+ "lazy_static",
-+ "log 0.4.11",
-+ "mio",
-+ "num_cpus",
-+ "parking_lot",
-+ "slab 0.4.2",
-+ "tokio-executor",
-+ "tokio-io",
-+ "tokio-sync",
- ]
-
- [[package]]
- name = "tokio-service"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
- ]
-
- [[package]]
- name = "tokio-signal"
- version = "0.2.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
-+ "libc",
-+ "mio",
-+ "mio-uds",
-+ "signal-hook-registry",
-+ "tokio-executor",
-+ "tokio-io",
-+ "tokio-reactor",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "tokio-sync"
- version = "0.1.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
- dependencies = [
-- "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fnv",
-+ "futures",
- ]
-
- [[package]]
- name = "tokio-tcp"
- version = "0.1.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "iovec",
-+ "mio",
-+ "tokio-io",
-+ "tokio-reactor",
- ]
-
- [[package]]
- name = "tokio-threadpool"
- version = "0.1.18"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
- dependencies = [
-- "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-deque",
-+ "crossbeam-queue 0.2.3",
-+ "crossbeam-utils 0.7.2",
-+ "futures",
-+ "lazy_static",
-+ "log 0.4.11",
-+ "num_cpus",
-+ "slab 0.4.2",
-+ "tokio-executor",
- ]
-
- [[package]]
- name = "tokio-timer"
- version = "0.2.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
- dependencies = [
-- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.2",
-+ "futures",
-+ "slab 0.4.2",
-+ "tokio-executor",
- ]
-
- [[package]]
- name = "tokio-udp"
- version = "0.1.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "log 0.4.11",
-+ "mio",
-+ "tokio-codec",
-+ "tokio-io",
-+ "tokio-reactor",
- ]
-
- [[package]]
- name = "tokio-uds"
- version = "0.2.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
- dependencies = [
-- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
-- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bytes",
-+ "futures",
-+ "iovec",
-+ "libc",
-+ "log 0.4.11",
-+ "mio",
-+ "mio-uds",
-+ "tokio-codec",
-+ "tokio-io",
-+ "tokio-reactor",
- ]
-
- [[package]]
- name = "try-lock"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2"
-
- [[package]]
- name = "typenum"
- version = "1.12.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
-
- [[package]]
- name = "unicase"
- version = "2.6.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
- dependencies = [
-- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "version_check",
- ]
-
- [[package]]
- name = "unicode-bidi"
- version = "0.3.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
- dependencies = [
-- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "matches",
- ]
-
- [[package]]
- name = "unicode-normalization"
- version = "0.1.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
- dependencies = [
-- "tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tinyvec",
- ]
-
- [[package]]
- name = "unicode-width"
- version = "0.1.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
-
- [[package]]
- name = "unicode-xid"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-
- [[package]]
- name = "unicode-xid"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
-
- [[package]]
- name = "url"
- version = "1.7.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
- dependencies = [
-- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "idna",
-+ "matches",
-+ "percent-encoding",
- ]
-
- [[package]]
- name = "uuid"
- version = "0.7.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
- dependencies = [
-- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.6.5",
- ]
-
- [[package]]
- name = "vergen"
- version = "3.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb"
- dependencies = [
-- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1",
-+ "chrono",
- ]
-
- [[package]]
- name = "version_check"
- version = "0.9.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
-
- [[package]]
- name = "void"
- version = "1.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-
- [[package]]
- name = "vorbis"
- version = "0.0.14"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776"
- dependencies = [
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "ogg-sys",
-+ "vorbis-sys",
-+ "vorbisfile-sys",
- ]
-
- [[package]]
- name = "vorbis-sys"
- version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4"
- dependencies = [
-- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gcc",
-+ "libc",
-+ "ogg-sys",
-+ "pkg-config",
- ]
-
- [[package]]
- name = "vorbisfile-sys"
- version = "0.0.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1"
- dependencies = [
-- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gcc",
-+ "libc",
-+ "ogg-sys",
-+ "pkg-config",
-+ "vorbis-sys",
- ]
-
- [[package]]
- name = "want"
- version = "0.0.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1"
- dependencies = [
-- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures",
-+ "log 0.4.11",
-+ "try-lock",
- ]
-
- [[package]]
- name = "wasi"
- version = "0.9.0+wasi-snapshot-preview1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
- [[package]]
- name = "winapi"
- version = "0.2.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
- [[package]]
- name = "winapi"
- version = "0.3.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
- dependencies = [
-- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
- ]
-
- [[package]]
- name = "winapi-build"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
- [[package]]
- name = "winapi-i686-pc-windows-gnu"
- version = "0.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
- [[package]]
- name = "winapi-util"
- version = "0.1.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
- dependencies = [
-- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.9",
- ]
-
- [[package]]
- name = "winapi-x86_64-pc-windows-gnu"
- version = "0.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
- [[package]]
- name = "ws2_32-sys"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
- dependencies = [
-- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8",
-+ "winapi-build",
- ]
-
- [[package]]
- name = "zerocopy"
- version = "0.2.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056"
- dependencies = [
-- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder",
-+ "zerocopy-derive",
- ]
-
- [[package]]
- name = "zerocopy-derive"
- version = "0.1.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5"
- dependencies = [
-- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-- "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
--]
--
--[metadata]
--"checksum aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9"
--"checksum aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee"
--"checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d"
--"checksum aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100"
--"checksum alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2"
--"checksum alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32"
--"checksum alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
--"checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
--"checksum arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
--"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
--"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
--"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
--"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
--"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
--"checksum bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
--"checksum bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
--"checksum bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3"
--"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
--"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
--"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
--"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
--"checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774"
--"checksum block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529"
--"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
--"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
--"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
--"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
--"checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
--"checksum cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
--"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
--"checksum chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
--"checksum clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
--"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
--"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
--"checksum coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
--"checksum coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4"
--"checksum cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e"
--"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
--"checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
--"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
--"checksum crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
--"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
--"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
--"checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
--"checksum ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736"
--"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
--"checksum dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087"
--"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
--"checksum error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
--"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
--"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
--"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
--"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
--"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
--"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
--"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
--"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
--"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
--"checksum futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
--"checksum futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
--"checksum futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
--"checksum futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
--"checksum futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
--"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
--"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
--"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
--"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
--"checksum glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0"
--"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
--"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
--"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
--"checksum gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163"
--"checksum gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)" = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9"
--"checksum gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167"
--"checksum gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)" = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12"
--"checksum gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed"
--"checksum gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db"
--"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
--"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
--"checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
--"checksum hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
--"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
--"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
--"checksum hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)" = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7"
--"checksum hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece"
--"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
--"checksum if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48"
--"checksum if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
--"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
--"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
--"checksum jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df"
--"checksum jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3"
--"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
--"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
--"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
--"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
--"checksum lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
--"checksum libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)" = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
--"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9"
--"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
--"checksum libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
--"checksum libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e"
--"checksum libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac"
--"checksum librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe"
--"checksum linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
--"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
--"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
--"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
--"checksum match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
--"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
--"checksum matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f"
--"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
--"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
--"checksum memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
--"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
--"checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
--"checksum mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
--"checksum mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
--"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
--"checksum miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
--"checksum muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
--"checksum multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce"
--"checksum nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2"
--"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
--"checksum nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32"
--"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
--"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
--"checksum num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
--"checksum num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
--"checksum num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
--"checksum num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
--"checksum num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
--"checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
--"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
--"checksum ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15"
--"checksum ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2"
--"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
--"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
--"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
--"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
--"checksum paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
--"checksum paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
--"checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"
--"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
--"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
--"checksum pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
--"checksum pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
--"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
--"checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
--"checksum portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562"
--"checksum portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5"
--"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
--"checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
--"checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
--"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
--"checksum proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)" = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
--"checksum protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
--"checksum protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c"
--"checksum protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440"
--"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
--"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
--"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
--"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
--"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
--"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
--"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
--"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
--"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
--"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
--"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
--"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
--"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
--"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
--"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
--"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
--"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
--"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
--"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
--"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
--"checksum rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
--"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
--"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
--"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
--"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
--"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
--"checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
--"checksum rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d"
--"checksum rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e"
--"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
--"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
--"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
--"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
--"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
--"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
--"checksum sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b"
--"checksum sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)" = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86"
--"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
--"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
--"checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
--"checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
--"checksum serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)" = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
--"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
--"checksum sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
--"checksum shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561"
--"checksum shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a"
--"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
--"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
--"checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
--"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
--"checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013"
--"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
--"checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
--"checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e"
--"checksum stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c"
--"checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
--"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
--"checksum syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
--"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
--"checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
--"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
--"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
--"checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
--"checksum tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
--"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
--"checksum tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
--"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
--"checksum tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
--"checksum tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
--"checksum tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
--"checksum tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
--"checksum tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43"
--"checksum tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389"
--"checksum tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
--"checksum tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
--"checksum tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12"
--"checksum tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
--"checksum tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
--"checksum tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
--"checksum tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
--"checksum tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
--"checksum tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
--"checksum try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2"
--"checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
--"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
--"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
--"checksum unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
--"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
--"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
--"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
--"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
--"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
--"checksum vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb"
--"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
--"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
--"checksum vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776"
--"checksum vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4"
--"checksum vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1"
--"checksum want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1"
--"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
--"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
--"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
--"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
--"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
--"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
--"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
--"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
--"checksum zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056"
--"checksum zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5"
-+ "proc-macro2 0.4.30",
-+ "syn 0.15.44",
-+ "synstructure",
-+]
diff --git a/pkgs/applications/audio/librespot/default.nix b/pkgs/applications/audio/librespot/default.nix
index 61f709b33e15..7b7d811f5731 100644
--- a/pkgs/applications/audio/librespot/default.nix
+++ b/pkgs/applications/audio/librespot/default.nix
@@ -4,17 +4,16 @@
rustPlatform.buildRustPackage rec {
pname = "librespot";
- version = "0.1.6";
+ version = "0.3.1";
src = fetchFromGitHub {
owner = "librespot-org";
repo = "librespot";
rev = "v${version}";
- sha256 = "153i9n3qwmmwc29f62cz8nbqrlry16iygvibm1sdnvpf0s6wk5f3";
+ sha256 = "1fv2sk89rf1vraq823bxddlxj6b4gqhfpc36xr7ibz2405zickfv";
};
- cargoPatches = [ ./cargo-lock.patch ];
- cargoSha256 = "11d64rpq4b5rdxk5wx0hhzgc6mvs6h2br0w3kfncfklp67vn3v4v";
+ cargoSha256 = "1sal85gsbnrabxi39298w9njdc08csnwl40akd6k9fsc0fmpn1b0";
cargoBuildFlags = with lib; [
"--no-default-features"
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index f791ad51bf9c..4830476af2c8 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -1,5 +1,5 @@
{ lib, fetchFromGitHub, cmake, pkg-config, alsa-lib ? null, fftwFloat, fltk13
-, fluidsynth_1 ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
+, fluidsynth ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
, libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
, qtbase, qtx11extras, qttools, SDL ? null, mkDerivation }:
@@ -21,7 +21,7 @@ mkDerivation rec {
alsa-lib
fftwFloat
fltk13
- fluidsynth_1
+ fluidsynth
lame
libgig
libjack2
diff --git a/pkgs/applications/audio/midi-visualizer/default.nix b/pkgs/applications/audio/midi-visualizer/default.nix
index 0213dc4af6da..a50e5dcd6690 100644
--- a/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/pkgs/applications/audio/midi-visualizer/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "MIDIVisualizer";
- version = "6.4";
+ version = "6.5";
src = fetchFromGitHub {
owner = "kosua20";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-XR5xmQYVbBR6QWt/+PLeGqg0t4xl35MPrQNaPsmgAYA=";
+ sha256 = "sha256-thRcRJ88bz3jwu6rKaQxt2MkBSf5Ri1jygkKDguP2eE=";
};
nativeBuildInputs = [ cmake pkg-config makeWrapper];
diff --git a/pkgs/applications/audio/mimic/default.nix b/pkgs/applications/audio/mimic/default.nix
index 5ed51a998959..870584d357eb 100644
--- a/pkgs/applications/audio/mimic/default.nix
+++ b/pkgs/applications/audio/mimic/default.nix
@@ -1,29 +1,37 @@
-{ config, lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config
-, alsa-lib, libtool, icu
+{ config, lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config, makeWrapper
+, alsa-lib, alsa-plugins, libtool, icu, pcre2
, pulseaudioSupport ? config.pulseaudio or false, libpulseaudio }:
stdenv.mkDerivation rec {
pname = "mimic";
- version = "1.2.0.2";
+ version = "1.3.0.1";
src = fetchFromGitHub {
- rev = version;
- repo = "mimic";
owner = "MycroftAI";
- sha256 = "1wkpbwk88lsahzkc7pzbznmyy0lc02vsp0vkj8f1ags1gh0lc52j";
+ repo = "mimic1";
+ rev = version;
+ sha256 = "1agwgby9ql8r3x5rd1rgx3xp9y4cdg4pi3kqlz3vanv9na8nf3id";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
+ makeWrapper
];
buildInputs = [
alsa-lib
+ alsa-plugins
libtool
icu
+ pcre2
] ++ lib.optional pulseaudioSupport libpulseaudio;
+ postInstall = ''
+ wrapProgram $out/bin/mimic \
+ --run "export ALSA_PLUGIN_DIR=${alsa-plugins}/lib/alsa-lib"
+ '';
+
meta = {
description = "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)";
homepage = "https://mimic.mycroft.ai/";
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index 518c54dc48aa..bbd0e07a64a4 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -53,13 +53,13 @@
mkDerivation rec {
pname = "mixxx";
- version = "2.3.0";
+ version = "2.3.1";
src = fetchFromGitHub {
owner = "mixxxdj";
repo = "mixxx";
rev = version;
- sha256 = "18sx4l3zzbn5142xfv5bp0crdd615a5728fkprqacnx3zpa144x6";
+ sha256 = "sha256-6M1qaRyRYWTIKqclewuD+RUVDdxVbBHcfpw2qYgO6BA=";
};
nativeBuildInputs = [ cmake pkg-config ];
@@ -117,7 +117,7 @@ mkDerivation rec {
# mixxx installs udev rules to DATADIR instead of SYSCONFDIR
# let's disable this and install udev rules manually via postInstall
- # see https://github.com/mixxxdj/mixxx/blob/2.3.0/CMakeLists.txt#L1381-L1392
+ # see https://github.com/mixxxdj/mixxx/blob/2.3.1/CMakeLists.txt#L1381-L1392
cmakeFlags = [
"-DINSTALL_USER_UDEV_RULES=OFF"
];
diff --git a/pkgs/applications/audio/mmtc/default.nix b/pkgs/applications/audio/mmtc/default.nix
index fc5a2e9b0350..578cecf09b09 100644
--- a/pkgs/applications/audio/mmtc/default.nix
+++ b/pkgs/applications/audio/mmtc/default.nix
@@ -1,27 +1,26 @@
-{ fetchFromGitHub, installShellFiles, lib, rustPlatform }:
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
rustPlatform.buildRustPackage rec {
pname = "mmtc";
- version = "0.2.13";
+ version = "0.2.14";
src = fetchFromGitHub {
owner = "figsoda";
repo = pname;
rev = "v${version}";
- sha256 = "0ag87hgdg6fvk80fgznba0xjlcajks5w5s6y8lvwhz9irn2kq2rz";
+ sha256 = "sha256-g2JHY95vkG/Ep2eqz8guteF8fHUso/JuuVijNGkgykA=";
};
- cargoSha256 = "0lkx0zj9xc0rlrq91l4wydzp430hxlrqyq7ii8wq2fcan8ln22lv";
+ cargoSha256 = "sha256-tVjy/O5hfnQFC6to8VMGc39mEXhA5lwUIne6pVvDec0=";
nativeBuildInputs = [ installShellFiles ];
preFixup = ''
completions=($releaseDir/build/mmtc-*/out/completions)
- installShellCompletion ''${completions[0]}/mmtc.{bash,fish}
- installShellCompletion --zsh ''${completions[0]}/_mmtc
+ installShellCompletion $completions/mmtc.{bash,fish} --zsh $completions/_mmtc
'';
- GEN_COMPLETIONS = "1";
+ GEN_COMPLETIONS = 1;
meta = with lib; {
description = "Minimal mpd terminal client that aims to be simple yet highly configurable";
diff --git a/pkgs/applications/audio/mod-distortion/default.nix b/pkgs/applications/audio/mod-distortion/default.nix
index 7c9f2acfd844..7e2b2bf6cfbd 100644
--- a/pkgs/applications/audio/mod-distortion/default.nix
+++ b/pkgs/applications/audio/mod-distortion/default.nix
@@ -1,8 +1,8 @@
{ lib, stdenv, fetchFromGitHub, lv2 }:
stdenv.mkDerivation {
- pname = "mod-distortion-git";
- version = "2016-08-19";
+ pname = "mod-distortion";
+ version = "unstable-2016-08-19";
src = fetchFromGitHub {
owner = "portalmod";
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index 0deecaec7ff6..971b226bc81d 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -37,5 +37,7 @@ lib.makeScope newScope (self: with self; {
mopidy-youtube = callPackage ./youtube.nix { };
+ mopidy-ytmusic = callPackage ./ytmusic.nix { };
+
mopidy-subidy = callPackage ./subidy.nix { };
})
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index c4e231ad4099..d02ca3d747eb 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "Mopidy-Iris";
- version = "3.58.2";
+ version = "3.59.0";
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "1cni9dd1c97bp92crjhsbwml12z8i6wkmj79zz8qvk46k8ixy3vp";
+ sha256 = "0llvn0khl07ni34jvb3a1r6rnkf0ljizhpqrs5bdishfhpwyhm0j";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/mpd.nix b/pkgs/applications/audio/mopidy/mpd.nix
index d686d4928989..ab7e33ea3e37 100644
--- a/pkgs/applications/audio/mopidy/mpd.nix
+++ b/pkgs/applications/audio/mopidy/mpd.nix
@@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "Mopidy-MPD";
- version = "3.0.0";
+ version = "3.2.0";
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "0prjli4352521igcsfcgmk97jmzgbfy4ik8hnli37wgvv252wiac";
+ sha256 = "sha256-oZvKr61lyu7CmXP2A/xtYng1FIUPyveVJMqUuv6UnaM=";
};
propagatedBuildInputs = [mopidy];
diff --git a/pkgs/applications/audio/mopidy/mpris.nix b/pkgs/applications/audio/mopidy/mpris.nix
index 6327ba020bf9..6bacfee627ca 100644
--- a/pkgs/applications/audio/mopidy/mpris.nix
+++ b/pkgs/applications/audio/mopidy/mpris.nix
@@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec {
pname = "mopidy-mpris";
- version = "3.0.2";
+ version = "3.0.3";
src = python3Packages.fetchPypi {
inherit version;
pname = "Mopidy-MPRIS";
- sha256 = "0mmdaikw00f43gzjdbvlcvzff6yppm7v8mv012r79adzd992q9y0";
+ sha256 = "sha256-rHQgNIyludTEL7RDC8dIpyGTMOt1Tazn6i/orKlSP4U=";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/youtube.nix b/pkgs/applications/audio/mopidy/youtube.nix
index b84a756c2ce1..ecb8128032e5 100644
--- a/pkgs/applications/audio/mopidy/youtube.nix
+++ b/pkgs/applications/audio/mopidy/youtube.nix
@@ -1,29 +1,56 @@
-{ lib, python3Packages, mopidy }:
+{ lib
+, fetchFromGitHub
+, python3
+, mopidy
+}:
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
pname = "mopidy-youtube";
- version = "3.2";
+ version = "3.4";
- src = python3Packages.fetchPypi {
- inherit version;
- pname = "Mopidy-YouTube";
- sha256 = "0wmalfqnskglssq3gj6kkrq6h6c9yab503y72afhkm7n9r5c57zz";
+ disabled = python3.pythonOlder "3.7";
+
+ src = fetchFromGitHub {
+ owner = "natumbri";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0lm6nn926qkrwzvj64yracdixfrnv5zk243msjskrnlzkhgk01rk";
};
- patchPhase = "sed s/bs4/beautifulsoup4/ -i setup.cfg";
-
- propagatedBuildInputs = [
+ propagatedBuildInputs = with python3.pkgs; [
+ beautifulsoup4
+ cachetools
+ pykka
+ requests
+ youtube-dl
+ ytmusicapi
+ ] ++ [
mopidy
- python3Packages.beautifulsoup4
- python3Packages.cachetools
- python3Packages.youtube-dl
];
- doCheck = false;
+ checkInputs = with python3.pkgs; [
+ vcrpy
+ pytestCheckHook
+ ];
+
+ disabledTests = [
+ # Test requires a YouTube API key
+ "test_get_default_config"
+ ];
+
+ disabledTestPaths = [
+ # Fails with an import error
+ "tests/test_backend.py"
+ ];
+
+ pythonImportsCheck = [
+ "mopidy_youtube"
+ ];
meta = with lib; {
description = "Mopidy extension for playing music from YouTube";
+ homepage = "https://github.com/natumbri/mopidy-youtube";
license = licenses.asl20;
- maintainers = [ maintainers.spwhitt ];
+ maintainers = with maintainers; [ spwhitt ];
};
}
diff --git a/pkgs/applications/audio/mopidy/ytmusic.nix b/pkgs/applications/audio/mopidy/ytmusic.nix
new file mode 100644
index 000000000000..92b754147852
--- /dev/null
+++ b/pkgs/applications/audio/mopidy/ytmusic.nix
@@ -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 ];
+ };
+}
diff --git a/pkgs/applications/audio/mousai/default.nix b/pkgs/applications/audio/mousai/default.nix
index 9044d201c457..f61b7c5b7b94 100644
--- a/pkgs/applications/audio/mousai/default.nix
+++ b/pkgs/applications/audio/mousai/default.nix
@@ -1,6 +1,7 @@
{ lib
, python3
, fetchFromGitHub
+, substituteAll
, appstream-glib
, desktop-file-utils
, gettext
@@ -13,12 +14,13 @@
, meson
, ninja
, pkg-config
+, pulseaudio
, wrapGAppsHook
}:
python3.pkgs.buildPythonApplication rec {
pname = "mousai";
- version = "0.4.2";
+ version = "0.6.6";
format = "other";
@@ -26,9 +28,16 @@ python3.pkgs.buildPythonApplication rec {
owner = "SeaDve";
repo = "Mousai";
rev = "v${version}";
- sha256 = "sha256-zH++GGFIz3oxkKOYB4zhY6yL3vENEXxtrv8mZZ+41kU=";
+ sha256 = "sha256-nCbFVFg+nVF8BOBfdzQVgdTRXR5UF18PJFC266yTFwg=";
};
+ patches = [
+ (substituteAll {
+ src = ./paths.patch;
+ pactl = "${lib.getBin pulseaudio}/bin/pactl";
+ })
+ ];
+
postPatch = ''
patchShebangs build-aux/meson
'';
@@ -53,6 +62,7 @@ python3.pkgs.buildPythonApplication rec {
gtk4
libadwaita
librsvg
+ pulseaudio
];
propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/audio/mousai/paths.patch b/pkgs/applications/audio/mousai/paths.patch
new file mode 100644
index 000000000000..35b328ad0ea3
--- /dev/null
+++ b/pkgs/applications/audio/mousai/paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/backend/utils.py b/src/backend/utils.py
+index cebc009..0087c09 100644
+--- a/src/backend/utils.py
++++ b/src/backend/utils.py
+@@ -79,7 +79,7 @@ class Utils:
+ @staticmethod
+ def get_default_audio_sources():
+ pactl_output = subprocess.run(
+- ['/usr/bin/pactl', 'info'],
++ ['@pactl@', 'info'],
+ stdout=subprocess.PIPE,
+ text=True
+ ).stdout.splitlines()
diff --git a/pkgs/applications/audio/mpdevil/default.nix b/pkgs/applications/audio/mpdevil/default.nix
index 6dd9b07bdb2a..e355cfb86de0 100644
--- a/pkgs/applications/audio/mpdevil/default.nix
+++ b/pkgs/applications/audio/mpdevil/default.nix
@@ -1,18 +1,19 @@
{ lib, fetchFromGitHub
, python3Packages
, gdk-pixbuf, glib, gobject-introspection, gtk3
+, libnotify
, intltool
, wrapGAppsHook }:
python3Packages.buildPythonApplication rec {
pname = "mpdevil";
- version = "1.3.0";
+ version = "1.4.0";
src = fetchFromGitHub {
owner = "SoongNoonien";
repo = pname;
rev = "v${version}";
- sha256 = "1wa5wkkv8kvzlxrhqmmhjmrzcm5v2dij516dk4vlpv9sazc6gzkm";
+ sha256 = "1zx129zl6bjb0j3f81yx2641nsj6ck04q5f0v0g8f08xgdwsyv3b";
};
nativeBuildInputs = [
@@ -20,7 +21,7 @@ python3Packages.buildPythonApplication rec {
];
buildInputs = [
- gdk-pixbuf glib
+ gdk-pixbuf glib libnotify
];
propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/audio/munt/default.nix b/pkgs/applications/audio/munt/default.nix
index 191612700f41..93a9ce258544 100644
--- a/pkgs/applications/audio/munt/default.nix
+++ b/pkgs/applications/audio/munt/default.nix
@@ -36,7 +36,6 @@ mkDerivation rec {
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir $out/Applications
mv $out/bin/${mainProgram}.app $out/Applications/
- wrapQtApp $out/Applications/${mainProgram}.app/Contents/MacOS/${mainProgram}
ln -s $out/{Applications/${mainProgram}.app/Contents/MacOS,bin}/${mainProgram}
'';
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 012315a7d723..d37cec15ffcb 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -14,16 +14,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "ncspot";
- version = "0.8.2";
+ version = "0.9.0";
src = fetchFromGitHub {
owner = "hrkfdn";
repo = "ncspot";
rev = "v${version}";
- sha256 = "1rs1jy7zzfgqzr64ld8whn0wlw8n7rk1svxx0xfxm3ynmgc7sd68";
+ sha256 = "07qqs5q64zaxl3b2091vjihqb35fm0136cm4zibrgpx21akmbvr2";
};
- cargoSha256 = "10g7gdi1iz751wa60vr4fs0cvfsgs3pfcp8pnywicl0vsdp25fmc";
+ cargoSha256 = "0sdbba32f56z2q7kha5fxw2f00hikbz9sf4zl4wfl2i9b13j7mj0";
cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
diff --git a/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch b/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
new file mode 100644
index 000000000000..7fc21c11ff7c
--- /dev/null
+++ b/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
@@ -0,0 +1,2007 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..41d41a5
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,2001 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "anyhow"
++version = "1.0.45"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7"
++
++[[package]]
++name = "async-channel"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
++dependencies = [
++ "concurrent-queue",
++ "event-listener",
++ "futures-core",
++]
++
++[[package]]
++name = "async-executor"
++version = "1.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
++dependencies = [
++ "async-task",
++ "concurrent-queue",
++ "fastrand",
++ "futures-lite",
++ "once_cell",
++ "slab",
++]
++
++[[package]]
++name = "async-global-executor"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6"
++dependencies = [
++ "async-channel",
++ "async-executor",
++ "async-io",
++ "async-mutex",
++ "blocking",
++ "futures-lite",
++ "num_cpus",
++ "once_cell",
++]
++
++[[package]]
++name = "async-io"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
++dependencies = [
++ "concurrent-queue",
++ "futures-lite",
++ "libc",
++ "log",
++ "once_cell",
++ "parking",
++ "polling",
++ "slab",
++ "socket2",
++ "waker-fn",
++ "winapi",
++]
++
++[[package]]
++name = "async-lock"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b"
++dependencies = [
++ "event-listener",
++]
++
++[[package]]
++name = "async-mutex"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
++dependencies = [
++ "event-listener",
++]
++
++[[package]]
++name = "async-std"
++version = "1.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"
++dependencies = [
++ "async-channel",
++ "async-global-executor",
++ "async-io",
++ "async-lock",
++ "crossbeam-utils",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-lite",
++ "gloo-timers",
++ "kv-log-macro",
++ "log",
++ "memchr",
++ "num_cpus",
++ "once_cell",
++ "pin-project-lite",
++ "pin-utils",
++ "slab",
++ "wasm-bindgen-futures",
++]
++
++[[package]]
++name = "async-task"
++version = "4.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
++
++[[package]]
++name = "atk"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "812b4911e210bd51b24596244523c856ca749e6223c50a7fbbba3f89ee37c426"
++dependencies = [
++ "atk-sys",
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++]
++
++[[package]]
++name = "atk-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f530e4af131d94cc4fa15c5c9d0348f0ef28bac64ba660b6b2a1cf2605dedfce"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "atomic-waker"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "base64"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
++
++[[package]]
++name = "bincode"
++version = "1.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "blocking"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9"
++dependencies = [
++ "async-channel",
++ "async-task",
++ "atomic-waker",
++ "fastrand",
++ "futures-lite",
++ "once_cell",
++]
++
++[[package]]
++name = "bumpalo"
++version = "3.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
++
++[[package]]
++name = "bytes"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
++
++[[package]]
++name = "cache-padded"
++version = "1.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
++
++[[package]]
++name = "cairo-rs"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5c0f2e047e8ca53d0ff249c54ae047931d7a6ebe05d00af73e0ffeb6e34bdb8"
++dependencies = [
++ "bitflags",
++ "cairo-sys-rs",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "thiserror",
++]
++
++[[package]]
++name = "cairo-sys-rs"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "castaway"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed247d1586918e46f2bbe0f13b06498db8dab5a8c1093f156652e9f2e0a73fc3"
++
++[[package]]
++name = "cc"
++version = "1.0.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "chrono"
++version = "0.4.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
++dependencies = [
++ "libc",
++ "num-integer",
++ "num-traits",
++ "time",
++ "winapi",
++]
++
++[[package]]
++name = "concurrent-queue"
++version = "1.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
++dependencies = [
++ "cache-padded",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
++dependencies = [
++ "cfg-if",
++ "lazy_static",
++]
++
++[[package]]
++name = "ctor"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
++dependencies = [
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "curl"
++version = "0.4.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "877cc2f9b8367e32b6dabb9d581557e651cb3aa693a37f8679091bbf42687d5d"
++dependencies = [
++ "curl-sys",
++ "libc",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "socket2",
++ "winapi",
++]
++
++[[package]]
++name = "curl-sys"
++version = "0.4.50+curl-7.79.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4856b76919dd599f31236bb18db5f5bd36e2ce131e64f857ca5c259665b76171"
++dependencies = [
++ "cc",
++ "libc",
++ "libnghttp2-sys",
++ "libz-sys",
++ "openssl-sys",
++ "pkg-config",
++ "vcpkg",
++ "winapi",
++]
++
++[[package]]
++name = "custom_error"
++version = "1.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f8a51dd197fa6ba5b4dc98a990a43cc13693c23eb0089ebb0fcc1f04152bca6"
++
++[[package]]
++name = "dbus"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "48b5f0f36f1eebe901b0e6bee369a77ed3396334bf3f09abd46454a576f71819"
++dependencies = [
++ "libc",
++ "libdbus-sys",
++]
++
++[[package]]
++name = "dirs"
++version = "3.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
++dependencies = [
++ "dirs-sys",
++]
++
++[[package]]
++name = "dirs"
++version = "4.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
++dependencies = [
++ "dirs-sys",
++]
++
++[[package]]
++name = "dirs-sys"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
++dependencies = [
++ "libc",
++ "redox_users",
++ "winapi",
++]
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "encoding_rs"
++version = "0.8.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a74ea89a0a1b98f6332de42c95baff457ada66d1cb4030f9ff151b2041a1c746"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "event-listener"
++version = "2.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
++
++[[package]]
++name = "fastrand"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
++dependencies = [
++ "instant",
++]
++
++[[package]]
++name = "fnv"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++
++[[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
++[[package]]
++name = "form_urlencoded"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
++dependencies = [
++ "matches",
++ "percent-encoding",
++]
++
++[[package]]
++name = "fragile"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "69a039c3498dc930fe810151a34ba0c1c70b02b8625035592e74432f678591f2"
++
++[[package]]
++name = "futures"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"
++dependencies = [
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-io",
++ "futures-sink",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-channel"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"
++dependencies = [
++ "futures-core",
++ "futures-sink",
++]
++
++[[package]]
++name = "futures-core"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
++
++[[package]]
++name = "futures-executor"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"
++dependencies = [
++ "futures-core",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-io"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
++
++[[package]]
++name = "futures-lite"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
++dependencies = [
++ "fastrand",
++ "futures-core",
++ "futures-io",
++ "memchr",
++ "parking",
++ "pin-project-lite",
++ "waker-fn",
++]
++
++[[package]]
++name = "futures-macro"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
++dependencies = [
++ "autocfg",
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "futures-sink"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11"
++
++[[package]]
++name = "futures-task"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99"
++
++[[package]]
++name = "futures-util"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
++dependencies = [
++ "autocfg",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-macro",
++ "futures-sink",
++ "futures-task",
++ "memchr",
++ "pin-project-lite",
++ "pin-utils",
++ "proc-macro-hack",
++ "proc-macro-nested",
++ "slab",
++]
++
++[[package]]
++name = "gdk"
++version = "0.13.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "db00839b2a68a7a10af3fa28dfb3febaba3a20c3a9ac2425a33b7df1f84a6b7d"
++dependencies = [
++ "bitflags",
++ "cairo-rs",
++ "cairo-sys-rs",
++ "gdk-pixbuf",
++ "gdk-sys",
++ "gio",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pango",
++]
++
++[[package]]
++name = "gdk-pixbuf"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f6dae3cb99dd49b758b88f0132f8d401108e63ae8edd45f432d42cdff99998a"
++dependencies = [
++ "gdk-pixbuf-sys",
++ "gio",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++]
++
++[[package]]
++name = "gdk-pixbuf-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3bfe468a7f43e97b8d193a762b6c5cf67a7d36cacbc0b9291dbcae24bfea1e8f"
++dependencies = [
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gdk-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a9653cfc500fd268015b1ac055ddbc3df7a5c9ea3f4ccef147b3957bd140d69"
++dependencies = [
++ "cairo-sys-rs",
++ "gdk-pixbuf-sys",
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pango-sys",
++ "pkg-config",
++ "system-deps",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "gio"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1fb60242bfff700772dae5d9e3a1f7aa2e4ebccf18b89662a16acb2822568561"
++dependencies = [
++ "bitflags",
++ "futures",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-util",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++ "thiserror",
++]
++
++[[package]]
++name = "gio-sys"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e24fb752f8f5d2cf6bbc2c606fd2bc989c81c5e2fe321ab974d54f8b6344eac"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++ "winapi",
++]
++
++[[package]]
++name = "glib"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0c685013b7515e668f1b57a165b009d4d28cb139a8a989bbd699c10dad29d0c5"
++dependencies = [
++ "bitflags",
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-task",
++ "futures-util",
++ "glib-macros",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++]
++
++[[package]]
++name = "glib-macros"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
++dependencies = [
++ "anyhow",
++ "heck",
++ "itertools",
++ "proc-macro-crate",
++ "proc-macro-error",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1"
++dependencies = [
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gloo-timers"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f"
++dependencies = [
++ "futures-channel",
++ "futures-core",
++ "js-sys",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer"
++version = "0.16.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ff5d0f7ff308ae37e6eb47b6ded17785bdea06e438a708cd09e0288c1862f33"
++dependencies = [
++ "bitflags",
++ "cfg-if",
++ "futures-channel",
++ "futures-core",
++ "futures-util",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "libc",
++ "muldiv",
++ "num-rational 0.3.2",
++ "once_cell",
++ "paste",
++ "pretty-hex",
++ "thiserror",
++]
++
++[[package]]
++name = "gstreamer-base"
++version = "0.16.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bafd01c56f59cb10f4b5a10f97bb4bdf8c2b2784ae5b04da7e2d400cf6e6afcf"
++dependencies = [
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "libc",
++]
++
++[[package]]
++name = "gstreamer-base-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4b7b6dc2d6e160a1ae28612f602bd500b3fa474ce90bf6bb2f08072682beef5"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer-player"
++version = "0.16.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34edf65e48e0d29c18101d77a2e004488a61f81a852a75e19d9c73e03d35cb77"
++dependencies = [
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-player-sys",
++ "gstreamer-sys",
++ "gstreamer-video",
++ "libc",
++]
++
++[[package]]
++name = "gstreamer-player-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53aaf79503e691a32266670bc631edb6c52bdb854984da76a0ce2756f49584a2"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "gstreamer-video-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc1f154082d01af5718c5f8a8eb4f565a4ea5586ad8833a8fc2c2aa6844b601d"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer-video"
++version = "0.16.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7bbb1485d87469849ec45c08e03c2f280d3ea20ff3c439d03185be54e3ce98e"
++dependencies = [
++ "bitflags",
++ "futures-channel",
++ "futures-util",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-base",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "gstreamer-video-sys",
++ "libc",
++ "once_cell",
++]
++
++[[package]]
++name = "gstreamer-video-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92347e46438007d6a2386302125f62cb9df6769cdacb931af5c0f12c1ee21de4"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gtk"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f022f2054072b3af07666341984562c8e626a79daa8be27b955d12d06a5ad6a"
++dependencies = [
++ "atk",
++ "bitflags",
++ "cairo-rs",
++ "cairo-sys-rs",
++ "cc",
++ "gdk",
++ "gdk-pixbuf",
++ "gdk-pixbuf-sys",
++ "gdk-sys",
++ "gio",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gtk-sys",
++ "libc",
++ "once_cell",
++ "pango",
++ "pango-sys",
++ "pkg-config",
++]
++
++[[package]]
++name = "gtk-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89acda6f084863307d948ba64a4b1ef674e8527dddab147ee4cdcc194c880457"
++dependencies = [
++ "atk-sys",
++ "cairo-sys-rs",
++ "gdk-pixbuf-sys",
++ "gdk-sys",
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pango-sys",
++ "system-deps",
++]
++
++[[package]]
++name = "heck"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "hex"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
++
++[[package]]
++name = "http"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b"
++dependencies = [
++ "bytes",
++ "fnv",
++ "itoa",
++]
++
++[[package]]
++name = "idna"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
++dependencies = [
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
++]
++
++[[package]]
++name = "instant"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "isahc"
++version = "1.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "40ef5402b1791c9fc479ef9871601a2f10e4cc0f14414a5c9c6e043fb51e5a56"
++dependencies = [
++ "async-channel",
++ "castaway",
++ "chrono",
++ "crossbeam-utils",
++ "curl",
++ "curl-sys",
++ "encoding_rs",
++ "event-listener",
++ "futures-lite",
++ "http",
++ "log",
++ "mime",
++ "once_cell",
++ "polling",
++ "slab",
++ "sluice",
++ "tracing",
++ "tracing-futures",
++ "url",
++ "waker-fn",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++
++[[package]]
++name = "js-sys"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
++dependencies = [
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "kv-log-macro"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
++dependencies = [
++ "log",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.107"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
++
++[[package]]
++name = "libdbus-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b"
++dependencies = [
++ "pkg-config",
++]
++
++[[package]]
++name = "libnghttp2-sys"
++version = "0.1.7+1.45.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f"
++dependencies = [
++ "cc",
++ "libc",
++]
++
++[[package]]
++name = "libz-sys"
++version = "1.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
++name = "log"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++dependencies = [
++ "cfg-if",
++ "value-bag",
++]
++
++[[package]]
++name = "loggerv"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60d8de15ae71e760bce7f05447f85f73624fe0d3b1e4c5a63ba5d4cb0748d374"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "log",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
++
++[[package]]
++name = "memchr"
++version = "2.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
++
++[[package]]
++name = "mime"
++version = "0.3.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
++
++[[package]]
++name = "mp4ameta"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "619f6fe86b8690efad1c53d2cc8b9c1af2a5f8b93247e0ba05ece1b7639b4e66"
++dependencies = [
++ "lazy_static",
++ "mp4ameta_proc",
++]
++
++[[package]]
++name = "mp4ameta_proc"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4975ce203cd69e96a89f803d87b7b53d1950a6e93668a666d177c28aebd15c8a"
++
++[[package]]
++name = "mpris-player"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f6badd6ebe31be46eb2e2975cf3b34b183bace5f8a8db1d609fefc4d46fbb07"
++dependencies = [
++ "dbus",
++ "glib",
++]
++
++[[package]]
++name = "muldiv"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
++
++[[package]]
++name = "netease-cloud-music-gtk"
++version = "1.2.2"
++dependencies = [
++ "async-std",
++ "base64",
++ "bincode",
++ "cairo-rs",
++ "chrono",
++ "custom_error",
++ "dirs 4.0.0",
++ "fragile",
++ "futures",
++ "gdk",
++ "gdk-pixbuf",
++ "gio",
++ "glib",
++ "gstreamer",
++ "gstreamer-player",
++ "gtk",
++ "hex",
++ "isahc",
++ "lazy_static",
++ "log",
++ "loggerv",
++ "mp4ameta",
++ "mpris-player",
++ "num",
++ "openssl",
++ "pango",
++ "rand",
++ "regex",
++ "serde",
++ "serde_json",
++ "urlqstring",
++ "xdg",
++]
++
++[[package]]
++name = "num"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
++dependencies = [
++ "num-bigint",
++ "num-complex",
++ "num-integer",
++ "num-iter",
++ "num-rational 0.4.0",
++ "num-traits",
++]
++
++[[package]]
++name = "num-bigint"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-complex"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
++dependencies = [
++ "num-traits",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++dependencies = [
++ "autocfg",
++ "num-traits",
++]
++
++[[package]]
++name = "num-iter"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-rational"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-rational"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
++dependencies = [
++ "autocfg",
++ "num-bigint",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
++
++[[package]]
++name = "openssl"
++version = "0.10.38"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
++dependencies = [
++ "bitflags",
++ "cfg-if",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
++
++[[package]]
++name = "openssl-sys"
++version = "0.9.70"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf"
++dependencies = [
++ "autocfg",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
++name = "pango"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9937068580bebd8ced19975938573803273ccbcbd598c58d4906efd4ac87c438"
++dependencies = [
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++ "pango-sys",
++]
++
++[[package]]
++name = "pango-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "24d2650c8b62d116c020abd0cea26a4ed96526afda89b1c4ea567131fdefc890"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "parking"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
++
++[[package]]
++name = "paste"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5"
++
++[[package]]
++name = "percent-encoding"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
++
++[[package]]
++name = "pin-project"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08"
++dependencies = [
++ "pin-project-internal",
++]
++
++[[package]]
++name = "pin-project-internal"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pin-project-lite"
++version = "0.2.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
++
++[[package]]
++name = "pin-utils"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
++
++[[package]]
++name = "polling"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "log",
++ "wepoll-ffi",
++ "winapi",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
++
++[[package]]
++name = "pretty-hex"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131"
++
++[[package]]
++name = "proc-macro-crate"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++dependencies = [
++ "toml",
++]
++
++[[package]]
++name = "proc-macro-error"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
++dependencies = [
++ "proc-macro-error-attr",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-error-attr"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
++
++[[package]]
++name = "proc-macro-nested"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.8.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
++dependencies = [
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "redox_users"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
++dependencies = [
++ "getrandom",
++ "redox_syscall",
++]
++
++[[package]]
++name = "regex"
++version = "1.5.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.25"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
++
++[[package]]
++name = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[package]]
++name = "schannel"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
++dependencies = [
++ "lazy_static",
++ "winapi",
++]
++
++[[package]]
++name = "serde"
++version = "1.0.130"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.130"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
++
++[[package]]
++name = "sluice"
++version = "0.5.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
++dependencies = [
++ "async-channel",
++ "futures-core",
++ "futures-io",
++]
++
++[[package]]
++name = "socket2"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "strum"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
++
++[[package]]
++name = "strum_macros"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
++dependencies = [
++ "heck",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.81"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "system-deps"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
++dependencies = [
++ "heck",
++ "pkg-config",
++ "strum",
++ "strum_macros",
++ "thiserror",
++ "toml",
++ "version-compare",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "time"
++version = "0.1.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
++dependencies = [
++ "tinyvec_macros",
++]
++
++[[package]]
++name = "tinyvec_macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
++
++[[package]]
++name = "toml"
++version = "0.5.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "tracing"
++version = "0.1.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
++dependencies = [
++ "cfg-if",
++ "log",
++ "pin-project-lite",
++ "tracing-attributes",
++ "tracing-core",
++]
++
++[[package]]
++name = "tracing-attributes"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "tracing-core"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
++dependencies = [
++ "lazy_static",
++]
++
++[[package]]
++name = "tracing-futures"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
++dependencies = [
++ "pin-project",
++ "tracing",
++]
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
++dependencies = [
++ "tinyvec",
++]
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
++
++[[package]]
++name = "url"
++version = "2.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
++dependencies = [
++ "form_urlencoded",
++ "idna",
++ "matches",
++ "percent-encoding",
++]
++
++[[package]]
++name = "urlqstring"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "25ef3473a06a065718d8ec7cd7acc6a35fc20f836dee7661ad3b64ea3cc2e0cc"
++
++[[package]]
++name = "value-bag"
++version = "1.0.0-alpha.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f"
++dependencies = [
++ "ctor",
++ "version_check",
++]
++
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
++[[package]]
++name = "version-compare"
++version = "0.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
++
++[[package]]
++name = "version_check"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
++
++[[package]]
++name = "waker-fn"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
++
++[[package]]
++name = "wasi"
++version = "0.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++
++[[package]]
++name = "wasm-bindgen"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
++dependencies = [
++ "cfg-if",
++ "wasm-bindgen-macro",
++]
++
++[[package]]
++name = "wasm-bindgen-backend"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
++dependencies = [
++ "bumpalo",
++ "lazy_static",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-futures"
++version = "0.4.28"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39"
++dependencies = [
++ "cfg-if",
++ "js-sys",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "wasm-bindgen-macro"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
++dependencies = [
++ "quote",
++ "wasm-bindgen-macro-support",
++]
++
++[[package]]
++name = "wasm-bindgen-macro-support"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-shared"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
++
++[[package]]
++name = "web-sys"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
++dependencies = [
++ "js-sys",
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "wepoll-ffi"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
++dependencies = [
++ "cc",
++]
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "xdg"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3a23fe958c70412687039c86f578938b4a0bb50ec788e96bce4d6ab00ddd5803"
++dependencies = [
++ "dirs 3.0.2",
++]
diff --git a/pkgs/applications/audio/netease-cloud-music-gtk/default.nix b/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
new file mode 100644
index 000000000000..76e1bc3923a8
--- /dev/null
+++ b/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, glib
+, gtk3
+, curl
+, dbus
+, openssl
+, gst_all_1
+, pkg-config
+, rustPlatform
+, wrapGAppsHook
+, fetchurl
+, fetchFromGitHub
+, makeDesktopItem
+}:
+rustPlatform.buildRustPackage rec {
+ pname = "netease-cloud-music-gtk";
+ version = "1.2.2";
+ src = fetchFromGitHub {
+ owner = "gmg137";
+ repo = "netease-cloud-music-gtk";
+ rev = version;
+ sha256 = "sha256-42MaylfG5LY+TiYHWQMoh9CiVLShKXSBpMrxdWhujow=";
+ };
+ cargoSha256 = "sha256-A9wIcESdaJwLY4g/QlOxMU5PBB9wjvIzaXBSqeiRJBM=";
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ nativeBuildInputs = [
+ glib
+ gtk3
+ dbus
+ pkg-config
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ curl
+ dbus
+ openssl
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ]);
+
+ postPatch = ''
+ install -D netease-cloud-music-gtk.desktop $out/share/applications/netease-cloud-music-gtk.desktop
+ install -D icons/netease-cloud-music-gtk.svg $out/share/icons/hicolor/scalable/apps/netease-cloud-music-gtk.svg
+ '';
+
+ meta = with lib; {
+ description = "netease-cloud-music-gtk is a Rust + GTK based netease cloud music player";
+ homepage = "https://github.com/gmg137/netease-cloud-music-gtk";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ diffumist ];
+ };
+}
diff --git a/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh b/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
new file mode 100755
index 000000000000..75b04d1e77ca
--- /dev/null
+++ b/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils ripgrep git cargo
+
+# Ref: https://github.com/NixOS/nixpkgs/blob/nixos-21.05/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
+
+set -eu -vx
+
+here=$PWD
+version=$(cat default.nix | rg '^ version = "' | cut -d '"' -f 2)
+checkout=$(mktemp -d)
+
+git clone -b "$version" --depth=1 https://github.com/gmg137/netease-cloud-music-gtk "$checkout"
+cd "$checkout"
+
+cargo generate-lockfile
+git add -f Cargo.lock
+git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
+
+cd "$here"
+rm -rf "$checkout"
diff --git a/pkgs/applications/audio/noisetorch/default.nix b/pkgs/applications/audio/noisetorch/default.nix
index 05e17bf7c98a..b24c2eebcf7a 100644
--- a/pkgs/applications/audio/noisetorch/default.nix
+++ b/pkgs/applications/audio/noisetorch/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "NoiseTorch";
- version = "0.11.3";
+ version = "0.11.4";
src = fetchFromGitHub {
owner = "lawl";
repo = "NoiseTorch";
rev = version;
- sha256 = "0rjs6hbi7dvd179lzjmvqy4rv4pbc9amgzb8jfky4yc0zh8xf5z5";
+ sha256 = "sha256-3+Yk7dqD7eyvd1I5CMmrg085ZtFxD2EnGqL5ttwx8eM=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/audio/nootka/unstable.nix b/pkgs/applications/audio/nootka/unstable.nix
index edfb19483646..b5e820e83459 100644
--- a/pkgs/applications/audio/nootka/unstable.nix
+++ b/pkgs/applications/audio/nootka/unstable.nix
@@ -1,20 +1,38 @@
-{ lib, stdenv, fetchurl, cmake
-, alsa-lib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch
-, qtbase, qtdeclarative, qtquickcontrols2
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, alsa-lib
+, fftwSinglePrec
+, libjack2
+, libpulseaudio
+, libvorbis
+, soundtouch
+, qtbase
+, qtdeclarative
+, qtquickcontrols2
}:
stdenv.mkDerivation rec {
- name = "nootka-1.7.0-beta1";
+ pname = "nootka";
+ version = "1.7.0-beta1";
src = fetchurl {
- url = "mirror://sourceforge/nootka/${name}-source.tar.bz2";
+ url = "mirror://sourceforge/nootka/nootka-${version}-source.tar.bz2";
sha256 = "13b50vnpr1zx2mrgkc8fmhsyfa19rqq1rksvn31145dy6fk1f3gc";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
- alsa-lib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch
- qtbase qtdeclarative qtquickcontrols2
+ alsa-lib
+ fftwSinglePrec
+ libjack2
+ libpulseaudio
+ libvorbis
+ soundtouch
+ qtbase
+ qtdeclarative
+ qtquickcontrols2
];
dontWrapQtApps = true;
diff --git a/pkgs/applications/audio/orca-c/default.nix b/pkgs/applications/audio/orca-c/default.nix
index 2c3a8fb1390f..420055884b45 100644
--- a/pkgs/applications/audio/orca-c/default.nix
+++ b/pkgs/applications/audio/orca-c/default.nix
@@ -1,8 +1,7 @@
{ lib, stdenv, fetchgit, ncurses, portmidi }:
stdenv.mkDerivation {
pname = "orca-c";
-
- version = "git-2021-02-13";
+ version = "unstable-2021-02-13";
src = fetchgit {
url = "https://git.sr.ht/~rabbits/orca";
@@ -31,5 +30,6 @@ stdenv.mkDerivation {
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ netcrns ];
+ mainProgram = "orca";
};
}
diff --git a/pkgs/applications/audio/oxefmsynth/default.nix b/pkgs/applications/audio/oxefmsynth/default.nix
index 427029f3c863..0e3e801d18ca 100644
--- a/pkgs/applications/audio/oxefmsynth/default.nix
+++ b/pkgs/applications/audio/oxefmsynth/default.nix
@@ -22,7 +22,7 @@ in stdenv.mkDerivation rec {
sha256 = "1rk71ls33a38wx8i22plsi7d89cqqxrfxknq5i4f9igsw1ipm4gn";
};
- NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ];
+ NIX_CFLAGS_COMPILE = [ "-Wno-narrowing" ];
buildFlags = [ "VSTSDK_PATH=${vst-sdk}/VST2_SDK" ];
diff --git a/pkgs/applications/audio/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix
index 244e688fe571..ac3df5c5f958 100644
--- a/pkgs/applications/audio/pamixer/default.nix
+++ b/pkgs/applications/audio/pamixer/default.nix
@@ -1,21 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, boost, libpulseaudio }:
+{ lib, stdenv, fetchFromGitHub, boost, libpulseaudio }:
stdenv.mkDerivation rec {
pname = "pamixer";
- version = "1.4";
+ version = "1.5";
src = fetchFromGitHub {
owner = "cdemoulins";
repo = "pamixer";
rev = version;
- sha256 = "1i14550n8paijwwnhksv5izgfqm3s5q2773bdfp6vyqybkll55f7";
+ sha256 = "sha256-7VNhHAQ1CecQPlqb8SMKK0U1SsFZxDuS+QkPqJfMqrQ=";
};
buildInputs = [ boost libpulseaudio ];
- installPhase = ''
- install -Dm755 pamixer -t $out/bin
- '';
+ makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Pulseaudio command line mixer";
@@ -29,7 +27,9 @@ stdenv.mkDerivation rec {
- Mute or unmute a device
'';
homepage = "https://github.com/cdemoulins/pamixer";
+ maintainers = with maintainers; [ thiagokokada ];
license = licenses.gpl3;
platforms = platforms.linux;
+ mainProgram = "pamixer";
};
}
diff --git a/pkgs/applications/audio/paprefs/default.nix b/pkgs/applications/audio/paprefs/default.nix
index 64e403001a3d..31ccb212cd51 100644
--- a/pkgs/applications/audio/paprefs/default.nix
+++ b/pkgs/applications/audio/paprefs/default.nix
@@ -1,5 +1,6 @@
{ fetchurl
-, lib, stdenv
+, lib
+, stdenv
, meson
, ninja
, gettext
@@ -11,10 +12,11 @@
}:
stdenv.mkDerivation rec {
- name = "paprefs-1.1";
+ pname = "paprefs";
+ version = "1.1";
src = fetchurl {
- url = "https://freedesktop.org/software/pulseaudio/paprefs/${name}.tar.xz";
+ url = "https://freedesktop.org/software/pulseaudio/paprefs/paprefs-${version}.tar.xz";
sha256 = "189z5p20hk0xv9vwvym293503j4pwl03xqk9hl7cl6dwgv0l7wkf";
};
diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix
index c7f12a8df6cc..41e5eeb8229a 100644
--- a/pkgs/applications/audio/pavucontrol/default.nix
+++ b/pkgs/applications/audio/pavucontrol/default.nix
@@ -1,26 +1,35 @@
-{ fetchurl, fetchpatch, lib, stdenv, pkg-config, intltool, libpulseaudio,
-gtkmm3 , libcanberra-gtk3, gnome, wrapGAppsHook }:
+{ fetchurl
+, fetchpatch
+, lib
+, stdenv
+, pkg-config
+, intltool
+, libpulseaudio
+, gtkmm3
+, libsigcxx
+, libcanberra-gtk3
+, json-glib
+, gnome
+, wrapGAppsHook
+}:
stdenv.mkDerivation rec {
pname = "pavucontrol";
- version = "4.0";
+ version = "5.0";
src = fetchurl {
url = "https://freedesktop.org/software/pulseaudio/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g";
+ sha256 = "sha256-zityw7XxpwrQ3xndgXUPlFW9IIcNHTo20gU2ry6PTno=";
};
- patches = [
- # Can be removed with the next version bump
- # https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/20
- (fetchpatch {
- name = "streamwidget-fix-drop-down-wayland.patch";
- url = "https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/commit/ae278b8643cf1089f66df18713c8154208d9a505.patch";
- sha256 = "066vhxjz6gmi2sp2n4pa1cdsxjnq6yml5js094g5n7ld34p84dpj";
- })];
-
- buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3
- gnome.adwaita-icon-theme ];
+ buildInputs = [
+ libpulseaudio
+ gtkmm3
+ libsigcxx
+ libcanberra-gtk3
+ json-glib
+ gnome.adwaita-icon-theme
+ ];
nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index dc030cc708b5..0a7c28f3a637 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -18,13 +18,13 @@ let
in
pythonPackages.buildPythonApplication rec {
pname = "picard";
- version = "2.6.3";
+ version = "2.6.4";
src = fetchFromGitHub {
owner = "metabrainz";
repo = pname;
rev = "release-${version}";
- sha256 = "sha256-bSqGgRXqHGjT+OYCEafsT/btVe+n91+L0kB8fnrywss=";
+ sha256 = "0lm7s9jy7z4an3xxj3gnxxf2xx045i157qaxysbdhcq5lwlmznc7";
};
nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index 81912379de1d..b5cf068d5691 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -2,26 +2,25 @@
let
pname = "plexamp";
- version = "3.7.1";
- name = "${pname}-${version}";
+ version = "3.8.2";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage";
- sha512 = "n+ZFfKYUx6silpH4bGNRdh5JJPchjKNzFLAhZQPecK2DkmygY35/ZYUNSBioqxuGKax+I/mY5podmQ5iD95ohQ==";
+ sha512 = "JVzfWlrX21KHw4tSrGpCYqqoWFudnyFG4YnHKsnIUtxLDkjyQA8N2/OrDIR+SlK/b0RRs9KZ4lbqQMX8PXUHsg==";
};
appimageContents = appimageTools.extractType2 {
- inherit name src;
+ inherit pname version src;
};
in appimageTools.wrapType2 {
- inherit name src;
+ inherit pname version src;
multiPkgs = null; # no 32bit needed
extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
extraInstallCommands = ''
- ln -s $out/bin/${name} $out/bin/${pname}
+ ln -s $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
install -m 444 -D ${appimageContents}/plexamp.png \
$out/share/icons/hicolor/512x512/apps/plexamp.png
@@ -34,7 +33,7 @@ in appimageTools.wrapType2 {
meta = with lib; {
description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
homepage = "https://plexamp.com/";
- changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/32";
+ changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/35";
license = licenses.unfree;
maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/pocket-casts/default.nix b/pkgs/applications/audio/pocket-casts/default.nix
new file mode 100644
index 000000000000..46625253d0f6
--- /dev/null
+++ b/pkgs/applications/audio/pocket-casts/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, gtk3, libXScrnSaver, libXtst, mesa, nss }:
+
+stdenv.mkDerivation rec {
+ pname = "pocket-casts";
+ version = "0.5.0";
+
+ src = fetchurl {
+ url = "https://github.com/felicianotech/pocket-casts-desktop-app/releases/download/v${version}/${pname}_${version}_amd64.deb";
+ sha256 = "sha256-frBtIxwRO/6k6j0itqN10t+9AyNadqXm8vC1YP960ts=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ makeWrapper
+ ];
+
+ buildInputs = [ alsa-lib gtk3 libXScrnSaver libXtst mesa nss ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv usr $out
+ mv opt $out
+ mv "$out/opt/Pocket Casts" $out/opt/pocket-casts
+ mv $out/share/icons/hicolor/0x0 $out/share/icons/hicolor/256x256
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ substituteInPlace $out/share/applications/pocket-casts.desktop \
+ --replace '"/opt/Pocket Casts/pocket-casts"' $out/bin/pocket-casts \
+ --replace '/usr/share/icons/hicolor/0x0/apps/pocket-casts.png' "pocket-casts"
+ makeWrapper ${electron}/bin/electron \
+ $out/bin/pocket-casts \
+ --add-flags $out/opt/pocket-casts/resources/app.asar
+ '';
+
+ meta = with lib; {
+ description = "Pocket Casts webapp, packaged for the Linux Desktop";
+ homepage = "https://github.com/felicianotech/pocket-casts-desktop-app";
+ license = licenses.mit;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
index 83456dcb7c8b..ac7f4206dbeb 100644
--- a/pkgs/applications/audio/praat/default.nix
+++ b/pkgs/applications/audio/praat/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "praat";
- version = "6.1.51";
+ version = "6.1.55";
src = fetchFromGitHub {
owner = "praat";
repo = "praat";
rev = "v${version}";
- sha256 = "sha256-4goZRNKNFrfKRbGODJMhN6DyOh8U3+nWRDF1VMT7I1E=";
+ sha256 = "sha256-PQVbrohIlmzKcG/8TzOBgyQWWaMH88voMNWAqEfyUWI=";
};
configurePhase = ''
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 6abc120379d6..e5a97aee86cd 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "pt2-clone";
- version = "1.34";
+ version = "1.37";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "pt2-clone";
rev = "v${version}";
- sha256 = "sha256-JT3I06qm3oljsySIgK5xP2RC3KAb5QBrNVdip0ds4KE=";
+ sha256 = "sha256-r9H+qF542j2qjmOEjJLAtnMU7SkJBJB8nH39zhkZu9M=";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/ptcollab/default.nix b/pkgs/applications/audio/ptcollab/default.nix
index 2738a865346e..71c574490f0a 100644
--- a/pkgs/applications/audio/ptcollab/default.nix
+++ b/pkgs/applications/audio/ptcollab/default.nix
@@ -13,13 +13,13 @@
mkDerivation rec {
pname = "ptcollab";
- version = "0.4.2";
+ version = "0.5.0.1";
src = fetchFromGitHub {
owner = "yuxshao";
repo = "ptcollab";
rev = "v${version}";
- sha256 = "sha256-AeIjc+FoFsTcyWl261GvyySIHP107rL4JkuMXFhnPbk=";
+ sha256 = "10v310smm0df233wlh1kqv8i36lsg1m36v0flrhs2202k50d69ri";
};
nativeBuildInputs = [ qmake pkg-config ];
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 7d1ec9f99783..1d5edf892cb7 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -5,7 +5,7 @@
}:
mkDerivation rec {
- version = "0.9.4";
+ version = "0.9.5";
pname = "qjackctl";
# some dependencies such as killall have to be installed additionally
@@ -14,7 +14,7 @@ mkDerivation rec {
owner = "rncbc";
repo = "qjackctl";
rev = "${pname}_${lib.replaceChars ["."] ["_"] version}";
- sha256 = "sha256-eZKrPQ07Z3pF5dArZ4QSclrRCaPHpPb8S5HANLUS9MM=";
+ sha256 = "sha256-20oy3R0gbVXO3Da80cTYXu+BG8OfVNRLtAwHk8nRFJk=";
};
buildInputs = [
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 773560c83cad..a7063b9f3e25 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -17,12 +17,14 @@
stdenv.mkDerivation rec {
pname = "reaper";
- version = "6.29";
+ version = "6.38";
src = fetchurl {
- url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${stdenv.targetPlatform.qemuArch}.tar.xz";
- hash = if stdenv.isx86_64 then "sha256-DOul6J2Y7szy4+Q4SeO0uG6PSuU+MELE7ky8W3mSpTQ="
- else "sha256-67iTi6bFlbQtyCjnPIjK8K/3aV+zaCsWBRCWmgYonM4=";
+ url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${stdenv.hostPlatform.qemuArch}.tar.xz";
+ hash = {
+ x86_64-linux = "sha256-K5EnrmzP8pyW9dR1fbMzkPzpS6aHm8JF1+m3afnH4rU=";
+ aarch64-linux = "sha256-6wNWDXjQNyfU2l9Xi9JtmAuoKtHuIY5cvNMjYkwh2Sk=";
+ }.${stdenv.hostPlatform.system};
};
nativeBuildInputs = [
@@ -76,6 +78,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.reaper.fm/";
license = licenses.unfree;
platforms = [ "x86_64-linux" "aarch64-linux" ];
- maintainers = with maintainers; [ jfrankenau ilian ];
+ maintainers = with maintainers; [ jfrankenau ilian orivej ];
};
}
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 8c7070516862..95035570e924 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -5,11 +5,11 @@
mkDerivation rec {
pname = "samplv1";
- version = "0.9.20";
+ version = "0.9.23";
src = fetchurl {
url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
- sha256 = "sha256-9tm72lV9i/155TVweNwO2jpPsCJkh6r82g7Z1wCI1ho=";
+ sha256 = "sha256-eJA6ixH20Wv+cD2CKGomncyfJ4tfpOL3UrTeCkb5/q0=";
};
nativeBuildInputs = [ qttools pkg-config ];
diff --git a/pkgs/applications/audio/sc68/default.nix b/pkgs/applications/audio/sc68/default.nix
index 2ea9b123c086..3f6bb032ec4f 100644
--- a/pkgs/applications/audio/sc68/default.nix
+++ b/pkgs/applications/audio/sc68/default.nix
@@ -13,12 +13,12 @@
stdenv.mkDerivation rec {
pname = "sc68";
- version = "unstable-2020-05-18";
+ version = "unstable-2021-08-23";
src = fetchsvn {
url = "svn://svn.code.sf.net/p/sc68/code/";
- rev = "693";
- sha256 = "0liz5yjwiy41y160ag83zz9s5l8mk72fscxgvjv9g5qf4gwffnfa";
+ rev = "694";
+ sha256 = "1yycnr4ndzfhbmki41c30zskwyizpb9wb8sf0gxcprllmbq6a421";
};
preConfigure = "tools/svn-bootstrap.sh";
diff --git a/pkgs/applications/audio/snapcast/default.nix b/pkgs/applications/audio/snapcast/default.nix
index 0299f66191ed..d2b6ba07d2eb 100644
--- a/pkgs/applications/audio/snapcast/default.nix
+++ b/pkgs/applications/audio/snapcast/default.nix
@@ -1,7 +1,10 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
, alsa-lib, asio, avahi, boost17x, flac, libogg, libvorbis, soxr
+, pulseaudioSupport ? false, libpulseaudio
, nixosTests }:
+assert pulseaudioSupport -> libpulseaudio != null;
+
let
dependency = { name, version, sha256 }:
@@ -50,7 +53,7 @@ stdenv.mkDerivation rec {
boost17x
alsa-lib asio avahi flac libogg libvorbis
aixlog popl soxr
- ];
+ ] ++ lib.optional pulseaudioSupport libpulseaudio;
# Upstream systemd unit files are pretty awful, so we provide our own in a
# NixOS module. It might make sense to get that upstreamed...
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index 56d1dacaf9ad..9561dc00d744 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -1,19 +1,22 @@
{ lib, stdenv, fetchurl, pkg-config
, alsa-lib, fftw, gsl, motif, xorg
+, CoreServices, CoreMIDI
}:
stdenv.mkDerivation rec {
pname = "snd";
- version = "21.7";
+ version = "21.8";
src = fetchurl {
url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
- sha256 = "sha256-GjaPZmJfodvYvhObGcBDRN0mIyc6Vxycd0BZGHdvoJA=";
+ sha256 = "sha256-sI2xa37eSBDr/ucQ7RF3YfsszKfWcmOCoAJENALSlTo=";
};
nativeBuildInputs = [ pkg-config ];
- buildInputs = [ alsa-lib fftw gsl motif ]
+ buildInputs = [ fftw gsl motif ]
+ ++ lib.optionals stdenv.isLinux [ alsa-lib ]
+ ++ lib.optionals stdenv.isDarwin [ CoreServices CoreMIDI ]
++ (with xorg; [ libXext libXft libXpm libXt ]);
configureFlags = [ "--with-motif" ];
diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix
index 166784a164d7..60fbd3a2888a 100644
--- a/pkgs/applications/audio/songrec/default.nix
+++ b/pkgs/applications/audio/songrec/default.nix
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "songrec";
- version = "0.2.0";
+ version = "0.2.1";
src = fetchFromGitHub {
owner = "marin-m";
repo = pname;
rev = version;
- sha256 = "sha256-9fq2P+F7Olm9bUQ1HbH/Lzb5J2mJCma+x/vuH3wf+zY=";
+ sha256 = "sha256-pKHKM4XOuuZCr4neMe1AVqWMuZghwYNe+ifJCQhXG/c=";
};
- cargoSha256 = "sha256-ATlwBMuT8AufkrZNe1+U74hYRN4V88ZDKYvCWV52iyI=";
+ cargoSha256 = "sha256-J3ezXBOGJwzIPTHXujHpswsgh9PFy110AOQ2pPJNm10=";
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/spot/default.nix b/pkgs/applications/audio/spot/default.nix
index 2859a2e942e2..aa7a041f40c7 100644
--- a/pkgs/applications/audio/spot/default.nix
+++ b/pkgs/applications/audio/spot/default.nix
@@ -10,8 +10,9 @@
, rustPlatform
, pkg-config
, glib
+, libadwaita
, libhandy
-, gtk3
+, gtk4
, openssl
, alsa-lib
, libpulseaudio
@@ -20,19 +21,19 @@
stdenv.mkDerivation rec {
pname = "spot";
- version = "0.1.14";
+ version = "0.2.0";
src = fetchFromGitHub {
owner = "xou816";
repo = "spot";
rev = version;
- sha256 = "eHhbm1amTx3ngqsP32uDEdrhrBeurMftg5SToTQGX9o=";
+ sha256 = "16pri0in514xzy21bsijyvyyjwa0f6lg4zyizmdcmcdw4glrs11m";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
- hash = "sha256-jY7pWoY9IJi5hHVRS1gQKb+Vmfc+wxHvoAwupOtXXQs=";
+ sha256 = "1fvnidxh4rnkzqg3qjk3zlkp2d41qdamm0bfavk8jrazw8sgih84";
};
nativeBuildInputs = [
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
ninja
pkg-config
python3 # for meson postinstall script
- gtk3 # for gtk-update-icon-cache
+ gtk4 # for gtk-update-icon-cache
glib # for glib-compile-schemas
desktop-file-utils
rustPlatform.rust.cargo
@@ -52,13 +53,17 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
- gtk3
+ gtk4
+ libadwaita
libhandy
openssl
alsa-lib
libpulseaudio
];
+ # https://github.com/xou816/spot/issues/313
+ mesonBuildType = "release";
+
postPatch = ''
chmod +x build-aux/cargo.sh
patchShebangs build-aux/cargo.sh build-aux/meson/postinstall.py
@@ -74,6 +79,6 @@ stdenv.mkDerivation rec {
description = "Native Spotify client for the GNOME desktop";
homepage = "https://github.com/xou816/spot";
license = licenses.mit;
- maintainers = with maintainers; [ jtojnar ];
+ maintainers = with maintainers; [ jtojnar tomfitzhenry ];
};
}
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 48e6a85f5d25..c25276ff6e19 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -10,14 +10,14 @@ let
# If an update breaks things, one of those might have valuable info:
# https://aur.archlinux.org/packages/spotify/
# https://community.spotify.com/t5/Desktop-Linux
- version = "1.1.68.628.geb44bd66";
+ version = "1.1.68.632.g2b11de83";
# To get the latest stable revision:
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
# To get general information:
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
# More examples of api usage:
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
- rev = "52";
+ rev = "53";
deps = [
alsa-lib
@@ -80,7 +80,7 @@ stdenv.mkDerivation {
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
- sha512 = "be6f1cb650924eb9e244497374d1dfe6136d28056dbecc7000a03341a4bb4c6ab2c83ec6c707bd6f57afde95262230eafbde08e9c7a7dfcacdf660eb10499f3a";
+ sha512 = "ed991691c99fe97ed9ff5d0f5cc9a8883c176fa3b3054293c37d545abbb895c6260afdf1c8c0828d62c36ea7ab384e166b6151effb4614c93e4fa712319a08a3";
};
nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index 6cc55650220a..fd75a4a8e5d7 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -36,13 +36,13 @@
mkDerivation rec {
pname = "strawberry";
- version = "0.9.3";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "jonaski";
repo = pname;
rev = version;
- sha256 = "sha256-OOdHsii6O4okVHDhrqCNJ7WVB0VKPs8q0AhEY+IvflE=";
+ sha256 = "sha256-m1BB5OIeCIQuJpxEO1xmb/Z8tzeHF31jYg67OpVWWRM=";
};
buildInputs = [
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
index 5c9250b45e03..3f7e1e038f8e 100644
--- a/pkgs/applications/audio/sublime-music/default.nix
+++ b/pkgs/applications/audio/sublime-music/default.nix
@@ -15,14 +15,14 @@
python3Packages.buildPythonApplication rec {
pname = "sublime-music";
- version = "0.11.13";
+ version = "0.11.16";
format = "pyproject";
src = fetchFromGitLab {
owner = "sublime-music";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-NzbQtRcsRVppyuG1UuS3IidSnniUOavf5YoAf/kcZqw=";
+ sha256 = "sha256-n77mTgElwwFaX3WQL8tZzbkPwnsyQ08OW9imSOjpBlg=";
};
nativeBuildInputs = [
@@ -57,19 +57,26 @@ python3Packages.buildPythonApplication rec {
++ lib.optional serverSupport bottle
;
+ postPatch = ''
+ sed -i "/--cov/d" setup.cfg
+ sed -i "/--no-cov-on-fail/d" setup.cfg
+ '';
+
# hook for gobject-introspection doesn't like strictDeps
# https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
- # Use the test suite provided by the upstream project.
checkInputs = with python3Packages; [
pytest
- pytest-cov
];
- checkPhase = "${xvfb-run}/bin/xvfb-run pytest";
- # Also run the python import check for sanity
- pythonImportsCheck = [ "sublime_music" ];
+ checkPhase = ''
+ ${xvfb-run}/bin/xvfb-run pytest
+ '';
+
+ pythonImportsCheck = [
+ "sublime_music"
+ ];
postInstall = ''
install -Dm444 sublime-music.desktop -t $out/share/applications
diff --git a/pkgs/applications/audio/surge-XT/default.nix b/pkgs/applications/audio/surge-XT/default.nix
new file mode 100644
index 000000000000..6445723d7781
--- /dev/null
+++ b/pkgs/applications/audio/surge-XT/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, cairo, libxkbcommon, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor, alsa-lib, libjack2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "surge-XT";
+ version = "unstable-2021-11-07";
+
+ src = fetchFromGitHub {
+ owner = "surge-synthesizer";
+ repo = "surge";
+ rev = "ed93833eb44b177c977e3a7b878ffdd9bf9f24e5";
+ sha256 = "0b164659ksl6h5nn7jja5zccx2mwzibqs6b7hg8l98gpcy9fi5r2";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ cairo libxkbcommon xcbutilcursor xcbutilkeysyms xcbutil libXrandr libXinerama libXcursor alsa-lib libjack2 ];
+
+ installPhase = ''
+ cd ..
+ cmake --build build --config Release --target install
+ '';
+
+ doInstallCheck = false;
+
+ meta = with lib; {
+ description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
+ homepage = "https://surge-synthesizer.github.io";
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ magnetophon orivej ];
+ };
+}
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index eecf8caee379..b0e9e9bde9d0 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -2,11 +2,11 @@
mkDerivation rec {
pname = "synthv1";
- version = "0.9.15";
+ version = "0.9.23";
src = fetchurl {
url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
- sha256 = "047y2l7ipzv00ly54f074v6p043xjml7vz0svc7z81bhx74vs0ix";
+ sha256 = "sha256-0V72T51icT/t9fJf4mwcMYZLjzTPnmiCbU+BdwnCmw4=";
};
buildInputs = [ qtbase qttools libjack2 alsa-lib liblo lv2 ];
diff --git a/pkgs/applications/audio/tagutil/default.nix b/pkgs/applications/audio/tagutil/default.nix
index 802cd00087a8..e5076188301a 100644
--- a/pkgs/applications/audio/tagutil/default.nix
+++ b/pkgs/applications/audio/tagutil/default.nix
@@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
zlib
];
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "-o aslr" ""
+ '';
+
meta = with lib; {
description = "Scriptable music files tags tool and editor";
homepage = "https://github.com/kaworu/tagutil";
diff --git a/pkgs/applications/audio/tauon/default.nix b/pkgs/applications/audio/tauon/default.nix
index 530c41ab9220..8213aeb5fe50 100644
--- a/pkgs/applications/audio/tauon/default.nix
+++ b/pkgs/applications/audio/tauon/default.nix
@@ -15,6 +15,7 @@
, opusfile
, pango
, pulseaudio
+, withDiscordRPC ? false
}:
stdenv.mkDerivation rec {
@@ -82,7 +83,7 @@ stdenv.mkDerivation rec {
pysdl2
requests
send2trash
- ];
+ ] ++ lib.optional withDiscordRPC pypresence;
makeWrapperArgs = [
"--prefix PATH : ${lib.makeBinPath [ffmpeg]}"
diff --git a/pkgs/applications/audio/tenacity/default.nix b/pkgs/applications/audio/tenacity/default.nix
new file mode 100644
index 000000000000..160243cdf34f
--- /dev/null
+++ b/pkgs/applications/audio/tenacity/default.nix
@@ -0,0 +1,148 @@
+{ stdenv
+, lib
+, fetchFromSourcehut
+, cmake
+, wxGTK
+, pkg-config
+, python3
+, gettext
+, glib
+, file
+, lame
+, libvorbis
+, libmad
+, libjack2
+, lv2
+, lilv
+, makeWrapper
+, serd
+, sord
+, sqlite
+, sratom
+, suil
+, alsa-lib
+, libsndfile
+, soxr
+, flac
+, twolame
+, expat
+, libid3tag
+, libopus
+, ffmpeg
+, soundtouch
+, pcre
+, portaudio
+, linuxHeaders
+, at-spi2-core
+, dbus
+, epoxy
+, libXdmcp
+, libXtst
+, libpthreadstubs
+, libselinux
+, libsepol
+, libxkbcommon
+, util-linux
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tenacity";
+ version = "unstable-2021-10-18";
+
+ src = fetchFromSourcehut {
+ owner = "~tenacity";
+ repo = "tenacity";
+ rev = "697c0e764ccb19c1e2f3073ae08ecdac7aa710e4";
+ sha256 = "1fc9xz8lyl8si08wkzncpxq92vizan60c3640qr4kbnxg7vi2iy4";
+ };
+
+ postPatch = ''
+ touch src/RevisionIdent.h
+
+ substituteInPlace src/FileNames.cpp \
+ --replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
+ '';
+
+ postFixup = ''
+ rm $out/tenacity
+ wrapProgram "$out/bin/tenacity" \
+ --suffix AUDACITY_PATH : "$out/share/tenacity" \
+ --suffix AUDACITY_MODULES_PATH : "$out/lib/tenacity/modules" \
+ --prefix LD_LIBRARY_PATH : "$out/lib/tenacity" \
+ --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ NIX_CFLAGS_COMPILE = "-D GIT_DESCRIBE=\"\"";
+
+ # tenacity only looks for ffmpeg at runtime, so we need to link it in manually
+ NIX_LDFLAGS = toString [
+ "-lavcodec"
+ "-lavdevice"
+ "-lavfilter"
+ "-lavformat"
+ "-lavresample"
+ "-lavutil"
+ "-lpostproc"
+ "-lswresample"
+ "-lswscale"
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ gettext
+ makeWrapper
+ pkg-config
+ python3
+ ] ++ lib.optionals stdenv.isLinux [
+ linuxHeaders
+ ];
+
+ buildInputs = [
+ alsa-lib
+ expat
+ ffmpeg
+ file
+ flac
+ glib
+ lame
+ libid3tag
+ libjack2
+ libmad
+ libopus
+ libsndfile
+ libvorbis
+ lilv
+ lv2
+ pcre
+ portaudio
+ serd
+ sord
+ soundtouch
+ soxr
+ sqlite
+ sratom
+ suil
+ twolame
+ wxGTK
+ wxGTK.gtk
+ ] ++ lib.optionals stdenv.isLinux [
+ at-spi2-core
+ dbus
+ epoxy
+ libXdmcp
+ libXtst
+ libpthreadstubs
+ libxkbcommon
+ libselinux
+ libsepol
+ util-linux
+ ];
+
+ meta = with lib; {
+ description = "Sound editor with graphical UI";
+ homepage = "https://tenacityaudio.org/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ irenes lheckemann ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/audio/tonelib-gfx/default.nix b/pkgs/applications/audio/tonelib-gfx/default.nix
index 00be09345520..108f39925b4f 100644
--- a/pkgs/applications/audio/tonelib-gfx/default.nix
+++ b/pkgs/applications/audio/tonelib-gfx/default.nix
@@ -1,65 +1,58 @@
-{ stdenv
-, dpkg
-, lib
-, autoPatchelfHook
+{ lib
+, stdenv
, fetchurl
-, gtk3
-, glib
-, desktop-file-utils
+, autoPatchelfHook
+, dpkg
, alsa-lib
-, libjack2
-, harfbuzz
-, fribidi
-, pango
, freetype
+, libglvnd
, curl
+, libXcursor
+, libXinerama
+, libXrandr
+, libXrender
+, libjack2
}:
stdenv.mkDerivation rec {
pname = "tonelib-gfx";
- version = "4.6.6";
+ version = "4.7.0";
src = fetchurl {
- url = "https://www.tonelib.net/download/0509/ToneLib-GFX-amd64.deb";
- sha256 = "sha256-wdX3SQSr0IZHsTUl+1Y0iETme3gTyryexhZ/9XHkGeo=";
+ url = "https://www.tonelib.net/download/0930/ToneLib-GFX-amd64.deb";
+ hash = "sha256-BcbX0dz94B4mj6QeQsnuZmwXAaXH+yJjnrUPgEYVqkU=";
};
+ nativeBuildInputs = [ autoPatchelfHook dpkg ];
+
buildInputs = [
- dpkg
- gtk3
- glib
- desktop-file-utils
+ stdenv.cc.cc.lib
alsa-lib
- libjack2
- harfbuzz
- fribidi
- pango
freetype
+ libglvnd
+ ] ++ runtimeDependencies;
+
+ runtimeDependencies = map lib.getLib [
+ curl
+ libXcursor
+ libXinerama
+ libXrandr
+ libXrender
+ libjack2
];
- nativeBuildInputs = [
- autoPatchelfHook
- ];
-
- unpackPhase = ''
- mkdir -p $TMP/ $out/
- dpkg -x $src $TMP
- '';
+ unpackCmd = "dpkg -x $curSrc source";
installPhase = ''
- cp -R $TMP/usr/* $out/
- mv $out/bin/ToneLib-GFX $out/bin/tonelib-gfx
- '';
-
- runtimeDependencies = [
- (lib.getLib curl)
- ];
+ mv usr $out
+ substituteInPlace $out/share/applications/ToneLib-GFX.desktop --replace /usr/ $out/
+ '';
meta = with lib; {
description = "Tonelib GFX is an amp and effects modeling software for electric guitar and bass.";
homepage = "https://tonelib.net/";
license = licenses.unfree;
- maintainers = with maintainers; [ dan4ik605743 ];
- platforms = platforms.linux;
+ maintainers = with maintainers; [ dan4ik605743 orivej ];
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/audio/tonelib-jam/default.nix b/pkgs/applications/audio/tonelib-jam/default.nix
index 7a5a5c7280fa..1c0d51ed88be 100644
--- a/pkgs/applications/audio/tonelib-jam/default.nix
+++ b/pkgs/applications/audio/tonelib-jam/default.nix
@@ -1,65 +1,61 @@
-{ stdenv
-, dpkg
-, lib
-, autoPatchelfHook
+{ lib
+, stdenv
, fetchurl
-, gtk3
-, glib
-, desktop-file-utils
+, autoPatchelfHook
+, dpkg
, alsa-lib
-, libjack2
-, harfbuzz
-, fribidi
-, pango
, freetype
+, libglvnd
, curl
+, libXcursor
+, libXinerama
+, libXrandr
+, libXrender
+, libjack2
}:
stdenv.mkDerivation rec {
pname = "tonelib-jam";
- version = "4.6.6";
+ version = "4.7.0";
src = fetchurl {
- url = "https://www.tonelib.net/download/0509/ToneLib-Jam-amd64.deb";
- sha256 = "sha256-cizIQgO35CQSLme/LKQqP+WzB/jCTk+fS5Z+EtF7wnQ=";
+ url = "https://www.tonelib.net/download/0930/ToneLib-Jam-amd64.deb";
+ sha256 = "sha256-xyBDp3DQVC+nK2WGnvrfUfD+9GvwtbldXgExTMmCGw0=";
};
- buildInputs = [
- dpkg
- gtk3
- glib
- desktop-file-utils
- alsa-lib
- libjack2
- harfbuzz
- fribidi
- pango
- freetype
- ];
-
nativeBuildInputs = [
autoPatchelfHook
+ dpkg
];
- unpackPhase = ''
- mkdir -p $TMP/ $out/
- dpkg -x $src $TMP
- '';
+ buildInputs = [
+ stdenv.cc.cc.lib
+ alsa-lib
+ freetype
+ libglvnd
+ ] ++ runtimeDependencies;
+
+ runtimeDependencies = map lib.getLib [
+ curl
+ libXcursor
+ libXinerama
+ libXrandr
+ libXrender
+ libjack2
+ ];
+
+ unpackCmd = "dpkg -x $curSrc source";
installPhase = ''
- cp -R $TMP/usr/* $out/
- mv $out/bin/ToneLib-Jam $out/bin/tonelib-jam
+ mv usr $out
+ substituteInPlace $out/share/applications/ToneLib-Jam.desktop --replace /usr/ $out/
'';
- runtimeDependencies = [
- (lib.getLib curl)
- ];
-
meta = with lib; {
description = "ToneLib Jam – the learning and practice software for guitar players";
homepage = "https://tonelib.net/";
license = licenses.unfree;
maintainers = with maintainers; [ dan4ik605743 ];
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/audio/tonelib-zoom/default.nix b/pkgs/applications/audio/tonelib-zoom/default.nix
index 2eef1f7bd609..41539503e020 100644
--- a/pkgs/applications/audio/tonelib-zoom/default.nix
+++ b/pkgs/applications/audio/tonelib-zoom/default.nix
@@ -1,12 +1,18 @@
-{ stdenv
-, dpkg
-, lib
-, autoPatchelfHook
+{ lib
+, stdenv
, fetchurl
-, webkitgtk
-, libjack2
+, autoPatchelfHook
+, dpkg
, alsa-lib
+, freetype
+, libglvnd
, curl
+, libXcursor
+, libXinerama
+, libXrandr
+, libXrender
+, libjack2
+, webkitgtk
}:
stdenv.mkDerivation rec {
@@ -18,36 +24,40 @@ stdenv.mkDerivation rec {
sha256 = "sha256-4q2vM0/q7o/FracnO2xxnr27opqfVQoN7fsqTD9Tr/c=";
};
- buildInputs = [
- dpkg
- webkitgtk
- libjack2
- alsa-lib
- ];
-
nativeBuildInputs = [
autoPatchelfHook
+ dpkg
];
- unpackPhase = ''
- mkdir -p $TMP/ $out/
- dpkg -x $src $TMP
- '';
+ buildInputs = [
+ stdenv.cc.cc.lib
+ alsa-lib
+ freetype
+ libglvnd
+ webkitgtk
+ ] ++ runtimeDependencies;
+
+ runtimeDependencies = map lib.getLib [
+ curl
+ libXcursor
+ libXinerama
+ libXrandr
+ libXrender
+ libjack2
+ ];
+
+ unpackCmd = "dpkg -x $curSrc source";
installPhase = ''
- cp -R $TMP/usr/* $out/
- mv $out/bin/ToneLib-Zoom $out/bin/tonelib-zoom
+ mv usr $out
+ substituteInPlace $out/share/applications/ToneLib-Zoom.desktop --replace /usr/ $out/
'';
- runtimeDependencies = [
- (lib.getLib curl)
- ];
-
meta = with lib; {
description = "ToneLib Zoom – change and save all the settings in your Zoom(r) guitar pedal";
homepage = "https://tonelib.net/";
license = licenses.unfree;
maintainers = with maintainers; [ dan4ik605743 ];
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/audio/vmpk/default.nix b/pkgs/applications/audio/vmpk/default.nix
index 45142568f980..a9b1ac96f106 100644
--- a/pkgs/applications/audio/vmpk/default.nix
+++ b/pkgs/applications/audio/vmpk/default.nix
@@ -5,11 +5,11 @@
mkDerivation rec {
pname = "vmpk";
- version = "0.8.2";
+ version = "0.8.4";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
- sha256 = "1kv256j13adk4ib7r464gsl4vjhih820bq37ddhqfyfd07wh53a2";
+ sha256 = "sha256-SSdD8dyn6abti8qkd7N5n8EYr5yMW+EPYUnRm7S9CE4=";
};
nativeBuildInputs = [ cmake pkg-config qttools docbook-xsl-nons ];
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index a2fea468de9d..3d6f3aef9e1b 100644
--- a/pkgs/applications/audio/vocal/default.nix
+++ b/pkgs/applications/audio/vocal/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ] ++ teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "com.github.needleandthread.vocal";
};
}
diff --git a/pkgs/applications/audio/wavegain/default.nix b/pkgs/applications/audio/wavegain/default.nix
index f4ef7f6d8a57..1820ed2def1c 100644
--- a/pkgs/applications/audio/wavegain/default.nix
+++ b/pkgs/applications/audio/wavegain/default.nix
@@ -1,7 +1,9 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
- name = "wavegain-1.3.1";
+ pname = "wavegain";
+ version = "1.3.1";
+
src = fetchFromGitHub {
owner = "MestreLion";
repo = "wavegain";
diff --git a/pkgs/applications/audio/x42-avldrums/default.nix b/pkgs/applications/audio/x42-avldrums/default.nix
index 31ef68714f6a..d698ef68da5c 100644
--- a/pkgs/applications/audio/x42-avldrums/default.nix
+++ b/pkgs/applications/audio/x42-avldrums/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "x42-avldrums";
- version = "0.4.1";
+ version = "0.4.2";
src = fetchFromGitHub {
owner = "x42";
repo = "avldrums.lv2";
rev = "v${version}";
- sha256 = "1vwdp3d8qzd493qa99ddya7iql67bbfxmbcl8hk96lxif2lhmyws";
+ sha256 = "sha256-L9rLSHHQIM6PqZ397TIxR6O1N9GKAQtDfWCofV5R85E=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 557802a8a0fb..70353e2497f1 100644
--- a/pkgs/applications/audio/x42-plugins/default.nix
+++ b/pkgs/applications/audio/x42-plugins/default.nix
@@ -3,12 +3,12 @@
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
stdenv.mkDerivation rec {
- version = "20210714";
+ version = "20211016";
pname = "x42-plugins";
src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
- sha256 = "sha256-X389bA+cf3N5eJpAlpDn/CJQ6xM4qzrBQ47fYPIyIHk=";
+ sha256 = "sha256-Z2lXaJweOPB9hWOuy2cx1P9/CAJ+IMc7JtPDKAg2boU=";
};
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix
index 777ac79a22da..a07bfa60b054 100644
--- a/pkgs/applications/audio/zam-plugins/default.nix
+++ b/pkgs/applications/audio/zam-plugins/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zam-plugins";
- version = "3.13";
+ version = "3.14";
src = fetchFromGitHub {
owner = "zamaudio";
repo = pname;
rev = version;
- sha256 = "02blg0iqich4vx5z1ahj6avkh83yqszdiq83p9jd5qwm0i4llqjq";
+ sha256 = "sha256-zlANfFuEXQdXlSu4CuXNyChiuV7wkumaOJqgthl6Y9Q=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/audio/zrythm/default.nix b/pkgs/applications/audio/zrythm/default.nix
new file mode 100644
index 000000000000..ee6eef5527f9
--- /dev/null
+++ b/pkgs/applications/audio/zrythm/default.nix
@@ -0,0 +1,169 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, SDL2
+, alsa-lib
+, libaudec
+, bash
+, bash-completion
+, breeze-icons
+, carla
+, chromaprint
+, cmake
+, curl
+, dconf
+, epoxy
+, ffmpeg
+, fftw
+, fftwFloat
+, flex
+, glib
+, gtk3
+, gtksourceview3
+, guile
+, graphviz
+, help2man
+, json-glib
+, jq
+, libbacktrace
+, libcyaml
+, libgtop
+, libjack2
+, libpulseaudio
+, libsamplerate
+, libsndfile
+, libsoundio
+, libxml2
+, libyaml
+, lilv
+, lv2
+, meson
+, ninja
+, pandoc
+, pcre
+, pcre2
+, pkg-config
+, python3
+, reproc
+, rtaudio
+, rtmidi
+, rubberband
+, serd
+, sord
+, sratom
+, texi2html
+, wrapGAppsHook
+, xdg-utils
+, xxHash
+, vamp-plugin-sdk
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "zrythm";
+ version = "1.0.0-alpha.26.0.13";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-dkXlkJ+qlfxV9Bv2UvZZa2iRVm8tgpK4JxkWL2Jeq48=";
+ };
+
+ nativeBuildInputs = [
+ help2man
+ jq
+ libaudec
+ libxml2
+ meson
+ ninja
+ pandoc
+ pkg-config
+ python3
+ python3.pkgs.sphinx
+ texi2html
+ wrapGAppsHook
+ cmake
+ ];
+
+ buildInputs = [
+ SDL2
+ alsa-lib
+ bash-completion
+ carla
+ chromaprint
+ curl
+ dconf
+ epoxy
+ ffmpeg
+ fftw
+ fftwFloat
+ flex
+ breeze-icons
+ glib
+ gtk3
+ gtksourceview3
+ graphviz
+ guile
+ json-glib
+ libbacktrace
+ libcyaml
+ libgtop
+ libjack2
+ libpulseaudio
+ libsamplerate
+ libsndfile
+ libsoundio
+ libyaml
+ lilv
+ lv2
+ pcre
+ pcre2
+ reproc
+ rtaudio
+ rtmidi
+ rubberband
+ serd
+ sord
+ sratom
+ vamp-plugin-sdk
+ xdg-utils
+ xxHash
+ zstd
+ ];
+
+ mesonFlags = [
+ "-Denable_ffmpeg=true"
+ "-Denable_rtmidi=true"
+ "-Denable_rtaudio=true"
+ "-Denable_sdl=true"
+ "-Dmanpage=true"
+ # "-Duser_manual=true" # needs sphinx-intl
+ "-Dlsp_dsp=disabled"
+ "-Db_lto=false"
+ ];
+
+ NIX_LDFLAGS = ''
+ -lfftw3_threads -lfftw3f_threads
+ '';
+
+ postPatch = ''
+ chmod +x scripts/meson-post-install.sh
+ patchShebangs ext/sh-manpage-completions/run.sh scripts/generic_guile_wrap.sh \
+ scripts/meson-post-install.sh tools/check_have_unlimited_memlock.sh
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix GSETTINGS_SCHEMA_DIR : "$out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas/"
+ )
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.zrythm.org";
+ description = "Highly automated and intuitive digital audio workstation";
+ maintainers = with maintainers; [ tshaynik magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.agpl3Plus;
+ };
+}
diff --git a/pkgs/applications/backup/areca/default.nix b/pkgs/applications/backup/areca/default.nix
index b50ebdd4a87b..816646ab6f12 100644
--- a/pkgs/applications/backup/areca/default.nix
+++ b/pkgs/applications/backup/areca/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:
-stdenv.mkDerivation {
- name = "areca-7.5";
+stdenv.mkDerivation rec {
+ pname = "areca";
+ version = "7.5";
src = fetchurl {
- url = "mirror://sourceforge/project/areca/areca-stable/areca-7.5/areca-7.5-src.tar.gz";
+ url = "mirror://sourceforge/project/areca/areca-stable/areca-${version}/areca-${version}-src.tar.gz";
sha256 = "1q4ha9s96c1syplxm04bh1v1gvjq16l4pa8w25w95d2ywwvyq1xb";
};
@@ -47,6 +48,8 @@ stdenv.mkDerivation {
meta = with lib; {
homepage = "http://www.areca-backup.org/";
description = "An Open Source personal backup solution";
+ # Builds fine but fails to launch.
+ broken = true;
license = licenses.gpl2;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; linux;
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index ccd121f5da70..337ee31f03d6 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -14,7 +14,7 @@
, libsecret
, libhandy
, wrapGAppsHook
-, libgpgerror
+, libgpg-error
, json-glib
, duplicity
}:
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
gtk3
libsecret
libhandy
- libgpgerror
+ libgpg-error
json-glib
];
diff --git a/pkgs/applications/backup/urbackup-client/default.nix b/pkgs/applications/backup/urbackup-client/default.nix
new file mode 100644
index 000000000000..16ae8fcf3e89
--- /dev/null
+++ b/pkgs/applications/backup/urbackup-client/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchzip, wxGTK30, zlib, zstd }:
+
+stdenv.mkDerivation rec {
+ pname = "urbackup-client";
+ version = "2.4.11";
+
+ src = fetchzip {
+ url = "https://hndl.urbackup.org/Client/${version}/urbackup-client-${version}.tar.gz";
+ sha256 = "0cciy9v1pxj9qaklpbhp2d5rdbkmfm74vhpqx6b4phww0f10wvzh";
+ };
+
+ configureFlags = [ "--enable-embedded-cryptopp" ];
+ buildInputs = [ wxGTK30 zlib zstd ];
+
+ meta = with lib; {
+ description = "An easy to setup Open Source client/server backup system";
+ longDescription = "An easy to setup Open Source client/server backup system, that through a combination of image and file backups accomplishes both data safety and a fast restoration time";
+ homepage = "https://www.urbackup.org/index.html";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.mgttlinger ];
+ };
+}
diff --git a/pkgs/applications/blockchains/bisq-desktop/default.nix b/pkgs/applications/blockchains/bisq-desktop/default.nix
index 832c453ce7cc..2781e69c56ad 100644
--- a/pkgs/applications/blockchains/bisq-desktop/default.nix
+++ b/pkgs/applications/blockchains/bisq-desktop/default.nix
@@ -35,11 +35,11 @@ let
in
stdenv.mkDerivation rec {
pname = "bisq-desktop";
- version = "1.7.3";
+ version = "1.7.5";
src = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
- sha256 = "1q250lj0ig6aqd1dfc335z8pjj7qa7l75kws6d78k3wchzmk7jrk";
+ sha256 = "0mwlmya53xaps8x8c5cvk9zxy0ddijkrba8x3jp2glql34wac3ri";
};
nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg gnutar zip xz ];
diff --git a/pkgs/applications/blockchains/bitcoin/default.nix b/pkgs/applications/blockchains/bitcoin/default.nix
index 7a0237ed2b15..7253d3dff377 100644
--- a/pkgs/applications/blockchains/bitcoin/default.nix
+++ b/pkgs/applications/blockchains/bitcoin/default.nix
@@ -5,6 +5,7 @@
, pkg-config
, util-linux
, hexdump
+, autoSignDarwinBinariesHook
, wrapQtAppsHook ? null
, boost
, libevent
@@ -47,6 +48,7 @@ stdenv.mkDerivation rec {
[ autoreconfHook pkg-config ]
++ optionals stdenv.isLinux [ util-linux ]
++ optionals stdenv.isDarwin [ hexdump ]
+ ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ]
++ optionals withGui [ wrapQtAppsHook ];
buildInputs = [ boost libevent miniupnpc zeromq zlib ]
diff --git a/pkgs/applications/blockchains/btcpayserver/default.nix b/pkgs/applications/blockchains/btcpayserver/default.nix
index 9c810036199e..0d9da9b3cedc 100644
--- a/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -1,58 +1,40 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
- dotnetPackages, dotnetCorePackages, altcoinSupport ? false
-}:
+{ lib, buildDotnetModule, fetchFromGitHub, dotnetCorePackages
+, altcoinSupport ? false }:
-let
- deps = import ./deps.nix {
- fetchNuGet = { name, version, sha256 }: fetchurl {
- name = "nuget-${name}-${version}.nupkg";
- url = "https://www.nuget.org/api/v2/package/${name}/${version}";
- inherit sha256;
- };
- };
- dotnetSdk = dotnetCorePackages.sdk_3_1;
-in
-
-stdenv.mkDerivation rec {
+buildDotnetModule rec {
pname = "btcpayserver";
- version = "1.2.3";
+ version = "1.3.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-6ktlnbYb+pOXwl52QmnqDsPlXaiF1ghjQg1yfznulqo=";
+ sha256 = "sha256-IBdQlVZx7Bt4y7B7FvHJihHUWO15a89hs+SGwcobDqY=";
};
- nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
+ projectFile = "BTCPayServer/BTCPayServer.csproj";
+ nugetDeps = ./deps.nix;
- buildPhase = ''
- export HOME=$TMP/home
- export DOTNET_CLI_TELEMETRY_OPTOUT=1
- export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+ dotnet-sdk = dotnetCorePackages.sdk_3_1;
+ dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
- nuget sources Add -Name tmpsrc -Source $TMP/nuget
- nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
-
- dotnet restore --source $TMP/nuget ${lib.optionalString altcoinSupport ''/p:Configuration="Altcoins-Release"''} BTCPayServer/BTCPayServer.csproj
- dotnet publish --no-restore --output $out/share/$pname ${lib.optionalString altcoinSupport "-c Altcoins-Release"} BTCPayServer/BTCPayServer.csproj
- '';
+ dotnetFlags = lib.optionals altcoinSupport [ "/p:Configuration=Altcoins-Release" ];
# btcpayserver requires the publish directory as its working dir
# https://github.com/btcpayserver/btcpayserver/issues/1894
- installPhase = ''
- makeWrapper $out/share/$pname/BTCPayServer $out/bin/$pname \
- --set DOTNET_ROOT "${dotnetSdk}" \
- --run "cd $out/share/$pname"
+ preInstall = ''
+ makeWrapperArgs+=(--run "cd $out/lib/btcpayserver")
'';
- dontStrip = true;
+ postInstall = ''
+ mv $out/bin/{BTCPayServer,btcpayserver}
+ '';
meta = with lib; {
description = "Self-hosted, open-source cryptocurrency payment processor";
homepage = "https://btcpayserver.org";
maintainers = with maintainers; [ kcalvinalvin earvstedt ];
- license = lib.licenses.mit;
- platforms = lib.platforms.linux;
+ license = licenses.mit;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/blockchains/btcpayserver/deps.nix b/pkgs/applications/blockchains/btcpayserver/deps.nix
index f92b2f7a8565..c3406494aeb4 100644
--- a/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -31,38 +31,38 @@
})
(fetchNuGet {
name = "BTCPayServer.Lightning.All";
- version = "1.2.12";
- sha256 = "0sciwh9m7h6ns59bsrzpd6zyxxdkiy33bdsq0phd3r2yxakvw68n";
+ version = "1.2.14";
+ sha256 = "0avb0jlisx1nv0ary2nc82aamn95qmrrqshwbk8szzjqgvxzv4k2";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Charge";
- version = "1.2.7";
- sha256 = "02x3p0am5zqp8f4fycdlrp26alicxc5vrlvgxg6d8wsa35q473xc";
+ version = "1.2.8";
+ sha256 = "0ldk7kyipgmg0mj1444ins5n014z149j1qa40h12pncr6q1fb0xf";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.CLightning";
- version = "1.2.8";
- sha256 = "06c6dnp72iwvnjm3pil24fnk4vp2v1f9gg84a381yn1xah9jghky";
+ version = "1.2.9";
+ sha256 = "0r855lnh6cyj6hpwhdpdhpp39332v7lmk93ri2q8gs9lsnwdyjr8";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Common";
- version = "1.2.6";
- sha256 = "09p2ks1qgy6jnpcfwgdnxvldyyadwnh3mwmq9z89vvzmmgs19xkk";
+ version = "1.2.7";
+ sha256 = "1hz4bn3aw537r253ipdpa6sydwhb6dh3r82xp1jizn9a6mnw54x6";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Eclair";
- version = "1.2.6";
- sha256 = "0lf55w8v997kqh808545ry5mlwxpzxzlkbz38fl4nfm85yydw0fc";
+ version = "1.2.7";
+ sha256 = "1h15gic45wps4nvmxyfmfils9nicbz3xkli705hq69g0mafy0f23";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.LND";
- version = "1.2.8";
- sha256 = "1g1siy3xwf3rmyl4qrcg42wpww4b2qmfs88x0rxccwxjy5inzkz6";
+ version = "1.2.10";
+ sha256 = "10m8kw7598l9ap6y17znvm43cz5ca6qxbrh105knyb6hfzpsyqwp";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Ptarmigan";
- version = "1.2.6";
- sha256 = "10g785jh92z5x7aqh41ma3d1nw0718bk7ibb58ychhdk1v2wwmh4";
+ version = "1.2.7";
+ sha256 = "1mmj8bi32kzgda8v7qdfpm2qlpffv5223c2xnq7351h8ih4bbcvb";
})
(fetchNuGet {
name = "BuildBundlerMinifier";
@@ -169,15 +169,20 @@
version = "1.0.18";
sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn";
})
+ (fetchNuGet {
+ name = "LNURL";
+ version = "0.0.14";
+ sha256 = "0b2v87k3yi2lyka5zy3sbvxsa7yp04nn72l7dk27cm9i1d9914sq";
+ })
(fetchNuGet {
name = "McMaster.NETCore.Plugins.Mvc";
- version = "1.3.1";
- sha256 = "1dh58ijwn6q6id0jpzr4hpfl0y4ak43zq4m8rsi5j2qv8vasq1mi";
+ version = "1.4.0";
+ sha256 = "07i0p6236hyh1c3cb5v6zkayq5807rd6msc341v2jh6yd5radasy";
})
(fetchNuGet {
name = "McMaster.NETCore.Plugins";
- version = "1.3.1";
- sha256 = "0jrp7sshnvg7jcb52gfhwmg1jy31k9dxdf4061yggwcgpfskyg7n";
+ version = "1.4.0";
+ sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy";
})
(fetchNuGet {
name = "Microsoft.AspNet.SignalR.Client";
@@ -191,13 +196,13 @@
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Cryptography.Internal";
- version = "3.1.4";
- sha256 = "0d4djj073bl9kps5jkcpydh92lcp6kpa7njhypjw3myaa987dcsh";
+ version = "3.1.19";
+ sha256 = "1b20hksk2qk2jnkwin4g0n9ap3ma7724pd518fh9qcakf7vfpkl1";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
- version = "3.1.4";
- sha256 = "1rya2775prm8ss0rz6izsqqcz96gcf1rh0bpcvnfy1mwi04rx8bl";
+ version = "3.1.19";
+ sha256 = "1ksi2h3904932igh1g27l91fqdsfxg8zr6y82ym8pqb62m0906a4";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Hosting.Abstractions";
@@ -221,33 +226,33 @@
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
- version = "3.1.4";
- sha256 = "0smcpaqm7d95flr0k7i2psrsfvs48lv28kzqgnllv5229hhb670d";
+ version = "3.1.19";
+ sha256 = "0sm7cpccpygwgplbkp0j1q5ilkkiw0dx76qwy3xharv4himakrfm";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.JsonPatch";
- version = "3.1.1";
- sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+ version = "3.1.19";
+ sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
- version = "3.1.1";
- sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+ version = "3.1.19";
+ sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
- version = "3.1.1";
- sha256 = "1iydcr7rfzg3kqky0x70853g6lbzsl9ja9cv8ph6iwpqxnswgdkh";
+ version = "3.1.19";
+ sha256 = "1n22q10n9xlhcjxsm1apd0b7j3j97dd5jmpw6nvymwbv2bw88af4";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
- version = "3.1.1";
- sha256 = "1q1bblcj9l2dnz46frygsfq7w4v08l96clgryh78wyws83xjm43y";
+ version = "3.1.19";
+ sha256 = "1glmlgrwksv0h8g41wy43wv94ndllq4ihxhdaagig9szvivdh8c1";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Razor.Language";
- version = "3.1.1";
- sha256 = "0arqmy04dd0r4wm2fin66gxxwj2kirbgxyf3w7kq6f73lrnazhq0";
+ version = "3.1.19";
+ sha256 = "059v85f2qbj403wcnp5mspzvhkbf6d8hsjl26xvfd5s8svnaz4ax";
})
(fetchNuGet {
name = "Microsoft.Bcl.AsyncInterfaces";
@@ -256,8 +261,8 @@
})
(fetchNuGet {
name = "Microsoft.Bcl.HashCode";
- version = "1.1.0";
- sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0";
+ version = "1.1.1";
+ sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
@@ -266,8 +271,13 @@
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
- version = "3.0.0";
- sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+ version = "3.3.2";
+ sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Common";
+ version = "3.11.0";
+ sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
@@ -275,29 +285,24 @@
sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
})
(fetchNuGet {
- name = "Microsoft.CodeAnalysis.Common";
- version = "3.6.0";
- sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
+ name = "Microsoft.CodeAnalysis.CSharp";
+ version = "3.11.0";
+ sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
version = "3.3.0";
sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
})
- (fetchNuGet {
- name = "Microsoft.CodeAnalysis.CSharp";
- version = "3.6.0";
- sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
- })
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Razor";
- version = "3.1.1";
- sha256 = "03n5rli6v1kvghha82zar3dvvkbc2vb9g8zp5fjrzhvp4l74ingn";
+ version = "3.1.19";
+ sha256 = "18l0gcpl7i0bfnyzhpm7h72ng2h8bh46fr2azk7d3ns507gi3xmp";
})
(fetchNuGet {
name = "Microsoft.CodeCoverage";
- version = "16.6.1";
- sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+ version = "16.11.0";
+ sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
})
(fetchNuGet {
name = "Microsoft.CSharp";
@@ -321,8 +326,8 @@
})
(fetchNuGet {
name = "Microsoft.Data.Sqlite.Core";
- version = "3.1.4";
- sha256 = "1pahyqjs4l9g1wg9hvxf68kgzzf72ny2i7n7ai97a389p2c86xvh";
+ version = "3.1.19";
+ sha256 = "0ns3rrk011gjw4g1kwr625390yj0mcadb3py49750sji72my7l7s";
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
@@ -331,53 +336,53 @@
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
- version = "3.1.0";
- sha256 = "1fg1zggza45pa8zlcf8llqh6v47fqi44azsia68kmsg2q9r1r4mq";
- })
- (fetchNuGet {
- name = "Microsoft.DotNet.PlatformAbstractions";
- version = "3.1.4";
- sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+ version = "3.1.6";
+ sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Abstractions";
- version = "3.1.4";
- sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
+ version = "3.1.18";
+ sha256 = "0d00d6wx2mm5bav39bjsikjq0sx6qmp183dbwimfda7wav2bwya8";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Abstractions";
+ version = "3.1.19";
+ sha256 = "0na2jgxs5k2gxqh99ha4v0blya3pwh2qha49iz0qkw0r3kq0vdvv";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Analyzers";
- version = "3.1.4";
- sha256 = "1zaqn9z7ns6p6jgnffzkgpziqr2wqs68g2sa0c11kaclhlhgvvbv";
+ version = "3.1.19";
+ sha256 = "02xjz4c6f71mcmdwihi9klrqm28xk84x19vcqi8cgpw50q7d0rly";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Design";
- version = "3.1.4";
- sha256 = "10mxnbiw23ia4sln86sd3gn84yhmrb6r2kipzid4h1g15paal9gi";
+ version = "3.1.19";
+ sha256 = "128md0ijqa1wvpdicf09i7kcb2aq2b07skc6j0vddz2jhcbi0irr";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Relational";
- version = "3.1.0";
- sha256 = "0javqw6c27ppcysigjvcjcw3mk0gg1pv2pmwfpvvryr1pb4a9n55";
+ version = "3.1.18";
+ sha256 = "0mlq9gmxrmix68mdh0lv803cx15lzrhs5d9622vj8wwdlngg3xdx";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Relational";
- version = "3.1.4";
- sha256 = "1344rsavawwg69dx8xsl08hcs43lc6h7z4mn461dcx85rirlwd0v";
+ version = "3.1.19";
+ sha256 = "13rbnd441r4zb52y99zwida0n0phvvw7hmccjy2kpnk1jfrr8xi1";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
- version = "3.1.4";
- sha256 = "080qz0b52i7v5c1sgnqlh9px9881cfr1x06np66hdgmh0ni5c1lw";
+ version = "3.1.19";
+ sha256 = "1w8ja5daglnr3ycfwlyskrnacb66p8yz730k838v6bpmpsdybn71";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Sqlite";
- version = "3.1.4";
- sha256 = "009mcmakw0p7k8xrz920a8qc0rjv361awiz8jia5i5a8p5ihgkbx";
+ version = "3.1.19";
+ sha256 = "0iwwa44dr2lg9mh5hmnpnkzbhi5v3vi6xy3xlnqg4hja37ji0xyw";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore";
- version = "3.1.4";
- sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
+ version = "3.1.19";
+ sha256 = "0gl43zk7ashjx49h35w58cn7dfl1ap3nyq9ws8575jcjhcx3c94h";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
@@ -386,13 +391,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
- version = "3.1.4";
- sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
+ version = "3.1.19";
+ sha256 = "1y1is16yl69ja67i9n98r44cr0z8b8f8k31d5ighi9djj4yhz4k2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Memory";
- version = "3.1.4";
- sha256 = "0b8ijxjd8lgq8mgnvh3wl4y4wbjj3v5b763y6gslm75fn43iyad8";
+ version = "3.1.19";
+ sha256 = "1iysxrmchw5ripyrcfi4nv5a00b9a7agsgvbb7y9fwbfq838v3mp";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
@@ -411,8 +416,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
- version = "3.1.4";
- sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
+ version = "3.1.19";
+ sha256 = "19s5dpswyad55p191280510sb8cr2b6zyx9zlx79p0lq4zaxwaq6";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
@@ -426,8 +431,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
- version = "3.1.4";
- sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
+ version = "3.1.19";
+ sha256 = "0dw1qiyc8j7rk13x6wfm1xnc7drnlvk8xv607hja0af2m0y7a3p2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
@@ -461,8 +466,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
- version = "3.1.4";
- sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
+ version = "3.1.19";
+ sha256 = "04zadl7q5vcak9d77jm5ivfzhhp2zvz5apywvfzrca4h0q38fs45";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
@@ -481,8 +486,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
- version = "3.1.4";
- sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
+ version = "3.1.19";
+ sha256 = "0claq9nna6p30zbvd25bn1ild9f3x50d5fxfbq9fsp464rq70b2y";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
@@ -496,8 +501,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection";
- version = "3.1.4";
- sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
+ version = "3.1.19";
+ sha256 = "0fsvv5jl95kmdxc4c7b15xanlq3fmfls556m8ghbqqikrgkqhz8m";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
@@ -506,18 +511,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.0";
- sha256 = "12nrdw3q9wl5zry8gb3sw003a0iyk2gvps2ij813l7lim38wy1mi";
+ version = "3.1.6";
+ sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.1";
- sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
- })
- (fetchNuGet {
- name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.4";
- sha256 = "0r0wv4k0ig6mrl6fr184zqbf5f010d6i2an2ws23g2bjvk8jh1bk";
+ version = "5.0.0";
+ sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x";
})
(fetchNuGet {
name = "Microsoft.Extensions.FileProviders.Abstractions";
@@ -551,13 +551,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Identity.Core";
- version = "3.1.4";
- sha256 = "0kyi03l9d7pnsvrcylc86fcxwnj59mhvmbz4c1d142f8djdrqfid";
+ version = "3.1.19";
+ sha256 = "14mywrm6mv7hzfappgdrmwwk97a4qpfkir5a55443awy8wl3bylr";
})
(fetchNuGet {
name = "Microsoft.Extensions.Identity.Stores";
- version = "3.1.4";
- sha256 = "0jb3syy0glyn4nnd7lb7aj412xnqyrwhfavh98rbc5adq9v09nbw";
+ version = "3.1.19";
+ sha256 = "0pkrhf1vffll986hh49gyvfdqn1vnjd0qnpfkag2b76d681xlvgg";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
@@ -581,8 +581,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
- version = "3.1.4";
- sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
+ version = "3.1.19";
+ sha256 = "07jnqb6518xrw086rqlc28ms80d57xg0pl5x72032rk2x5x8hhnn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
@@ -601,8 +601,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging";
- version = "3.1.4";
- sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
+ version = "3.1.19";
+ sha256 = "0j2874x847xa1nfbppjn10cnxd486f6lwy53mxmansvlmp96h2sn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options.ConfigurationExtensions";
@@ -621,8 +621,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
- version = "3.1.4";
- sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
+ version = "3.1.19";
+ sha256 = "1jm7rd2sbfscyfysvl8zcaypyzpd6d5w52ha2npa9c7q84cmn4r9";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
@@ -656,8 +656,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
- version = "3.1.4";
- sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
+ version = "3.1.19";
+ sha256 = "0vcwwqqfwm5vj87psmic6mxix3prgkzw8sqbg5m1c2q662kby380";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
@@ -681,13 +681,13 @@
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
- version = "16.6.1";
- sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+ version = "16.11.0";
+ sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
})
(fetchNuGet {
name = "Microsoft.NetCore.Analyzers";
- version = "2.9.8";
- sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx";
+ version = "3.3.2";
+ sha256 = "1h1bjiiw64qncs61p2idwxswv4kzq06bbl2rlghiagv6sbjk4pnq";
})
(fetchNuGet {
name = "Microsoft.NETCore.Platforms";
@@ -726,13 +726,13 @@
})
(fetchNuGet {
name = "Microsoft.TestPlatform.ObjectModel";
- version = "16.6.1";
- sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+ version = "16.11.0";
+ sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
})
(fetchNuGet {
name = "Microsoft.TestPlatform.TestHost";
- version = "16.6.1";
- sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+ version = "16.11.0";
+ sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
})
(fetchNuGet {
name = "Microsoft.Win32.Primitives";
@@ -751,24 +751,34 @@
})
(fetchNuGet {
name = "MySqlConnector";
- version = "0.61.0";
- sha256 = "0b0mc41dsih4p1ky3kcmibsz4bw14w439nraq5732wjfkq2sqdxg";
+ version = "0.69.10";
+ sha256 = "159xir7czzz291cs0f2dsgmnhar41s4wglm5r5lw3kqpd50q3i9v";
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
- version = "3.0.4";
- sha256 = "03aia31sznw81jjr9k6dkwgvm9dc38fgp1z8y5i45vlkf5fp89pb";
+ version = "3.0.8";
+ sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
})
(fetchNuGet {
- name = "NBitcoin";
- version = "5.0.33";
- sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
+ name = "NBitcoin.Secp256k1";
+ version = "1.0.3";
+ sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.40";
sha256 = "1rqzn84yaww4afagwg8jg1l5qdkvqyjdfcyd5widddqwxabbsjvh";
})
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.54";
+ sha256 = "0mx2gr8j8bc4mf1vi1fvqj3672qalxvzvincc61if79p46cik24b";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "6.0.15";
+ sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
+ })
(fetchNuGet {
name = "NBitcoin";
version = "6.0.3";
@@ -786,94 +796,99 @@
})
(fetchNuGet {
name = "NBXplorer.Client";
- version = "4.1.0";
- sha256 = "1al9j14k51ql7m6yd2w89xlnklj64jqjikq8wpl2vwi1zy2gxqrl";
+ version = "4.1.3";
+ sha256 = "1nh4jj7yg81825hr7cc99qlnfmdm6jibap81qqi8a968b61z4251";
})
(fetchNuGet {
name = "Nethereum.ABI";
- version = "3.8.0";
- sha256 = "10saq2qsqqgsf9d5cjji4lay74ydwkvkqgnns6gxikqicci8yx5c";
+ version = "4.1.0";
+ sha256 = "1mhg6mh7wkz93fq3pclkxjipcvzglnk70gr9s1cgr2ak84y3g5lr";
})
(fetchNuGet {
name = "Nethereum.Accounts";
- version = "3.8.0";
- sha256 = "03dq4l1gsd6r2hah5flas8d8pfys7hh5srd279kiidaaxrp8fv2m";
+ version = "4.1.0";
+ sha256 = "0wd4wa2d1dm4ni5l208bn7wi63m1whmbh4x6sfk8m4qh4dlh1bq0";
})
(fetchNuGet {
name = "Nethereum.BlockchainProcessing";
- version = "3.8.0";
- sha256 = "0sz6710a3rvzbj1ghx8dx9adfpsaydw8129c5nj2bqvvh6shi4ax";
+ version = "4.1.0";
+ sha256 = "1986y39mpd61s7kkkbcc9hcg7vwmp9mamhiiy9pzsnfgc2jna6c4";
})
(fetchNuGet {
name = "Nethereum.Contracts";
- version = "3.8.0";
- sha256 = "0989as81dqz4j0h8b5a9f5hnd4lrjdj851cfc4j5h6hd633a13f8";
+ version = "4.1.0";
+ sha256 = "07yj2fqx0p22aayhn7zjczq5xj55b2w48qar8j5q2klzl9q64iwc";
})
(fetchNuGet {
name = "Nethereum.HdWallet";
- version = "3.8.0";
- sha256 = "0dy1bcm0gsp137286q3bx5q9gyd8lymrdmnh1ip3sszs5j31l9k2";
+ version = "4.1.0";
+ sha256 = "052g15iqhkx94igvnv5qr8gxpvbi34c7avqn6j4i4p0yf6kwbwsi";
})
(fetchNuGet {
name = "Nethereum.Hex";
- version = "3.8.0";
- sha256 = "0sbi982jnfs39sp7w85wf8lb51mijpwr9mpsmws08zrm90n93kb6";
+ version = "4.1.0";
+ sha256 = "1bkmbfclbkr3336za7ii5vac7c4h2l1vd4bl3a15s54piwfgx44w";
})
(fetchNuGet {
name = "Nethereum.JsonRpc.Client";
- version = "3.8.0";
- sha256 = "0gmdvsxhs398cj14f16r3dl8yv52iaxr9c9214k2ra28r14gfd1l";
+ version = "4.1.0";
+ sha256 = "1260pr9y83nrfqpgq37s91dbsxdfkvdh55x48554c33ldrqsqk4p";
})
(fetchNuGet {
name = "Nethereum.JsonRpc.RpcClient";
- version = "3.8.0";
- sha256 = "05k5f0dfcx4afbkc1w7cfnz514i7840j2haxyzsxkp8818yvfg0a";
+ version = "4.1.0";
+ sha256 = "0jybgfzy4cj9jx1djjc66vpk9sg88dymy5jrcrply3y6bq85arq3";
})
(fetchNuGet {
name = "Nethereum.KeyStore";
- version = "3.8.0";
- sha256 = "05pj95vcfznlk4saq9dw19377gd1sqgmjcg5h92b5rzpgm9v811s";
+ version = "4.1.0";
+ sha256 = "16xffhfx7k9rfb5kr717cpbircj66gazbkbbwvf5hss3v9a6imzz";
})
(fetchNuGet {
name = "Nethereum.Model";
- version = "3.8.0";
- sha256 = "1qfhzqirj9bi49zb6rdcy7w5bm9jyv3a79q7crmgpq3qx4lmz5yh";
+ version = "4.1.0";
+ sha256 = "03aaizfpjvbf367mprni2ixlyfvz7ic8cn1cfmjk1n3f3q63qbqh";
})
(fetchNuGet {
name = "Nethereum.RLP";
- version = "3.8.0";
- sha256 = "16142ag09h95394ip0ffkci09hchxh2i5xaw2rq46qcr8xd3kiym";
+ version = "4.1.0";
+ sha256 = "19ixlvv91s0xhn3bvwn0yydd5932vcylin037dv4wzgbk2v0vdpm";
})
(fetchNuGet {
name = "Nethereum.RPC";
- version = "3.8.0";
- sha256 = "1m2p10dds1k0r3gci25lh6cxl9z7ciw18g6wwa4yqi1hsw7n59vb";
+ version = "4.1.0";
+ sha256 = "0ivvic38wpay9ry1hp4n88bgglnxcd8id7p5h235ilviq2gxgmmb";
})
(fetchNuGet {
name = "Nethereum.Signer";
- version = "3.8.0";
- sha256 = "175acfqjqacc5zwh2kmrfnwd15jm3fjpv0xlgpyqry52mqxd9khf";
+ version = "4.1.0";
+ sha256 = "1lgyb80l7xwhp4jbfbba0d47p7nxhx0lac08k23nzwnqmg95y4n6";
})
(fetchNuGet {
name = "Nethereum.StandardTokenEIP20";
- version = "3.8.0";
- sha256 = "0xqb32x5b9y9r380frhj52i1lxsfs92nfgcpmys3shjxz6fnwf6g";
+ version = "4.1.0";
+ sha256 = "1i08kpa6knrm3jbhxgfaa2ing5w42j3jsdx72hl6a9xcjdkjr405";
})
(fetchNuGet {
name = "Nethereum.Util";
- version = "3.8.0";
- sha256 = "1ig1zkzpglq2q465n4c0ckv8w9gca9cfxz1qnrdhap0f1z90jyg8";
+ version = "4.1.0";
+ sha256 = "1fp7ii6ic13d1s8n6l63f1kyb03s04fghhfm7sshvk6bhjlynfqw";
})
(fetchNuGet {
name = "Nethereum.Web3";
- version = "3.8.0";
- sha256 = "0n18chc9h1cxqp01kncik9lqfgiqrzl2zr8jgzbb05drlf6k0f3i";
+ version = "4.1.0";
+ sha256 = "1b8myc9wr44vf7kcl9rmhc8zimpfda3mmizhiq1x287xs44nam0b";
})
(fetchNuGet {
name = "NETStandard.Library";
version = "1.6.1";
sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
})
+ (fetchNuGet {
+ name = "NETStandard.Library";
+ version = "2.0.3";
+ sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+ })
(fetchNuGet {
name = "Newtonsoft.Json.Bson";
version = "1.0.1";
@@ -886,8 +901,8 @@
})
(fetchNuGet {
name = "Newtonsoft.Json.Schema";
- version = "3.0.13";
- sha256 = "04vzjz5fb588rh6ji5a0svfzjsdcfpr1qrz9hxpc64z5zhnh6sf4";
+ version = "3.0.14";
+ sha256 = "1njk1arrf8pbx0i0p3yww459i70p0fcx02vs0jnbb6znvcy4mvh6";
})
(fetchNuGet {
name = "Newtonsoft.Json";
@@ -901,13 +916,13 @@
})
(fetchNuGet {
name = "Newtonsoft.Json";
- version = "12.0.2";
- sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+ version = "12.0.3";
+ sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
})
(fetchNuGet {
name = "Newtonsoft.Json";
- version = "12.0.3";
- sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+ version = "13.0.1";
+ sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb";
})
(fetchNuGet {
name = "Newtonsoft.Json";
@@ -941,13 +956,13 @@
})
(fetchNuGet {
name = "Npgsql.EntityFrameworkCore.PostgreSQL";
- version = "3.1.4";
- sha256 = "1ng9pbamh93g0fbnjq8ygaf40d6rs0fy4s08bjmxpa69k3s8c7a4";
+ version = "3.1.18";
+ sha256 = "0yjrp87m0kj8bzybszxnj7n1h21zag3rqpva74xzvm78gz1asc04";
})
(fetchNuGet {
name = "Npgsql";
- version = "4.1.3.1";
- sha256 = "0qk3hb8s521c2gy4k3m1i6fhpr133mnw9w85cwsy9j7ghxyca1nv";
+ version = "4.1.9";
+ sha256 = "1b9qp3cjwydd4g1yy8nxxr0b0nwdbijmcmzjpkb9r13ndgdrd8nq";
})
(fetchNuGet {
name = "NSec.Cryptography";
@@ -981,8 +996,8 @@
})
(fetchNuGet {
name = "Pomelo.EntityFrameworkCore.MySql";
- version = "3.1.1";
- sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
+ version = "3.2.7";
+ sha256 = "018za1ax17ibxld9rk2nc29716qpn2afh1prfrdjchf5cp56ba2p";
})
(fetchNuGet {
name = "Pomelo.JsonObject";
@@ -1101,8 +1116,8 @@
})
(fetchNuGet {
name = "Selenium.WebDriver.ChromeDriver";
- version = "90.0.4430.2400";
- sha256 = "18gjm92nzzvxf0hk7c0nnabs0vmh6yyzq3m4si7p21m6xa3bqiga";
+ version = "94.0.4606.6100";
+ sha256 = "04kn91qcgsx92yhcqlhpm1yy3m34m371k70szf8h93gcwfs42b9c";
})
(fetchNuGet {
name = "Selenium.WebDriver";
@@ -1219,6 +1234,11 @@
version = "1.7.1";
sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
})
+ (fetchNuGet {
+ name = "System.Collections.Immutable";
+ version = "5.0.0";
+ sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
+ })
(fetchNuGet {
name = "System.Collections.NonGeneric";
version = "4.3.0";
@@ -1391,8 +1411,8 @@
})
(fetchNuGet {
name = "System.IO.Pipelines";
- version = "4.7.2";
- sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
+ version = "4.7.4";
+ sha256 = "09gv2nz35vmmcjrfj1ppxx32v772i0mb369v7lwqr8mz14zhh86r";
})
(fetchNuGet {
name = "System.IO";
@@ -1554,6 +1574,11 @@
version = "1.6.0";
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
})
+ (fetchNuGet {
+ name = "System.Reflection.Metadata";
+ version = "5.0.0";
+ sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss";
+ })
(fetchNuGet {
name = "System.Reflection.Primitives";
version = "4.0.1";
@@ -1629,6 +1654,11 @@
version = "4.7.0";
sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
})
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "5.0.0";
+ sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x";
+ })
(fetchNuGet {
name = "System.Runtime.Extensions";
version = "4.1.0";
@@ -1845,15 +1875,20 @@
sha256 = "05qp3yivh6gz0vva0v3wjlj3g1b45d5jmz362f2y8ah6yb3rx088";
})
(fetchNuGet {
- name = "System.Text.Json";
- version = "4.7.0";
- sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr";
+ name = "System.Text.Encodings.Web";
+ version = "5.0.0";
+ sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1";
})
(fetchNuGet {
name = "System.Text.Json";
version = "4.7.2";
sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4";
})
+ (fetchNuGet {
+ name = "System.Text.Json";
+ version = "5.0.0";
+ sha256 = "1gpgl18z6qrgmqrikgh99xkjwzb1didrjp77bch7nrlra21gr4ks";
+ })
(fetchNuGet {
name = "System.Text.RegularExpressions";
version = "4.1.0";
@@ -1884,6 +1919,11 @@
version = "4.5.3";
sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
})
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.5.4";
+ sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
+ })
(fetchNuGet {
name = "System.Threading.Tasks";
version = "4.0.11";
diff --git a/pkgs/applications/blockchains/chia-plotter/default.nix b/pkgs/applications/blockchains/chia-plotter/default.nix
index 39f2e3cb0edc..b576cd2373ce 100644
--- a/pkgs/applications/blockchains/chia-plotter/default.nix
+++ b/pkgs/applications/blockchains/chia-plotter/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "chia-plotter";
- version = "unstable-2021-07-12";
+ version = "1.1.7";
src = fetchFromGitHub {
owner = "madMAx43v3r";
repo = "chia-plotter";
- rev = "974d6e5f1440f68c48492122ca33828a98864dfc";
- sha256 = "0dliswvqmi3wq9w8jp0sb0z74n5k37608sig6r60z206g2bwhjja";
+ rev = "18cad340858f0dbcc8dafd0bda1ce1af0fe58c65";
+ sha256 = "sha256-lXjeqcjn3+LtnVYngdM1T3on7V7wez4oOAZ0RpKJXMM=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/blockchains/chia/default.nix b/pkgs/applications/blockchains/chia/default.nix
index 68da5a6cd4e3..a62d7f95d606 100644
--- a/pkgs/applications/blockchains/chia/default.nix
+++ b/pkgs/applications/blockchains/chia/default.nix
@@ -1,36 +1,26 @@
{ lib
, cacert
, fetchFromGitHub
-, fetchpatch
, python3Packages
}:
let chia = python3Packages.buildPythonApplication rec {
pname = "chia";
- version = "1.2.7";
+ version = "1.2.10";
src = fetchFromGitHub {
owner = "Chia-Network";
repo = "chia-blockchain";
rev = version;
fetchSubmodules = true;
- sha256 = "sha256-yjpBB51EgaJvFdfhC1AG5N7H5u6aJwD1UqJqIv22QpQ=";
+ sha256 = "sha256-TzSBGjgaE0IWaqJcCIoO/u+gDh17NtAqhE8ldbbjNIE=";
};
- patches = [
- # Allow later websockets release, https://github.com/Chia-Network/chia-blockchain/pull/6304
- (fetchpatch {
- name = "later-websockets.patch";
- url = "https://github.com/Chia-Network/chia-blockchain/commit/a188f161bf15a30e8e2efc5eec824e53e2a98a5b.patch";
- sha256 = "1s5qjhd4kmi28z6ni7pc5n09czxvh8qnbwmnqsmms7cpw700g78s";
- })
- ];
-
postPatch = ''
substituteInPlace setup.py \
--replace "==" ">="
- ln -sf ${cacert}/etc/ssl/certs/ca-bundle.crt mozilla-ca/cacert.pem
+ cp ${cacert}/etc/ssl/certs/ca-bundle.crt mozilla-ca/cacert.pem
'';
nativeBuildInputs = [
diff --git a/pkgs/applications/blockchains/clightning/default.nix b/pkgs/applications/blockchains/clightning/default.nix
index 0cec96b7a6ee..04f3c1fcbc84 100644
--- a/pkgs/applications/blockchains/clightning/default.nix
+++ b/pkgs/applications/blockchains/clightning/default.nix
@@ -16,15 +16,15 @@
, zlib
}:
let
- py3 = python3.withPackages (p: [ p.Mako ]);
+ py3 = python3.withPackages (p: [ p.Mako p.mrkd ]);
in
stdenv.mkDerivation rec {
pname = "clightning";
- version = "0.10.1";
+ version = "0.10.2";
src = fetchurl {
url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
- sha256 = "9271e9e89d60332b66afedbf8d6eab2a4a488782ab400ee1f60667d73c5a9a96";
+ sha256 = "3c9dcb686217b2efe0e988e90b95777c4591e3335e259e01a94af87e0bf01809";
};
nativeBuildInputs = [ autogen autoconf automake gettext libtool pkg-config py3 unzip which ];
diff --git a/pkgs/applications/blockchains/dogecoin/default.nix b/pkgs/applications/blockchains/dogecoin/default.nix
index 9985113b08a8..16ac7a787fb7 100644
--- a/pkgs/applications/blockchains/dogecoin/default.nix
+++ b/pkgs/applications/blockchains/dogecoin/default.nix
@@ -7,13 +7,13 @@
with lib;
stdenv.mkDerivation rec {
name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
- version = "1.14.3";
+ version = "1.14.4";
src = fetchFromGitHub {
owner = "dogecoin";
repo = "dogecoin";
rev = "v${version}";
- sha256 = "sha256-kozUnIislQDtgjeesYHKu4sB1j9juqaWvyax+Lb/0pc=";
+ sha256 = "sha256-uITX5DSyC/m0ynwCkkbGgUj8kMuNgnsNo8H8RQSGPEA=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/blockchains/eclair/default.nix b/pkgs/applications/blockchains/eclair/default.nix
index 7b74512a388a..dcddef619312 100644
--- a/pkgs/applications/blockchains/eclair/default.nix
+++ b/pkgs/applications/blockchains/eclair/default.nix
@@ -7,12 +7,12 @@
stdenv.mkDerivation rec {
pname = "eclair";
- version = "0.6.1";
- revision = "d3ae323";
+ version = "0.6.2";
+ revision = "6817d6f";
src = fetchzip {
url = "https://github.com/ACINQ/eclair/releases/download/v${version}/eclair-node-${version}-${revision}-bin.zip";
- sha256 = "0hmdssj6pxhvadrgr1svb2lh7hfbd2axr5wsl7glizv1a21g0l2c";
+ sha256 = "038r9mblm2r8mkxnv65k29r7xj22dff5gmvzv9xiy5zf9i45mmk8";
};
propagatedBuildInputs = [ jq openjdk11 ];
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/ACINQ/eclair";
license = licenses.asl20;
maintainers = with maintainers; [ prusnak ];
- platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix
index 527d368bf825..84b2a2f736a1 100644
--- a/pkgs/applications/blockchains/electrs/default.nix
+++ b/pkgs/applications/blockchains/electrs/default.nix
@@ -1,25 +1,37 @@
{ lib
+, stdenv
, rustPlatform
, fetchFromGitHub
, llvmPackages
+, rocksdb
+, Security
}:
rustPlatform.buildRustPackage rec {
pname = "electrs";
- version = "0.8.11";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "romanz";
repo = pname;
rev = "v${version}";
- sha256 = "024sdyvrx7s4inldamq4c8lv0iijjyd18j1mm9x6xf2clmvicaa6";
+ hash = "sha256-dYKSc5fU66fu+GdTeWQBrIOJAiBGdYAOS7MCto98Xss=";
};
+ cargoHash = "sha256-M4H5tUbo1f18kk8S53saebSnZhZFr8udw41BUNJbQVI==";
+
# needed for librocksdb-sys
nativeBuildInputs = [ llvmPackages.clang ];
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
- cargoSha256 = "0yl50ryxidbs9wkabz919mgbmsgsqjp1bjw792l1lkgncq8z9r5b";
+ # temporarily disable dynamic linking, which broke with rocksdb update 6.23.3 -> 6.25.3
+ # https://github.com/NixOS/nixpkgs/pull/143524#issuecomment-955053331
+ #
+ # link rocksdb dynamically
+ # ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
+ # ROCKSDB_LIB_DIR = "${rocksdb}/lib";
+
+ buildInputs = lib.optionals stdenv.isDarwin [ Security ];
meta = with lib; {
description = "An efficient re-implementation of Electrum Server in Rust";
diff --git a/pkgs/applications/blockchains/electrs/update.sh b/pkgs/applications/blockchains/electrs/update.sh
new file mode 100755
index 000000000000..14105d71a448
--- /dev/null
+++ b/pkgs/applications/blockchains/electrs/update.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils curl jq git gnupg common-updater-scripts
+set -euo pipefail
+
+# Fetch latest release, GPG-verify the tag, update derivation
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+nixpkgs=$(realpath "$scriptDir"/../../../..)
+
+oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).electrs.version" | tr -d '"')
+version=$(curl -s --show-error "https://api.github.com/repos/romanz/electrs/releases/latest" | jq -r '.tag_name' | tail -c +2)
+
+if [[ $version == $oldVersion ]]; then
+ echo "Already at latest version $version"
+ exit 0
+fi
+echo "New version: $version"
+
+tmpdir=$(mktemp -d /tmp/electrs-verify-gpg.XXX)
+repo=$tmpdir/repo
+trap "rm -rf $tmpdir" EXIT
+
+git clone --depth 1 --branch v${version} -c advice.detachedHead=false https://github.com/romanz/electrs $repo
+git -C $repo checkout tags/v${version}
+
+export GNUPGHOME=$tmpdir
+echo
+echo "Fetching romanz's key"
+gpg --keyserver hkps://keys.openpgp.org --recv-keys 15c8c3574ae4f1e25f3f35c587cae5fa46917cbb 2> /dev/null
+echo
+echo "Verifying commit"
+git -C $repo verify-tag v${version}
+
+rm -rf $repo/.git
+hash=$(nix hash path $repo)
+
+(cd "$nixpkgs" && update-source-version electrs "$version" "$hash")
+sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "$scriptDir/default.nix"
+echo
+echo "electrs: $oldVersion -> $version"
diff --git a/pkgs/applications/blockchains/elements/default.nix b/pkgs/applications/blockchains/elements/default.nix
index c44f2078dae3..63914af6f3c2 100644
--- a/pkgs/applications/blockchains/elements/default.nix
+++ b/pkgs/applications/blockchains/elements/default.nix
@@ -17,7 +17,6 @@
, qtbase ? null
, qttools ? null
, python3
-, openssl
, withGui
, withWallet ? true
}:
@@ -25,11 +24,11 @@
with lib;
stdenv.mkDerivation rec {
pname = if withGui then "elements" else "elementsd";
- version = "0.18.1.12";
+ version = "0.21.0";
src = fetchurl {
url = "https://github.com/ElementsProject/elements/archive/elements-${version}.tar.gz";
- sha256 = "84a51013596b09c62913649ac90373622185f779446ee7e65b4b258a2876609f";
+ sha256 = "0d9mcb0nw9qqhv0jhpddi9i4iry3w7b5jifsl5kpcw82qrkvgfgj";
};
nativeBuildInputs =
@@ -38,7 +37,7 @@ stdenv.mkDerivation rec {
++ optionals stdenv.isDarwin [ hexdump ]
++ optionals withGui [ wrapQtAppsHook ];
- buildInputs = [ boost libevent miniupnpc zeromq zlib openssl ]
+ buildInputs = [ boost libevent miniupnpc zeromq zlib ]
++ optionals withWallet [ db48 sqlite ]
++ optionals withGui [ qrencode qtbase qttools ];
@@ -79,8 +78,5 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ prusnak ];
license = licenses.mit;
platforms = platforms.unix;
- # Qt GUI is currently broken in upstream
- # No rule to make target 'qt/res/rendered_icons/about.png', needed by 'qt/qrc_bitcoin.cpp'.
- broken = withGui;
};
}
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index a0e648218f50..422ad8210de6 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "ergo";
- version = "4.0.13";
+ version = "4.0.15";
src = fetchurl {
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
- sha256 = "sha256-HNpyUD2Tep2XnY3lr5a3ec+NmJtt0VvJx6ujVvSugXo=";
+ sha256 = "sha256-4omuu/9EeywWDkk//4TTal/1siCe/4YMmEsIefBxsuY=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/erigon.nix b/pkgs/applications/blockchains/erigon.nix
index 241a9b3f870e..3258aec6c30c 100644
--- a/pkgs/applications/blockchains/erigon.nix
+++ b/pkgs/applications/blockchains/erigon.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "erigon";
- version = "2021.09.02";
+ version = "2021.09.04";
src = fetchFromGitHub {
owner = "ledgerwatch";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-0rWyDlZjfsZMOqAXs+mgmgz0m4oIN6bZ6Z9U4jWgR0E=";
+ sha256 = "0l0w1badhvlh1rgqzvlmy5k7xhb1nf4f5dmhkl935a5ila08aak3";
};
- vendorSha256 = "sha256-ardr+6Tz9IzSJPo9/kk7XV+2pIu6ZK3YYlp1zC/7Bno=";
+ vendorSha256 = "1hbfmq76zm50zwmlh3jblriwq2k1mp99d8lg8xzxwy56hncgfj8k";
runVend = true;
# Build errors in mdbx when format hardening is enabled:
diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix
index 149b20d0dd21..39d13189e8e6 100644
--- a/pkgs/applications/blockchains/exodus/default.nix
+++ b/pkgs/applications/blockchains/exodus/default.nix
@@ -4,11 +4,11 @@ cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core, libxkbcommon, mesa }:
stdenv.mkDerivation rec {
pname = "exodus";
- version = "21.8.19";
+ version = "21.10.25";
src = fetchurl {
url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
- sha256 = "1ssacadx5hdxq0cljb869ds3d11i4fyy3qd5hzh8wk5mlpdnba6k";
+ sha256 = "a85ddda4e73dfadddbb77cf9bc84c30fc6b893ead46367d702976bbf4da5afa4";
};
sourceRoot = ".";
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 4b3ba00fb960..636d377ebe48 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -1,21 +1,34 @@
-{ lib, fetchurl, appimageTools, imagemagick }:
+{ lib, fetchurl, appimageTools, imagemagick, systemd }:
let
pname = "ledger-live-desktop";
- version = "2.32.2";
+ version = "2.34.4";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
- sha256 = "14agkl6xf0f9s5qldla6p6kzl8zlx61q5m8qy63lq215hrzh9d50";
+ sha256 = "00zl7ywmkbhwzkj7p618rin5pd0ix8cas5q1b8ka6ynw4wlg3w5c";
};
appimageContents = appimageTools.extractType2 {
inherit name src;
};
-in appimageTools.wrapType2 rec {
+
+ # Hotplug events from udevd are fired into the kernel, which then re-broadcasts them over a
+ # special socket, to every libudev client listening for hotplug when the kernel does that. It will
+ # try to preserve the uid of the sender but a non-root namespace (like the fhs-env) cant map root
+ # to a uid, for security reasons, so the uid of the sender becomes nobody and libudev actively
+ # rejects such messages. This patch disables that bit of security in libudev.
+ # See: https://github.com/NixOS/nixpkgs/issues/116361
+ systemdPatched = systemd.overrideAttrs ({ patches ? [ ], ... }: {
+ patches = patches ++ [ ./systemd.patch ];
+ });
+in
+appimageTools.wrapType2 rec {
inherit name src;
+ extraPkgs = pkgs: [ systemdPatched ];
+
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/systemd.patch b/pkgs/applications/blockchains/ledger-live-desktop/systemd.patch
new file mode 100644
index 000000000000..a70053d71180
--- /dev/null
+++ b/pkgs/applications/blockchains/ledger-live-desktop/systemd.patch
@@ -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 */
diff --git a/pkgs/applications/blockchains/lightning-pool/default.nix b/pkgs/applications/blockchains/lightning-pool/default.nix
index 978509cc2379..f33ede49398a 100644
--- a/pkgs/applications/blockchains/lightning-pool/default.nix
+++ b/pkgs/applications/blockchains/lightning-pool/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "lightning-pool";
- version = "0.5.0-alpha";
+ version = "0.5.1-alpha";
src = fetchFromGitHub {
owner = "lightninglabs";
repo = "pool";
rev = "v${version}";
- sha256 = "0i8qkxnrx3a89aw3v0mx7przlldl8kc0ng6g1m435366y6nzdarb";
+ sha256 = "147s0p4arfxl2akzm267p8zfy6hgssym5rwxv78kp8i39mfinpkn";
};
- vendorSha256 = "04v2788w8l734n5xz6fwjbwkqlbk8q77nwncjpn7890mw75yd3rn";
+ vendorSha256 = "0zd3bwqi0hnk0562x9hd62cwjw1xj386m83jagg41kzz0cpcr7zl";
subPackages = [ "cmd/pool" "cmd/poold" ];
diff --git a/pkgs/applications/blockchains/lnd/default.nix b/pkgs/applications/blockchains/lnd/default.nix
index c956bca9a1a5..62dcac327f78 100644
--- a/pkgs/applications/blockchains/lnd/default.nix
+++ b/pkgs/applications/blockchains/lnd/default.nix
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "lnd";
- version = "0.13.1-beta";
+ version = "0.13.3-beta";
src = fetchFromGitHub {
owner = "lightningnetwork";
repo = "lnd";
rev = "v${version}";
- sha256 = "07cs9yq83laajmfwfv42xfkfai3q873wg4qg7bfzw18w5fllivkg";
+ sha256 = "05ai8nyrc8likq5n7i9klfi9550ki8sqklv8axjvi6ql8v9bzk61";
};
- vendorSha256 = "1hk67x8nlc0wm1pg8k8hywih623p4c0klfhfyy26b7mqq62lazia";
+ vendorSha256 = "0xf8395g6hifbqwbgapllx38y0759xp374sja7j1wk8sdj5ngql5";
subPackages = ["cmd/lncli" "cmd/lnd"];
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 54e9400e3d58..303cc6c54c5b 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -7,7 +7,7 @@
, qtmacextras
, monero, miniupnpc, unbound, readline
, boost, libunwind, libsodium, pcsclite
-, randomx, zeromq, libgcrypt, libgpgerror
+, randomx, zeromq, libgcrypt, libgpg-error
, hidapi, rapidjson, quirc
, trezorSupport ? true, libusb1, protobuf, python3
}:
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
qtmultimedia qtquickcontrols qtquickcontrols2
qtxmlpatterns
monero miniupnpc unbound readline
- randomx libgcrypt libgpgerror
+ randomx libgcrypt libgpg-error
boost libunwind libsodium pcsclite
zeromq hidapi rapidjson quirc
] ++ lib.optionals trezorSupport [ libusb1 protobuf python3 ]
diff --git a/pkgs/applications/blockchains/nbxplorer/default.nix b/pkgs/applications/blockchains/nbxplorer/default.nix
index a0f1cfe87ee7..01e1dfb8c427 100644
--- a/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -1,54 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
- dotnetPackages, dotnetCorePackages
-}:
+{ lib, buildDotnetModule, fetchFromGitHub, dotnetCorePackages }:
-let
- deps = import ./deps.nix {
- fetchNuGet = { name, version, sha256 }: fetchurl {
- name = "nuget-${name}-${version}.nupkg";
- url = "https://www.nuget.org/api/v2/package/${name}/${version}";
- inherit sha256;
- };
- };
- dotnetSdk = dotnetCorePackages.sdk_3_1;
-in
-
-stdenv.mkDerivation rec {
+buildDotnetModule rec {
pname = "nbxplorer";
- version = "2.2.5";
+ version = "2.2.16";
src = fetchFromGitHub {
owner = "dgarage";
repo = "NBXplorer";
rev = "v${version}";
- sha256 = "sha256-EWT/1fQpqEyKBEDHvmguHV/8s30DxweYswy0QvMDzcQ=";
+ sha256 = "sha256-6nq5oCEVADZbzQJaEizzt6Lag11bZYLKGMTl2snZob8=";
};
- nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
+ projectFile = "NBXplorer/NBXplorer.csproj";
+ nugetDeps = ./deps.nix;
- buildPhase = ''
- export HOME=$TMP/home
- export DOTNET_CLI_TELEMETRY_OPTOUT=1
- export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+ dotnet-sdk = dotnetCorePackages.sdk_3_1;
+ dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
- nuget sources Add -Name tmpsrc -Source $TMP/nuget
- nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
-
- dotnet restore --source $TMP/nuget NBXplorer/NBXplorer.csproj
- dotnet publish --no-restore --output $out/share/$pname -c Release NBXplorer/NBXplorer.csproj
+ postInstall = ''
+ mv $out/bin/{NBXplorer,nbxplorer}
'';
- installPhase = ''
- makeWrapper $out/share/$pname/NBXplorer $out/bin/$pname \
- --set DOTNET_ROOT "${dotnetSdk}"
- '';
-
- dontStrip = true;
-
meta = with lib; {
description = "Minimalist UTXO tracker for HD Cryptocurrency Wallets";
maintainers = with maintainers; [ kcalvinalvin earvstedt ];
- license = lib.licenses.mit;
- platforms = lib.platforms.linux;
+ license = licenses.mit;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/blockchains/nbxplorer/deps.nix b/pkgs/applications/blockchains/nbxplorer/deps.nix
index fe34d99f1d89..c9cc80016b78 100644
--- a/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -1,28 +1,28 @@
{ fetchNuGet }: [
(fetchNuGet {
name = "DBTrie";
- version = "1.0.38";
- sha256 = "09n9f2j0pha2np9cpbgjfs19jwvfmrglws89izarq71gl8jia6d9";
+ version = "1.0.39";
+ sha256 = "0kbvl3kf73hrh1w2n3d2wshlxpqsv1pwydhwv2wxigmvs70fn1xp";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.JsonPatch";
- version = "3.1.5";
- sha256 = "0agcp9c8zf59bliybjfg5whby7k1i1xc4sccyyyj3qcx1snf6lfx";
+ version = "3.1.19";
+ sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
- version = "3.1.5";
- sha256 = "1n76xr3jn4bcxm9f3lk8k76zn39mhyqcj5b0dqhi2xykyvvrqjgc";
+ version = "3.1.19";
+ sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
})
(fetchNuGet {
name = "Microsoft.Azure.Amqp";
- version = "2.4.2";
- sha256 = "0pfgl6fnw3apwasfg1dp5pvi5h0z0vmznhn2bfsgwndn1xlfw1g9";
+ version = "2.4.9";
+ sha256 = "15kvklhfl17713kwin8p71lcxq2jx87bk1d8gsl597z3w6l4cqma";
})
(fetchNuGet {
name = "Microsoft.Azure.ServiceBus";
- version = "4.1.3";
- sha256 = "1mj21nal3hv8b5678rah808521c5rkb0yh6hrlqirsdgxwnl6z6g";
+ version = "4.2.1";
+ sha256 = "0akxqds078p7djd5g95i9dh4wrlfarabkq2ybn614cqdgl4z0is5";
})
(fetchNuGet {
name = "Microsoft.Azure.Services.AppAuthentication";
@@ -31,8 +31,8 @@
})
(fetchNuGet {
name = "Microsoft.CodeCoverage";
- version = "16.7.1";
- sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
+ version = "16.11.0";
+ sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
})
(fetchNuGet {
name = "Microsoft.CSharp";
@@ -126,8 +126,8 @@
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
- version = "16.7.1";
- sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
+ version = "16.11.0";
+ sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
})
(fetchNuGet {
name = "Microsoft.NETCore.Platforms";
@@ -156,13 +156,13 @@
})
(fetchNuGet {
name = "Microsoft.TestPlatform.ObjectModel";
- version = "16.7.1";
- sha256 = "0s9dyh99gzdpk1i5v468i2r9m6i3jrr41r394pwdwiajsz99kay0";
+ version = "16.11.0";
+ sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
})
(fetchNuGet {
name = "Microsoft.TestPlatform.TestHost";
- version = "16.7.1";
- sha256 = "1xik06rxn9ps83in0zn9vcl2ibv3acmdqvrx07qq89lxj1sgqlhs";
+ version = "16.11.0";
+ sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
})
(fetchNuGet {
name = "Microsoft.Win32.Primitives";
@@ -181,23 +181,18 @@
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
- version = "3.0.4";
- sha256 = "03aia31sznw81jjr9k6dkwgvm9dc38fgp1z8y5i45vlkf5fp89pb";
+ version = "3.0.8";
+ sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
})
(fetchNuGet {
name = "NBitcoin.TestFramework";
- version = "3.0.3";
- sha256 = "1j3ajj4jrwqzlhzhkg7vicwab0aq2y50x53rindd8cq09jxvzk62";
+ version = "3.0.6";
+ sha256 = "0yw382238rjv0qmhz1xlb5v696s8sxbjf839c2ck6dqd947q403w";
})
(fetchNuGet {
name = "NBitcoin";
- version = "6.0.6";
- sha256 = "1kf2rjrnh97zlh00affsv95f94bwgr2h7b00njqac4qgv9cac7sa";
- })
- (fetchNuGet {
- name = "NBitcoin";
- version = "6.0.8";
- sha256 = "1f90zyrd35fzx0vgvd83jhd6hczd4037h2k198xiyxj04l4m3wm5";
+ version = "6.0.15";
+ sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
})
(fetchNuGet {
name = "NETStandard.Library";
@@ -704,6 +699,11 @@
version = "4.3.0";
sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
})
+ (fetchNuGet {
+ name = "System.Reflection.Metadata";
+ version = "1.6.0";
+ sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+ })
(fetchNuGet {
name = "System.Reflection.Primitives";
version = "4.0.1";
diff --git a/pkgs/applications/blockchains/parity-ui/env.nix b/pkgs/applications/blockchains/parity-ui/env.nix
index 8b7d706c013a..5f485ed78a92 100644
--- a/pkgs/applications/blockchains/parity-ui/env.nix
+++ b/pkgs/applications/blockchains/parity-ui/env.nix
@@ -1,11 +1,11 @@
{ stdenv, lib, zlib, glib, alsa-lib, dbus, gtk2, atk, pango, freetype, fontconfig
-, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
+, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpg-error, nspr
, nss, xorg, libcap, systemd, libnotify, libsecret, gnome2 }:
let
packages = [
stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3
- fontconfig gdk-pixbuf cairo cups expat libgpgerror alsa-lib nspr nss
+ fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr nss
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
diff --git a/pkgs/applications/blockchains/particl-core/default.nix b/pkgs/applications/blockchains/particl-core/default.nix
index db2a72f3e552..d5838a4f4f28 100644
--- a/pkgs/applications/blockchains/particl-core/default.nix
+++ b/pkgs/applications/blockchains/particl-core/default.nix
@@ -17,11 +17,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "particl-core";
- version = "0.19.2.13";
+ version = "0.19.2.14";
src = fetchurl {
url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
- sha256 = "sha256-eXlTfSjxOGZi/0/b7myqILJZYNcbK+QqQmq+PVkh1e8=";
+ sha256 = "sha256-UMU3384r4RGVl0/7OPwdDva09vhQr+9Lqb1oD/PTva8=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 656c5974bead..9b88861d0ea6 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "polkadot";
- version = "0.9.9-1";
+ version = "0.9.12-1";
src = fetchFromGitHub {
owner = "paritytech";
repo = "polkadot";
rev = "v${version}";
- sha256 = "sha256-EmnrwBMHb9jpEZAG393yyMaFRRQJ6YYDRvsp+ATT7MY=";
+ sha256 = "sha256-+HATcxdIDQGDIQBF08yy/eKBcS10Hp7C0nZFVsYFNwQ=";
};
- cargoHash = "sha256-WzsaUrqe7F4x+ShqG14kq78MTSWIxIMRa3pdr3RXrwk=";
+ cargoSha256 = "sha256-1qg4ZnSORRVI7eCVMrR7lY3tzo7KJt+dC2RBXqbKrig=";
nativeBuildInputs = [ clang ];
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index 8d2da4c36650..10418c418f6d 100644
--- a/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -8,7 +8,7 @@
let
pname = "trezor-suite";
- version = "21.7.1";
+ version = "21.10.2";
name = "${pname}-${version}";
suffix = {
@@ -18,10 +18,9 @@ let
src = fetchurl {
url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
- # sha512 hashes are obtained from latest-linux-arm64.yml and latest-linux.yml
- sha512 = {
- aarch64-linux = "sha512-GEu1Zx3IQws8wsVsZUaIKvC0kTe8l/BBPSdu5q44tDpszmPugz8G/8FDAO/Ra50dzyiHhRheybZPuf2BBGGb7A==";
- x86_64-linux = "sha512-ghPbQa/MstzfUOWve1KNwB1t9dxK0+eYunBSoShWKpb85hgK69+ncTmhY8HejT28OkjFnGk6h4PWbrnQetj8MA==";
+ sha512 = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
+ aarch64-linux = "sha512-+qXN9cQk1u18ZzeMecPNfhkTTsw61iM/IJYksPJl9+zx2AKldv9tAFUnnmKZ65LabiaIXI+emN185SRRcaOndw==";
+ x86_64-linux = "sha512-WpiG8VOEODqsQ1/jERiEEGwVqR0zbMqERGjOysEVYorA0p3xZyl7OSpWOSWaUjPBZpQtJIBdqhSXeoSRcvfJgg==";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index 2fe128f1d294..0b90fc10bbc1 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -2,7 +2,7 @@
, fetchurl
, makeDesktopItem
, curl
-, dotnet-netcore
+, dotnetCorePackages
, fontconfig
, krb5
, openssl
@@ -11,9 +11,10 @@
}:
let
+ dotnet-runtime = dotnetCorePackages.runtime_5_0;
libPath = lib.makeLibraryPath [
curl
- dotnet-netcore
+ dotnet-runtime
fontconfig.lib
krb5
openssl
diff --git a/pkgs/applications/blockchains/whirlpool-gui/default.nix b/pkgs/applications/blockchains/whirlpool-gui/default.nix
index 62c7c3b3da47..d36715bd3066 100644
--- a/pkgs/applications/blockchains/whirlpool-gui/default.nix
+++ b/pkgs/applications/blockchains/whirlpool-gui/default.nix
@@ -96,7 +96,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Desktop GUI for Whirlpool by Samourai-Wallet";
- homepage = https://www.samouraiwallet.com/whirlpool;
+ homepage = "https://www.samouraiwallet.com/whirlpool";
license = licenses.unlicense;
maintainers = [ maintainers.offline ];
platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix
index 298b678a316b..5157ea3857e9 100644
--- a/pkgs/applications/blockchains/zcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/default.nix
@@ -1,24 +1,24 @@
{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
-, cargo, pkg-config, curl, coreutils, boost174, db62, hexdump, libsodium
+, cargo, pkg-config, curl, coreutils, boost175, db62, hexdump, libsodium
, libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
, withUtils ? true, withWallet ? true, withZmq ? true, zeromq
}:
rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
pname = "zcash";
- version = "4.4.1";
+ version = "4.5.1";
src = fetchFromGitHub {
owner = "zcash";
repo = "zcash";
rev = "v${version}";
- sha256 = "0nhrjizx518khrl8aygag6a1ianzzqpchasggi963f807kv7ipb7";
+ sha256 = "0kyk3hv1y13b3vwg9kjcrpvz9v3l8lp0ikj977nykd5ms8b1rifa";
};
- cargoSha256 = "101j8cn2lg3l1gn53yg3svzwx783z331g9kzn9ici4azindyx903";
+ cargoSha256 = "1mwprsg74xv6qlxf00w7xapnkisb1aid9hkyr8r90zcwdcy8783r";
nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
- buildInputs = [ boost174 libevent libsodium utf8cpp ]
+ buildInputs = [ boost175 libevent libsodium utf8cpp ]
++ lib.optional withWallet db62
++ lib.optional withZmq zeromq;
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
configureFlags = [
"--disable-tests"
- "--with-boost-libdir=${lib.getLib boost174}/lib"
+ "--with-boost-libdir=${lib.getLib boost175}/lib"
"CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
"RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
] ++ lib.optional (!withWallet) "--disable-wallet"
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index 029501c7787a..4676e770f1b8 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -19,6 +19,7 @@ in mkDerivation {
patches = [
./sddm-ignore-config-mtime.patch
+ ./sddm-default-session.patch
# Load `/etc/profile` for `environment.variables` with zsh default shell.
# See: https://github.com/sddm/sddm/pull/1382
(fetchpatch {
diff --git a/pkgs/applications/display-managers/sddm/sddm-default-session.patch b/pkgs/applications/display-managers/sddm/sddm-default-session.patch
new file mode 100644
index 000000000000..455ebbd41577
--- /dev/null
+++ b/pkgs/applications/display-managers/sddm/sddm-default-session.patch
@@ -0,0 +1,71 @@
+diff --git a/src/common/Configuration.h b/src/common/Configuration.h
+index cf44a62..7bb9c03 100644
+--- a/src/common/Configuration.h
++++ b/src/common/Configuration.h
+@@ -44,6 +44,7 @@ namespace SDDM {
+ "NOTE: Currently ignored if autologin is enabled."));
+ Entry(InputMethod, QString, QStringLiteral("qtvirtualkeyboard"), _S("Input method module"));
+ Entry(Namespaces, QStringList, QStringList(), _S("Comma-separated list of Linux namespaces for user session to enter"));
++ Entry(DefaultSession, QString, QString(), _S("System-wide default session"));
+ // Name Entries (but it's a regular class again)
+ Section(Theme,
+ Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path"));
+diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp
+index 1953c76..54fe2f2 100644
+--- a/src/greeter/SessionModel.cpp
++++ b/src/greeter/SessionModel.cpp
+@@ -43,6 +43,7 @@ namespace SDDM {
+ beginResetModel();
+ populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get());
+ populate(Session::X11Session, mainConfig.X11.SessionDir.get());
++ selectDefaultSession();
+ endResetModel();
+
+ // refresh everytime a file is changed, added or removed
+@@ -52,6 +53,7 @@ namespace SDDM {
+ d->sessions.clear();
+ populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get());
+ populate(Session::X11Session, mainConfig.X11.SessionDir.get());
++ selectDefaultSession();
+ endResetModel();
+ });
+ watcher->addPath(mainConfig.Wayland.SessionDir.get());
+@@ -149,11 +151,25 @@ namespace SDDM {
+ else
+ delete si;
+ }
++ }
++
++ void SessionModel::selectDefaultSession() {
++ d->lastIndex = 0;
++
+ // find out index of the last session
+ for (int i = 0; i < d->sessions.size(); ++i) {
+ if (d->sessions.at(i)->fileName() == stateConfig.Last.Session.get()) {
+ d->lastIndex = i;
+- break;
++ return;
++ }
++ }
++
++ // Otherwise, fallback to system-wide default session.
++ auto defaultSession = mainConfig.DefaultSession.get();
++ for (int i = 0; i < d->sessions.size(); ++i) {
++ if (QFileInfo(d->sessions.at(i)->fileName()).fileName() == defaultSession) {
++ d->lastIndex = i;
++ return;
+ }
+ }
+ }
+diff --git a/src/greeter/SessionModel.h b/src/greeter/SessionModel.h
+index 2e2efa9..a93315c 100644
+--- a/src/greeter/SessionModel.h
++++ b/src/greeter/SessionModel.h
+@@ -58,6 +58,7 @@ namespace SDDM {
+ SessionModelPrivate *d { nullptr };
+
+ void populate(Session::Type type, const QString &path);
++ void selectDefaultSession();
+ };
+ }
+
diff --git a/pkgs/applications/editors/aewan/default.nix b/pkgs/applications/editors/aewan/default.nix
index b9d350cbd438..8472a91c596f 100644
--- a/pkgs/applications/editors/aewan/default.nix
+++ b/pkgs/applications/editors/aewan/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, ncurses }:
+{ lib, stdenv, fetchurl, fetchpatch, zlib, ncurses }:
stdenv.mkDerivation rec {
pname = "aewan";
@@ -9,6 +9,17 @@ stdenv.mkDerivation rec {
sha256 = "5266dec5e185e530b792522821c97dfa5f9e3892d0dca5e881d0c30ceac21817";
};
+ patches = [
+ # Pull patch pending upstream inclusion:
+ # https://sourceforge.net/p/aewan/bugs/13/
+ (fetchpatch {
+ url = "https://sourceforge.net/p/aewan/bugs/13/attachment/aewan-cvs-ncurses-6.3.patch";
+ sha256 = "0pgpk1l3d6d5y37lvvavipwnmv9gmpfdy21jkz6baxhlkgf43r4p";
+ # patch is in CVS diff format, add 'a/' prefix
+ extraPrefix = "";
+ })
+ ];
+
buildInputs = [ zlib ncurses ];
meta = {
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 8062d26b2843..1393ae943028 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -214,9 +214,9 @@ in runCommand
# source-code itself).
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; rec {
- stable = [ meutraa ];
- beta = [ meutraa ];
- canary = [ meutraa ];
+ stable = [ meutraa fabianhjr ];
+ beta = [ meutraa fabianhjr ];
+ canary = [ meutraa fabianhjr ];
dev = canary;
}."${channel}";
};
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 0c9bd808b53c..600902f75b10 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -9,16 +9,16 @@ let
inherit buildFHSUserEnv;
};
stableVersion = {
- version = "2020.3.1.24"; # "Android Studio Arctic Fox (2020.3.1)"
- sha256Hash = "0k8jcq8vpjayvwm9wqcrjhnp7dly0h4bb8nxspck5zmi8q2ar67l";
+ version = "2020.3.1.25"; # "Android Studio Arctic Fox (2020.3.1)"
+ sha256Hash = "10gpwb130bzp6a9g958cjqcb2gsm0vdgm08nm5xy45xdh54nxjfg";
};
betaVersion = {
- version = "2020.3.1.21"; # "Android Studio Arctic Fox (2020.3.1) RC 1"
- sha256Hash = "04k7c328bl8ixi8bvp2mm33q2hmv40yc9p5dff5cghyycarwpd3f";
+ version = "2021.1.1.15"; # "Android Studio Bumblebee (2021.1.1) Beta 2"
+ sha256Hash = "sha256-J+Jw9F8pEE0SMWka//jADOiQ+GSOeRf5GBfp0RDtwqA=";
};
latestVersion = { # canary & dev
- version = "2021.1.1.11"; # "Android Studio Bumblebee (2021.1.1) Canary 11"
- sha256Hash = "0npvb7kr259799bs2bs2drvimmmwb0rdzswbkz8zgi5c2fwjcvvl";
+ version = "2021.2.1.3"; # "Android Studio Chipmunk (2021.2.1) Canary 3"
+ sha256Hash = "sha256-xIVdM28NDadvJklDIw71iJ7Z5GPVJ1ZDJ+t1y+bt8cE=";
};
in {
# Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/apostrophe/default.nix b/pkgs/applications/editors/apostrophe/default.nix
index df0be4ccfbea..e5cfeb964bd7 100644
--- a/pkgs/applications/editors/apostrophe/default.nix
+++ b/pkgs/applications/editors/apostrophe/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchFromGitLab, meson, ninja, cmake
+{ lib, stdenv, fetchFromGitLab, meson, ninja
, wrapGAppsHook, pkg-config, desktop-file-utils
, appstream-glib, pythonPackages, glib, gobject-introspection
, gtk3, webkitgtk, glib-networking, gnome, gspell, texlive
-, shared-mime-info, libhandy, fira
+, shared-mime-info, libhandy, fira, sassc
}:
let
@@ -13,18 +13,18 @@ let
in stdenv.mkDerivation rec {
pname = "apostrophe";
- version = "2.4";
+ version = "2.5";
src = fetchFromGitLab {
- owner = "somas";
+ owner = "World";
repo = pname;
domain = "gitlab.gnome.org";
rev = "v${version}";
- sha256 = "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz";
+ sha256 = "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp";
};
- nativeBuildInputs = [ meson ninja cmake pkg-config desktop-file-utils
- appstream-glib wrapGAppsHook ];
+ nativeBuildInputs = [ meson ninja pkg-config desktop-file-utils
+ appstream-glib wrapGAppsHook sassc ];
buildInputs = [ glib pythonEnv gobject-introspection gtk3
gnome.adwaita-icon-theme webkitgtk gspell texlive
@@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
'';
meta = with lib; {
- homepage = "https://gitlab.gnome.org/somas/apostrophe";
+ homepage = "https://gitlab.gnome.org/World/apostrophe";
description = "A distraction free Markdown editor for GNU/Linux";
license = licenses.gpl3;
platforms = platforms.linux;
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 03a46479871f..84704e71cea8 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -3,14 +3,14 @@
let
versions = {
atom = {
- version = "1.57.0";
- sha256 = "1jzxjvaljk8p3gzjvs5bn3d128x37pcgn6by7srhs9qclc5j2664";
+ version = "1.58.0";
+ sha256 = "sha256-QxDhr4gwlS9O/lk0nfqsw5sFiPckSTFL15XtRpQh0tU=";
};
atom-beta = {
- version = "1.58.0";
+ version = "1.59.0";
beta = 0;
- sha256 = "0amhilmpiwn2jfn0nrcrhzminqdp3xm5p3w3ldc3qk761pn3lbpd";
+ sha256 = "sha256-s1XHR2e4JPywdLiIcjTqMRILARDthHxBeTQOCIkhmXE=";
broken = true;
};
};
diff --git a/pkgs/applications/editors/atom/env.nix b/pkgs/applications/editors/atom/env.nix
index 253518b276b1..e59b03beba85 100644
--- a/pkgs/applications/editors/atom/env.nix
+++ b/pkgs/applications/editors/atom/env.nix
@@ -1,5 +1,5 @@
{ stdenv, lib, zlib, glib, alsa-lib, dbus, gtk3, atk, pango, freetype, fontconfig
-, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
+, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpg-error, nspr
, gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
, at-spi2-core, libdbusmenu, libdrm, mesa
}:
@@ -7,7 +7,7 @@
let
packages = [
stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype libgnome-keyring3
- fontconfig gdk-pixbuf cairo cups expat libgpgerror alsa-lib nspr gconf nss
+ fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr gconf nss
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 3a5436d4f32d..1919e6b6947d 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -1,24 +1,41 @@
-{ lib, stdenv, fetchurl, intltool, wrapGAppsHook, pkg-config , gtk, libxml2
-, enchant, gucharmap, python3, gnome
+{ lib
+, stdenv
+, fetchurl
+, intltool
+, wrapGAppsHook
+, pkg-config
+, gtk
+, libxml2
+, enchant
+, gucharmap
+, python3
+, gnome
}:
stdenv.mkDerivation rec {
- name = "bluefish-2.2.12";
+ pname = "bluefish";
+ version = "2.2.12";
src = fetchurl {
- url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
+ url = "mirror://sourceforge/bluefish/bluefish-${version}.tar.bz2";
sha256 = "0slyjx4b4l612505q02crk00pjg9d5wi8gm5gxvcs0f6l9dr1y8d";
};
nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
- buildInputs = [ gnome.adwaita-icon-theme gtk libxml2
- enchant gucharmap python3 ];
+ buildInputs = [
+ gnome.adwaita-icon-theme
+ gtk
+ libxml2
+ enchant
+ gucharmap
+ python3
+ ];
meta = with lib; {
description = "A powerful editor targeted towards programmers and webdevelopers";
homepage = "http://bluefish.openoffice.nl/";
license = licenses.gpl3Plus;
- maintainers = [maintainers.vbgl];
+ maintainers = with maintainers; [ vbgl ];
platforms = platforms.all;
};
}
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index ed60c07c8c81..f840218d850c 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -34,17 +34,17 @@ let
inherit (spec) owner rev sha256;
}
)
- (builtins.fromJSON (builtins.readFile ./deps.json));
+ (lib.importJSON ./deps.json);
in
stdenv.mkDerivation rec {
pname = "cudatext";
- version = "1.143.0";
+ version = "1.148.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
- sha256 = "sha256-j8J4OA4J43XIJKBMx8hQy7h1BcKfEhWvpgmpNmi/yrw=";
+ sha256 = "sha256-/wvtIPF/1HneW0zuT7+VCixemkw91MdU0S66bz2y48U=";
};
postPatch = ''
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index 83ffea320ae2..aaa63595ab1b 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -11,23 +11,23 @@
},
"ATFlatControls": {
"owner": "Alexey-T",
- "rev": "2021.08.28",
- "sha256": "sha256-nFRlSeU2ScPQrLXcd4dt8l9Ct7ceJyKMi97gtxz+S8I="
+ "rev": "2021.10.19",
+ "sha256": "sha256-NO1q4qDXZ0x0G6AtcRP9xnFDWuBzOvxq8G7I76LgaBw="
},
"ATSynEdit": {
"owner": "Alexey-T",
- "rev": "2021.09.03",
- "sha256": "sha256-2y1E+52MPkimmozo1Qwpg7Qyhjct3cs76nHlOf/Cs0M="
+ "rev": "2021.10.27",
+ "sha256": "sha256-7DlnO7IeCFLU1A+HJt4CFXoHWfhAr52tBvfPNHieXMM="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
- "rev": "2021.09.03",
- "sha256": "sha256-pZo+wKnqN2HfDjPeC/WqaE5sdNnpjRN2VKSP8p4Q6Ek="
+ "rev": "2021.09.14",
+ "sha256": "sha256-6eC75zAtWbM1XEI9OM3iqy/a8Vj1l5WU7HGJBpmoQsA="
},
"EControl": {
"owner": "Alexey-T",
- "rev": "2021.09.02",
- "sha256": "sha256-i8laXF9IIhVkGZ2rzv7RlZeMxUza5LAXlTOxDj9CzJo="
+ "rev": "2021.10.21",
+ "sha256": "sha256-RyRpHihmmr/EeVWk9CR0S3pvKy0FzqLZNGti33+4fkI="
},
"ATSynEdit_Ex": {
"owner": "Alexey-T",
@@ -36,8 +36,8 @@
},
"Python-for-Lazarus": {
"owner": "Alexey-T",
- "rev": "2021.07.27",
- "sha256": "sha256-izCyBNRLRCizSjR7v9RhcLrQ6+aQA4eejCHFUzJ0IpE="
+ "rev": "2021.10.27",
+ "sha256": "sha256-ikXdDUMJ9MxRejEVAhwUsXYVh0URVFHzEpnXuN5NGpA="
},
"Emmet-Pascal": {
"owner": "Alexey-T",
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index dc19191d769a..77cf5088a406 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -16,10 +16,10 @@ assert stdenv ? glibc;
let
platform_major = "4";
- platform_minor = "20";
+ platform_minor = "21";
year = "2021";
- month = "06";
- timestamp = "${year}${month}111600";
+ month = "09";
+ timestamp = "${year}${month}060500";
gtk = gtk3;
in rec {
@@ -37,7 +37,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "3ggqiwa1nfszdqzdzw1lzs1sdikkvh2fqq10bqjxsq7xdxkis4zix8g4jcjiwlsz5gz98s61gp0k4m5rqsj0krpklxs9ijwq76khc7z";
+ sha512 = "3xdj7b0mlhdys9q4l19kkf1hm0d67dwx55gzfmgv90nvswv0jhyvs42my4wrlrmkh6lz8m0z6dakadhl1bxf2fd8pdp5sm4bv0w0gwc";
};
};
@@ -49,7 +49,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "38cdhy6v8jmndanvl3bimfs3pnlnl3w066fqrljy2hwki58gqmxxmbld5mphbh9y5kz9b5kiqvhx06sf0l2ywbarxy9wfhynvzb2k17";
+ sha512 = "20xy4vzqlmg4sdvqimz2nc212vb45k5kwh40qagm13r6h3vfv3yrl8bznnappaf4msfa9xdaxns2kz0x94hw444zjmrnbf7614a48xi";
};
};
@@ -61,7 +61,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
- sha512 = "2chshmn09xdq42nix0jqryhac33xc5sg7nlp2vfmz5km6q4m6mc1k7pw10jmg86zzcvcsdl9k1wkrbcsj5y2gv4cg6rddzsbx9hw3s7";
+ sha512 = "29hab3ha3spk0048k3mf2x5m80hlh1l6nazsykx0xxrqy9vdkdibv6mq74dzf1n93h1bd5qh9axicnhs465kp7r1irdl04761c1wibi";
};
};
@@ -86,7 +86,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
- sha512 = "308sszkmp5lkva5hfb1qc5cy9b1wajas96xz5nwjl7dm2fn4saiwg3ifh71hzq59wf337hndlb2c2dp6yczsfp3mzfqmsi5a3z7dchr";
+ sha512 = "3ag7nfpnn1149gkva58x0037pbdb5wds0qpwv21lif7a6b1a1n7g2n056bn43a7fkxkkj38752gkz29nvqh5g8hqkg29lax8sjlm7sm";
};
};
@@ -98,7 +98,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "1wp3g85bsmv0mbpk76adsz1rzd3vbdn4y4ddv9z41bq96wi9npmybidckvwnrq57lbj8k5g8m0x0f1nhj2rv5bqbsnqjxjpknwa6is0";
+ sha512 = "27h5wjr4k0jhi256rk74kbjbm5h7xi4hbml89n1jhppq1yfyv2mf75zb32iaia2pxclx6hc0cd1hvq85fwvcshnq79fw8za687yvbhv";
};
};
@@ -110,7 +110,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "35v8kjpdlhbcxncqygx7c1kjqy1644c6rhrasg8gxnrhlc69zblf4nvgzf1894vd13qzpkzzxx0qll49933prnw98dqkrd0wxcx7f49";
+ sha512 = "03li2bkhkdybwp411xs8i3cp2hmrfg2xd7inbdsxh07y4b9806spi3q10vga97m7ngl6fl5n0mvgxwj8dbdvp133wn9mgrlajb1n4n8";
};
};
@@ -122,7 +122,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "1jj5h69d4814j1mq6fjd47vkswq7bshbh2flgzmn8ibs0ys67x0nd2lm2ksxmvnipj4j9rw3mh9fmw8m0dzpp41c6q8xxfa93c7pqyg";
+ sha512 = "38xwwvg59bdp0a6brmcvq0wlfikik0wnqq897abf5a8vyr0ci7xp5f4ii90x2l5sj5gmcc6jiwvi99c03cjbgivpalr741yka0p3pv5";
};
};
@@ -134,7 +134,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "19fr63bdifxqp6imgb4d7v5dnkn9i0n2wmr08xzb0ph425ib936jiw84c2nwnsfnljh0yfj1r3wd36y2nn52fsj6ginl8plc6pi5416";
+ sha512 = "30hhy83lmjldcwwbjpk5q9zjai5r3xyhlrddalgrw8mspknayncaa2l32gg327fw0a8qaakzgwkh68gj81pmk3dps5wzy881pf22dhc";
};
};
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 839b079ce7b7..337479b16bc6 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -248,12 +248,12 @@ rec {
cdt = buildEclipseUpdateSite rec {
name = "cdt-${version}";
# find current version at https://www.eclipse.org/cdt/downloads.php
- version = "10.3.2";
+ version = "10.4.1";
src = fetchzip {
stripRoot = false;
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip";
- sha256 = "0zrxgb8mkrzc1zm5225hzn8awj9yl5fd2dcr92692g0yg61nv4jd";
+ sha256 = "1l3v6dryaqifwrv2h4knwmpyf11qbyl04p7gcvgrx3hczc82a6p1";
};
meta = with lib; {
@@ -639,4 +639,99 @@ rec {
};
};
+ ivyde = buildEclipsePlugin rec {
+ name = "ivyde-${version}";
+ version = "2.2.0.final-201311091524-RELEASE";
+
+ srcFeature = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/features/org.apache.ivyde.feature_${version}.jar";
+ sha1 = "c8fb6c4aab32db13db0bd81c1a148032667fff31";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/plugins/org.apache.ivyde.eclipse_${version}.jar";
+ sha1 = "0c80c2e228a07f18efab1c56ea026448eda70c06";
+ };
+
+ meta = with lib; {
+ homepage = "https://ant.apache.org/ivy/ivyde/index.html";
+ description = "A plugin which integrates Apache Ivy's dependency management";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.r3dl3g ];
+ };
+ };
+
+ ivyderv = buildEclipsePlugin rec {
+ name = "ivyderv-${version}";
+ version = "2.2.0.final-201311091524-RELEASE";
+
+ srcFeature = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/features/org.apache.ivyde.eclipse.resolvevisualizer.feature_${version}.jar";
+ sha1 = "fb1941eaa2c0de54259de01b0da6d5a6b4a2cab1";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/plugins/org.apache.ivyde.eclipse.resolvevisualizer_${version}.jar";
+ sha1 = "225e0c8ccb010d622c159560638578c2fc51a67e";
+ };
+
+ meta = with lib; {
+ homepage = "https://ant.apache.org/ivy/ivyde/index.html";
+ description = "A graph viewer of the resolved dependencies.";
+ longDescription = ''
+ Apache IvyDE Resolve Visualizer is an optional dependency of Apache IvyDE since
+ it requires additional plugins to be installed (Zest).
+ '';
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.r3dl3g ];
+ };
+ };
+
+ ivy = buildEclipsePlugin rec {
+ name = "ivy-${version}";
+ version = "2.5.0.final_20191020104435";
+
+ srcFeature = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/features/org.apache.ivy.eclipse.ant.feature_${version}.jar";
+ sha256 = "de6134171a0edf569bb9b4c3a91639d469f196e86804d218adfdd60a5d7fa133";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/plugins/org.apache.ivy.eclipse.ant_${version}.jar";
+ sha256 = "9e8ea20480cf73d0f0f3fb032d263c7536b24fd2eef71beb7d62af4e065f9ab5";
+ };
+
+ meta = with lib; {
+ homepage = "https://ant.apache.org/ivy/index.html";
+ description = "A popular dependency manager focusing on flexibility and simplicity";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.r3dl3g ];
+ };
+ };
+
+ ivyant = buildEclipsePlugin rec {
+ name = "ivyant-${version}";
+ version = "2.5.0.final_20191020104435";
+
+ srcFeature = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/features/org.apache.ivy.eclipse.ant.feature_${version}.jar";
+ sha256 = "de6134171a0edf569bb9b4c3a91639d469f196e86804d218adfdd60a5d7fa133";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/plugins/org.apache.ivy.eclipse.ant_${version}.jar";
+ sha256 = "9e8ea20480cf73d0f0f3fb032d263c7536b24fd2eef71beb7d62af4e065f9ab5";
+ };
+
+ meta = with lib; {
+ homepage = "https://ant.apache.org/ivy/ivyde/index.html";
+ description = "Ant Tasks integrated into Eclipse's Ant runtime";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.r3dl3g ];
+ };
+ };
}
diff --git a/pkgs/applications/editors/elvis/default.nix b/pkgs/applications/editors/elvis/default.nix
index f63598a7c5e2..eb288ff8b2a8 100644
--- a/pkgs/applications/editors/elvis/default.nix
+++ b/pkgs/applications/editors/elvis/default.nix
@@ -1,19 +1,22 @@
{ fetchurl, fetchpatch, lib, stdenv, ncurses }:
-stdenv.mkDerivation {
- name = "elvis-2.2_0";
+stdenv.mkDerivation rec {
+ pname = "elvis";
+ version = "2.2_0";
src = fetchurl {
- url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-2.2_0.tar.gz";
+ url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-${version}.tar.gz";
sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
};
buildInputs = [ ncurses ];
- patches = [ (fetchpatch {
- url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch";
- sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc";
- }) ];
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch";
+ sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc";
+ })
+ ];
postPatch = ''
substituteInPlace configure \
diff --git a/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix b/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
index 935533b34ae9..0d9028e59fc9 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
@@ -7,13 +7,13 @@
trivialBuild rec {
pname = "apheleia";
- version = "0.0.0+unstable=2021-08-08";
+ version = "1.1.2+unstable=2021-10-03";
src = fetchFromGitHub {
owner = "raxod502";
repo = pname;
- rev = "8e022c67fea4248f831c678b31c19646cbcbbf6f";
- hash = "sha256-Put/BBQ7V423C18UIVfaM17T+TDWtAxRZi7WI8doPJw=";
+ rev = "8b9d576f2fda10d0c9051fc03c1eb1d9791e32fd";
+ hash = "sha256-QwGlCdHBll16mbfQxGw1EORZFUxYCZSt8ThYTTGjRpo=";
};
buildInputs = [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
index a12eee62fecd..f74402f5e6ef 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
@@ -5,23 +5,18 @@
trivialBuild {
pname = "bqn-mode";
- version = "0.0.0+unstable=-2021-09-15";
+ version = "0.pre+unstable=2021-10-26";
src = fetchFromGitHub {
- owner = "mlochbaum";
- repo = "BQN";
- rev = "fb6ec1d8b083cd2b335828ae22e978b1b13986fa";
- hash = "sha256-57ryT5gb7hToAJOiGjjgU87rmlswjPK9tV1iQzJ4C0Y=";
+ owner = "AndersonTorres";
+ repo = "bqn-mode";
+ rev = "89d6928d0653518c97bcb06ae156f8b1de1b8768";
+ sha256 = "0pnvfssglaqbjw6hw7vf7vffzjdbqscqhyl62vknml29yl7mjq05";
};
- postUnpack = ''
- sourceRoot="$sourceRoot/editors/emacs"
- '';
-
meta = with lib; {
- homepage = "https://mlochbaum.github.io/BQN/editors/index.html";
- description = "Emacs mode for BQN";
+ description = "Emacs mode for BQN programming language";
license = licenses.gpl3Only;
- maintainers = [ maintainers.sternenseemann ];
+ maintainers = with maintainers; [ sternenseemann AndersonTorres ];
};
}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix b/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
index 18dcef129cc2..31106654ae6c 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
@@ -1,10 +1,11 @@
{ lib, fetchurl, stdenv, emacs, python }:
stdenv.mkDerivation rec {
- name = "cedet-1.1";
+ pname = "cedet";
+ version = "1.1";
src = fetchurl {
- url = "mirror://sourceforge/cedet/${name}.tar.gz";
+ url = "mirror://sourceforge/cedet/cedet-${version}.tar.gz";
sha256 = "0p2bwlpwwa019axvgj09xkxbr53j0pq23d46s4la9jfhl47nbh22";
};
diff --git a/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix b/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
index feb6c0fa86ca..1ac8b2f70768 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
@@ -7,7 +7,7 @@
trivialBuild {
pname = "color-theme-solarized";
- version = "0.0.0+unstable=2017-10-24";
+ version = "0.pre+unstable=2017-10-24";
src = fetchFromGitHub {
owner = "sellout";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 753428f9cc82..d2b870bb82d6 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -365,6 +365,36 @@
license = lib.licenses.free;
};
}) {};
+ boxy = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "boxy";
+ ename = "boxy";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/boxy-1.0.4.tar";
+ sha256 = "0cwzjyj8yjg13b63va6pnj01m6kc5g3zx69c9w2ysl2wk24zn6dz";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/boxy.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ boxy-headings = callPackage ({ boxy, elpaBuild, emacs, fetchurl, lib, org }:
+ elpaBuild {
+ pname = "boxy-headings";
+ ename = "boxy-headings";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/boxy-headings-2.1.2.tar";
+ sha256 = "0jyfp41jw33kmi7832x5x0mgh5niqvb7dfc7q00kay5q9ixg83dq";
+ };
+ packageRequires = [ boxy emacs org ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/boxy-headings.html";
+ license = lib.licenses.free;
+ };
+ }) {};
brief = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "brief";
@@ -414,6 +444,21 @@
license = lib.licenses.free;
};
}) {};
+ capf-autosuggest = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "capf-autosuggest";
+ ename = "capf-autosuggest";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/capf-autosuggest-0.2.tar";
+ sha256 = "0a3bkf3c1gwv9m4rq9kvgw48y5av4arnymnm64yija55ygrnm88b";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/capf-autosuggest.html";
+ license = lib.licenses.free;
+ };
+ }) {};
caps-lock = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "caps-lock";
@@ -636,10 +681,10 @@
elpaBuild {
pname = "consult";
ename = "consult";
- version = "0.11";
+ version = "0.12";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/consult-0.11.tar";
- sha256 = "14zjhsfhq5g9257maivyzpj5qxi1kprcsdk1qalwybyylyb4q4kk";
+ url = "https://elpa.gnu.org/packages/consult-0.12.tar";
+ sha256 = "0xcr7jki9m30hppy24z74nrw7xv5nahm1yrjilcck32mxfkrc69x";
};
packageRequires = [ emacs ];
meta = {
@@ -666,10 +711,10 @@
elpaBuild {
pname = "corfu";
ename = "corfu";
- version = "0.11";
+ version = "0.13";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/corfu-0.11.tar";
- sha256 = "1sf7ll25ry7vwff4bvqgdh84zviqj6wifmqdb2z8hf12awz63icz";
+ url = "https://elpa.gnu.org/packages/corfu-0.13.tar";
+ sha256 = "0psvkxr7fjqq7gkqdzl0ma367zjlxgixk563vpv9hmwfwymddyyb";
};
packageRequires = [ emacs ];
meta = {
@@ -677,6 +722,21 @@
license = lib.licenses.free;
};
}) {};
+ coterm = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "coterm";
+ ename = "coterm";
+ version = "1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/coterm-1.2.tar";
+ sha256 = "0jl48bi4a4fkk7p2nj2bx0b658wrjw0cvab5ds6rid44irc8b1mn";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/coterm.html";
+ license = lib.licenses.free;
+ };
+ }) {};
counsel = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib, swiper }:
elpaBuild {
pname = "counsel";
@@ -711,10 +771,10 @@
elpaBuild {
pname = "crdt";
ename = "crdt";
- version = "0.1.4";
+ version = "0.2.7";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/crdt-0.1.4.tar";
- sha256 = "1qqfjvkajwhdhz0jhqixdn68l1rl02pn2fmxizzsv0as20v0ay0r";
+ url = "https://elpa.gnu.org/packages/crdt-0.2.7.tar";
+ sha256 = "0f6v937zbxj4kci07dv0a1h4q1ak0qabkjq2j258ydxyivvqyvsw";
};
packageRequires = [];
meta = {
@@ -756,10 +816,10 @@
elpaBuild {
pname = "csv-mode";
ename = "csv-mode";
- version = "1.15";
+ version = "1.16";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/csv-mode-1.15.tar";
- sha256 = "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx";
+ url = "https://elpa.gnu.org/packages/csv-mode-1.16.tar";
+ sha256 = "1i43b2p31xhrf97xbdi35y550ysp69fasa5gcrhg6iyxw176807p";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -831,10 +891,10 @@
elpaBuild {
pname = "debbugs";
ename = "debbugs";
- version = "0.28";
+ version = "0.29";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/debbugs-0.28.tar";
- sha256 = "1qks38hpg3drhxzw66n5yxfq0v6fj9ya7d9dc6x0xwfp6r2x0li0";
+ url = "https://elpa.gnu.org/packages/debbugs-0.29.tar";
+ sha256 = "1bn21d9dr9pb3vdak3v07x056xafym89kdpxavjf4avy6bry6s4d";
};
packageRequires = [ emacs soap-client ];
meta = {
@@ -1022,6 +1082,21 @@
license = lib.licenses.free;
};
}) {};
+ easy-escape = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "easy-escape";
+ ename = "easy-escape";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/easy-escape-0.2.1.tar";
+ sha256 = "19blpwka440y6r08hzzaz61gb24jr6a046pai2j1a3jg6x9fr3j5";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/easy-escape.html";
+ license = lib.licenses.free;
+ };
+ }) {};
easy-kill = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "easy-kill";
@@ -1041,10 +1116,10 @@
elpaBuild {
pname = "ebdb";
ename = "ebdb";
- version = "0.8.4";
+ version = "0.8.8";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ebdb-0.8.4.tar";
- sha256 = "0n811af83fqpzq9513gf240gnz7qkwrjw07qs4sra4069q0pwnjr";
+ url = "https://elpa.gnu.org/packages/ebdb-0.8.8.tar";
+ sha256 = "035xakji5vypdpc06qp9yhg8ny7qn80h8kax6cl80p0lljplzrnn";
};
packageRequires = [ emacs seq ];
meta = {
@@ -1101,10 +1176,10 @@
elpaBuild {
pname = "eev";
ename = "eev";
- version = "20210822";
+ version = "20211101";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/eev-20210822.tar";
- sha256 = "1682hl8s15snz9vq2r0q7jfpf81gbhlyxp55l2alsmxll4qq72wh";
+ url = "https://elpa.gnu.org/packages/eev-20211101.tar";
+ sha256 = "0sxbf116msfv6ly1dqga2sz2zpqr78nzp3v44qy7rps2887incmr";
};
packageRequires = [ emacs ];
meta = {
@@ -1215,6 +1290,41 @@
license = lib.licenses.free;
};
}) {};
+ embark = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "embark";
+ ename = "embark";
+ version = "0.13";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/embark-0.13.tar";
+ sha256 = "04x3cfikfvzr2xl1zh6kj0q31160kmh1vrzyrla3n6f8z5qch63x";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/embark.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ embark-consult = callPackage ({ consult
+ , elpaBuild
+ , emacs
+ , embark
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "embark-consult";
+ ename = "embark-consult";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/embark-consult-0.2.tar";
+ sha256 = "0f1022yk6d88glrrawa8cl6yd5n44p8wnbfwn0f8z6j1n8wxq37z";
+ };
+ packageRequires = [ consult emacs embark ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/embark-consult.html";
+ license = lib.licenses.free;
+ };
+ }) {};
emms = callPackage ({ cl-lib ? null
, elpaBuild
, fetchurl
@@ -1224,10 +1334,10 @@
elpaBuild {
pname = "emms";
ename = "emms";
- version = "7.6";
+ version = "7.8";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/emms-7.6.tar";
- sha256 = "03cp6mr0kxy41dg4ri5ymbzpkw7bd8zg7hx0a2rb4axiss5qmx7i";
+ url = "https://elpa.gnu.org/packages/emms-7.8.tar";
+ sha256 = "1nlb9rrdlbcqghph30r9i9m1brbdha818czbms0zhzdisxb0smi0";
};
packageRequires = [ cl-lib nadvice seq ];
meta = {
@@ -1280,6 +1390,21 @@
license = lib.licenses.free;
};
}) {};
+ erc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "erc";
+ ename = "erc";
+ version = "5.4.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/erc-5.4.1.tar";
+ sha256 = "0hghqwqrx11f8qa1zhyhjqp99w01l686azsmd24z9w0l93fz598a";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/erc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
ergoemacs-mode = callPackage ({ cl-lib ? null
, elpaBuild
, emacs
@@ -1349,10 +1474,10 @@
elpaBuild {
pname = "exwm";
ename = "exwm";
- version = "0.24";
+ version = "0.25";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/exwm-0.24.tar";
- sha256 = "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s";
+ url = "https://elpa.gnu.org/packages/exwm-0.25.tar";
+ sha256 = "0imd4v9ccvpsskmfnycz5fgabsvdjp1msg5v8rc7x0v26r3kr4x7";
};
packageRequires = [ xelb ];
meta = {
@@ -1405,16 +1530,16 @@
license = lib.licenses.free;
};
}) {};
- flymake = callPackage ({ eldoc, elpaBuild, emacs, fetchurl, lib }:
+ flymake = callPackage ({ eldoc, elpaBuild, emacs, fetchurl, lib, project }:
elpaBuild {
pname = "flymake";
ename = "flymake";
- version = "1.1.1";
+ version = "1.2.1";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/flymake-1.1.1.tar";
- sha256 = "0lk2v34b59b24j3hsmi8d0v7fgpwcipv7ka9i88cdgjmjjmzgz5q";
+ url = "https://elpa.gnu.org/packages/flymake-1.2.1.tar";
+ sha256 = "1j4j1mxqvkpdccrm5khykmdpm8z9p0pxvnsw4cz9b76xzfdzy5pz";
};
- packageRequires = [ eldoc emacs ];
+ packageRequires = [ eldoc emacs project ];
meta = {
homepage = "https://elpa.gnu.org/packages/flymake.html";
license = lib.licenses.free;
@@ -1424,10 +1549,10 @@
elpaBuild {
pname = "flymake-proselint";
ename = "flymake-proselint";
- version = "0.2.1";
+ version = "0.2.3";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/flymake-proselint-0.2.1.tar";
- sha256 = "08hbz8k3idr1gb98q3ssmzsdya5afjxl25l9xzqp9q2w5krc8433";
+ url = "https://elpa.gnu.org/packages/flymake-proselint-0.2.3.tar";
+ sha256 = "1384m52zkrlkkkyxg1zimp7dwrxhx8wbvw5ga5vg78yl6cqx9kbc";
};
packageRequires = [ emacs ];
meta = {
@@ -1828,10 +1953,10 @@
elpaBuild {
pname = "ioccur";
ename = "ioccur";
- version = "2.4";
+ version = "2.5";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ioccur-2.4.el";
- sha256 = "1isid3kgsi5qkz27ipvmp9v5knx0qigmv7lz12mqdkwv8alns1p9";
+ url = "https://elpa.gnu.org/packages/ioccur-2.5.tar";
+ sha256 = "06a6djln2rry3qnb063yarji3p18hcpp5zrw7q43a45k7qaiaji8";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -1938,10 +2063,10 @@
elpaBuild {
pname = "ivy-posframe";
ename = "ivy-posframe";
- version = "0.6.1";
+ version = "0.6.3";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.1.tar";
- sha256 = "1nay2sfbwm2fkp3f1y89innd9h6j3q70q9y4yddrwa69cxlj9m23";
+ url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.3.tar";
+ sha256 = "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh";
};
packageRequires = [ emacs ivy posframe ];
meta = {
@@ -2039,16 +2164,16 @@
license = lib.licenses.free;
};
}) {};
- kiwix = callPackage ({ elpaBuild, elquery, emacs, fetchurl, lib, request }:
+ kiwix = callPackage ({ elpaBuild, emacs, fetchurl, lib, request }:
elpaBuild {
pname = "kiwix";
ename = "kiwix";
- version = "1.1.0";
+ version = "1.1.4";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/kiwix-1.1.0.tar";
- sha256 = "1clp0q34bs395d0hrqdyvm9ds665hgf5qrdiqa14k31h4lbv2wsn";
+ url = "https://elpa.gnu.org/packages/kiwix-1.1.4.tar";
+ sha256 = "1ls11a7fc6d4gj85g8m09r95fvc4ppc0k0fs28d1hzybmgl89rgl";
};
- packageRequires = [ elquery emacs request ];
+ packageRequires = [ emacs request ];
meta = {
homepage = "https://elpa.gnu.org/packages/kiwix.html";
license = lib.licenses.free;
@@ -2208,10 +2333,10 @@
elpaBuild {
pname = "map";
ename = "map";
- version = "3.1";
+ version = "3.2.1";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/map-3.1.tar";
- sha256 = "1akkp34psm71ylbf1i02m56ga1dkswhz069j98amixrhw20hq4nx";
+ url = "https://elpa.gnu.org/packages/map-3.2.1.tar";
+ sha256 = "1vy231m2fm5cgz5nib14ib7ifprajhnbmzf6x4id48h2491m1n24";
};
packageRequires = [ emacs ];
meta = {
@@ -2223,10 +2348,10 @@
elpaBuild {
pname = "marginalia";
ename = "marginalia";
- version = "0.8";
+ version = "0.9";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/marginalia-0.8.tar";
- sha256 = "0afry11i7kgfa0q83p63hmahl7jzsqhn4sl1rnkjy98pnikwv9kd";
+ url = "https://elpa.gnu.org/packages/marginalia-0.9.tar";
+ sha256 = "0jnw9ys7p2rhi7sx2wxi3xs95ryg9vr34xb2jdfiz0p1xv04a300";
};
packageRequires = [ emacs ];
meta = {
@@ -2392,10 +2517,10 @@
elpaBuild {
pname = "modus-themes";
ename = "modus-themes";
- version = "1.5.0";
+ version = "1.6.0";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/modus-themes-1.5.0.tar";
- sha256 = "0y5a7g66iiai20fvc6qff3ki792bzca87zxbmxl8hpks4a6znc80";
+ url = "https://elpa.gnu.org/packages/modus-themes-1.6.0.tar";
+ sha256 = "03ahavpvd57z7cw1n46k6lq5335p1ld7kkjcylyx5fvq1rc1jw44";
};
packageRequires = [ emacs ];
meta = {
@@ -2422,6 +2547,21 @@
license = lib.licenses.free;
};
}) {};
+ multi-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "multi-mode";
+ ename = "multi-mode";
+ version = "1.14";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/multi-mode-1.14.tar";
+ sha256 = "0aslndqr0277ai0iwywbmj07vmz88vpmc0mgydcy4li8fkn8h066";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/multi-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
multishell = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "multishell";
@@ -2517,6 +2657,51 @@
license = lib.licenses.free;
};
}) {};
+ nano-agenda = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "nano-agenda";
+ ename = "nano-agenda";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nano-agenda-0.1.tar";
+ sha256 = "1bylgd4ly6dybpg66ndgsmgs5w0y5ymfq3s2pbwjnl46fnrmggz0";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nano-agenda.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ nano-modeline = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "nano-modeline";
+ ename = "nano-modeline";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nano-modeline-0.2.tar";
+ sha256 = "13m8j8jnd33wwv1siv6frzdbs7bhspg859sflq58vimv444zjzac";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nano-modeline.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ nano-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "nano-theme";
+ ename = "nano-theme";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nano-theme-0.2.1.tar";
+ sha256 = "0m98kq40dhbrn55x4bp2x5d5j1gps4y7z4086mgnj8wr1y3w8kdl";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nano-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
nhexl-mode = callPackage ({ cl-lib ? null
, elpaBuild
, emacs
@@ -2675,10 +2860,10 @@
elpaBuild {
pname = "org";
ename = "org";
- version = "9.4.6";
+ version = "9.5";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/org-9.4.6.tar";
- sha256 = "1k49ymsi77366as2wi4kzv2f1xnbwpb47iw7iw07yxwlhmm7vskq";
+ url = "https://elpa.gnu.org/packages/org-9.5.tar";
+ sha256 = "16cflg5nms5nb8w86nvwkg49zkl0rvdhigkf4xpvbs0v7zb5y3ky";
};
packageRequires = [ emacs ];
meta = {
@@ -2701,6 +2886,21 @@
license = lib.licenses.free;
};
}) {};
+ org-real = callPackage ({ boxy, elpaBuild, emacs, fetchurl, lib, org }:
+ elpaBuild {
+ pname = "org-real";
+ ename = "org-real";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/org-real-1.0.4.tar";
+ sha256 = "0bn9vyx74lki2nggzir02mcrww94dnqpbkryjr7a4i6am0ylf705";
+ };
+ packageRequires = [ boxy emacs org ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/org-real.html";
+ license = lib.licenses.free;
+ };
+ }) {};
org-translate = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
elpaBuild {
pname = "org-translate";
@@ -2855,10 +3055,10 @@
elpaBuild {
pname = "phps-mode";
ename = "phps-mode";
- version = "0.4.6";
+ version = "0.4.12";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/phps-mode-0.4.6.tar";
- sha256 = "0mfwyz9rwnrs0xcd1jmq1ngdhbwygm6hbfhyr14djywxx0b4hpm5";
+ url = "https://elpa.gnu.org/packages/phps-mode-0.4.12.tar";
+ sha256 = "0xkzx5narbry0kbamzxv1hjgsal98cj9rp3ck25xg2ywb6nspwcw";
};
packageRequires = [ emacs ];
meta = {
@@ -2900,10 +3100,10 @@
elpaBuild {
pname = "posframe";
ename = "posframe";
- version = "1.0.4";
+ version = "1.1.0";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/posframe-1.0.4.tar";
- sha256 = "0i2pw90gw9zb22gj8yyvcp3b2k1bxxhbjj0idvr5iz1vd9023bc6";
+ url = "https://elpa.gnu.org/packages/posframe-1.1.0.tar";
+ sha256 = "0ddm149dz71nksbpz7rwa8cax1nisf6wklv5iq4zrcbf5ghpagkg";
};
packageRequires = [ emacs ];
meta = {
@@ -2915,10 +3115,10 @@
elpaBuild {
pname = "project";
ename = "project";
- version = "0.6.1";
+ version = "0.8.1";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/project-0.6.1.tar";
- sha256 = "174fli3swbn67qcs9isv70vwrf6r41mak6dbs98gia89rlb71c8v";
+ url = "https://elpa.gnu.org/packages/project-0.8.1.tar";
+ sha256 = "1x3zkbjsi04v5ny3yxqrb75vcacrj9kxmpm9mvkp0n07j5g34f68";
};
packageRequires = [ emacs xref ];
meta = {
@@ -2990,10 +3190,10 @@
elpaBuild {
pname = "python";
ename = "python";
- version = "0.27.1";
+ version = "0.28";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/python-0.27.1.el";
- sha256 = "0jygl2w8x73v22w0rzq75i2hnm3f46dzgg5x1ckz720nznvwwkka";
+ url = "https://elpa.gnu.org/packages/python-0.28.tar";
+ sha256 = "1pvhsdjla1rvw223h7irmbzzsrixnpy1rsskiq9xmkpkc688b6pm";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -3411,10 +3611,10 @@
elpaBuild {
pname = "seq";
ename = "seq";
- version = "2.22";
+ version = "2.23";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/seq-2.22.tar";
- sha256 = "0zlqcbabzj8crg36ird2l74dbg5k7w1zf5iwva0h2dyvwyf9grma";
+ url = "https://elpa.gnu.org/packages/seq-2.23.tar";
+ sha256 = "1lbxnrzq88z8k9dyylg2636pg9vc8bzfprs1hxwp9ah0zkvsn52p";
};
packageRequires = [];
meta = {
@@ -3426,10 +3626,10 @@
elpaBuild {
pname = "setup";
ename = "setup";
- version = "1.0.0";
+ version = "1.1.0";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/setup-1.0.0.tar";
- sha256 = "05k65r5mgkpbj6f84qscgq4gjbj4wyn7c60b9xjvadw9b55yvfxk";
+ url = "https://elpa.gnu.org/packages/setup-1.1.0.tar";
+ sha256 = "1xbh4fix6n47avv57gz48zf4ad1l6mfj30qr5lwvk6pz5gpnjg7i";
};
packageRequires = [ emacs ];
meta = {
@@ -3441,10 +3641,10 @@
elpaBuild {
pname = "shelisp";
ename = "shelisp";
- version = "0.9.1";
+ version = "1.0.0";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/shelisp-0.9.1.el";
- sha256 = "15z8rpx8nhx53q77z5fqcpww255di80lb5mm28mnn2myalrr8b59";
+ url = "https://elpa.gnu.org/packages/shelisp-1.0.0.tar";
+ sha256 = "05r26gy1ajl47ir0yz5gn62xw2f31vdq04n3r8ywlzxbqyvzlc0d";
};
packageRequires = [];
meta = {
@@ -3456,10 +3656,10 @@
elpaBuild {
pname = "shell-command-plus";
ename = "shell-command+";
- version = "2.2.1";
+ version = "2.3.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/shell-command+-2.2.1.tar";
- sha256 = "1dmi7fn4g55va5ljpyswr3dpgj471747kkdixfyp8zpsbhvr5yf6";
+ url = "https://elpa.gnu.org/packages/shell-command+-2.3.2.tar";
+ sha256 = "03hmk4gr9kjy3238n0ys9na00py035j9s0y8d87c45f5af6c6g2c";
};
packageRequires = [ emacs ];
meta = {
@@ -3497,6 +3697,21 @@
license = lib.licenses.free;
};
}) {};
+ sketch-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "sketch-mode";
+ ename = "sketch-mode";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sketch-mode-1.0.4.tar";
+ sha256 = "1gv03ykr40laf52hm8p0glfsy895jghkp5a8q599zwg5wpz3zdc9";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sketch-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
slime-volleyball = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "slime-volleyball";
@@ -3576,10 +3791,10 @@
elpaBuild {
pname = "so-long";
ename = "so-long";
- version = "1.1.1";
+ version = "1.1.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/so-long-1.1.1.tar";
- sha256 = "0qgdnkb702mkm886v0zv0hnm5y7zlifgx9ji6xmdsxycpsfkjz1f";
+ url = "https://elpa.gnu.org/packages/so-long-1.1.2.tar";
+ sha256 = "053msvy2pyispwg4zzpaczfkl6rvnwfklm4jdsbjhqm0kx4vlcs9";
};
packageRequires = [ emacs ];
meta = {
@@ -3737,6 +3952,21 @@
license = lib.licenses.free;
};
}) {};
+ svg-lib = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "svg-lib";
+ ename = "svg-lib";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/svg-lib-0.2.tar";
+ sha256 = "0361w1paqrgqlv8wj5vf9ifssddrk2bwlarp2c2wzlxks3ahdf2x";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/svg-lib.html";
+ license = lib.licenses.free;
+ };
+ }) {};
swiper = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
elpaBuild {
pname = "swiper";
@@ -3786,10 +4016,10 @@
elpaBuild {
pname = "taxy";
ename = "taxy";
- version = "0.4";
+ version = "0.8";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/taxy-0.4.tar";
- sha256 = "1iy1761v2q0i020x8ch4z3vljx2v62pcy5bifxq8gw5qx0115576";
+ url = "https://elpa.gnu.org/packages/taxy-0.8.tar";
+ sha256 = "00pc6lh35gj8vzcsn17fyazb9jsc4m6nr7cvb32w02isadv8qd3m";
};
packageRequires = [ emacs ];
meta = {
@@ -3865,10 +4095,10 @@
elpaBuild {
pname = "tramp";
ename = "tramp";
- version = "2.5.1.2";
+ version = "2.5.1.4";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/tramp-2.5.1.2.tar";
- sha256 = "0p8m8prxrvrr455ahb626c1dry04m80y017h16ngr4i5ais0r85g";
+ url = "https://elpa.gnu.org/packages/tramp-2.5.1.4.tar";
+ sha256 = "0mk9r9hj43klah7mwldg4bw7fxcqvrbwv1gj6g90zdfsflqy7nh9";
};
packageRequires = [ emacs ];
meta = {
@@ -3910,10 +4140,10 @@
elpaBuild {
pname = "transient";
ename = "transient";
- version = "0.3.6";
+ version = "0.3.7";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/transient-0.3.6.tar";
- sha256 = "11n2551kvfjrqyk0x78bz6pirnfs126cbchiv1pchqwyk8z8c9ks";
+ url = "https://elpa.gnu.org/packages/transient-0.3.7.tar";
+ sha256 = "0x4xjbaw98dma7232bzw53rbq9q70vms6lvvramng7vfaz0mcy2a";
};
packageRequires = [ emacs ];
meta = {
@@ -4039,10 +4269,10 @@
elpaBuild {
pname = "vc-backup";
ename = "vc-backup";
- version = "1.0.0";
+ version = "1.1.0";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/vc-backup-1.0.0.tar";
- sha256 = "0vcrbb4s1rzar9q882kfcslycxvycp61923sg82i29b7yd0yrgdr";
+ url = "https://elpa.gnu.org/packages/vc-backup-1.1.0.tar";
+ sha256 = "1ipkymndxymbayrgr3jz27p64bkjf1nq9h4w3afpzkpqzw237ak5";
};
packageRequires = [];
meta = {
@@ -4050,14 +4280,29 @@
license = lib.licenses.free;
};
}) {};
+ vc-got = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "vc-got";
+ ename = "vc-got";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vc-got-1.0.tar";
+ sha256 = "1lx52g261zr52gy63vjll8mvczcbdzbsx3wa47qdajrq9bwmj99j";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vc-got.html";
+ license = lib.licenses.free;
+ };
+ }) {};
vc-hgcmd = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "vc-hgcmd";
ename = "vc-hgcmd";
- version = "1.14";
+ version = "1.14.1";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/vc-hgcmd-1.14.tar";
- sha256 = "0pg6fg0znsmky3iwdpxn2sx5bbn72kw83s077000ilawi6zqwc2d";
+ url = "https://elpa.gnu.org/packages/vc-hgcmd-1.14.1.tar";
+ sha256 = "12izw5ln22xdgwh6mqm6axzdfpcnqq7qcj72nmykrbsgpagp5fy6";
};
packageRequires = [ emacs ];
meta = {
@@ -4116,10 +4361,10 @@
elpaBuild {
pname = "verilog-mode";
ename = "verilog-mode";
- version = "2021.4.12.188864585";
+ version = "2021.10.14.127365406";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/verilog-mode-2021.4.12.188864585.tar";
- sha256 = "0np2q0jhf1fbb1nl5nx1q9hw40yg62bhlddp2raqryxbkvsh0nbv";
+ url = "https://elpa.gnu.org/packages/verilog-mode-2021.10.14.127365406.tar";
+ sha256 = "0d842dwg98srv73nkg69c7x24rw20mxgqmb4k1qcbl02bwxkfmsm";
};
packageRequires = [];
meta = {
@@ -4142,6 +4387,26 @@
license = lib.licenses.free;
};
}) {};
+ vertico-posframe = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , posframe
+ , vertico }:
+ elpaBuild {
+ pname = "vertico-posframe";
+ ename = "vertico-posframe";
+ version = "0.3.10";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vertico-posframe-0.3.10.tar";
+ sha256 = "1bksipfi92adlmnk2rdw33c2g6qhw8hplcg67xhc299svqlkd0j2";
+ };
+ packageRequires = [ emacs posframe vertico ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vertico-posframe.html";
+ license = lib.licenses.free;
+ };
+ }) {};
vigenere = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "vigenere";
@@ -4439,10 +4704,10 @@
elpaBuild {
pname = "xref";
ename = "xref";
- version = "1.2.2";
+ version = "1.3.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/xref-1.2.2.tar";
- sha256 = "14kdy8blhs6lwg349l9lmv0bbpybgi9nsg2iic3v87j4jyi41ljm";
+ url = "https://elpa.gnu.org/packages/xref-1.3.2.tar";
+ sha256 = "13bsaxdxwn14plaam0hsrswngh3rm2k29v5ybjgjyjy4d5vwz78j";
};
packageRequires = [ emacs ];
meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix b/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix
index c2ea756a06ea..20bb0efdd663 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix
@@ -4,8 +4,8 @@ let
src = pkgs.fetchgit {
url = "https://github.com/nix-community/emacs2nix.git";
fetchSubmodules = true;
- rev = "703b144eeb490e87133c777f82e198b4e515c312";
- sha256 = "sha256-YBbRh/Cb8u9+Pn6/Bc0atI6knKVjr8jiTGgFkD2FNGI=";
+ rev = "2e8d2c644397be57455ad32c2849f692eeac7797";
+ sha256 = "sha256-qnOYDYHAQ+r5eegKP9GqHz5R2ig96B2W7M+uYa1ti9M=";
};
in
pkgs.mkShell {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix b/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
index 58c542a57f4f..a2605f33778d 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
@@ -6,7 +6,7 @@
trivialBuild rec {
pname = "evil-markdown";
- version = "0.0.0+unstable=2021-07-21";
+ version = "0.pre+unstable=2021-07-21";
src = fetchFromGitHub {
owner = "Somelauw";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix b/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
index 8b353409c372..503554412b5b 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
@@ -7,7 +7,7 @@
trivialBuild {
pname = "git-undo";
- version = "0.0.0+unstable=2019-12-21";
+ version = "0.pre+unstable=2019-12-21";
src = fetchFromGitHub {
owner = "jwiegley";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix b/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
index 1cc7a23e17d1..21a65614398a 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
@@ -8,7 +8,7 @@
trivialBuild rec {
pname = "helm-words";
- version = "0.0.0+unstable=2019-03-12";
+ version = "0.pre+unstable=2019-03-12";
src = fetchFromGitHub {
owner = "emacsmirror";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix b/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
index 067d6f4481f2..6251fd6932a7 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
@@ -7,7 +7,7 @@
trivialBuild {
pname = "isearch-prop";
- version = "0.0.0+unstable=2019-05-01";
+ version = "0.pre+unstable=2019-05-01";
src = fetchFromGitHub {
owner = "emacsmirror";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix b/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
index 3bdf1a75f430..1dcf27e64ebc 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
@@ -6,7 +6,7 @@
trivialBuild rec {
pname = "nano-theme";
- version = "0.0.0+unstable=2021-06-29";
+ version = "0.pre+unstable=2021-06-29";
src = fetchFromGitHub {
owner = "rougier";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index 1804188cdbb7..90f13e870c73 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
@@ -1,5 +1,65 @@
{ callPackage }:
{
+ afternoon-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "afternoon-theme";
+ ename = "afternoon-theme";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/afternoon-theme-0.1.tar";
+ sha256 = "0aalwn1hf0p756qmiybmxphh4dx8gd5r4jhbl43l6y68fdijr6qg";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/afternoon-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ alect-themes = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "alect-themes";
+ ename = "alect-themes";
+ version = "0.10";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/alect-themes-0.10.tar";
+ sha256 = "0j5zwmxq1f9hlarr1f0j010kd3n2k8hbhr8pw789j3zlc2kmx5bb";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/alect-themes.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ample-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ample-theme";
+ ename = "ample-theme";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/ample-theme-0.3.0.tar";
+ sha256 = "0b5a9pqvmfc3h1l0rsmw57vj5j740ysnlpiig6jx9rkgn7awm5p1";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ample-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ anti-zenburn-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "anti-zenburn-theme";
+ ename = "anti-zenburn-theme";
+ version = "2.5.1";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/anti-zenburn-theme-2.5.1.tar";
+ sha256 = "06d7nm4l6llv7wjbwnhfaamrcihichljkpwnllny960pi56a8gmr";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/anti-zenburn-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
apache-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "apache-mode";
@@ -15,6 +75,21 @@
license = lib.licenses.free;
};
}) {};
+ apropospriate-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "apropospriate-theme";
+ ename = "apropospriate-theme";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/apropospriate-theme-0.1.1.tar";
+ sha256 = "11m80gijxvg4jf9davjja3bvykv161ggsrg7q0bihr0gq0flxgd7";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/apropospriate-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
arduino-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib, spinner }:
elpaBuild {
pname = "arduino-mode";
@@ -45,16 +120,16 @@
license = lib.licenses.free;
};
}) {};
- caml = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ caml = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "caml";
ename = "caml";
- version = "4.8";
+ version = "4.9";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/caml-4.8.tar";
- sha256 = "02wzjdd1ig8ajy65rf87zaysfddjbhyswifwlcs52ly7p84q72wk";
+ url = "https://elpa.nongnu.org/nongnu/caml-4.9.tar";
+ sha256 = "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i";
};
- packageRequires = [ cl-lib emacs ];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/caml.html";
license = lib.licenses.free;
@@ -75,6 +150,24 @@
license = lib.licenses.free;
};
}) {};
+ color-theme-tangotango = callPackage ({ color-theme
+ , elpaBuild
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "color-theme-tangotango";
+ ename = "color-theme-tangotango";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/color-theme-tangotango-0.0.6.tar";
+ sha256 = "0lfr3xg9xvfjb12kcw80d35a1ayn4f5w1dkd2b0kx0wxkq0bykim";
+ };
+ packageRequires = [ color-theme ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/color-theme-tangotango.html";
+ license = lib.licenses.free;
+ };
+ }) {};
crux = callPackage ({ elpaBuild, fetchurl, lib, seq }:
elpaBuild {
pname = "crux";
@@ -90,6 +183,21 @@
license = lib.licenses.free;
};
}) {};
+ cyberpunk-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "cyberpunk-theme";
+ ename = "cyberpunk-theme";
+ version = "1.22";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/cyberpunk-theme-1.22.tar";
+ sha256 = "1kva129l8vwfvafw329znrsqhm1j645xsyz55il1jhc28fbijp51";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cyberpunk-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
d-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "d-mode";
@@ -120,6 +228,21 @@
license = lib.licenses.free;
};
}) {};
+ dracula-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "dracula-theme";
+ ename = "dracula-theme";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/dracula-theme-1.7.0.tar";
+ sha256 = "0vbi9560phdp38x5mfl1f9rp8cw7p7s2mvbww84ka0gfz0zrczpm";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dracula-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
editorconfig = callPackage ({ cl-lib ? null
, elpaBuild
, emacs
@@ -155,14 +278,29 @@
license = lib.licenses.free;
};
}) {};
+ flymake-kondor = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "flymake-kondor";
+ ename = "flymake-kondor";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/flymake-kondor-0.1.3.tar";
+ sha256 = "07k8b3wayp1h4hir98zs5srjjsnh6w0h9pzn4vnq9s2jr355509n";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/flymake-kondor.html";
+ license = lib.licenses.free;
+ };
+ }) {};
geiser = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "geiser";
ename = "geiser";
- version = "0.16";
+ version = "0.18";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/geiser-0.16.tar";
- sha256 = "1mhngb1ik3qsc3w466cs61rbz3nn08ag29m5vfbd6adk60xmhnfk";
+ url = "https://elpa.nongnu.org/nongnu/geiser-0.18.tar";
+ sha256 = "131j4f82hl4pqj07qsl1f2dz4105v5fyll3bc97ggayzvrdiy58i";
};
packageRequires = [ emacs ];
meta = {
@@ -249,10 +387,10 @@
elpaBuild {
pname = "geiser-guile";
ename = "geiser-guile";
- version = "0.17";
+ version = "0.18";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.17.tar";
- sha256 = "0g4982rfxjp08qi6nxz73lsbdwf388fx511394yw4s7ml6v1m4kd";
+ url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.18.tar";
+ sha256 = "1jnqra7gysscn0gb1ap56rbjlrnhsmma7q4yfiy3zxsz8m69xhqf";
};
packageRequires = [ emacs geiser ];
meta = {
@@ -330,10 +468,10 @@
elpaBuild {
pname = "git-commit";
ename = "git-commit";
- version = "3.2.1";
+ version = "3.3.0";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/git-commit-3.2.1.tar";
- sha256 = "1jndc8ppj4r2s62idabygj4q0qbpk4gwifn8jrd6pa61d7dlvp28";
+ url = "https://elpa.nongnu.org/nongnu/git-commit-3.3.0.tar";
+ sha256 = "0lp6r4w1k0idvfc2h0chlplap2i4x2slva9cw3iw1rhhxbcvlmdx";
};
packageRequires = [ dash emacs transient with-editor ];
meta = {
@@ -341,6 +479,21 @@
license = lib.licenses.free;
};
}) {};
+ git-modes = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "git-modes";
+ ename = "git-modes";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/git-modes-1.4.0.tar";
+ sha256 = "1pag50l0rl361p1617rdvhhdajsmq9b1lyi94g16hibygdn7vaff";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/git-modes.html";
+ license = lib.licenses.free;
+ };
+ }) {};
gnuplot = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "gnuplot";
@@ -401,6 +554,21 @@
license = lib.licenses.free;
};
}) {};
+ haml-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "haml-mode";
+ ename = "haml-mode";
+ version = "3.1.10";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/haml-mode-3.1.10.tar";
+ sha256 = "1qkhm52xr8vh9zp728ass5kxjw7fj65j84m06db084qpavnwvysa";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/haml-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
haskell-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "haskell-mode";
@@ -416,6 +584,21 @@
license = lib.licenses.free;
};
}) {};
+ haskell-tng-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib, popup }:
+ elpaBuild {
+ pname = "haskell-tng-mode";
+ ename = "haskell-tng-mode";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/haskell-tng-mode-0.0.1.tar";
+ sha256 = "1dndnxb9bdjnixyl09025065wdrk0h8q721rbwvransq308fijwy";
+ };
+ packageRequires = [ emacs popup ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/haskell-tng-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
highlight-parentheses = callPackage ({ elpaBuild
, emacs
, fetchurl
@@ -560,10 +743,10 @@
elpaBuild {
pname = "magit";
ename = "magit";
- version = "3.2.1";
+ version = "3.3.0";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/magit-3.2.1.tar";
- sha256 = "0yyf16605bp5q8jl2vbljxx04ja0ljvs775dnnawlc3mvn13zd9n";
+ url = "https://elpa.nongnu.org/nongnu/magit-3.3.0.tar";
+ sha256 = "0ihrds45z12z155c1y7haz1mxc95w6v4rynh0izm159xhz44121z";
};
packageRequires = [
dash
@@ -582,10 +765,10 @@
elpaBuild {
pname = "magit-section";
ename = "magit-section";
- version = "3.2.1";
+ version = "3.3.0";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/magit-section-3.2.1.tar";
- sha256 = "1ppinys8rfa38ac8grcx16hlaw33p03pif4ya6bbw280kq8c73rv";
+ url = "https://elpa.nongnu.org/nongnu/magit-section-3.3.0.tar";
+ sha256 = "08ac10vips6f2gy4x4w2wkz2ki3q0d6dhynkmlpdinsdmgagziny";
};
packageRequires = [ dash emacs ];
meta = {
@@ -608,6 +791,36 @@
license = lib.licenses.free;
};
}) {};
+ material-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "material-theme";
+ ename = "material-theme";
+ version = "2015";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/material-theme-2015.tar";
+ sha256 = "027plf401y3lb5y9hzj8gpy9sm0p1k8hv94pywnagq4kr9hivnb9";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/material-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ monokai-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "monokai-theme";
+ ename = "monokai-theme";
+ version = "3.5.3";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/monokai-theme-3.5.3.tar";
+ sha256 = "15b5ijkb0wrixlw13rj02x7m0r3ldqfs3bb6g48hhbqfapd6rcx0";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/monokai-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
multiple-cursors = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "multiple-cursors";
@@ -657,10 +870,10 @@
elpaBuild {
pname = "org-contrib";
ename = "org-contrib";
- version = "0.1";
+ version = "0.3";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/org-contrib-0.1.tar";
- sha256 = "07hzywvgj11wd21dw4lbkvqv32da03407f9qynlzgg1qa7wknm2k";
+ url = "https://elpa.nongnu.org/nongnu/org-contrib-0.3.tar";
+ sha256 = "0fqhyby7624drskfsasgvzyxbgjb42rd6vw8l6xgb3h22kaprl0q";
};
packageRequires = [ emacs org ];
meta = {
@@ -683,6 +896,21 @@
license = lib.licenses.free;
};
}) {};
+ popup = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "popup";
+ ename = "popup";
+ version = "0.5.8";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/popup-0.5.8.tar";
+ sha256 = "1amwxsymzvzmj8696fa6i0cqx4ac581rvr4dwkri7akkr7amh3yh";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/popup.html";
+ license = lib.licenses.free;
+ };
+ }) {};
projectile = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "projectile";
@@ -747,10 +975,10 @@
elpaBuild {
pname = "rust-mode";
ename = "rust-mode";
- version = "0.5.0";
+ version = "1.0.1";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/rust-mode-0.5.0.tar";
- sha256 = "03z1nsq1s3awaczirlxixq4gwhz9bf1x5zwd5xfb88ay4kzcmjwc";
+ url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.1.tar";
+ sha256 = "1rybjnaycvjgqp8g8lkjzgvnwd4565cbx88qlnxfrlqd5161r1k3";
};
packageRequires = [ emacs ];
meta = {
@@ -837,14 +1065,44 @@
license = lib.licenses.free;
};
}) {};
+ solarized-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "solarized-theme";
+ ename = "solarized-theme";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/solarized-theme-1.3.0.tar";
+ sha256 = "0wa3wp9r0h4y3kkiw8s4pi1zvg22yhnpsp8ckv1hp4y6js5jbg65";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/solarized-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ subatomic-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "subatomic-theme";
+ ename = "subatomic-theme";
+ version = "1.8.1";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/subatomic-theme-1.8.1.tar";
+ sha256 = "0j496l7c2rwgxk2srcf1a70z63y48q5bs9cpx95212q7rl20zhip";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/subatomic-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
swift-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib, seq }:
elpaBuild {
pname = "swift-mode";
ename = "swift-mode";
- version = "8.3.0";
+ version = "8.4.2";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/swift-mode-8.3.0.tar";
- sha256 = "1bsyv0dl7c2m3f690g7fij7g4937skxjin456vfrgbzb219pdkcs";
+ url = "https://elpa.nongnu.org/nongnu/swift-mode-8.4.2.tar";
+ sha256 = "0rkri1414f2w2bw76dwnmylcdca6x9bkdvlq1aznz76ac259klji";
};
packageRequires = [ emacs seq ];
meta = {
@@ -882,6 +1140,36 @@
license = lib.licenses.free;
};
}) {};
+ ujelly-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ujelly-theme";
+ ename = "ujelly-theme";
+ version = "1.2.9";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/ujelly-theme-1.2.9.tar";
+ sha256 = "04h86s0a44cmxizqi4p5h9gl1aiqwrvkh3xmawvn7z836i3hvxn9";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ujelly-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ vc-fossil = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "vc-fossil";
+ ename = "vc-fossil";
+ version = "20210928";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/vc-fossil-20210928.tar";
+ sha256 = "0n4h1cj1336mv5cswq0139bkry5gnv4hrrwzd4bqhrxp5kbhqa5y";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vc-fossil.html";
+ license = lib.licenses.free;
+ };
+ }) {};
web-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "web-mode";
@@ -916,10 +1204,10 @@
elpaBuild {
pname = "with-editor";
ename = "with-editor";
- version = "3.0.4";
+ version = "3.0.5";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/with-editor-3.0.4.tar";
- sha256 = "032i954rzn8sg1qp6vjhz6j8j1fl6mpvhfnmd3va8k9q9m27k4an";
+ url = "https://elpa.nongnu.org/nongnu/with-editor-3.0.5.tar";
+ sha256 = "0bri6jr99133k9w0d754rw2f6hgjzndczngfw2lf2rvxks448krm";
};
packageRequires = [ emacs ];
meta = {
@@ -946,10 +1234,10 @@
elpaBuild {
pname = "yasnippet-snippets";
ename = "yasnippet-snippets";
- version = "0.2";
+ version = "1.0";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/yasnippet-snippets-0.2.tar";
- sha256 = "1xhlx2n2sdpcc82cba9r7nbd0gwi7m821p7vk0vnw84dhwy863ic";
+ url = "https://elpa.nongnu.org/nongnu/yasnippet-snippets-1.0.tar";
+ sha256 = "0p2a10wfh1dvmxbjlbj6p241xaldjim2h8vrv9aghvm3ryfixcpb";
};
packageRequires = [ yasnippet ];
meta = {
@@ -957,6 +1245,21 @@
license = lib.licenses.free;
};
}) {};
+ zenburn-theme = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "zenburn-theme";
+ ename = "zenburn-theme";
+ version = "2.7.0";
+ src = fetchurl {
+ url = "https://elpa.nongnu.org/nongnu/zenburn-theme-2.7.0.tar";
+ sha256 = "1x7gd5w0g47kcam88lm605b35y35iq3q5f991a84l050c8syrkpy";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/zenburn-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
zig-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "zig-mode";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
index 3eae4bc52ce9..1e47b281736f 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
@@ -4,10 +4,10 @@
elpaBuild {
pname = "org";
ename = "org";
- version = "20210906";
+ version = "20210920";
src = fetchurl {
- url = "https://orgmode.org/elpa/org-20210906.tar";
- sha256 = "04aqniwix4w0iap38dsdskndknhw9k6apkmkrc79yfs3c4jcsszq";
+ url = "https://orgmode.org/elpa/org-20210920.tar";
+ sha256 = "01b44npf0rxq7c4ddygc3n3cv3h7afs41az0nfs67a5x7ag6c1jj";
};
packageRequires = [];
meta = {
@@ -19,10 +19,10 @@
elpaBuild {
pname = "org-plus-contrib";
ename = "org-plus-contrib";
- version = "20210906";
+ version = "20210920";
src = fetchurl {
- url = "https://orgmode.org/elpa/org-plus-contrib-20210906.tar";
- sha256 = "1v0yy92x8shwp36qfyzmvk8ayz9amkdis967gqacq5jxcyq7mhbn";
+ url = "https://orgmode.org/elpa/org-plus-contrib-20210920.tar";
+ sha256 = "1m376fnm8hrm83hgx4b0y21lzdrbxjp83bv45plvrjky44qfdwfn";
};
packageRequires = [];
meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
index 75015a959c2b..d02283f25ad8 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
@@ -6,7 +6,7 @@
trivialBuild rec {
pname = "power-mode";
- version = "0.0.0+unstable=2021-06-06";
+ version = "0.pre+unstable=2021-06-06";
src = fetchFromGitHub {
owner = "elizagamedev";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix b/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
index e49925e057ce..87a20caf9f07 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
@@ -6,7 +6,7 @@
trivialBuild {
pname = "railgun";
- version= "0.0.0+unstable=2012-10-17";
+ version= "0.pre+unstable=2012-10-17";
src = fetchFromGitHub {
owner = "mbriggs";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index 2b89f5466d56..118065eb31ca 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -159,20 +159,20 @@
"repo": "plexus/a.el",
"unstable": {
"version": [
- 20201203,
- 1927
+ 20210929,
+ 1510
],
- "commit": "3d341eb7813ee02b00ab28e11c915295bfd4b5a7",
- "sha256": "1mc40rcm6364iyckcv9ppjwrs65w3y0zh3yl20dhk8yjilhygpqq"
+ "commit": "9ad2d18252b729174fe22ed0b2b7670c88f60c31",
+ "sha256": "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"
},
"stable": {
"version": [
- 0,
1,
- 1
+ 0,
+ 0
],
- "commit": "8583685c32069a73ccae0100e990e7b39c901737",
- "sha256": "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"
+ "commit": "9ad2d18252b729174fe22ed0b2b7670c88f60c31",
+ "sha256": "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"
}
},
{
@@ -213,11 +213,11 @@
"repo": "ymarco/auto-activating-snippets",
"unstable": {
"version": [
- 20210903,
- 1912
+ 20211103,
+ 1551
],
- "commit": "1699bec4d244a1f62af29fe4eb8b79b6d2fccf7d",
- "sha256": "1mr0qpw7cfy1hwd2fxki01570cw8n0ix1ix27s3yzc2r8cqv6cri"
+ "commit": "b868ef7065039899628a2846dd1274233e07a310",
+ "sha256": "1a8rr7ni9x4n21lysfhczf0j0nqi9xd17s39lfpxmpp10s36mrxf"
},
"stable": {
"version": [
@@ -279,11 +279,11 @@
"repo": "afroisalreadyinu/abl-mode",
"unstable": {
"version": [
- 20210122,
- 1508
+ 20210923,
+ 950
],
- "commit": "fdd83e732b2c870f4ddc0f62b5b261e03bfb212a",
- "sha256": "1ny3386n5h3s3lg9235vj17vwsx6n1y99kln6vgqy6kk37q0ig42"
+ "commit": "fc0eeb780d22aa1aac337f06cc9b479c51600243",
+ "sha256": "1vv3p6fkp352chrjm7jwc3frifzfral1jyrkx4m8pfq0cyj2g197"
}
},
{
@@ -297,8 +297,8 @@
20210519,
322
],
- "commit": "fb1fe91ab8ec75dcd52130c38f13759f19d20fe9",
- "sha256": "05fqxsk0fk6llc5sgk4gqnpx4xy598nyl2kkjv6rhld2xjaps3q9"
+ "commit": "85d0512e239f2ec2217da7f316a5aed350041fd9",
+ "sha256": "0ca375q90fg29c0y47s7ljb5ymwf8wnq6b8v375r06rkqvi7svdx"
},
"stable": {
"version": [
@@ -1044,8 +1044,8 @@
"auto-complete",
"yasnippet"
],
- "commit": "e29075f810af73f6bf7803eebf15d96bffee7154",
- "sha256": "08vfdp7q6x5fk2nn5dl884cyysxrl2gw8f16g7wqvf7v24jmx71d"
+ "commit": "933805013e026991d29a7abfb425075d104aa1cf",
+ "sha256": "0qzb6wlh2hf0kp9n74m2q6hrf4rar62dfxfh8yj1rjx2brpi1qdq"
},
"stable": {
"version": [
@@ -1070,8 +1070,8 @@
"repo": "xcwen/ac-php",
"unstable": {
"version": [
- 20210820,
- 1000
+ 20210909,
+ 918
],
"deps": [
"dash",
@@ -1081,8 +1081,8 @@
"s",
"xcscope"
],
- "commit": "e29075f810af73f6bf7803eebf15d96bffee7154",
- "sha256": "08vfdp7q6x5fk2nn5dl884cyysxrl2gw8f16g7wqvf7v24jmx71d"
+ "commit": "933805013e026991d29a7abfb425075d104aa1cf",
+ "sha256": "0qzb6wlh2hf0kp9n74m2q6hrf4rar62dfxfh8yj1rjx2brpi1qdq"
},
"stable": {
"version": [
@@ -1148,8 +1148,8 @@
"auto-complete",
"rtags"
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -1666,16 +1666,16 @@
"repo": "pauldub/activity-watch-mode",
"unstable": {
"version": [
- 20200416,
- 637
+ 20211018,
+ 654
],
"deps": [
"cl-lib",
"json",
"request"
],
- "commit": "9d591c5ec9a2b2c7b55a754dd37c7434b2ef9fdc",
- "sha256": "0a1ylq0il5aca5y9acykaa47p8d9xb3jy4wgi1lpm60z06n4m99y"
+ "commit": "89902927023781e23f09d033a780fbed546c53e1",
+ "sha256": "1y0k282nsn6y18ai8vky3yy78ay2a6lgv5lhrmh0xl0r8hydv21g"
},
"stable": {
"version": [
@@ -1878,25 +1878,25 @@
"repo": "minad/affe",
"unstable": {
"version": [
- 20210812,
- 1934
+ 20211011,
+ 725
],
"deps": [
"consult"
],
- "commit": "cc63708913fc5d16073bcb96f483c2e207151032",
- "sha256": "10764rcakd5v9x2xz0cbv8wnvd1b5m9cwjb75gvbgnhfaxqnxb8n"
+ "commit": "0ee5e2374339c1a57d36c06818247afeecadc2c5",
+ "sha256": "0r9ziscf2f4plp740ggd2vh73cgax31xsvzmc1f5w9cy88i9f8nn"
},
"stable": {
"version": [
0,
- 2
+ 3
],
"deps": [
"consult"
],
- "commit": "be08c4ec49681474cbebaf0957568f27e42c4b3c",
- "sha256": "0lpqpy33bmsh84ib1i278sr8ldn8y9ydqdikch1xi56via4ic2x2"
+ "commit": "0ee5e2374339c1a57d36c06818247afeecadc2c5",
+ "sha256": "0r9ziscf2f4plp740ggd2vh73cgax31xsvzmc1f5w9cy88i9f8nn"
}
},
{
@@ -1947,6 +1947,26 @@
"sha256": "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"
}
},
+ {
+ "ename": "agda-editor-tactics",
+ "commit": "1806c594f0ae0d7eb8be7e4baf4bf66af32c3d46",
+ "sha256": "11lfpa1hdbrnbrrhpqmi3lzx28wbfnw4j29rywwcjlcb6a0ax50v",
+ "fetcher": "github",
+ "repo": "alhassy/next-700-module-systems",
+ "unstable": {
+ "version": [
+ 20211024,
+ 2357
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "c401c0c1ec0ad38bb5ee1636504e0e531b9e34b9",
+ "sha256": "0y5dp3i97w96dy5p5yk4gxs4db9n260sn1q2vp1j6afi30mn2mb9"
+ }
+ },
{
"ename": "agda2-mode",
"commit": "714e0fe062981d27e3f1d48b2fd759d60bbb4d8c",
@@ -1962,8 +1982,8 @@
"annotation",
"eri"
],
- "commit": "731f300deac14e10792a0bbf22c86cbe0c9c7e4b",
- "sha256": "1fgqk0xvfxaqj737b62ngnqivd8fhp5pakwbh2zvvdl76frkbsmv"
+ "commit": "475d9add939bf86936a1d5b41c3260f0000bd3c8",
+ "sha256": "0f7849s67gzzrnkb57hm2p6hbkrd50s02m9l5xfqg286dinhqp0v"
},
"stable": {
"version": [
@@ -2194,15 +2214,15 @@
"repo": "alan-platform/AlanForEmacs",
"unstable": {
"version": [
- 20210802,
- 1950
+ 20210916,
+ 1135
],
"deps": [
"flycheck",
"s"
],
- "commit": "9e66137860d05e9c8e1d70a087bfd9cb5ca5ec07",
- "sha256": "1xnb2n77bj3ynrgrl13pwdjbbka9s6gwdskz99cjdky2m7z1xh0z"
+ "commit": "217ffe99e3acf7d545827605ec95434e392a9f5f",
+ "sha256": "09wd1k3hnf1hri8c9m27g8cnqka59szr2anfkkh35s52bynvpxf2"
},
"stable": {
"version": [
@@ -2315,19 +2335,19 @@
"repo": "alezost/alect-themes",
"unstable": {
"version": [
- 20200801,
- 2041
+ 20211022,
+ 1651
],
- "commit": "684249b83d711145865ec31650e66ed9aa6e691b",
- "sha256": "1cyd327shiwgdxf7bx542pfw6d6ilsq51n65lz3bfs8fzm5mib8v"
+ "commit": "89560047934c236d05ea6b911c0c63702a8e06f3",
+ "sha256": "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya"
},
"stable": {
"version": [
0,
- 9
+ 10
],
- "commit": "a24065dc780738e914140d617bfe119c889d9c78",
- "sha256": "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"
+ "commit": "89560047934c236d05ea6b911c0c63702a8e06f3",
+ "sha256": "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya"
}
},
{
@@ -2338,26 +2358,26 @@
"repo": "cpitclaudel/alectryon",
"unstable": {
"version": [
- 20210817,
- 49
+ 20211018,
+ 321
],
"deps": [
"flycheck"
],
- "commit": "59aac2167ca623358ddbb800abe5912194137f74",
- "sha256": "17vn4hxkvd1nkn7gjjg867rjd5r0qsb7qlf2fh75pikk806x5sa8"
+ "commit": "1bcc7c68abcd6471604c9b7fe7f85b0878bbd435",
+ "sha256": "10kpdra8m015xsh7w25v18zd62csayji0p5jqgif20bw6g8g20a7"
},
"stable": {
"version": [
1,
- 3,
- 1
+ 4,
+ 0
],
"deps": [
"flycheck"
],
- "commit": "ef9b4d4653c95388b9e0b242bc24fea9922cfcbb",
- "sha256": "0w6p5qy3cdlngrn1nv79gbgv97idkpxmw47xfcw8fn615wa5j9q4"
+ "commit": "bddc1dc5757bd6ef308f21ed70811281a2ad5298",
+ "sha256": "1vpsddfjxpvylq70r7ip6c0iaqn10jdkxmwd93r1zzkxg30hzsf3"
}
},
{
@@ -2452,11 +2472,11 @@
"repo": "domtronn/all-the-icons.el",
"unstable": {
"version": [
- 20210831,
- 1317
+ 20211021,
+ 1244
],
- "commit": "c0d288a41faea2ecb7e8dd947486764a2ee17ec9",
- "sha256": "1r1905irz9rh05qzmzk1cbdnk4667ax8wm71r1prv8dnx8nq05kp"
+ "commit": "b7002b5aa152b56a2a852c3aae2f2e1a0e963277",
+ "sha256": "0srh30xciwb6dsw5rixz5ikc1z7jx3987zd4gnc1b7aj01826n8k"
},
"stable": {
"version": [
@@ -2476,14 +2496,14 @@
"repo": "iyefrat/all-the-icons-completion",
"unstable": {
"version": [
- 20210728,
- 2119
+ 20211009,
+ 2207
],
"deps": [
"all-the-icons"
],
- "commit": "96500418541b7376cd0b3e4583b9509c0dd92b27",
- "sha256": "0sn5jxmhdpnnjn8x99vc9m9d31kw9alkkdr0xc345aa0ssjlkf6f"
+ "commit": "a0f34d68cc12330ab3992a7521f9caa1de3b8470",
+ "sha256": "18dd37p1vh8ixc2q07jqwzpc82qq31m89nzps192pdgkfffhdp8r"
}
},
{
@@ -2494,14 +2514,14 @@
"repo": "wyuenho/all-the-icons-dired",
"unstable": {
"version": [
- 20210614,
- 1350
+ 20211007,
+ 1729
],
"deps": [
"all-the-icons"
],
- "commit": "a758766878b6e8b9eaaf41d68599a2df99e37f48",
- "sha256": "1shla7nyhml9m3g81p6yy8k4pdq289gb42900xzfp7zl4qvnm2vy"
+ "commit": "5e9b097f9950cc9f86de922b07903a4e5fefc733",
+ "sha256": "0p09rdq97hshg9gaivsqz9zvi2ba2p1a2ja1i8z6f896xv5jqs98"
},
"stable": {
"version": [
@@ -2542,14 +2562,14 @@
"repo": "seagle0128/all-the-icons-ibuffer",
"unstable": {
"version": [
- 20210727,
- 808
+ 20210927,
+ 1407
],
"deps": [
"all-the-icons"
],
- "commit": "165f1702f6f49f4fc2fb15534ede141102657aef",
- "sha256": "0k985lg08dml5cpw9piqhwrh27bbxwqgsy4zcj4f40niaallk6fy"
+ "commit": "f689582a413ba5bb722067ea470829819e1f1131",
+ "sha256": "1r4v86jgp656cs1mxxsb30i1kwka29nzfri151bjrnbyy0z99qrg"
},
"stable": {
"version": [
@@ -2604,15 +2624,15 @@
"repo": "seagle0128/all-the-icons-ivy-rich",
"unstable": {
"version": [
- 20210823,
- 1544
+ 20210927,
+ 1411
],
"deps": [
"all-the-icons",
"ivy-rich"
],
- "commit": "09b887c01aeb33d715a1f8269f45c38594614d93",
- "sha256": "0l6brqdqqgcijd2jfycy3i2n39bwcq7m12km8hg3kx4bv0zmn00g"
+ "commit": "8c0cd543c8d79cf223216b3f44ac3a4b0695c484",
+ "sha256": "0yhg39gg5w3gjhwfgz6v33ld0qyjj4v627ka9az97biz2xvvvrl1"
},
"stable": {
"version": [
@@ -2678,8 +2698,8 @@
20200723,
1037
],
- "commit": "4aba676d49b0705cb4431b7e7c733ef8eac7d5aa",
- "sha256": "1z5b5ivn81hmvndd7ari07kj1bsp9ziyxcrgf7xq21g1dfsbq8cs"
+ "commit": "fb8550cb690b0ec954968afc7e8e953fd6859cdb",
+ "sha256": "1flw5msh1sda3ymkkg8xcgixpa5jgm2i1ligna5h501xbybnk1iz"
},
"stable": {
"version": [
@@ -2890,8 +2910,8 @@
"repo": "pythonic-emacs/anaconda-mode",
"unstable": {
"version": [
- 20210409,
- 1536
+ 20210714,
+ 1738
],
"deps": [
"dash",
@@ -2899,8 +2919,8 @@
"pythonic",
"s"
],
- "commit": "4f367c768a84465070c44327444b17015091d08d",
- "sha256": "1lvijddzzfsr295w327vdnfpz51zaqm0g24gn2wjqny3nc7kyaz4"
+ "commit": "0546c093071417e4f30f505d9de09da883109cbf",
+ "sha256": "0mqkpgrl524j6h5037ymvfxx9zvz4gxz11kds0vqlqlrpm0vp0xc"
},
"stable": {
"version": [
@@ -2968,6 +2988,21 @@
"sha256": "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"
}
},
+ {
+ "ename": "ancient-one-dark-theme",
+ "commit": "df6184184228dfdb0b0e4a770c30c67d05a9bf94",
+ "sha256": "064yiab7ll7nwls7p8cyh8glmzr4msmdhl4vvvy45ll5diyfbkfa",
+ "fetcher": "github",
+ "repo": "holodata/ancient-one-dark-emacs",
+ "unstable": {
+ "version": [
+ 20211030,
+ 1358
+ ],
+ "commit": "2a4319971f42c754dd43806b66c13317741d6939",
+ "sha256": "1965wfdaqr7p3b0yc287xdb367xib491ljp7yazn3dxxy7ayd25h"
+ }
+ },
{
"ename": "android-env",
"commit": "570ad0e94736d9fd16f3909bcfa928a9153ea703",
@@ -3204,11 +3239,11 @@
"repo": "bastibe/annotate.el",
"unstable": {
"version": [
- 20210819,
- 1443
+ 20211001,
+ 946
],
- "commit": "4ae1d4f2a6b6d7e598285c6a43ae1785d44147e5",
- "sha256": "0i1ldw5iz61p3sp8anihf3a16z56jqgznrwphgf0b1kl0sdsq6lq"
+ "commit": "b9c908f24c2119d99cd93c86a0920223ef0568e9",
+ "sha256": "169nwa7jfsdcjk6mbm3yabk3j8iwfixfkypwk5336dy2ncf90cjc"
},
"stable": {
"version": [
@@ -3246,8 +3281,8 @@
20200914,
644
],
- "commit": "731f300deac14e10792a0bbf22c86cbe0c9c7e4b",
- "sha256": "1fgqk0xvfxaqj737b62ngnqivd8fhp5pakwbh2zvvdl76frkbsmv"
+ "commit": "475d9add939bf86936a1d5b41c3260f0000bd3c8",
+ "sha256": "0f7849s67gzzrnkb57hm2p6hbkrd50s02m9l5xfqg286dinhqp0v"
},
"stable": {
"version": [
@@ -3294,16 +3329,14 @@
"repo": "rejeep/ansi.el",
"unstable": {
"version": [
- 20200611,
- 944
+ 20211023,
+ 529
],
"deps": [
- "cl-lib",
- "dash",
- "s"
+ "cl-lib"
],
- "commit": "a41d5cc719297515d85bb5256980cd1204a71b88",
- "sha256": "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"
+ "commit": "6e5455af7fa5d7b21bdb383e36190cb9d996ec35",
+ "sha256": "026bbdqnwcivgkhff6wp71vwi0wk2kn85idad7jmdsabdgzl9hmr"
},
"stable": {
"version": [
@@ -3382,26 +3415,20 @@
"repo": "zellio/ansible-vault-mode",
"unstable": {
"version": [
- 20200305,
- 2240
+ 20211027,
+ 1528
],
- "deps": [
- "seq"
- ],
- "commit": "c4fe4b0af2ac7f9d32acee234716ab31fa824cef",
- "sha256": "1xif6vv53rpc2k974pqckmzck55zhdhzyfl54kdp25w93xbs3js4"
+ "commit": "5deca2fdb640fa70e614e66ee37e1d6739d39ba4",
+ "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
},
"stable": {
"version": [
0,
- 4,
+ 5,
1
],
- "deps": [
- "seq"
- ],
- "commit": "9a50ed6b73222e9973c08d79b6955e57ed3b7d97",
- "sha256": "1xif6vv53rpc2k974pqckmzck55zhdhzyfl54kdp25w93xbs3js4"
+ "commit": "4fc188a9817cb4c7e0f19b6f1ae720c902f7ebe9",
+ "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
}
},
{
@@ -3505,11 +3532,11 @@
"repo": "emacsorphanage/anzu",
"unstable": {
"version": [
- 20201203,
- 529
+ 20211002,
+ 2255
],
- "commit": "bdb3da5028935a4aea55c40769bc191a81afb54e",
- "sha256": "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"
+ "commit": "5abb37455ea44fa401d5f4c1bdc58adb2448db67",
+ "sha256": "1rxw9l0mhb7m17h6mh3ndpa6sw1kh4awipvar6w7n6xc3wv4pajy"
},
"stable": {
"version": [
@@ -3567,11 +3594,11 @@
"repo": "dieter-wilhelm/apdl-mode",
"unstable": {
"version": [
- 20210828,
- 1913
+ 20211023,
+ 1831
],
- "commit": "f1d4bef95c3be736c15f0d9b41037ba02933acf1",
- "sha256": "1a6s7zcz176845fp38n1ilpqkgzzpq3miwg7cpymrcdnp3kxvc0n"
+ "commit": "8b326a38fa1bf3b9675b251c78eb9456245aeef9",
+ "sha256": "07qcvn607x3mmrp8mc3wkxczj1mkhd0lb8674qx84j0yl7idv1dm"
},
"stable": {
"version": [
@@ -3598,6 +3625,30 @@
"sha256": "1b4ljzq4qyslwxxl6n2izghbl20wwzxxvcq5wk111blnwap4kddw"
}
},
+ {
+ "ename": "apheleia",
+ "commit": "74ef92045e0f64b34cdb1ca686c9159b0623e61f",
+ "sha256": "0dmjvj7gw8qd8vh9m8ibs5pqgs63f5pv02686k97sawbkav7mg1r",
+ "fetcher": "github",
+ "repo": "raxod502/apheleia",
+ "unstable": {
+ "version": [
+ 20211031,
+ 1757
+ ],
+ "commit": "1b7f2cf9969e7dfe610780b38b6f3dd834d1c01d",
+ "sha256": "1gy4pczi6lwvcjfxng8kf6nd4czpi261k4p46dgny686hr70mzc9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "53ac964e53e75b9a35a7bd173f23290d0f42d95c",
+ "sha256": "0f2dqid4h0psdyx3p18c7xn7nf8zr6y4qq98yvyjfbwq5lcjk4rn"
+ }
+ },
{
"ename": "apib-mode",
"commit": "dc2ebb04f975d8226a76260895399c937d6a1940",
@@ -3658,11 +3709,11 @@
"repo": "alexmurray/apparmor-mode",
"unstable": {
"version": [
- 20201213,
- 1118
+ 20211014,
+ 2319
],
- "commit": "8c0c20b6896bba65c7f6cfe0a21e22b21a12c5f9",
- "sha256": "1pr2qpvwfmqd0qysbdvaz0r0y7zznifridy0jyd8lwkddyi8jypf"
+ "commit": "9d1937af52cd8ecfeec27185644ea8cbf0dc1c08",
+ "sha256": "1kzvqxz0m2lgcm0whb121g1580vi7bvk4fj780d5xqqqlv0091a0"
}
},
{
@@ -3743,11 +3794,11 @@
"repo": "waymondo/apropospriate-theme",
"unstable": {
"version": [
- 20210809,
- 1934
+ 20211103,
+ 1600
],
- "commit": "e84255cf485004b6b2cb37ce9e0be62fd6512f8b",
- "sha256": "06rcf08f8qm068ck2mxqbg03vkr0hf5nnsbzpwmn7i6qqw23x6jd"
+ "commit": "008cd61d8b42367316b147eef2a81636f01faeee",
+ "sha256": "04k12kb19xzw3dm4ydiy1m3qfpv0smvr33847lh4bhkiv1wyilp8"
},
"stable": {
"version": [
@@ -3889,14 +3940,14 @@
"repo": "stardiviner/arduino-mode",
"unstable": {
"version": [
- 20210527,
- 1341
+ 20210907,
+ 1455
],
"deps": [
"spinner"
],
- "commit": "d7c87812c205bc01c8c8a7ab02f201b6138c7e57",
- "sha256": "08hjyxz187hc07d0g8s7z7d3pa2z9f8lwdzramki95gm27q08n4y"
+ "commit": "6d2d1122924370ffa17ce337e3b02ecab79d861b",
+ "sha256": "039h4hkl7n9ypdwi8zqs10fcbvwh5c2qmlz86x66xlp0wamg827r"
}
},
{
@@ -4220,8 +4271,8 @@
20201026,
339
],
- "commit": "375488bed4f279cf56a5c60ff236b320d3bfa169",
- "sha256": "1kms5dkxz5ppf2iw95p4mvnkssp2iwp483mn4x0xvv53lglnjlxw"
+ "commit": "781e07c6972591e4147edf81f6314f297cc4c0df",
+ "sha256": "0gzhf8004fz0a3zi9nihdgyhya01zihhcqfzr2wdp8a9rczlavrb"
},
"stable": {
"version": [
@@ -4244,8 +4295,8 @@
20210731,
609
],
- "commit": "e586473d49acbb16c092017e3e65bf8798c397dc",
- "sha256": "0xpbxzv5rc3260bl3d54n7r3r14r1pkvwz48p2nl15hr2fzxaass"
+ "commit": "69780e11cfccbd05516b7c2724e02242e3d188d7",
+ "sha256": "0vp4hm4xgi7kq97b4gyzafs7sbyd9mjrzwnv8xwacib71jn74vnr"
},
"stable": {
"version": [
@@ -4442,6 +4493,24 @@
"sha256": "0lgfgvnaln5rhhwgcrzwrhbj0gz8sgaf6xxdl7njf3sa6bfgngsz"
}
},
+ {
+ "ename": "audacious",
+ "commit": "cae5fea61b0007626ec1a52783b58165e3bebd9f",
+ "sha256": "13gzvrwm48jxxr0mjammz64blsdb95lhv2hnwhwq2j5bzfy2bjy1",
+ "fetcher": "github",
+ "repo": "shishimaru/audacious.el",
+ "unstable": {
+ "version": [
+ 20210917,
+ 51
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "65c37f12a5c774a0ae434beee27ff7737006dd2f",
+ "sha256": "1pj3ryi1crnfvq3m8wyysb6pyvsp0x2wrvddlnpj031qk7xxdd6h"
+ }
+ },
{
"ename": "audio-notes-mode",
"commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
@@ -4527,8 +4596,8 @@
"keytar",
"s"
],
- "commit": "ab6f89a412ae47d257352b26f9667c3c062a7328",
- "sha256": "1ha0v6np9qwg7lqcj0srq0qljs6yx2rgdj0dzwk74mqlk1xb5lzv"
+ "commit": "a1e0a364a64900839b544d88347fa229b3aa91ab",
+ "sha256": "0cinmvmzmlqms4kx4qc78fzxgwxki4jd6zk62y2rghk307i97qbb"
},
"stable": {
"version": [
@@ -4977,11 +5046,11 @@
"repo": "mina86/auto-dim-other-buffers.el",
"unstable": {
"version": [
- 20210210,
- 1744
+ 20211101,
+ 1155
],
- "commit": "62c936d502f35d168b9e59a66c994d74a62ad2cf",
- "sha256": "07ilprnidpg8wn28h8ra9ml6pxaixg734ybya0gj1ac6sc3ky52s"
+ "commit": "2a19931b275dc3c70c4bb16a3c60046800ba631a",
+ "sha256": "00f0n6pz0qi2fandcgj8skgj169bwxrda62vkrf0frwpavwpmkml"
}
},
{
@@ -4992,14 +5061,14 @@
"repo": "jcs-elpa/auto-highlight-symbol",
"unstable": {
"version": [
- 20210715,
- 1416
+ 20211006,
+ 603
],
"deps": [
"ht"
],
- "commit": "3425ee2eac724d1d64170a8b9d23afc18f8951a9",
- "sha256": "08m6wyfvy6i99q25nk6b7d1bvlfalvdlafh7ajglj6fnpdjmnk0h"
+ "commit": "1a54a61fda6206c5e0fa843d16635133241292ba",
+ "sha256": "0b90i17rvdszdbmm4snzx6z5xgj705ahy0b0brfqs0b9m9s1iy13"
},
"stable": {
"version": [
@@ -5021,11 +5090,11 @@
"repo": "mattfidler/auto-indent-mode.el",
"unstable": {
"version": [
- 20191112,
- 1418
+ 20211029,
+ 11
],
- "commit": "ebb1ee5ca24f3040c34b9455502a0e94f19903d0",
- "sha256": "19p73jws7iddgs14cnfz9lb5ggyicqk08pasf66fkcvyhzydnwkm"
+ "commit": "664006b67329a8e27330541547f8c2187dab947c",
+ "sha256": "07nf07xzc30jnyr9s8vp561vgq64610gdhlwzkbanvnkmj20v9li"
},
"stable": {
"version": [
@@ -5082,14 +5151,14 @@
"repo": "rranelli/auto-package-update.el",
"unstable": {
"version": [
- 20210211,
- 2036
+ 20211025,
+ 1352
],
"deps": [
"dash"
],
- "commit": "22130fb17d00d79497253c94f3e88382cb40c3ac",
- "sha256": "1z0yfhg44zsra1c29w05fa6gkqidmwjaszxvjhkx4n3mzy3vhqf2"
+ "commit": "610576ed3adb6e732bc9288d1f9ec18e2ddef345",
+ "sha256": "0rgdrdsffr4d6lqpxfq8j8r35q1z38ba1985nnnci13lf53ibnvj"
},
"stable": {
"version": [
@@ -5148,8 +5217,8 @@
20210805,
1344
],
- "commit": "0967cc8e5aeaf7f6a36793e2d36717fd125647a8",
- "sha256": "0y1hwwk2rijfpjkagn9c3rfvf350d8nas9g3lqgc7baq9jragizi"
+ "commit": "0f138b6e64d79d16ccdd0b74995d7e30aff9555a",
+ "sha256": "0a2inh57vipf24ahjp00lbb31v26z8gj1931pb5rxz6nry9app3n"
},
"stable": {
"version": [
@@ -5353,11 +5422,11 @@
"url": "https://git.sr.ht/~pkal/autocrypt",
"unstable": {
"version": [
- 20210720,
- 1810
+ 20210917,
+ 1556
],
- "commit": "b2c8d431f89788d1e01d42c55e65612e6fc11b44",
- "sha256": "05378j4pyxb9s8wpffmmrcn09inxjipiw1sy8jqgc5cslpd1jl3g"
+ "commit": "709dc5b3bf5963f527006cbd504e7d6d558562db",
+ "sha256": "0w9rm66d6dvb8qmpsfwxhmjgcpwmn3jkgsiq91qhphwqvmgl3vvy"
}
},
{
@@ -5368,11 +5437,11 @@
"repo": "gbalats/autodisass-java-bytecode",
"unstable": {
"version": [
- 20151005,
- 1612
+ 20211005,
+ 1920
],
- "commit": "3d61dbe266133c950b39e880f78d142751c7dc4c",
- "sha256": "1pf2mwnicj5x2kksxwmrzz2vfxj9y9r6rzgc1fl8028mfrmrmg8s"
+ "commit": "9eaddd63645e64825b2d07805999c5a645248c53",
+ "sha256": "136rcri491hk3dfqy5cggfw9j27cqpqm03s3sp6mgpyfnf2npfy2"
},
"stable": {
"version": [
@@ -5554,27 +5623,27 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20210125,
- 2115
+ 20211020,
+ 111
],
"deps": [
"avy",
"embark"
],
- "commit": "d21277a638827623ab84e9e6341312a2da5062ab",
- "sha256": "12kl6a4y46vldxc25s7npm0748j4hj8g0vvnhfnxy8iq8q2m2i3j"
+ "commit": "0b524bda8d9c5f9e26898e383e98a4ec689fa144",
+ "sha256": "1jgl9n6js71sx4j1wg2nl5aaqmsq2hzna0qawz813637kaylrdxn"
},
"stable": {
"version": [
0,
- 10
+ 12
],
"deps": [
"avy",
"embark"
],
- "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
- "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
+ "commit": "0bd49785a6aa4225e2d2ebcde559c1e2ee006a9f",
+ "sha256": "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36"
}
},
{
@@ -6019,10 +6088,10 @@
},
{
"ename": "baidu-translate",
- "commit": "c9cdf13f64a1de8c57dcb90229da0f62a8e14e7a",
- "sha256": "0m8pqnp57bmk41wij5a0dcilg09p992q5413llfac41b6biqf2yd",
+ "commit": "ccfcd6624cfcfa242f18c3d81127e09b34c333a3",
+ "sha256": "1icsbbwar20qv0cpy3qssmbnwwjm07nqn126a0vb3yyv9amh76xl",
"fetcher": "github",
- "repo": "liShiZhensPi/baidu-translate",
+ "repo": "LiShiZhensPi/baidu-translate",
"unstable": {
"version": [
20190817,
@@ -6341,11 +6410,11 @@
"repo": "bazelbuild/emacs-bazel-mode",
"unstable": {
"version": [
- 20210804,
- 1431
+ 20211031,
+ 1941
],
- "commit": "c4292f69c3bf4faa8393438489a3820c1d52b6ee",
- "sha256": "0pk8j1vang644rpy8ch126lnxjpj5hz0qyy511q43q5fnx9fi30d"
+ "commit": "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18",
+ "sha256": "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"
}
},
{
@@ -6791,8 +6860,8 @@
20210715,
1004
],
- "commit": "eb389204f9dadd8a040a78e79a17732daca7e253",
- "sha256": "1m3v51hnhrfxpqqalkx26d1x6v109w83w7h5mwfa64hmgpax9r7i"
+ "commit": "319c24d9aa46a66d43cf689134c7e1703288d251",
+ "sha256": "033kaj3pbfggm55dgb9xagfdzzmrybsmz7kr358az7233cl9qasm"
},
"stable": {
"version": [
@@ -7027,36 +7096,6 @@
"sha256": "0vcdi0q6rbs3qqlpccy9hdv82zrx61gdj3fn444qashk84s085vf"
}
},
- {
- "ename": "bibtex-actions",
- "commit": "a6050cc5f04343c5a0e3992d223eca3b50acec7c",
- "sha256": "1yfrs54gb38877322rmg6p7lqy91km33vil867qgbyj016ss4x7s",
- "fetcher": "github",
- "repo": "bdarcus/bibtex-actions",
- "unstable": {
- "version": [
- 20210903,
- 1125
- ],
- "deps": [
- "bibtex-completion",
- "parsebib"
- ],
- "commit": "3af0fd5f4255e8c6ffd104cdfa6ab56f522fecc6",
- "sha256": "0x7q3rp92w2698pllnjbn1x7bai8jmnrk72f02i4wjkdm1jwb2jk"
- },
- "stable": {
- "version": [
- 0,
- 4
- ],
- "deps": [
- "bibtex-completion"
- ],
- "commit": "c18b1ad05168597a3cbaee67775d15d2ebb737f4",
- "sha256": "0x45wq2nw753dz6694li3f0zmjm0rljmrr5rvj2qrhgqldlwn6zn"
- }
- },
{
"ename": "bibtex-completion",
"commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
@@ -7065,8 +7104,8 @@
"repo": "tmalsburg/helm-bibtex",
"unstable": {
"version": [
- 20210725,
- 1459
+ 20211019,
+ 1306
],
"deps": [
"biblio",
@@ -7076,8 +7115,8 @@
"parsebib",
"s"
],
- "commit": "12079bb09f203dda5cc2dd003bd60a6ad490f762",
- "sha256": "11y1yif6z26cc502s72p310z9m6130p5kyqb2py74r3x0k0nc61s"
+ "commit": "aa775340ba691d2322948bfdc6a88158568a1399",
+ "sha256": "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"
},
"stable": {
"version": [
@@ -7276,14 +7315,14 @@
"repo": "rnkn/binder",
"unstable": {
"version": [
- 20210131,
- 1227
+ 20211030,
+ 511
],
"deps": [
"seq"
],
- "commit": "52f1c11b01a5f7e7a470a73dec4c3335dea4124b",
- "sha256": "00kjjr28bvimbdhg016n0g6ws1lix87c1bic1xb3nk0bvnbkpwfp"
+ "commit": "8cefdf0959f0da33250044cf4890b69cfdcf0c5b",
+ "sha256": "0q4cz07s8qzkvnym7ab2l111dk88nfigpf0r3x0jcxx2qivs52s4"
},
"stable": {
"version": [
@@ -7385,8 +7424,8 @@
"mmm-mode",
"s"
],
- "commit": "4896ff48712a6be37009605ba697a7104462e2fd",
- "sha256": "0hrqgi3xck8sfs56igxhmvb3vpwm8kj00sqi6f13r7szpxy6cnrq"
+ "commit": "ba58bd051457ba0abd2fbc955ea0e75e78ff2c64",
+ "sha256": "09ncblz9x2qz6lqfywvj3b7qagrq34qb0wg17y03p1r3416g1zwr"
}
},
{
@@ -7502,6 +7541,30 @@
"sha256": "0n0889vsm3lzswkcdgdykgv3vz4pb9s88wwkinc5bn70vc187byp"
}
},
+ {
+ "ename": "blamer",
+ "commit": "4424e068324a241450fb4e8b6cccb697fdb2f187",
+ "sha256": "0fis6f2gpzj88mdf24fbply6a63i753bmlxfwlglbxx5k457wkkj",
+ "fetcher": "github",
+ "repo": "artawower/blamer.el",
+ "unstable": {
+ "version": [
+ 20211102,
+ 2116
+ ],
+ "commit": "9979fbe64cdb7aaa8548a3ab430afbe27d00323f",
+ "sha256": "02anikbwihgficgnvrdhmizf1l5syf4bvzhwfq5ips6b6ldsfxis"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "1117a34dc09ae6b65eca88e2b6199d4b90e52af7",
+ "sha256": "114cbb32y0bd39yajs2m0pbm8fwdx3cfnf0qs1sf343qyzzkb319"
+ }
+ },
{
"ename": "blgrep",
"commit": "e78ed9dc4a7ff57524e79213973157ab364ae14d",
@@ -7897,6 +7960,29 @@
"sha256": "1h3j7a1y5p90dd1vj4kyngj5xvbr2z4dkzkq74s85bqf61j66yw2"
}
},
+ {
+ "ename": "bookmark-view",
+ "commit": "6dfa514cb33a27d778eb4f8cb5c3118050fc41ae",
+ "sha256": "1i9dc9s45l7idsw6zwk2m31p583sfilrwdvpmnhh68yi7k50mv6l",
+ "fetcher": "github",
+ "repo": "minad/bookmark-view",
+ "unstable": {
+ "version": [
+ 20211019,
+ 511
+ ],
+ "commit": "06e41de8ed7050e70627203c93b6132fec7e88d8",
+ "sha256": "07nvbp3b8bf2n5gaiz0fvr2himg624i80im4pzjx81k5fpb16sl7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "06e41de8ed7050e70627203c93b6132fec7e88d8",
+ "sha256": "07nvbp3b8bf2n5gaiz0fvr2himg624i80im4pzjx81k5fpb16sl7"
+ }
+ },
{
"ename": "bool-flip",
"commit": "f56377a7c3f4b75206ad9ba570c35dbf752079e9",
@@ -7929,16 +8015,16 @@
"repo": "jyp/boon",
"unstable": {
"version": [
- 20210831,
- 1634
+ 20210921,
+ 1154
],
"deps": [
"dash",
"expand-region",
"multiple-cursors"
],
- "commit": "05ccaad63d01688b86b7e44955815f97fc011ec1",
- "sha256": "03fy4kwy6vka4w2hmfb6h68hxcm4gslknpdlxq4s8szww7a19cc8"
+ "commit": "ee88a9bbb3d39e2fa216984b6349a122a80e3c99",
+ "sha256": "0y28i8zqy6i93bajqldfwqwvlln75s81aadqq04sy6krc5nlfldy"
},
"stable": {
"version": [
@@ -7962,15 +8048,15 @@
"repo": "emacscollective/borg",
"unstable": {
"version": [
- 20210812,
- 1005
+ 20211001,
+ 2148
],
"deps": [
"epkg",
"magit"
],
- "commit": "0ff7d7e469d75c26caed8d50ca80299cc4a77b88",
- "sha256": "0jsk7dqminrx5l4npxv6ssyll07287ffzbpsim8d76phv279hdc9"
+ "commit": "069859e8857d70ca0cc755466ffdd35c18780607",
+ "sha256": "0ca5gmj437zxmzcvxfnbwpsdxblss9fv3689v9q6dqpy0p9vz0wq"
},
"stable": {
"version": [
@@ -8311,11 +8397,11 @@
"repo": "topikettunen/brutal-emacs",
"unstable": {
"version": [
- 20210226,
- 1538
+ 20211018,
+ 2212
],
- "commit": "8173b7d041cccfa3e5bb3f3f85ec8c6109fd264b",
- "sha256": "1y6b9q3byvwsi6d5sjc642189c5cjbinylqis3d248qws2dp6kvq"
+ "commit": "5ec10f0614978c376df95ed9da05f2227cd7cd62",
+ "sha256": "1gz69g9kz90yriwlyarfd632k19q65sb0r4as25ykq8m67cr5cm9"
}
},
{
@@ -8329,8 +8415,8 @@
20181023,
1222
],
- "commit": "6568844b83dc916a5d6aa69960cbc85ded5f7d73",
- "sha256": "1b76hvk87p3glrlbm8gj4w6r7y7gqa5yq8hdxq31m2swqg8h3k52"
+ "commit": "72adc339c433a98e944cbe76da4c45b9ba4400f5",
+ "sha256": "068a0z66bidzllz8jhkcfqjksjyffhzqkvddpazcbcnj9fq6ircy"
}
},
{
@@ -8514,27 +8600,27 @@
"repo": "plandes/buffer-manage",
"unstable": {
"version": [
- 20201221,
- 122
+ 20210914,
+ 1251
],
"deps": [
"choice-program",
"dash"
],
- "commit": "800f22e024a2f364ac69d9efddd25ea0ac7c49c0",
- "sha256": "04bpqd8rrg32y0z912d6x5bb55asp47vh6lnlwbs5ia0q53fqkgd"
+ "commit": "b903e97e47b463e08468011dc74689d61b2e52ce",
+ "sha256": "0fd1zzhvp2a7dvzm5vcywxx3iigcdz8vp7fw505mwc7hhbxv3gv0"
},
"stable": {
"version": [
- 0,
- 12
+ 1,
+ 0
],
"deps": [
"choice-program",
"dash"
],
- "commit": "800f22e024a2f364ac69d9efddd25ea0ac7c49c0",
- "sha256": "04bpqd8rrg32y0z912d6x5bb55asp47vh6lnlwbs5ia0q53fqkgd"
+ "commit": "b903e97e47b463e08468011dc74689d61b2e52ce",
+ "sha256": "0fd1zzhvp2a7dvzm5vcywxx3iigcdz8vp7fw505mwc7hhbxv3gv0"
}
},
{
@@ -8569,29 +8655,30 @@
"repo": "countvajhula/buffer-ring",
"unstable": {
"version": [
- 20210904,
- 211
+ 20211008,
+ 1508
],
"deps": [
"dynaring",
"ht",
"s"
],
- "commit": "7bc51345993ee83dc721a1e00cd0b998782b16da",
- "sha256": "1ybdpz8cqfklia0m23c4l0dk6ng8jadxdji7z4ms8nkb35y2ykbn"
+ "commit": "7336ae668c0b26e3a53bcd36577ea84a8090ec21",
+ "sha256": "1gzgp7w4j8dlig4psqc9g4ns69dd70hj83347al0jqcnrhw0ysy3"
},
"stable": {
"version": [
0,
- 2
+ 3,
+ 3
],
"deps": [
"dynaring",
"ht",
"s"
],
- "commit": "30572b4d8fff519c4996078a5ad743583fb22b0e",
- "sha256": "1xg6kbjj4fccsr5awnh3ba9x33qznnala3kmnfwpmj94rd72whiy"
+ "commit": "7336ae668c0b26e3a53bcd36577ea84a8090ec21",
+ "sha256": "1gzgp7w4j8dlig4psqc9g4ns69dd70hj83347al0jqcnrhw0ysy3"
}
},
{
@@ -8677,8 +8764,8 @@
20200924,
345
],
- "commit": "a14568210e212a4dfb93898218c4df58ff204089",
- "sha256": "0b7lc14sn88r3wf8yqnx41wr704fm8kd6nxbd4874jaw01yp8x63"
+ "commit": "db7ab16c98307855e7e258f215703a54911be22c",
+ "sha256": "05g1k43ilkfx9mxqmikkd8v6yv89lri5m4mr0prpq4yqb3xv0bx3"
},
"stable": {
"version": [
@@ -8698,8 +8785,8 @@
"repo": "alphapapa/bufler.el",
"unstable": {
"version": [
- 20210722,
- 1703
+ 20210907,
+ 1145
],
"deps": [
"dash",
@@ -8708,8 +8795,8 @@
"map",
"pretty-hydra"
],
- "commit": "b951e621bc4a4bb07babf8b32dc318d91ae261c9",
- "sha256": "14d2mcx6ppjzkpv63m7iir0j2dn549gkxr30bxx8qvc1v7r7r6wn"
+ "commit": "a68e0eb2719c67ab8a3ad56c4036364061d06004",
+ "sha256": "155g4p2yw88cpc8ydfzybc4r6ab2qwcmzdwkrrhnra4psimahjq6"
},
"stable": {
"version": [
@@ -8924,14 +9011,14 @@
"repo": "alphapapa/burly.el",
"unstable": {
"version": [
- 20210726,
- 125
+ 20211005,
+ 1159
],
"deps": [
"map"
],
- "commit": "59fa9e92abdf1e730f8f3908d5a42852c10c5e2b",
- "sha256": "1jbfsr28fhf945lhhbds89a9g5c8rbpmykwg8z5adp8ncfj6pw99"
+ "commit": "c94fe0a355859fe6ddfa34cf7d362dca896f38a1",
+ "sha256": "0jl8dj4mk4zc0kckdj3qmrhc21xxchp4x9cgd9fdhza50icbmy92"
},
"stable": {
"version": [
@@ -9044,28 +9131,28 @@
"repo": "AshtonKem/Butler",
"unstable": {
"version": [
- 20150812,
- 8
+ 20210928,
+ 230
],
"deps": [
"deferred",
"json"
],
- "commit": "8ceb35737107572455cca9a61ff46b3ff78f1016",
- "sha256": "0pp604r2gzzdpfajw920607pklwflk842difdyl4hy9w87fgc0jg"
+ "commit": "10943ccdf2030187b2f7bd97337d78acb7fd31c9",
+ "sha256": "028c5mqhxpq007s7c6rha47zzyj6nsf49mnh99b0mfg9d95s4057"
},
"stable": {
"version": [
0,
2,
- 4
+ 6
],
"deps": [
"deferred",
"json"
],
- "commit": "0e91e0f01ac9c09422f076a096ee567ee138e7a4",
- "sha256": "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"
+ "commit": "454cb9d3980b9ac555f3f77e4e48056de07f051b",
+ "sha256": "1wsk5isza8xqr84w6haal95ssifz6j2lrr5phbsdc90jb9hicbff"
}
},
{
@@ -9696,20 +9783,19 @@
"repo": "ocaml/caml-mode",
"unstable": {
"version": [
- 20210825,
- 649
+ 20210907,
+ 2124
],
- "commit": "3b6913ee6af31139bdee2c236ce2b3a10eabc74b",
- "sha256": "0gsbhwymr2c3fy6mzrvk70q874r9yxf46vlkyljwp1srw095xi7x"
+ "commit": "2905a436e956c5bba16c4633a6e4c4fceefa6535",
+ "sha256": "0i1p4w9zkbvpcplhvkk8n8ymcp8i7cxn2j6can70rlwwbcnyvzjf"
},
"stable": {
"version": [
4,
- 7,
- 1
+ 9
],
- "commit": "9803cf37ac52bbfa5130fde0f228dc51c4590c2d",
- "sha256": "13gz0s7bnjsnab7wn8mk0zva7756hf68izqp9agd8vqnm0c75nlp"
+ "commit": "2905a436e956c5bba16c4633a6e4c4fceefa6535",
+ "sha256": "0i1p4w9zkbvpcplhvkk8n8ymcp8i7cxn2j6can70rlwwbcnyvzjf"
}
},
{
@@ -9757,17 +9843,17 @@
20210707,
2310
],
- "commit": "7cce94fc97d042134e5c7f96a3b9a509340fae1f",
- "sha256": "0rq26qic7w8gninvg7jdkxpn8jv0ih215bijai2vsd66ca1ic6w1"
+ "commit": "a3bb240667686a007f3dd0649a093b7326e130cf",
+ "sha256": "03svmpz905nhpcgriq66sw4la2v58l2490h663yggf313zlplych"
},
"stable": {
"version": [
0,
9,
- 0
+ 1
],
- "commit": "7f554a89784d3455970fe1edfb9f0044ac570aeb",
- "sha256": "038i40apywn8sg95kwld4mg9p9m08izcw5xj7mwkmshycmqw65na"
+ "commit": "b49431c48d40490ef979247d308af63345376cee",
+ "sha256": "0cbiwkmd29abih8rjjm35dfkrkr8c6axbzq3fkryay6jyvpi42c5"
}
},
{
@@ -9808,14 +9894,14 @@
"repo": "kwrooijen/cargo.el",
"unstable": {
"version": [
- 20210813,
- 721
+ 20211007,
+ 739
],
"deps": [
"markdown-mode"
],
- "commit": "794f902bb84437afcc5d677d4a7a996c1f98359b",
- "sha256": "0df3ldjwrk0kdyv417k1aq4nph749cgip48af56pq7rcffccdyk2"
+ "commit": "c5e66a31eff5bdc0cc89e946e6cbf16af91602ec",
+ "sha256": "0kyb492w35igdzn2s1mhjpy7apydw8irv6sa098lwzbq7c9xm484"
},
"stable": {
"version": [
@@ -9868,11 +9954,11 @@
"repo": "fritzgrabo/cascading-dir-locals",
"unstable": {
"version": [
- 20210221,
- 1516
+ 20211013,
+ 1955
],
- "commit": "53967a3f4b2ac742ab8fd6b639c87cbb0229d5f8",
- "sha256": "0pvvwxi7qbbg9h9hax6ispz69h0wk4c0adc26dyj1a2dpdxz2r5p"
+ "commit": "345d4b70e837d45ee84014684127e7399932d5e6",
+ "sha256": "160ay9rf1s4hm9xmmsd7z0mkhqrj9wpm8dpd49hhibcng8hv6z6a"
}
},
{
@@ -9917,8 +10003,8 @@
"repo": "cask/cask",
"unstable": {
"version": [
- 20210903,
- 1216
+ 20211103,
+ 1654
],
"deps": [
"ansi",
@@ -9929,8 +10015,8 @@
"s",
"shut-up"
],
- "commit": "7b637efa35148dca5e6de10d0beba72168762f1c",
- "sha256": "0sv08984k5lpcb56hs09pjwi54nzq232a6gwzikqxs2mylqdaic5"
+ "commit": "467979414c85bb2ce83f5c6ab9f95721164e9efa",
+ "sha256": "0jccv6aprs4fq2m7b2hdxp0dgkjkwjfmlh5ywbl5pacms3c3l82l"
},
"stable": {
"version": [
@@ -10127,8 +10213,8 @@
20210501,
820
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -10176,8 +10262,8 @@
20200904,
1431
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -10446,8 +10532,8 @@
20171115,
2108
],
- "commit": "8c6b2b326ce7b454b31450d093776b9d0bfbcb19",
- "sha256": "1pc5szlb06y27ivwgk76im72x0gq8gcn1p14gw0r3qx9krnj1vla"
+ "commit": "1a3b84397c11d99cbeaadfccd7472ac914f715b2",
+ "sha256": "05xk1zmngk90vdskmj2ldlc14sk13g6adckch7g83nhdhw936x9h"
},
"stable": {
"version": [
@@ -10565,16 +10651,16 @@
"repo": "Alexander-Miller/cfrs",
"unstable": {
"version": [
- 20210609,
- 1805
+ 20211013,
+ 1802
],
"deps": [
"dash",
"posframe",
"s"
],
- "commit": "2cb7f1cbf9292b0efe167ef372cfb5a7600564eb",
- "sha256": "1y75mijqchkzhq185961clyl2idj22kz0a1gp69y29qhhfvs43yk"
+ "commit": "c1f639d7bfd3e728cf85dbe224b06a4be76158f4",
+ "sha256": "1bic67769xvjdhinq88jqxnb4dql8gssmnx1wvrl69338zjqqjzg"
},
"stable": {
"version": [
@@ -11237,8 +11323,8 @@
"repo": "clojure-emacs/cider",
"unstable": {
"version": [
- 20210902,
- 1412
+ 20211103,
+ 2049
],
"deps": [
"clojure-mode",
@@ -11249,8 +11335,8 @@
"sesman",
"spinner"
],
- "commit": "76dea32c7757949a708d27d1f8707782edad5650",
- "sha256": "080kcbqiiikna4r6c9a1q0hnrlkpmzz4xixgrp54ld7nzp59ls48"
+ "commit": "7228402c093a7660a6bee6e4c1c69cce81703013",
+ "sha256": "174az297qq5x5x13ga99zvw7pn4n7aazplby348w79sih5flkl1z"
},
"stable": {
"version": [
@@ -11511,6 +11597,25 @@
"sha256": "0j184sgqxh3f34ni6bfb69mfir94glcyl0wpqmpsn9siq54s82ag"
}
},
+ {
+ "ename": "citar",
+ "commit": "b2aa35ca3930920d61e50dd75394f70ccd1c737b",
+ "sha256": "0x66iwimvrihyxs5h816f2k2f2wgdn1kmiahvh5nfff6kx1xdplj",
+ "fetcher": "github",
+ "repo": "bdarcus/citar",
+ "unstable": {
+ "version": [
+ 20211101,
+ 1853
+ ],
+ "deps": [
+ "bibtex-completion",
+ "parsebib"
+ ],
+ "commit": "e2e86bb9ad854548253322751f433b0b940fca1a",
+ "sha256": "1yfmk1calvzh44pzh3041lj5vrrgs67m6iq93v7knl59ghy2japw"
+ }
+ },
{
"ename": "citeproc",
"commit": "20aa56e9a4809cee1082224b1b4e65921a48bda1",
@@ -11519,8 +11624,8 @@
"repo": "andras-simonyi/citeproc-el",
"unstable": {
"version": [
- 20210904,
- 1235
+ 20211104,
+ 751
],
"deps": [
"dash",
@@ -11531,8 +11636,8 @@
"s",
"string-inflection"
],
- "commit": "7908e48a82dc615cc643d03e63107dcbf499caf8",
- "sha256": "05900z5j1px6rnm1xby5krhz1j6rb4fqfhdzra31zs3zj063bq8j"
+ "commit": "e93b45fe125d2ed61c60136638b3836ec770f879",
+ "sha256": "176h3xs9jgxcgslp9vklzzsk5s02nf8zdljcjgnjkfxrjng26s8b"
},
"stable": {
"version": [
@@ -11598,20 +11703,19 @@
"repo": "universal-ctags/citre",
"unstable": {
"version": [
- 20210902,
- 751
+ 20211010,
+ 1654
],
- "commit": "09b618f73c47abebcd26c8fc8484a5816c36ab6f",
- "sha256": "1ib748is5983fzgjpbdnki9x3s232gdw58af93jhw34kmakrlgac"
+ "commit": "047aece5a6d8e1ed267e542c53f5f013293fce21",
+ "sha256": "09szz5m8gw3j86c3pd449wghrff1zbs1nxypbxxagry59kvsdxkf"
},
"stable": {
"version": [
0,
- 1,
- 1
+ 2
],
- "commit": "b74147e2a166e27c7c6074ffeaa5f273d4f938bf",
- "sha256": "04vpcn8x188kl43pra3y57n1kky1fm96q1ym8f8kq93qnbjz0b9x"
+ "commit": "32b79a94db62194d96e73064ab804b7efa920795",
+ "sha256": "10lryjy3771hs8lavh7818a5ia9ia1qwrhzfmgr5sb4c0gn36wcg"
}
},
{
@@ -11952,8 +12056,8 @@
"repo": "clojure-emacs/clj-refactor.el",
"unstable": {
"version": [
- 20210628,
- 1154
+ 20211031,
+ 723
],
"deps": [
"cider",
@@ -11966,14 +12070,14 @@
"seq",
"yasnippet"
],
- "commit": "466822ff6f9da584f7cf72c868017b8840574dbd",
- "sha256": "1jvmqb4sj3www6fq8srq13yjixp4ixx5i6b0xhiv2bi6r41m3ina"
+ "commit": "9eab9469fe2a06275b7cac7e53eb48ceb5724f81",
+ "sha256": "0gg6pavih3nifcgdpafsl463f50klaf7mhmh9iz9sz45iyfz2q1i"
},
"stable": {
"version": [
- 2,
- 5,
- 1
+ 3,
+ 0,
+ 0
],
"deps": [
"cider",
@@ -11986,8 +12090,8 @@
"seq",
"yasnippet"
],
- "commit": "b24ce76acefe792975f00147c94b4dd784e65b80",
- "sha256": "1pyskl9xcqrk6r2zbp5i9402inngqps7wwb4nbdbrgi4di9b8in7"
+ "commit": "b1503962c90f1c88a4f32b8d32cf87c48437c158",
+ "sha256": "0i759k6qm752lmdsxrgp0bh3akl01as8k8q6x1a7cpdh6yddwajs"
}
},
{
@@ -12214,11 +12318,11 @@
"repo": "clojure-emacs/clojure-mode",
"unstable": {
"version": [
- 20210821,
- 2010
+ 20211028,
+ 1217
],
- "commit": "e1dc7caee76d117a366f8b8b1c2da7e6400636a8",
- "sha256": "101fallqv90dgjdiq24hc63yw2a3df12y5cclcg9p4hk8rinc80x"
+ "commit": "feb03a603b2080b36492b538aeb2041bac4d129c",
+ "sha256": "1x2fqc003hkvk0gqqgzy0xnya1mx6mi864gicvf2fxbvvwl28vvh"
},
"stable": {
"version": [
@@ -12244,8 +12348,8 @@
"deps": [
"clojure-mode"
],
- "commit": "e1dc7caee76d117a366f8b8b1c2da7e6400636a8",
- "sha256": "101fallqv90dgjdiq24hc63yw2a3df12y5cclcg9p4hk8rinc80x"
+ "commit": "feb03a603b2080b36492b538aeb2041bac4d129c",
+ "sha256": "1x2fqc003hkvk0gqqgzy0xnya1mx6mi864gicvf2fxbvvwl28vvh"
},
"stable": {
"version": [
@@ -12364,26 +12468,26 @@
"repo": "emacscollective/closql",
"unstable": {
"version": [
- 20210616,
- 1951
+ 20210927,
+ 2245
],
"deps": [
"emacsql-sqlite"
],
- "commit": "e2687e7ff958a19e6e5d6552c4e0b7b33c424bab",
- "sha256": "1ghqxnn39i032ibm5sbnv67r2dd2hgfnfpqbmb8wzg9wc6smnacq"
+ "commit": "15f906c393db1a0fb6577afc3cf59466531eafef",
+ "sha256": "1xa9rzyfm6bfskm2mfckd7jwmjwcraky7vsp7yyrnrqfksrl5na8"
},
"stable": {
"version": [
1,
- 0,
- 6
+ 2,
+ 0
],
"deps": [
"emacsql-sqlite"
],
- "commit": "e2687e7ff958a19e6e5d6552c4e0b7b33c424bab",
- "sha256": "1ghqxnn39i032ibm5sbnv67r2dd2hgfnfpqbmb8wzg9wc6smnacq"
+ "commit": "15f906c393db1a0fb6577afc3cf59466531eafef",
+ "sha256": "1xa9rzyfm6bfskm2mfckd7jwmjwcraky7vsp7yyrnrqfksrl5na8"
}
},
{
@@ -12547,17 +12651,19 @@
20210104,
1831
],
- "commit": "86ee38d75678d68bb1a79b9fa443b42723b09f23",
- "sha256": "1lqkaar17d4jvabhfwir6s47a618a3bhh18m3xvv08ryjw0nc3d2"
+ "commit": "909f435b9302f0cd02a73f34bc3316a8e1620bae",
+ "sha256": "16435f7clz33gl9j1l86ng5i4cgj7qgcv49335k39wjjzqdhqqa2"
},
"stable": {
"version": [
3,
- 21,
+ 22,
+ 0,
+ -1,
2
],
- "commit": "31c5700d4322ecfa169db2fccf385d6eced4e737",
- "sha256": "0vjrv831qjc0fkayd096nmb0l0q3aphbd8gp5c6xk1hckpgzgwl0"
+ "commit": "28a033cc7de056d1a74857606397bb294ebe27ac",
+ "sha256": "18ir7q31l9jqshx3hixiaq9nvlfasxqrmr0a57q852xb0ad31gcj"
}
},
{
@@ -12625,11 +12731,11 @@
"repo": "tumashu/cnfonts",
"unstable": {
"version": [
- 20200824,
- 240
+ 20211102,
+ 2232
],
- "commit": "b967605d571d827c1cb041c174fb363985758729",
- "sha256": "1h4c6czj7zr1p8b0233rxmczkaf7hh72869lijsvkvx9xmq9pk8w"
+ "commit": "46c9034f28cc559f8c93650baa1a64a42b06c535",
+ "sha256": "1dy6n1cdn05bdr4f1wk72gav5mnfbm23i6cp2vh6nd1nq5kkkchp"
},
"stable": {
"version": [
@@ -12652,8 +12758,8 @@
20180304,
1155
],
- "commit": "634ace275697e188746ca22a30ff94380ec756be",
- "sha256": "1mrydmzldgabkkdpmlwfrfb6iddj4by7scc14k9bak5y6hj6ix7l"
+ "commit": "88ef936373a5493183d49ec69ca541bcc749a109",
+ "sha256": "0mm9lj5mvidb69zq6a9daibdm4l6y4vw389hr5052qnj0qljb757"
}
},
{
@@ -12709,11 +12815,11 @@
"repo": "astoff/code-cells.el",
"unstable": {
"version": [
- 20210902,
- 740
+ 20211014,
+ 738
],
- "commit": "4e973e01220ad7a3e2d0d50a9c5192a9385e0ede",
- "sha256": "0vqradjcflvajd5i069vlkynd6kyyfvmip39xr5bhrb4my07z1wb"
+ "commit": "68148cfc1f0723e554a09cbae4c732cfc348ecfd",
+ "sha256": "07y8ry0rwlxqdw39fi2maw114yyga8yzlbrxypw6irhnpm8mscjw"
}
},
{
@@ -13054,11 +13160,11 @@
"repo": "purcell/color-theme-sanityinc-tomorrow",
"unstable": {
"version": [
- 20210528,
- 2344
+ 20210907,
+ 1208
],
- "commit": "c1a1091e39ecd69822e1494d8b6f0bbcb21eb9b1",
- "sha256": "01afmfisii9cyri198s2g9rivkisfn6d3g40nyi0sgsx14jbyddz"
+ "commit": "e2857533627f3eda3e9e21de7f2a99b8634c1c15",
+ "sha256": "0hi1wg9v5ax71q14jk6mpp3mpfx2ma490l0kxdq2wkajkmh4apr1"
},
"stable": {
"version": [
@@ -13163,8 +13269,8 @@
"deps": [
"s"
],
- "commit": "e91006ba4a77b8ea8c4fe4085ba5676c97cf0315",
- "sha256": "0icjcmfmwdwas59425baf2s3zw2iblidx6v3jy6k53y1ac5qn7iy"
+ "commit": "19bec333477f36e14acc9d00813e4bcc6201692f",
+ "sha256": "1wb7kig728dbggd2q24kgy6381gg2zpqdr9az5q3yg0326zns62y"
},
"stable": {
"version": [
@@ -13226,11 +13332,11 @@
"repo": "matthewbauer/comint-hyperlink",
"unstable": {
"version": [
- 20191104,
- 2224
+ 20211026,
+ 100
],
- "commit": "a7878825788ff6b9d6b8a5adf0214a028bad895e",
- "sha256": "19fww5aciqx4h67hpmzf564n0ygzg69v1sk1qjyhbs27pq5zrjmq"
+ "commit": "905f2db1f95950899301b9f71faed9e9362cf5dc",
+ "sha256": "1d5a0c33zdziz1yw2nv65qyi122zz7b5y9vgsx6kfz7xj32sc8s5"
},
"stable": {
"version": [
@@ -13498,11 +13604,11 @@
"repo": "company-mode/company-mode",
"unstable": {
"version": [
- 20210826,
- 2148
+ 20211024,
+ 2305
],
- "commit": "faf897296faed0b3342e1c325fc05727029ce7fe",
- "sha256": "11qxc7gq97z9k1j63zrf4fh485qnapcz4qzjzyffwk8svl48gh0g"
+ "commit": "811beeade86669e20da35efed5b00de6a5e305ab",
+ "sha256": "0v5y92c328x3fn2z4hxiwv0qgjp85r4g28wp6b5cph8azfvzgnk9"
},
"stable": {
"version": [
@@ -13672,17 +13778,16 @@
"repo": "sebastiencs/company-box",
"unstable": {
"version": [
- 20210712,
- 843
+ 20211020,
+ 2007
],
"deps": [
"company",
"dash",
- "dash-functional",
"frame-local"
],
- "commit": "156f65cfbf690ed84e0e84f90277d665d873ff24",
- "sha256": "1lafm8kpn0i688gk53711mazksy96c7fmr8qhjmdxpxwdk56jcy2"
+ "commit": "f9cbbc7df8efbb56a8d31a5b422d158660d9109e",
+ "sha256": "01q5jxas8ak7yk3313mmcjmqspckjwv959w8zqvm08r8jgmcl1bv"
}
},
{
@@ -13957,8 +14062,8 @@
"emojify",
"ht"
],
- "commit": "cebfff07a21f885f87a692ec4d5e7f84468c6565",
- "sha256": "1ishjn1biv9irm3ih96b0larsz6jq81lxd7jjkh4nqjs1207gcij"
+ "commit": "5cc4bd886c1fc373eb1642ab0f0ba33de4f5d3d2",
+ "sha256": "0d383561fb8nfgqns3j9s0sjwgqchwpil0gs4n4vw31yaphyy83l"
},
"stable": {
"version": [
@@ -14053,30 +14158,30 @@
"repo": "jcs-elpa/company-fuzzy",
"unstable": {
"version": [
- 20210716,
- 926
+ 20211104,
+ 1200
],
"deps": [
"company",
"ht",
"s"
],
- "commit": "b4fd1c8d128ae345176f713dad2c04944a9cf27c",
- "sha256": "1fhkc49xp4yfqry6a0w7bsz80c7v5kc60jzd3ran0yjr9q9yzx8i"
+ "commit": "44ef04f5f21285d68bd419f4f153e192777d9991",
+ "sha256": "1gca3i7ylk28wx7wa722ismy6irya96k8qf1zjh851sn2m7bkfin"
},
"stable": {
"version": [
1,
2,
- 1
+ 2
],
"deps": [
"company",
"ht",
"s"
],
- "commit": "4d6d56a8b92af72aa3b1e0af1a7e7add965bf468",
- "sha256": "1yr050zgygjvhwjmm2yd5p889y24vars90cr4pyqc4zhmgzrdkw5"
+ "commit": "ea577f13d0a47b6efbe2974a5a347a87d27c0c42",
+ "sha256": "1g6p5868qb2001ippdcnsscsm15d1fwl0iyilq7jk3ys68j30pr3"
}
},
{
@@ -14119,21 +14224,21 @@
},
{
"ename": "company-go",
- "commit": "ef45683cbfe82bf8a9d6f3f1c59e3cf340accbe3",
- "sha256": "1zhdckq1c9jzi5cf90w2m77fq6l67rjri4lnf8maq82gxqzk6wa5",
+ "commit": "552d033e573ff96a60a37d588a6c544a9263bf05",
+ "sha256": "1fdc1cjgyxj4a19zv401p8z688razj8q2vif4pgc8kd59wwqcpqi",
"fetcher": "github",
- "repo": "mdempsky/gocode",
+ "repo": "emacsattic/company-go",
"unstable": {
"version": [
- 20190203,
- 19
+ 20170825,
+ 1643
],
"deps": [
"company",
"go-mode"
],
- "commit": "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c",
- "sha256": "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb"
+ "commit": "31948b463f2fc18f8801e5a8fe511fef300eb3dd",
+ "sha256": "0jd7swa2s9a6lci81hfhfnnkxbmca2kh07hsj7c5lv2r9adxrwxw"
},
"stable": {
"version": [
@@ -14267,8 +14372,8 @@
"company",
"jedi-core"
],
- "commit": "4775b659564f1d57bc68c88c9faabf44c9fe4e4d",
- "sha256": "03ii2r9wnfcywk1a0c46ga4nimq9jrrh5ljzsi079j0rnvj0hsj0"
+ "commit": "ea22b1f7a980c49aaf2c5e840e4536577f6602f6",
+ "sha256": "08h6s06fkbyif9714p9b830frbhri5zfn3822nmp6ydl7jb0b1pw"
},
"stable": {
"version": [
@@ -14314,14 +14419,14 @@
"repo": "debanjum/company-ledger",
"unstable": {
"version": [
- 20200726,
- 1825
+ 20210910,
+ 250
],
"deps": [
"company"
],
- "commit": "9fe9e3b809d6d2bc13c601953f696f43b09ea296",
- "sha256": "08cs8vd2vzpzk71wzcrghn48mzvbk6w2fzlb3if63klhfcfpngc8"
+ "commit": "c6911b7e39b29c0d5f2541392ff485b0f53fd366",
+ "sha256": "08g4f8w9lhfypy4m3vcfg8d8gqn7w2g8qjksl7bzcnwg2d0yqld8"
}
},
{
@@ -14601,8 +14706,8 @@
"cl-lib",
"company"
],
- "commit": "e29075f810af73f6bf7803eebf15d96bffee7154",
- "sha256": "08vfdp7q6x5fk2nn5dl884cyysxrl2gw8f16g7wqvf7v24jmx71d"
+ "commit": "933805013e026991d29a7abfb425075d104aa1cf",
+ "sha256": "0qzb6wlh2hf0kp9n74m2q6hrf4rar62dfxfh8yj1rjx2brpi1qdq"
},
"stable": {
"version": [
@@ -14735,15 +14840,15 @@
"repo": "tumashu/company-posframe",
"unstable": {
"version": [
- 20210419,
- 607
+ 20211103,
+ 232
],
"deps": [
"company",
"posframe"
],
- "commit": "c7a820a35ff132aaec53c81e05afc829de39eb68",
- "sha256": "0fyc7c4r4jfa5y0x9lfcqlx0qazg1d4il5p0bdw4hdcpjd2h26ys"
+ "commit": "e104c0d0ee8db4a5fc852b3fc951e52989ee8755",
+ "sha256": "05q2v2faa7ydx242208wxir8fkkrr34n773fllkkp9m228hc5mv7"
},
"stable": {
"version": [
@@ -14774,8 +14879,8 @@
"company",
"prescient"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -14856,8 +14961,8 @@
"company-quickhelp",
"popup"
],
- "commit": "2e82273e206f78f015e67f799f51e3f3458d6d94",
- "sha256": "0miylw8lhs4jgfa47mis6k68jm69jwbmpgms0dl9rnjgpmyvr133"
+ "commit": "40c2fc569bfc0613b8fac4b9d6242f6682f50827",
+ "sha256": "0kd2f1qhxmg1x9wlz1gqi5m772sk865csry6zm6xznlzbggc7h5a"
},
"stable": {
"version": [
@@ -14963,8 +15068,8 @@
"company",
"rtags"
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -14987,16 +15092,16 @@
"repo": "Alexander-Miller/company-shell",
"unstable": {
"version": [
- 20170518,
- 541
+ 20211013,
+ 1725
],
"deps": [
"cl-lib",
"company",
"dash"
],
- "commit": "52f3bf26b74adc30a275f5f4290a1fc72a6876ff",
- "sha256": "0nv8vwmqgdb33cl1wfdbmncbrpfdciid48f6w8vmw39ks53i2z32"
+ "commit": "a77f4de75912aa87314cde92c603b831d5050246",
+ "sha256": "1mh93l6xn9frfvw86vbvs1fz544c7ylja118iaccfl42gr2ypsw9"
},
"stable": {
"version": [
@@ -15029,8 +15134,8 @@
"company",
"solidity-mode"
],
- "commit": "6f7bd1641e5282ec5163188d8b8c2f6dfddc2e36",
- "sha256": "0rkw21pic9nypv7vz06chyn9mjl560a4dayb84gj5w6v8gfznrcw"
+ "commit": "9c77b390eab999e5e54dc5c1068f57201e6628bf",
+ "sha256": "0i6kjvd82bq3djh4makf4czdbmg3sb5q74wbdfhdyikx6kkzfj0m"
},
"stable": {
"version": [
@@ -15411,14 +15516,14 @@
"repo": "mkcms/compiler-explorer.el",
"unstable": {
"version": [
- 20210513,
- 409
+ 20210916,
+ 1316
],
"deps": [
"request"
],
- "commit": "70cae42f0d624b6ce03b55c35ba9a6c2318a827d",
- "sha256": "0k2249iyjrgghsp6yy7qrlc7n7m7b5vp44mda40d3058jv6ryxgi"
+ "commit": "9ea0cc78ac40f667dfaf9277758a22b9058ca434",
+ "sha256": "1b6cj5scc5n78kmdz9ch574ln91v9hj4svk6455crs8rpqgs7k47"
},
"stable": {
"version": [
@@ -15728,19 +15833,38 @@
"repo": "minad/consult",
"unstable": {
"version": [
- 20210905,
- 1657
+ 20211103,
+ 1226
],
- "commit": "c89fd0a1299f8bd6a123427c6ce48239702dfe84",
- "sha256": "0425syvnw592kwmci87lwqvgxf9bvl8v6cmzdf4g3kkhva2y0sym"
+ "commit": "3b18b04524f0e963070ab6c61d4d3a3f10507d12",
+ "sha256": "07m3v8lg91ql0j0vicf59cavhyn0xva8qd83xxlngnsivqsa0h63"
},
"stable": {
"version": [
0,
- 11
+ 12
],
- "commit": "105a1ac50169382368a36ed53d7af908d02ffa07",
- "sha256": "01kx3zg858bqyajglamxn319qabycnabzj73kl4x7sd55p2yi179"
+ "commit": "ebb62563127a4b9442148372f897efb7baef61d2",
+ "sha256": "1bzlqn7k5akhyl763q29853yh5s8rmk6y1ncmy3am940wfypxjic"
+ }
+ },
+ {
+ "ename": "consult-company",
+ "commit": "4d458d8e66f2ad14af59ad238505dbc0729058c8",
+ "sha256": "1i7zah2lrmd95y8aqg3lv45z45br4bcgfghnwy02ak489xw1ylnv",
+ "fetcher": "github",
+ "repo": "mohkale/consult-company",
+ "unstable": {
+ "version": [
+ 20211021,
+ 1152
+ ],
+ "deps": [
+ "company",
+ "consult"
+ ],
+ "commit": "ef1c553b4a72b23297b55708bf6f6dd1b27cc68e",
+ "sha256": "1wqs6ryx7vihmcd11x6ankfrhwn6bhvkld2hw390y1bmxq30pw3n"
}
},
{
@@ -15751,15 +15875,15 @@
"repo": "karthink/consult-dir",
"unstable": {
"version": [
- 20210820,
- 339
+ 20211007,
+ 2352
],
"deps": [
"consult",
"project"
],
- "commit": "e87362a89c91b33fa683f58ee05947ae4565fda3",
- "sha256": "11zrwchwdzbrq97dvi2kk8ff1mic3nx8pl103w3i4c8h2w6a51nx"
+ "commit": "08f543ae6acbfc1ffe579ba1d00a5414012d5c0b",
+ "sha256": "1cff4ssrn1mw2s5n090pdmwdirnfih8idg5f0ll2bi2djc4hq5kn"
}
},
{
@@ -15777,8 +15901,8 @@
"consult",
"eglot"
],
- "commit": "28a09cc839a9010df1a00a55528697ab34e1b259",
- "sha256": "0vfr9cj2xzkpias7p25bl1yjbykg1lpphmn4a3p3sdmyh32zjy2s"
+ "commit": "f93c571dc392a8b11d35541bffde30bd9f411d30",
+ "sha256": "1jqg6sg6iaqxpfn7symiy221mg9sn4y1rn0l1rw9rj9xmcnng7s0"
},
"stable": {
"version": [
@@ -15865,29 +15989,29 @@
"repo": "gagbo/consult-lsp",
"unstable": {
"version": [
- 20210630,
- 1151
+ 20211103,
+ 1200
],
"deps": [
"consult",
"f",
"lsp-mode"
],
- "commit": "e8a50f2c94f40c86934ca2eaff007f9c00586272",
- "sha256": "1xkkybfdzr1xqhvc2bamp253icm75dz7bkdz6bv8xj8688p8vrm9"
+ "commit": "91deff6bcaee55ee4e33a4a9fe943d8de305e26c",
+ "sha256": "10nwwkdx537xr9d5zi5drbw4whrfha27kq0xd1jkvvdsqiaydxrl"
},
"stable": {
"version": [
0,
- 4
+ 5
],
"deps": [
"consult",
"f",
"lsp-mode"
],
- "commit": "e4a0b9403477fe90741ac84d0d2ac3729122b363",
- "sha256": "00rrc17axn7pmvzy1q95nf0w036cx7fhxwhimamh9cmijkdsf5w5"
+ "commit": "eb5dae1f98dc1d4bdbdd374657e1a01b6cd2f066",
+ "sha256": "10x0mxhcz5mmgmw3y8xqcd5sg8m06h510w575dya1dvcf3aj9fzw"
}
},
{
@@ -15898,27 +16022,46 @@
"url": "https://codeberg.org/jao/consult-notmuch.git",
"unstable": {
"version": [
- 20210815,
- 1919
+ 20210909,
+ 101
],
"deps": [
"consult",
"notmuch"
],
- "commit": "5e5f42faaae3e0d372f103b9de276d1f7f1c18e0",
- "sha256": "1q8ynrrii92x0wv6hm8zcy0nydshg6jqibm7a85vhbnanh161qx1"
+ "commit": "015642e88a48b1e3b4791a5badd8dbdfe6a6037e",
+ "sha256": "1nbyd21n3dfdikr2dv7bcb2rg2sar22dmirrlkd5bz0qniaqim4n"
},
"stable": {
"version": [
0,
- 4
+ 5
],
"deps": [
"consult",
"notmuch"
],
- "commit": "a5133b9e1f19b6d51e51dd5c5e3a4f236ca29b57",
- "sha256": "0x2lz2df1rjq3vdxvqqnxqxh257hq5iyx1w3yc85w7lmnb59gbvy"
+ "commit": "f978408fb4f7bae1b2d2913d71d7a816c18b78b6",
+ "sha256": "04ha4mysxvfz6yzbkgrl1mcwic1lwr1xx6gdy5rl6hn1wwnwam4p"
+ }
+ },
+ {
+ "ename": "consult-projectile",
+ "commit": "ba7bac7fc95ba11094d3ad64d658be0ec7a16817",
+ "sha256": "03v8srjc8glybfmnfh9nwxz9fkvkrbyji19xvglzl0cy4dwivca9",
+ "fetcher": "gitlab",
+ "repo": "OlMon/consult-projectile",
+ "unstable": {
+ "version": [
+ 20211018,
+ 1718
+ ],
+ "deps": [
+ "consult",
+ "projectile"
+ ],
+ "commit": "655b328ce3fe51a8ff89d7b0a839bc8dfe9e51c0",
+ "sha256": "1gy6vg5vrd9i0y2sck20fbqrdz0bgcr6647rvnl2nvpv3shzlsbj"
}
},
{
@@ -15958,6 +16101,25 @@
"sha256": "1vxg86wv6f96bva0d1xxhisk525chwhdl4nq77xhriflq65mcmi3"
}
},
+ {
+ "ename": "consult-yasnippet",
+ "commit": "da399d9149261f6fded5a465ba1b6f2353abfa5a",
+ "sha256": "08piq6zfj8ixp8shyc69hmmxqqci0xp5mmg51ajddvz8k0sndgn1",
+ "fetcher": "github",
+ "repo": "mohkale/consult-yasnippet",
+ "unstable": {
+ "version": [
+ 20211002,
+ 1849
+ ],
+ "deps": [
+ "consult",
+ "yasnippet"
+ ],
+ "commit": "5a053c0867a80832de04ef58a084b231aced78cf",
+ "sha256": "12xdk8z0nzb1in2zgqvlqk8dwqlg3y7jg9c26lgg174qi5h995r5"
+ }
+ },
{
"ename": "contextual",
"commit": "de20db067590624bbd2ca5a7a537b7f11ada84f2",
@@ -16047,6 +16209,36 @@
"sha256": "0pqdh9bx2j9kla57sn349m90azk02wajapmazdm26cjdc2npw7jh"
}
},
+ {
+ "ename": "conventional-changelog",
+ "commit": "edbcd5c7d573bb4cb83260cd312144e707bfe897",
+ "sha256": "0bwyla7v8jvdm1xysg25fv0srpsn5wpi4dzqv6gz22z6rz4l3mp5",
+ "fetcher": "github",
+ "repo": "liuyinz/emacs-conventional-changelog",
+ "unstable": {
+ "version": [
+ 20211103,
+ 1242
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "9db9dcfdff2ff8cf6a88e938646cb26ce0f61774",
+ "sha256": "1qm6v88mz6bxz0yg2yw5xfiz5jjnz3i9vwaa3irnywzs6prw7pa4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "fa0eaa173c3b89be2ecd0db55511e1d896f9a422",
+ "sha256": "01qngmxaw7am5idr1mlb3lb39bgxfc8l802cjksp7k640gpmkk31"
+ }
+ },
{
"ename": "copy-as-format",
"commit": "42fe8a2113d1c15701abe7a7e0a68e939c3d789b",
@@ -16225,15 +16417,15 @@
"repo": "conao3/cort.el",
"unstable": {
"version": [
- 20200904,
- 609
+ 20211020,
+ 18
],
"deps": [
"ansi",
"cl-lib"
],
- "commit": "98532580e0425ac96f45f73ef7cebf80cb4101e2",
- "sha256": "0pwdh0c0ilrp8bx594qw2684q009ls1ras8ha2xavnwxph84jpd2"
+ "commit": "3f64a7b03a4c5b768ec21fd5987acd0d62d16c7b",
+ "sha256": "1bkyx8sd2qqnhmmqbl9wyxk3xhrplq9zprmfpyhf5k0zin3zd31y"
},
"stable": {
"version": [
@@ -16271,15 +16463,15 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20210819,
- 1455
+ 20210928,
+ 949
],
"deps": [
"ivy",
"swiper"
],
- "commit": "6a8e5611f32cf7cc77c2c6974dc2d3a18f32d5a5",
- "sha256": "0mwrvcnpl7cr8ynhx8ilmlbjqmggxccwa6w8k15j5i640chl19xh"
+ "commit": "1c6b3da377a840e898b14020133f59fca9ceea1c",
+ "sha256": "1w8x2qk8lafnn6ksv1anixayyl476y1j6hp2amfnqmdkh0vnh63v"
},
"stable": {
"version": [
@@ -16344,6 +16536,24 @@
"sha256": "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"
}
},
+ {
+ "ename": "counsel-chrome-bm",
+ "commit": "1aad75e6ee13c7b26a29cf85d7b5666013f4a9a0",
+ "sha256": "00gb1nmvxv47wj5pnc4d7rbggv36ql6g3lb1qdah882lh8hqj7bx",
+ "fetcher": "github",
+ "repo": "BlueBoxWare/counsel-chrome-bm",
+ "unstable": {
+ "version": [
+ 20211022,
+ 1427
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "72b31889581f20f4037c0361f5259ff3633bc128",
+ "sha256": "0crnrp5gd055gpxj4qiiwlik8llqhs5dyixfa8r8mzaxanv6bdg9"
+ }
+ },
{
"ename": "counsel-codesearch",
"commit": "d3404c3cdfa6654ad80378ab258f0df68a6beeb9",
@@ -16447,8 +16657,8 @@
"ht",
"s"
],
- "commit": "413047aedb20e85555785123dbd54eb8e91f6014",
- "sha256": "02ni7lmm1mpxwha39cnbqjwzgdff55af1d9b05dkl0n01q9vglfg"
+ "commit": "378803ac0040c04762ff001ab1aca7d4325ecf22",
+ "sha256": "121cgrlwp7sigs26hvavgnbgmbz0fhv2cpagx73gm1vrnr306s45"
},
"stable": {
"version": [
@@ -16473,26 +16683,26 @@
"repo": "redguardtoo/counsel-etags",
"unstable": {
"version": [
- 20210725,
- 821
+ 20211010,
+ 1332
],
"deps": [
"counsel"
],
- "commit": "84fff26b0f207131c2e6669bd7f510eac43973aa",
- "sha256": "07445bbr68q1pnwpj5bwqmml9ky1gq67g24zswv8fylnzjkhy9wc"
+ "commit": "98860e5981b07952b5c15361cdb996741e5842c5",
+ "sha256": "056zqa9rq32vrmqq7i1yi37l5ypjdk2dgcd0yl9wlcl339cdzwsq"
},
"stable": {
"version": [
1,
- 9,
- 17
+ 10,
+ 0
],
"deps": [
"counsel"
],
- "commit": "84fff26b0f207131c2e6669bd7f510eac43973aa",
- "sha256": "07445bbr68q1pnwpj5bwqmml9ky1gq67g24zswv8fylnzjkhy9wc"
+ "commit": "dc7b9f9b381dffd19c79cb7ee53b79034590d309",
+ "sha256": "1zmx7vfi02c8k9wnbsmka5yx3ci8fv9wl8r0cc28jn40vgrivn8c"
}
},
{
@@ -16694,28 +16904,28 @@
"repo": "ericdanan/counsel-projectile",
"unstable": {
"version": [
- 20201015,
- 1109
+ 20211004,
+ 2003
],
"deps": [
"counsel",
"projectile"
],
- "commit": "06b03c1080d3ccc3fa9b9c41b1ccbcf13f058e4b",
- "sha256": "10afil6grwxj1x8fxd3ar7ikw3s3hzrkjsjin8wzchbz04389l7s"
+ "commit": "e30150792a96968f55f34638cbfe63eaa30839cc",
+ "sha256": "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"
},
"stable": {
"version": [
0,
3,
- 1
+ 2
],
"deps": [
"counsel",
"projectile"
],
- "commit": "d71a3274cfa9d7425f1bcee3eb2dfed9714ac16d",
- "sha256": "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"
+ "commit": "e30150792a96968f55f34638cbfe63eaa30839cc",
+ "sha256": "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"
}
},
{
@@ -16867,16 +17077,16 @@
"repo": "AdamNiederer/cov",
"unstable": {
"version": [
- 20210330,
- 44
+ 20211026,
+ 308
],
"deps": [
"elquery",
"f",
"s"
],
- "commit": "62a4650f97eddebf6cd04b662a69b15ba72472c1",
- "sha256": "01l38yfgzh4apvj9ipl50b5shf6vnyqdciklpbajciynz118p19q"
+ "commit": "58cf3d5fd2d71084083a293b0fc7ce947aadaf26",
+ "sha256": "0lbsc5dz810gcvpapqa0x9b0wpd9fb1sb4qj32ypfbc3ywklzd38"
}
},
{
@@ -17140,11 +17350,11 @@
"repo": "kijimaD/create-link",
"unstable": {
"version": [
- 20210601,
- 1327
+ 20211014,
+ 1617
],
- "commit": "b2c24f42f2fae63433787150f77b397d69ce0e5b",
- "sha256": "1c0smqhc87fzg7db20k92k938p8dkqiig59krwylkqgagsi7hbg4"
+ "commit": "e765b1067ced891a90ba0478af7fe675cff9b713",
+ "sha256": "1nr5dsbmhn9bs0v0h6v7d8a0pkgg859cm677nz7br2xaibdz0z47"
},
"stable": {
"version": [
@@ -17391,11 +17601,11 @@
"repo": "crystal-lang-tools/emacs-crystal-mode",
"unstable": {
"version": [
- 20201228,
- 1539
+ 20210929,
+ 1521
],
- "commit": "15998140b0a4172cd4b4d14d0377fba96a8917fc",
- "sha256": "0bdzffwp9hliy9bkvqn1p432yy161g7n7bl814mmi6zj4sfn1sy1"
+ "commit": "3e37f282af06a8b82d266b2d7a7863f3df2ffc3b",
+ "sha256": "1rwm7srb3xlsja4hana83an9a6l9f9rmi299qkjxhjcry8x9p78g"
},
"stable": {
"version": [
@@ -17451,8 +17661,8 @@
20210826,
421
],
- "commit": "fe8a68e9849fc7617e0c870cacd6599b8a797638",
- "sha256": "1pry7p51qc0q4jpcsi60nxb9q7pkkc2gh1340mvbk62jj5f4qbbj"
+ "commit": "c0c7602368f7b3933584e7790394a4d509bd1c50",
+ "sha256": "1nkaaggdh9bzisq4dx6mi2lbajymq9l6dp83gsphf94xcn3q5g2s"
},
"stable": {
"version": [
@@ -17539,10 +17749,10 @@
},
{
"ename": "css-comb",
- "commit": "0afc24de7f847feaa128168d0fd8b2110242cca6",
- "sha256": "1axwrvbc3xl1ixhh72bii3hhbi9d96y6i1my1rpvwqyd6f7wb2cf",
+ "commit": "49660dd6ccca098e9faa766eb54321e5993e4d93",
+ "sha256": "1fck3ggcd36qpk3q3q3jyc00i4igb0d63ijmkjk7ld4z6q91jkc2",
"fetcher": "github",
- "repo": "channikhabra/css-comb.el",
+ "repo": "bitspook/css-comb.el",
"unstable": {
"version": [
20160416,
@@ -17697,11 +17907,11 @@
"repo": "raxod502/ctrlf",
"unstable": {
"version": [
- 20210724,
- 126
+ 20211019,
+ 244
],
- "commit": "b78e129a8a4fabfebba8cdd5ef51278d0d57e0f4",
- "sha256": "0j3rsax644x8753hginn0cd8sm86wf521p1rjqspdhgpi4dv0cdq"
+ "commit": "e915c5920cd3e39f481a6ce024073dd28cc9f743",
+ "sha256": "0asy33mgyjiz7kvpsh09npqigb3x9bk64p8j81czaa3jxw40mnh1"
},
"stable": {
"version": [
@@ -18144,8 +18354,8 @@
20190111,
2150
],
- "commit": "2b52df4d75d185f7ac8b4230529e7fc2428a3605",
- "sha256": "0ykzj10pcn3yfwxl8ydl2vj6mvk5gbwzs2zzagsn3zv29y7wqj0a"
+ "commit": "b5f81f5e900922356ee7aeedf78a54fa96f85c71",
+ "sha256": "0rb5sngg8l1l4wdixhq4jzf2a55x60c0xzyzrqvpb596pacadbg9"
},
"stable": {
"version": [
@@ -18296,11 +18506,11 @@
"repo": "rails-to-cosmos/danneskjold-theme",
"unstable": {
"version": [
- 20210429,
- 657
+ 20211019,
+ 1630
],
- "commit": "e4d1f2c76245fe9d0d07133a841e789d139df28d",
- "sha256": "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"
+ "commit": "e74c5960eae3db90bf1b3ea7e71a2406c27554a8",
+ "sha256": "1vpfhiqwhdfa0w4akh6wfam88qkjy73i8yryfaz8a5qbm60nd43h"
}
},
{
@@ -18352,8 +18562,8 @@
"repo": "emacs-lsp/dap-mode",
"unstable": {
"version": [
- 20210904,
- 2033
+ 20211020,
+ 1757
],
"deps": [
"bui",
@@ -18365,8 +18575,8 @@
"posframe",
"s"
],
- "commit": "3c4bb901bbcd4f8f58178075dc2422550a7f2834",
- "sha256": "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"
+ "commit": "a18f29e3d1a3a945ec5dfc7dea98927ecb022c34",
+ "sha256": "037xly2c3jd33a3gnkrfp7lammrgarl5kknp5zvqs35278xpsdng"
},
"stable": {
"version": [
@@ -18616,8 +18826,8 @@
20210826,
1149
],
- "commit": "39d067b9fbb2db65fc7a6938bfb21489ad990cb4",
- "sha256": "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"
+ "commit": "da167c51e9fd167a48d06c7c0ee8e3ac7abd9718",
+ "sha256": "14fwib33l32fmmjr03zyk9xynblrkggb1b47x2ihh6jfxq8i9qm1"
},
"stable": {
"version": [
@@ -18652,11 +18862,11 @@
"repo": "stanaka/dash-at-point",
"unstable": {
"version": [
- 20180710,
- 1356
+ 20211023,
+ 104
],
- "commit": "4d795a23a8428c421d5107f1b005c9d8e0d1816c",
- "sha256": "09rxyr22qxc9pdrkg0c4smifh2r797ggz5hg74q8j8jybvixsbls"
+ "commit": "fba1a6f42ea51d05110e12c62bdced664059eb55",
+ "sha256": "0yvr3dzdd3f6njg6in54ab2mddlagaqz8mynccgw5sq1d58w1nvp"
}
},
{
@@ -18692,8 +18902,8 @@
"deps": [
"dash"
],
- "commit": "39d067b9fbb2db65fc7a6938bfb21489ad990cb4",
- "sha256": "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"
+ "commit": "da167c51e9fd167a48d06c7c0ee8e3ac7abd9718",
+ "sha256": "14fwib33l32fmmjr03zyk9xynblrkggb1b47x2ihh6jfxq8i9qm1"
},
"stable": {
"version": [
@@ -18716,11 +18926,11 @@
"repo": "emacs-dashboard/emacs-dashboard",
"unstable": {
"version": [
- 20210827,
- 239
+ 20210928,
+ 656
],
- "commit": "f7287f026103a44cf290fe737b6b9d841eddcaca",
- "sha256": "184pa120is5jk71174bna61yii2pmdkj1m6r7v16pzvqg5zqbsgj"
+ "commit": "a19868f2fb8f7fc4132b4e9bfac5cdd65f245181",
+ "sha256": "1gmcnj3ldhqy417wv2lqfh53pg8glfz28bgd26sx5nbw7w5lhd9r"
},
"stable": {
"version": [
@@ -18762,16 +18972,16 @@
"repo": "emacs-dashboard/dashboard-ls",
"unstable": {
"version": [
- 20210108,
- 1857
+ 20210927,
+ 1042
],
"deps": [
"dashboard",
"f",
"s"
],
- "commit": "947c8c99e9abb38852d895f8792258783e3c4e1d",
- "sha256": "1iwm1kzjbvfamdzz79bkyq848z3wgr3cf2692dmfah58gy5wkb0z"
+ "commit": "2639eb0f20a7b62be4106f555d00862c161bebf0",
+ "sha256": "149a0lhdfqm8rv78yi5v3a6ndrf44m2zv4f3mphzalmq4wslvmww"
},
"stable": {
"version": [
@@ -18900,25 +19110,26 @@
"repo": "doublep/datetime",
"unstable": {
"version": [
- 20210307,
- 2203
+ 20211016,
+ 1656
],
"deps": [
"extmap"
],
- "commit": "276f9d4304180301edabc160d5d17f46532489a1",
- "sha256": "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"
+ "commit": "77dc214d9ae853c7206ae95cc92d720445c1eeb4",
+ "sha256": "1qz06p8jdkhs9cfqxiwj4srdlrbjsydwimg58zxhrp679nyv0pf4"
},
"stable": {
"version": [
0,
- 7
+ 7,
+ 1
],
"deps": [
"extmap"
],
- "commit": "276f9d4304180301edabc160d5d17f46532489a1",
- "sha256": "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"
+ "commit": "666569908c76ab83de1512b85f22409f78148479",
+ "sha256": "108zfj5hz9irgksgg48xdvvaa635m6nzclx7xaymylfcvlycskpl"
}
},
{
@@ -19059,8 +19270,8 @@
"ccc",
"cdb"
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -19135,11 +19346,11 @@
"url": "https://salsa.debian.org/emacsen-team/debian-el.git",
"unstable": {
"version": [
- 20201011,
- 1543
+ 20211006,
+ 1939
],
- "commit": "6f09126b2e97b2e195145204caba11d0d4f871df",
- "sha256": "0qrjy3zs2xjf54b7kcwxbds99il76zxlx219c5d1siq6bkv0z0k4"
+ "commit": "a3ef20c269b9192710567571b20718f572942bc4",
+ "sha256": "01d3hc6j8gqg8m3xh0jd35xygz41fw1md81xyxasrvngb7r4pqky"
},
"stable": {
"version": [
@@ -19237,6 +19448,30 @@
"sha256": "1ns1ni6aalr541df3a0ylqy0gj68fcsxdfvm4m1ga5532kxnswnj"
}
},
+ {
+ "ename": "declutter",
+ "commit": "7cabeba75d08f570743c192e50cc4ee89fc18b48",
+ "sha256": "0vnfa61fxmwfqxs1q9k3jlwjlfy4q952msiqd12gi9dahkhv37wf",
+ "fetcher": "github",
+ "repo": "sanel/declutter",
+ "unstable": {
+ "version": [
+ 20210904,
+ 2039
+ ],
+ "commit": "e08195e2f5691ad0ec9090d7edf550608e13fcfa",
+ "sha256": "1hjdjd0nmknv8yppda89hsgkyvk52zcwz92cdxsng87rlp9hwddv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "426760126ab2d8300059cc9d2d808b7eb4ce9c7c",
+ "sha256": "08wbil5ynpsjw8b8ld666zh9l2zc7cczwjakqv2nrpcb89hk12qw"
+ }
+ },
{
"ename": "dedicated",
"commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
@@ -19284,11 +19519,11 @@
"repo": "ideasman42/emacs-default-font-presets",
"unstable": {
"version": [
- 20210418,
- 924
+ 20211104,
+ 52
],
- "commit": "81ef9d54000617ce98c40b4627eca64e076ff11d",
- "sha256": "14l1m8jaqranj01fr040l2g560gbpbnd4sha4x4rcs2gc99sjqxx"
+ "commit": "dbb6c6c5350ba76b12bd69a584b0634a8262a76f",
+ "sha256": "1yjc4g50r0jghf5a0qipfzys6krgz5vqizm3hlq4lh29hvkazc6i"
}
},
{
@@ -19357,8 +19592,8 @@
"s",
"wiki-summary"
],
- "commit": "1861c57e67315bcb1ff88f37184cf7e2d6167642",
- "sha256": "104dfryn6ql2a4l7nd9x0984qpyxhn6kv0432h1lha5adb8g1h10"
+ "commit": "57a9c601e732c85b0b45550434b04d996c1b92a3",
+ "sha256": "14bm85a5im3m910gsmp220brqrlm4190zl9qbvqmp180c63j43yc"
},
"stable": {
"version": [
@@ -19720,11 +19955,11 @@
"repo": "astoff/devdocs.el",
"unstable": {
"version": [
- 20210904,
- 1759
+ 20211002,
+ 1657
],
- "commit": "df9cec79ed6e7147a71fcad84835b928375047a7",
- "sha256": "08zl01vchv6vdixqk021iwjvfbk125vh2ww59mr36cs8ibd887va"
+ "commit": "e1b4b0258289d442e349f67f175f05be6f4347d4",
+ "sha256": "0yqmaa12sdci6wy95fany03rcqsm9avrjldzrypa9xv5a2ayi48f"
}
},
{
@@ -19850,15 +20085,15 @@
"repo": "martenlienen/dictcc.el",
"unstable": {
"version": [
- 20200421,
- 1422
+ 20211007,
+ 1016
],
"deps": [
"cl-lib",
"ivy"
],
- "commit": "3950011197ba81f27cc82b4e6075c9100945f936",
- "sha256": "0xmmkzsg48q6awhkbi5naqjm0yjdnwb437k17razgd6y99vyh0ns"
+ "commit": "235841b19567b9c2e17727901ca041a22c096512",
+ "sha256": "0lsqf199gxsgdldmizf7frn8ngbn3fjj81lc8lx30l3ib7d40493"
},
"stable": {
"version": [
@@ -19937,11 +20172,11 @@
"repo": "ideasman42/emacs-diff-at-point",
"unstable": {
"version": [
- 20201006,
- 1436
+ 20210921,
+ 603
],
- "commit": "3fcf861f1f8b91d97000bda32345bc92df8e2d37",
- "sha256": "0x0awnasdjkmmrm11dqs4spkx2j3prkiqrmf5w3lxp2v28i4m2qk"
+ "commit": "63951d8236163d86d5261b35d6c9a3f3f280e876",
+ "sha256": "1l1smrb2xmnz4cyimyvhq9hl406w364gkvqsk32b1q4jcvqhmdz4"
}
},
{
@@ -19952,14 +20187,14 @@
"repo": "dgutov/diff-hl",
"unstable": {
"version": [
- 20210831,
- 118
+ 20211102,
+ 242
],
"deps": [
"cl-lib"
],
- "commit": "a682de60187763128d2d0a85f1d168d89877691f",
- "sha256": "1bcswy1mkpp0ly36l65amq4f8gyarm2gmzv8v8h6s96vg433nwkb"
+ "commit": "47f8724ced083c4f5aca9e0751bfd2489198d1be",
+ "sha256": "186b66fr2hj75si88431dx8jcp2icvk6qb2xi0z24ll7rxwccskg"
},
"stable": {
"version": [
@@ -20265,8 +20500,8 @@
20210715,
1026
],
- "commit": "fcc43f38431d4b16b2fd8d15e799488a7fb60966",
- "sha256": "1r5a98viw7j2nfmhgf5v9whkya3h9s392drz764a9ivj2znc0qg5"
+ "commit": "2cb177f70e5dc2e9df45844d565280b79cfc68a5",
+ "sha256": "13km90jhjpmlxcw8gpmlzivy8mvqys418n9ca6sr08cj9sbnjsij"
},
"stable": {
"version": [
@@ -20682,11 +20917,11 @@
"repo": "emacsorphanage/dired-k",
"unstable": {
"version": [
- 20200322,
- 2035
+ 20211002,
+ 2358
],
- "commit": "0ddf0adb3a642c2f0694d8c1c12f263f2bf27375",
- "sha256": "1gpbjq9c2z96mclmyqk8mxg9blya3q9mybbpxm9qhz2k9khw9k2y"
+ "commit": "1ddd8e0ea06f0e25cd5dedb2370cfa0cacfa8c9d",
+ "sha256": "1vxzcd159afljpacylz8dnjbnnkc97s44f3y0zdv35wcplszgjhr"
},
"stable": {
"version": [
@@ -20879,11 +21114,11 @@
"repo": "vifon/dired-recent.el",
"unstable": {
"version": [
- 20201004,
- 2201
+ 20211004,
+ 1924
],
- "commit": "d62ace45cc72d49d77862ecf00f52d794ecc5677",
- "sha256": "0yg1jsixx6vmhdpg5qw9hag40bgjplg76qwr5j14j0sq6zqzbpjb"
+ "commit": "a376f53e42fdca80c3286e8111578c65c64b0711",
+ "sha256": "1dk9q5qwr6y6crmq95qsz86jc8wvvjmqxvh9xp3xdf6c87yblgkb"
}
},
{
@@ -20993,20 +21228,20 @@
"repo": "crocket/dired-single",
"unstable": {
"version": [
- 20200824,
- 708
+ 20211101,
+ 2319
],
- "commit": "98c2102429fcac6fbfdba9198c126eb1b3dcc4e5",
- "sha256": "1adh8sr7g2xc6b7is1cz48v109iavr2krkp5nd23bkgnjsjjkxlm"
+ "commit": "b254f9b7bfc96a5eab5760a56811f2872d2c590a",
+ "sha256": "1w243yq5m6zd6yvcsnvxf8162fd6i0l5izqj11mji7jzyqxl1ih3"
},
"stable": {
"version": [
0,
- 2,
+ 3,
0
],
- "commit": "27120d6a079541e994105e3f969032d3ae7edaa4",
- "sha256": "14q8lp1x1b78ra9mk90n6dyrm1j9ny5pr7valgpkg8agqyqn7xmn"
+ "commit": "b254f9b7bfc96a5eab5760a56811f2872d2c590a",
+ "sha256": "1w243yq5m6zd6yvcsnvxf8162fd6i0l5izqj11mji7jzyqxl1ih3"
}
},
{
@@ -21186,26 +21421,26 @@
"repo": "wbolster/emacs-direnv",
"unstable": {
"version": [
- 20210419,
- 1851
+ 20211011,
+ 1804
],
"deps": [
"dash"
],
- "commit": "4b94393a9adf677c7c037215e233eef5fbca553d",
- "sha256": "14whrhi6hgzadrw9z9k2sh2800483xs1h611avz4x68c8d2jfj5k"
+ "commit": "bd161f38621d1a9e4d70c9bafab9b7e3520f00b2",
+ "sha256": "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"
},
"stable": {
"version": [
2,
- 1,
+ 2,
0
],
"deps": [
"dash"
],
- "commit": "1f93e3f9cae5ec171939fe5c1fe9744a28fa6576",
- "sha256": "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"
+ "commit": "bd161f38621d1a9e4d70c9bafab9b7e3520f00b2",
+ "sha256": "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"
}
},
{
@@ -21961,8 +22196,8 @@
"repo": "Silex/docker.el",
"unstable": {
"version": [
- 20210829,
- 911
+ 20211101,
+ 717
],
"deps": [
"dash",
@@ -21972,25 +22207,25 @@
"tablist",
"transient"
],
- "commit": "f050d64c81575429c3c5562a1c8efddfb1ac22b4",
- "sha256": "1izy99and0jm7dmmgv9zjy4586xzi15dpa789fl2yw6xc7609khy"
+ "commit": "a7097f68a96470ae7d77b86c7bdee9acb095f06e",
+ "sha256": "1dnrk8fc725l3nk0rr0xxzz8zizs3558spprjbg8ry1l5fahjm9a"
},
"stable": {
"version": [
1,
- 3,
+ 4,
0
],
"deps": [
"dash",
"docker-tramp",
"json-mode",
- "magit-popup",
"s",
- "tablist"
+ "tablist",
+ "transient"
],
- "commit": "e127a157f8d0d9ffd465075ecf6558f36d2d3b24",
- "sha256": "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"
+ "commit": "4fc69969b11687896b6c71b099de5d4c12c1c685",
+ "sha256": "0s57dq04d97dvrbxzicyk5z9f1mn8gf9w4nbgrxd9dnjqz335173"
}
},
{
@@ -22106,11 +22341,11 @@
"repo": "spotify/dockerfile-mode",
"unstable": {
"version": [
- 20210828,
- 1805
+ 20211016,
+ 1545
],
- "commit": "628315e2e4ab2f269548126444234caa057b2c75",
- "sha256": "09pd8mfa45fy95mdg52fsafj3d1d5l52rskmw6q5np59dyzwch1b"
+ "commit": "5db94549ce8b000ae35adf511c820ad228178052",
+ "sha256": "1qldv6zcayj8sqjdl16g9rwxa0dzyja2r5d6v7kch9559vif1nyb"
},
"stable": {
"version": [
@@ -22167,14 +22402,14 @@
"repo": "jcs-elpa/docstr",
"unstable": {
"version": [
- 20210801,
- 643
+ 20211004,
+ 722
],
"deps": [
"s"
],
- "commit": "aa8c20d162d5e0b3a8677f2f4f3519ce6fdbe2e5",
- "sha256": "1vlvxjfw7f3dsa69gg952fv68vswsh3wkxcwz4irwkk0pfcbyxbf"
+ "commit": "aa2e30dc6b1d3fa6fb1da309fb87df683eab1e62",
+ "sha256": "1pqs4z97vs6s08g7pfbp3qqjx1q3z09lrjdzxjb24vrcfkki9cmi"
},
"stable": {
"version": [
@@ -22197,11 +22432,11 @@
"repo": "progfolio/doct",
"unstable": {
"version": [
- 20210825,
- 453
+ 20211018,
+ 1902
],
- "commit": "c7c8687ae8a7f1230732eaebc89ea668b4f7a37d",
- "sha256": "1cylpcjgd8v8kp93x5w1nal5m66bb8j44c7rsm6qwl099br3pa72"
+ "commit": "c1919a4297e5479d3a22ded90095245317b29935",
+ "sha256": "0vzkva3nn8fbk0xhyyns5vfr3irgy8hbn1wcxwpi3ygchrflckia"
}
},
{
@@ -22212,14 +22447,14 @@
"repo": "alphapapa/dogears.el",
"unstable": {
"version": [
- 20210903,
- 514
+ 20210913,
+ 1259
],
"deps": [
"map"
],
- "commit": "00dd88cc53d3a7d6ddeb3c6eea2c2a37d9b610d6",
- "sha256": "196gh32l18laawqypc9l08pmqrs48lj5g4wj2m1vl4c13mff5giz"
+ "commit": "c05b69e504a538c9e00fbb0ea86934fafe191d0c",
+ "sha256": "12qvzd8wvryr2hnlv7l683148vxd1sry7s8y12xnysc7yz4dhsgv"
}
},
{
@@ -22334,16 +22569,16 @@
"repo": "seagle0128/doom-modeline",
"unstable": {
"version": [
- 20210823,
- 1606
+ 20211024,
+ 1720
],
"deps": [
"all-the-icons",
"dash",
"shrink-path"
],
- "commit": "16c654c1212e97a1441cac45fee2dc5cda022103",
- "sha256": "1r75kbmzrr3m5rx8nwp0v2cs4aim6pr2p42i3774012q3hi333kv"
+ "commit": "25e81e77cd7481de4c666d4070ae038e4970c767",
+ "sha256": "1xrhfrnpzj3c3vrqzw8wsrbpgnvl849ad4fzpqid1vvzl6xzq2ww"
},
"stable": {
"version": [
@@ -22387,14 +22622,14 @@
"repo": "hlissner/emacs-doom-themes",
"unstable": {
"version": [
- 20210731,
- 818
+ 20211011,
+ 1314
],
"deps": [
"cl-lib"
],
- "commit": "65fb964f36939cf412d03b3fe410618caf99c494",
- "sha256": "0nrgy82l9jffsgd12kx6z2amc8z9d9i9clqc3gvdzx6g0nlnyfli"
+ "commit": "3e6f5d9ce129ac6fc0f466eb6f5518593625578f",
+ "sha256": "1ar9nb67hppqhbdl6l6mv1y6zl48mcdl91bmsc49bjpzp9a38y5b"
},
"stable": {
"version": [
@@ -22638,11 +22873,11 @@
"repo": "dracula/emacs",
"unstable": {
"version": [
- 20210730,
- 1158
+ 20210922,
+ 1038
],
- "commit": "62c960dbfe9cadc72784878c1cff20389895e193",
- "sha256": "0wks8jcdfbahlv98v41h5jv8slc0c9aqyza9s2lmyi9a0xglp6i7"
+ "commit": "943faeda66931dd275fe83d858945bd07abacc5a",
+ "sha256": "01k8i4g0vv7m2jgjmj3y2n1821965r4m1j3fra5v30pnljjl7zjb"
},
"stable": {
"version": [
@@ -22880,8 +23115,8 @@
"repo": "dtk01/dtk",
"unstable": {
"version": [
- 20210906,
- 46
+ 20210926,
+ 541
],
"deps": [
"cl-lib",
@@ -22889,8 +23124,8 @@
"s",
"seq"
],
- "commit": "1e871c7675e7617ccd1bc7186a15ebe577dac46e",
- "sha256": "0chaffjwbqlrbhf0if817d5ril7xhyzwf72ik3yldyrymwknnbfh"
+ "commit": "f6a94d86263041f9a172cb7df90e00d1ec44604a",
+ "sha256": "1q29lpza8rd209zh0n04ia6n359p372czkm57hhmvcd9cmi91fc8"
}
},
{
@@ -22998,31 +23233,30 @@
"repo": "jacktasia/dumb-jump",
"unstable": {
"version": [
- 20210622,
- 1720
+ 20211018,
+ 1545
],
"deps": [
"dash",
"popup",
"s"
],
- "commit": "542e72d3feba986a12119f6def515ef1347cb4ca",
- "sha256": "1x0g1n9x7qsiwqq8432li6yiww2kvdbk2wkqs3glw97grzrz89gc"
+ "commit": "dbb915441a2b66f2fbb954ff5de2723c5a4771d4",
+ "sha256": "0gbxhl50j6m6c0kq2v3ph9b3mdrmjdslxiy6lhms4l01zyrg621g"
},
"stable": {
"version": [
0,
5,
- 3
+ 4
],
"deps": [
"dash",
- "f",
"popup",
"s"
],
- "commit": "0319569f1332641057c3e23d1e3bffb2404435a8",
- "sha256": "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"
+ "commit": "f3176fbf9c11b94cf05bd8279399d9536115ff3c",
+ "sha256": "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"
}
},
{
@@ -23048,20 +23282,20 @@
"repo": "ocaml/dune",
"unstable": {
"version": [
- 20210715,
- 548
+ 20210909,
+ 1010
],
- "commit": "fd81ea25790c7134032f1d43df0fc84cbaea979d",
- "sha256": "0qv1pybkx22m5vdf499sl7wrwx6c97wwdl1cxv4ld6cnsjbrx1r6"
+ "commit": "4060ee0f13866916336f4ba2c14fa836c9ad04da",
+ "sha256": "0ffxaj9l186ln642j86m9j79hkn71wqqx8xyzcwg2cc3avqnm3sx"
},
"stable": {
"version": [
- 2,
- 9,
- 0
+ 3,
+ 0,
+ -3
],
- "commit": "641a95d2254ca7c51c97f07f2eed85b7a95db954",
- "sha256": "01np4jy0f3czkpzkl38k9b4lsh41qk52ldaqxl98mgigyzhx4w0b"
+ "commit": "3cb82b394cb8e13b2e1be32c57aff321e563c6ff",
+ "sha256": "1c04qk2k3v1m0wp6scsqh0bq3wwkmazfr9apzqsdhw0pm83z4kx0"
}
},
{
@@ -23231,11 +23465,11 @@
"repo": "zellerin/dynamic-graphs",
"unstable": {
"version": [
- 20210430,
- 352
+ 20210908,
+ 2010
],
- "commit": "f7239e381de56af5d6ff8e0d6ab31a78d3e3da58",
- "sha256": "1v3p0ycm3yh8gvpbr96ml89470piam25qyhrwrkin228k17949br"
+ "commit": "64ca58dffecdecb636f7fe61c0c86e9c3c64d4dd",
+ "sha256": "15raac8fvsrlsca7vr4dakj4bh1zqc8fq61wkn6wh6pfyjm76r22"
}
},
{
@@ -23285,20 +23519,19 @@
"repo": "countvajhula/dynaring",
"unstable": {
"version": [
- 20210603,
- 2331
+ 20210924,
+ 2026
],
- "commit": "d3cc361b70b5dc4542624ced9c326523939ca021",
- "sha256": "02mz2dfqfycw64z2906f9dvl5x6qb53xbhkn3hf5205hcg58w5zh"
+ "commit": "76142cf100d9e611024638a761e62bd82af156cd",
+ "sha256": "1fsydk7pld2xpmmp1jnm8b3y7zdynibwicgmsfxpk11915y4fh6r"
},
"stable": {
"version": [
0,
- 2,
- 0
+ 3
],
- "commit": "d640a557e3e7197cebb56365ad3552ffda39b838",
- "sha256": "1fd17xryl2pkdlalc9jgwdkgl2mgks83wh5s8wilvwb21y8g306l"
+ "commit": "c17de670bc5ab4cc866d470f44faf733351428d6",
+ "sha256": "02ffmssibnx78m352f6qr705cswyzz5lvgpryv9d7kjpbzvqya6k"
}
},
{
@@ -23597,8 +23830,8 @@
20210903,
230
],
- "commit": "16f262dbeec1e0b9f7f3a6a7cbafbed76e39d8d8",
- "sha256": "0j359dvmgkwrwcx24ncg34sfyxmkharpsniszmd7gjl2cq8sjja2"
+ "commit": "0f24876223a358d2718383e9e4975a26cee55f9d",
+ "sha256": "0a6kvjb7f4wn4yn3w4vgq98wkl02fvscvh6j6f9l573h6hhxr204"
}
},
{
@@ -23624,11 +23857,11 @@
"repo": "cpitclaudel/easy-escape",
"unstable": {
"version": [
- 20161209,
- 1544
+ 20210917,
+ 1254
],
- "commit": "a6449f22cb97160ee1c90121968de89e193268df",
- "sha256": "1spbavcs4a3vn1ggdcgwgb2wvq4lbk74xyfagr4y5b5w2azlkh51"
+ "commit": "938497a21e65ba6b3ff8ec90e93a6d0ab18dc9b4",
+ "sha256": "0bqwn6cd7lrk7f8vgcvclryvlpxvl2bndsmwmbn0zxmvqkdba7l1"
}
},
{
@@ -23639,15 +23872,16 @@
"repo": "masasam/emacs-easy-hugo",
"unstable": {
"version": [
- 20210815,
- 2059
+ 20211017,
+ 1248
],
"deps": [
"popup",
- "request"
+ "request",
+ "transient"
],
- "commit": "be19464f1e4487414a29650b7dc46e984d3f73cf",
- "sha256": "1cdg98303b3k5am7lqyjffx4n09qr49v9fsip8w3p6m357ls7wqw"
+ "commit": "baead14d7f2fa86e108269932a94bf376de9c2e5",
+ "sha256": "1d61wkambq4dr65bv8ldyqzkicgspw4yiyb52x6ngka6gj8cs27h"
},
"stable": {
"version": [
@@ -23817,26 +24051,25 @@
"repo": "joostkremers/ebib",
"unstable": {
"version": [
- 20210902,
- 2151
+ 20211102,
+ 2220
],
"deps": [
"parsebib"
],
- "commit": "85da632406297f7289b9bdd3803684575cfae886",
- "sha256": "0hbpchpmby54jp5xflj8ckdcpjj9chyhl6fkk7ng6l0rgzxi1z30"
+ "commit": "84c7234c4901207fa0520af96922c2b8e407ff4c",
+ "sha256": "18gvmymkpzws8s4zjcm1kijyr55dgfcq201z3w1jzhkhcs01bfsc"
},
"stable": {
"version": [
2,
- 32,
- 2
+ 33
],
"deps": [
"parsebib"
],
- "commit": "831ffcca35601e169c0778035688c5d17d138b58",
- "sha256": "04kw0akp35r2ibrcav4kaf34d1xs8pckjiygv7h1nqpv6dmrgfq7"
+ "commit": "84c7234c4901207fa0520af96922c2b8e407ff4c",
+ "sha256": "18gvmymkpzws8s4zjcm1kijyr55dgfcq201z3w1jzhkhcs01bfsc"
}
},
{
@@ -23847,11 +24080,11 @@
"repo": "flexibeast/ebuku",
"unstable": {
"version": [
- 20200427,
- 1143
+ 20211001,
+ 246
],
- "commit": "9e1878810eaaaa55885d4cbcd6968566e4e3f7a8",
- "sha256": "0czrchzz7ljynbkkgpp1ifjybp33wx4lhyzyqkxs4q84rs4m7p2p"
+ "commit": "0f853e9fd7647a33b38925727d283f5731fafef8",
+ "sha256": "18f4yk45b2l3w5i05nwqy67phm4ai1kyjf2r4yjcr89bv7bvd1ag"
}
},
{
@@ -23949,7 +24182,7 @@
"version": [
0,
6,
- 17
+ 18
],
"deps": [
"ansi",
@@ -23959,8 +24192,8 @@
"f",
"s"
],
- "commit": "3a77ba9f1064c2bca47b401974c009e65727c46e",
- "sha256": "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"
+ "commit": "d173cdf487bc2c62305e2232db96290bc021950f",
+ "sha256": "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"
}
},
{
@@ -24526,11 +24759,19 @@
"repo": "suntsov/efar",
"unstable": {
"version": [
- 20210604,
- 503
+ 20211019,
+ 1512
],
- "commit": "afc19e212a6f1227b5747b42407226b8222f92c5",
- "sha256": "04ld4sk52hm6w4bqlsfd5b1633nb7waf0cmm6rpkgidnzlwv4fxm"
+ "commit": "ff82fa01dd350d662cdef1fbf3db57425abc3649",
+ "sha256": "0zavb6xwdnysbbfs6k0cs9xdqaw87kmp97wrdsf1d8k5xam6l36v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 23
+ ],
+ "commit": "a9ff16e8994f525086e72d1e6a827e5fe90d1326",
+ "sha256": "0wv351ajzdy1srsbfmg33az2fdns96zc1jxygxfyzja0y2r9q065"
}
},
{
@@ -24681,8 +24922,8 @@
"repo": "joaotavora/eglot",
"unstable": {
"version": [
- 20210905,
- 1905
+ 20211009,
+ 1931
],
"deps": [
"eldoc",
@@ -24691,8 +24932,8 @@
"project",
"xref"
],
- "commit": "c17bdf6c98d6bf0f1a85f1175556e1038654402f",
- "sha256": "10liic4skqd5qr1zw18k0kx50i2m5pa90vc4yypli5c6bpadsyq4"
+ "commit": "9665359bb6bfb6a96b0c3b307d4abea9fcbff7a5",
+ "sha256": "154wf1ps7s00vpmdxgj2pw36gcda1w82f5yw0zhl9c7gi05g3xn3"
},
"stable": {
"version": [
@@ -24718,16 +24959,16 @@
"repo": "fsharp/emacs-fsharp-mode",
"unstable": {
"version": [
- 20210330,
- 1442
+ 20211020,
+ 1758
],
"deps": [
"eglot",
"fsharp-mode",
"jsonrpc"
],
- "commit": "c90d762c0692cc43032291d37b8ca3201c3d49bd",
- "sha256": "1zavk5aykd04143jqsyygnlxn4n86qvjcg267h9kiihsr8wh108r"
+ "commit": "e92e270c6c987497041fac65cded82146cd41dde",
+ "sha256": "0jzxdim6mpj984cmhxzpafig6dcaav5x98y59f4ji3dxc95qs6r7"
},
"stable": {
"version": [
@@ -24797,17 +25038,17 @@
},
{
"ename": "eide",
- "commit": "4b0915b90f1e0832b5920bee860723473acae4dd",
- "sha256": "0ir02p1qrkxsh6b2v2aagkxzzzbd8hysxhr5zpbp11gv6sw4harj",
+ "commit": "d952fa4c9b2ee754a14cea8aa818142f80f11eea",
+ "sha256": "0ylnjvyb598h6pq1x14ysbg5x9z773lvx2jlzrq6gwvfpjbzfb3q",
"fetcher": "git",
- "url": "https://forge.tedomum.net/hjuvi/eide.git",
+ "url": "https://forge.chapril.org/hjuvi/eide.git",
"unstable": {
"version": [
- 20200702,
- 2009
+ 20211027,
+ 617
],
- "commit": "b1dfdaf06b00409250135cb1000beac60c7f659b",
- "sha256": "17wzffhqnd65c94qcxlwmb4qyw44kq39hvkqlwpxx8g4wj0lql3j"
+ "commit": "5bb04501a7f5bb3f5be33b8b96742f1ac9839a8d",
+ "sha256": "0w3xc2yhdrhcb5fjy1h877y14k1iidcqc548qnxjyzal8l0z5nw1"
},
"stable": {
"version": [
@@ -24842,8 +25083,8 @@
"repo": "millejoh/emacs-ipython-notebook",
"unstable": {
"version": [
- 20210809,
- 2101
+ 20211012,
+ 347
],
"deps": [
"anaphora",
@@ -24854,8 +25095,8 @@
"websocket",
"with-editor"
],
- "commit": "0600c286bd7b0812f4908d7df1be279b6b65923f",
- "sha256": "0cwqngw05fg8rs6vz65wzji6h4fv2smp7xlh1xjbw03nrrz41bc2"
+ "commit": "e354ea77c29e8c20b6b1a9ee00d86e6a9512bc0d",
+ "sha256": "1ny4gjawwsq7gx1ih7f37p24pyyjv9jbp702v1sl6wfnk6r7ll9c"
},
"stable": {
"version": [
@@ -25003,8 +25244,8 @@
20210613,
1418
],
- "commit": "b5a5a405d04f61ec9c5fcb19357a50a4b9e36a25",
- "sha256": "1w6ps78saxdvx64a2y1vvzn11mvb6bw9657zfin0yibh2s91hqrk"
+ "commit": "960f3fb962c35d3196bab20b2a3f6d6228119277",
+ "sha256": "1d1lkcnjjdca73frn611gz9rck73mn2kxq207lh2ykww3wkaa0pa"
},
"stable": {
"version": [
@@ -25304,11 +25545,11 @@
"repo": "Mstrodl/elcord",
"unstable": {
"version": [
- 20210524,
- 1611
+ 20211011,
+ 158
],
- "commit": "64545671174f9ae307c0bd0aa9f1304d04236421",
- "sha256": "10hjqva6xpilnsfsi8z7w3mjmii4hzf53cmccv1w3076ccvcpq62"
+ "commit": "f4a45e47e58414da0984f9ac1328be207a897ba9",
+ "sha256": "1s1i665a3bknjchg47jsaxydmmq4fqyb59i18np7w0zhhzzpjxxs"
}
},
{
@@ -25353,20 +25594,24 @@
"repo": "doublep/eldev",
"unstable": {
"version": [
- 20210711,
- 1204
+ 20211102,
+ 1943
],
- "commit": "f9d034ff330d657fa3cbbb1df3a582cd417da78a",
- "sha256": "13pd4kwak8fvzbmj8lcasxpi6m8i1cffrs6hg1wnd1j6w68jl4yg"
+ "commit": "4a44c72a8cca50677315b1af7dbcae471421ef3f",
+ "error": [
+ "exited abnormally with code 1\n",
+ "",
+ "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://github.com/doublep/eldev/archive/4a44c72a8cca50677315b1af7dbcae471421ef3f.tar.gz': Couldn't resolve host name (6); retrying in 330 ms\nwarning: unable to download 'https://github.com/doublep/eldev/archive/4a44c72a8cca50677315b1af7dbcae471421ef3f.tar.gz': Couldn't resolve host name (6); retrying in 517 ms\nwarning: unable to download 'https://github.com/doublep/eldev/archive/4a44c72a8cca50677315b1af7dbcae471421ef3f.tar.gz': Couldn't resolve host name (6); retrying in 1178 ms\nwarning: unable to download 'https://github.com/doublep/eldev/archive/4a44c72a8cca50677315b1af7dbcae471421ef3f.tar.gz': HTTP error 302 (curl error: Couldn't resolve host name); retrying in 2285 ms\nerror: unable to download 'https://github.com/doublep/eldev/archive/4a44c72a8cca50677315b1af7dbcae471421ef3f.tar.gz': HTTP error 302 (curl error: Couldn't resolve host name)\n"
+ ]
},
"stable": {
"version": [
0,
9,
- 2
+ 3
],
- "commit": "2b6513ac12bfc73dd954effc68734bc84607b31c",
- "sha256": "1agg69ji032k9a1r23cdcgb0ihmcxxlbjgsqx647igv3mw7r6ff0"
+ "commit": "95fedcc075afba7306341e55122b8aa6108d412e",
+ "sha256": "0qmyx74hikkirv31x65gybr9n7ignxlyx61xkz5qmjk8pgdmkn3r"
}
},
{
@@ -25480,6 +25725,21 @@
"sha256": "1l49fqd4wh9bkdpb4mk5a1cbl5i3iwc3q690viakhpb4840jmlry"
}
},
+ {
+ "ename": "eldoc-toml",
+ "commit": "be501e88e9611b5f3f149de73104a8193f775e8f",
+ "sha256": "0ifpfjsdh9wcgymw9b62gr9vx0a4mvpf015mn00ds16413xcd73l",
+ "fetcher": "github",
+ "repo": "it-is-wednesday/eldoc-toml",
+ "unstable": {
+ "version": [
+ 20211026,
+ 1122
+ ],
+ "commit": "61106be3c3f3a5b293c3f285eec8c6f400142b6d",
+ "sha256": "079vxv575v4qhdc05jn0ba17f8451nqmdpvh6x4wbg5vdchrqvyp"
+ }
+ },
{
"ename": "electric-case",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -25549,11 +25809,11 @@
"repo": "xwl/electric-spacing",
"unstable": {
"version": [
- 20210625,
- 1722
+ 20211025,
+ 1016
],
- "commit": "1be87078a689d967cb2d6654659fb49427926d62",
- "sha256": "06iws70cc58xs79wlv9wgqk6vk9grvv1jhcngjjwg0pdn080rksz"
+ "commit": "859f4ab05eff9b00b3fd460b69010a03e010130e",
+ "sha256": "1s10sn14386dgjxkb7y6mlf5amcb5pq5p3akr0xjdh0dkdwy3db0"
}
},
{
@@ -25808,26 +26068,26 @@
"repo": "sp1ff/elfeed-score",
"unstable": {
"version": [
- 20210831,
- 1423
+ 20211008,
+ 2330
],
"deps": [
"elfeed"
],
- "commit": "2c8093e83491b9191115276e649dd87438726348",
- "sha256": "1r77b5vj4klqww7q7flw8h5i9w6y36zv2n7hx36pp1sav6s3a4r9"
+ "commit": "973b337d7104a7adb519b7b74a91fc21f8757731",
+ "sha256": "16a0whgx47irgp3p17xwdwfiaylrv85f26dynh5ba2sy7l0d0irq"
},
"stable": {
"version": [
- 0,
- 8,
- 6
+ 1,
+ 1,
+ 0
],
"deps": [
"elfeed"
],
- "commit": "2c8093e83491b9191115276e649dd87438726348",
- "sha256": "1r77b5vj4klqww7q7flw8h5i9w6y36zv2n7hx36pp1sav6s3a4r9"
+ "commit": "d97c813d472b68c977569b14761c242cb33345e1",
+ "sha256": "1drgv16555cyn7w6g44z23yhi1i0cy1b9h1ri3lz6h814px0wj0z"
}
},
{
@@ -26050,15 +26310,15 @@
"repo": "gonewest818/elisp-lint",
"unstable": {
"version": [
- 20200324,
- 2217
+ 20211018,
+ 212
],
"deps": [
"dash",
"package-lint"
],
- "commit": "a4de033c260389c0d483f93e715fd3395c6e4145",
- "sha256": "167b1yfagssqz3p481w7ghi12hsyi5wjv01a85yjc8qihjhar02l"
+ "commit": "a5ae046c35a898a88eff05137fe9e5159ae610d8",
+ "sha256": "0vzgqjsx8crikr13r87vczjr47sh2xm3hckqc10s6b26hc2jbxrv"
},
"stable": {
"version": [
@@ -26082,15 +26342,15 @@
"repo": "Wilfred/elisp-refs",
"unstable": {
"version": [
- 20210615,
- 1624
+ 20211009,
+ 1531
],
"deps": [
"dash",
"s"
],
- "commit": "fdde21e34b1272783d566d8230b5ed2dc4749048",
- "sha256": "15g3xp3w8lrshjf812c8v50y396zx7107fcyc59kljhsc257j62y"
+ "commit": "c06aec4486c034d0d4efae98cb7054749f9cc0ec",
+ "sha256": "0dhflhgc1px9kj2bhv9m646ab08a6qjcqdd1a6wd5psj047bkj9p"
},
"stable": {
"version": [
@@ -26158,14 +26418,11 @@
"repo": "elixir-editors/emacs-elixir",
"unstable": {
"version": [
- 20210509,
- 2353
+ 20211013,
+ 1408
],
- "deps": [
- "pkg-info"
- ],
- "commit": "6bbc1e5ac46064613c982cedc60566ed077e7a58",
- "sha256": "051pxppp7bdxjjr56p48khi5vfwf5kj7vvyddr66pfw5fwdpd86m"
+ "commit": "907ef434a0ce0f94dbd0c77f09bdfcdc779bca73",
+ "sha256": "0sri7m0n0wafc9dyffi5myvv2vawkfwx6lgmfrj7kikbds0l5s4c"
},
"stable": {
"version": [
@@ -26488,26 +26745,20 @@
"repo": "dochang/elpa-clone",
"unstable": {
"version": [
- 20191006,
- 1953
+ 20210916,
+ 655
],
- "deps": [
- "cl-lib"
- ],
- "commit": "827e2723b123618aaa32642d78c447cf2979a00a",
- "sha256": "08psgia9vwwil16nymy0z12p823in3bxf9k7phjrmdicqqc01k42"
+ "commit": "2549b14e8688e9ee866e0ec9f1b6d9cbc97f462c",
+ "sha256": "1rjc64j7a786xna8xcfp1kxvx1y0jfqxajicbbyvcnhd17g6a7z9"
},
"stable": {
"version": [
0,
- 0,
- 9
+ 1,
+ 1
],
- "deps": [
- "cl-lib"
- ],
- "commit": "827e2723b123618aaa32642d78c447cf2979a00a",
- "sha256": "08psgia9vwwil16nymy0z12p823in3bxf9k7phjrmdicqqc01k42"
+ "commit": "2549b14e8688e9ee866e0ec9f1b6d9cbc97f462c",
+ "sha256": "1rjc64j7a786xna8xcfp1kxvx1y0jfqxajicbbyvcnhd17g6a7z9"
}
},
{
@@ -26560,11 +26811,11 @@
"url": "https://thelambdalab.xyz/git/elpher.git",
"unstable": {
"version": [
- 20210823,
- 941
+ 20211008,
+ 1217
],
- "commit": "0d65ffa3ab238529a11d5c1a5d2dea5a6c27e9b4",
- "sha256": "1s6mh7a9r3s0b2nk019pdzzp646ny43mihjd68yq1m2yad7d6y5x"
+ "commit": "81e107a26924747c10c671882032d341ca6d77c4",
+ "sha256": "1psvfqk71bi9p5mq99r2ihpk4h80sb7p8398fg2zb33a3j3g52b7"
},
"stable": {
"version": [
@@ -26609,8 +26860,8 @@
"s",
"yasnippet"
],
- "commit": "4248dccef31e260813d93cafd083bfcd71efc92a",
- "sha256": "16pkbg1fwsn0haz2x0ky9pmpgxj9syszsm5g58jra5r0dhyv99vz"
+ "commit": "8d0de310d41ebf06b22321a8534546447456870c",
+ "sha256": "0hg6yk0wkfh2rwcc4h0bb6m2p3dg62ja22mjpa94khq52lv1piwf"
},
"stable": {
"version": [
@@ -26674,8 +26925,8 @@
"repo": "emacs-elsa/Elsa",
"unstable": {
"version": [
- 20201011,
- 1950
+ 20211101,
+ 1023
],
"deps": [
"cl-lib",
@@ -26683,8 +26934,8 @@
"f",
"trinary"
],
- "commit": "ac0ab88abca1215cac60f8a986dadf3011b444bb",
- "sha256": "0g712vmiabia8aqvdw15i4416dgvy73flsijb6x8mq6bbxw6mmrc"
+ "commit": "22bb5bd15e3f4fc2a9f10b998626fec18fd3a1a0",
+ "sha256": "1cccxhni2xk5zc0rf807himgdh8aj0m247q0y1xngc9amjms9hqj"
}
},
{
@@ -26912,20 +27163,20 @@
"repo": "emacscollective/elx",
"unstable": {
"version": [
- 20210819,
- 2127
+ 20210918,
+ 1436
],
- "commit": "5aa6369b58e72ef2348a5d6ca6bdf32299329c58",
- "sha256": "056hb1mss84d4m7fb052c10bfmshf00x772rlpck671n83fi14li"
+ "commit": "a457a596401dc5caa9c9a2ebb627bd4af0607780",
+ "sha256": "0670dxmvy38rl3mh2gh2ab8hp4y7z90kg3w340mfgx50fbwbcfs4"
},
"stable": {
"version": [
1,
- 4,
+ 5,
0
],
- "commit": "53d257db92fb72ade8ea1b91dc6839c21563119e",
- "sha256": "1qccz8z0410xhygrfy62h1j3553avdcb7m61ps6b6y74nz615l1r"
+ "commit": "a457a596401dc5caa9c9a2ebb627bd4af0607780",
+ "sha256": "0670dxmvy38rl3mh2gh2ab8hp4y7z90kg3w340mfgx50fbwbcfs4"
}
},
{
@@ -27009,6 +27260,40 @@
"sha256": "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"
}
},
+ {
+ "ename": "emacsql-libsqlite3",
+ "commit": "4e7ce4ac946c7b7e2c4feecd3b753ea163ecc435",
+ "sha256": "0cpniv5r9k38qapyzhzcjhb0hpv7i6jxqnxy6nwm7ml6nhrgkai9",
+ "fetcher": "github",
+ "repo": "emacscollective/emacsql-libsqlite3",
+ "unstable": {
+ "version": [
+ 20210927,
+ 2137
+ ],
+ "deps": [
+ "emacsql",
+ "emacsql-sqlite",
+ "sqlite"
+ ],
+ "commit": "ce95d8a373321bdeafa13e81dac18495c055fd95",
+ "sha256": "1v0v0akwcc6pklv3abalcbzglkmk9z38v7a31mcacn6fnnf75sl9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "emacsql",
+ "emacsql-sqlite",
+ "sqlite"
+ ],
+ "commit": "d0fac65db8bd10abd845fa18c275d581219086d3",
+ "sha256": "00w1p1ax2xiv1m0p2wlrawyj98fwg69y2p2scqkd4ny1zydc7x73"
+ }
+ },
{
"ename": "emacsql-mysql",
"commit": "9cc47c05fb0d282531c9560252090586e9f6196e",
@@ -27113,8 +27398,8 @@
"deps": [
"emacsql"
],
- "commit": "50aa9bdd76b0d18bf80526cff13a69fe306ee29c",
- "sha256": "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"
+ "commit": "209fd0c2649db0c7532e543ec12e7ba881a3325c",
+ "sha256": "0zr56gwn8rcgvaa9halhfxpxnn0x6yqc66z6r7vqzx5jbj7d6q46"
},
"stable": {
"version": [
@@ -27233,19 +27518,19 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20210905,
- 1435
+ 20211103,
+ 1737
],
- "commit": "d21277a638827623ab84e9e6341312a2da5062ab",
- "sha256": "12kl6a4y46vldxc25s7npm0748j4hj8g0vvnhfnxy8iq8q2m2i3j"
+ "commit": "0b524bda8d9c5f9e26898e383e98a4ec689fa144",
+ "sha256": "1jgl9n6js71sx4j1wg2nl5aaqmsq2hzna0qawz813637kaylrdxn"
},
"stable": {
"version": [
0,
- 10
+ 12
],
- "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
- "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
+ "commit": "0bd49785a6aa4225e2d2ebcde559c1e2ee006a9f",
+ "sha256": "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36"
}
},
{
@@ -27256,27 +27541,27 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20210829,
- 1334
+ 20211031,
+ 1522
],
"deps": [
"consult",
"embark"
],
- "commit": "d21277a638827623ab84e9e6341312a2da5062ab",
- "sha256": "12kl6a4y46vldxc25s7npm0748j4hj8g0vvnhfnxy8iq8q2m2i3j"
+ "commit": "0b524bda8d9c5f9e26898e383e98a4ec689fa144",
+ "sha256": "1jgl9n6js71sx4j1wg2nl5aaqmsq2hzna0qawz813637kaylrdxn"
},
"stable": {
"version": [
0,
- 10
+ 12
],
"deps": [
"consult",
"embark"
],
- "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
- "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
+ "commit": "0bd49785a6aa4225e2d2ebcde559c1e2ee006a9f",
+ "sha256": "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36"
}
},
{
@@ -27431,29 +27716,29 @@
"url": "https://git.savannah.gnu.org/git/emms.git",
"unstable": {
"version": [
- 20210825,
- 1456
+ 20211101,
+ 1746
],
"deps": [
"cl-lib",
"nadvice",
"seq"
],
- "commit": "b582a75d033e5a21090c854f58abeefdd238798f",
- "sha256": "1gmgh9llriqgq8kjdffmyjw5gb9k385fbh258bf7n5yvgpd3bbsn"
+ "commit": "777c904c9d6c8dfff3ed21c5e4a24a6432f8ee52",
+ "sha256": "0kg312x6ka4nxpbwsfyhg8n4a2yqi0wcfxgbj17sfcs9d3ssijs8"
},
"stable": {
"version": [
7,
- 6
+ 8
],
"deps": [
"cl-lib",
"nadvice",
"seq"
],
- "commit": "8b32529950e5a2e1dd7afed8757ff6bc923c95e2",
- "sha256": "0pcs95nmdbxahwsqp1fz0m8pgwsxycvf7xixh40sfjgifvbq0a21"
+ "commit": "4529ea69dd86c5e88d7fb7d568a5258b20988042",
+ "sha256": "1hyxcpv020dhm15fvdq2jgdqzsn2ara8156dpz4c93g8kj614crx"
}
},
{
@@ -27619,14 +27904,14 @@
"repo": "alezost/emms-state.el",
"unstable": {
"version": [
- 20160504,
- 805
+ 20211023,
+ 1942
],
"deps": [
"emms"
],
- "commit": "77930300222333b71eafd495cc1fee3a3585eb23",
- "sha256": "1kipxa9ax8zi9qqk19mknpg7nnlzgr734kh9bnklydipwnsy00pi"
+ "commit": "cdb3ee85369758727b3c082e4ade1ae2b559b334",
+ "sha256": "1gwn47nl003kwfaif3vh84p7rxfc3lilb6a3kk2hcczc5j65i13d"
},
"stable": {
"version": [
@@ -27724,8 +28009,8 @@
"emojify",
"request"
],
- "commit": "f05ab06436e13b3578f3d4d183fcb1bc3a4eeab1",
- "sha256": "01dnab8mqz03rdd3xcb48csx56cv2ik07sykyqscbiib5vcw5k5k"
+ "commit": "23a0cf469999854fa681d02e3122840864fd4c65",
+ "sha256": "1n3znp78hhbjna6w0raixd439nmy9m0sa38g4pd70kj5l0ci1848"
},
"stable": {
"version": [
@@ -28182,14 +28467,14 @@
"repo": "emacscollective/epkg",
"unstable": {
"version": [
- 20210806,
- 1315
+ 20211017,
+ 2000
],
"deps": [
"closql"
],
- "commit": "23045743150f9a50ccc164a710c4d495820de803",
- "sha256": "0v5v7iw9qyp8ckh9ana61r0fbhffbpsmhjr2yx88kc6ia59vn561"
+ "commit": "9be7c61fe119d9d984d8f3a91139c794300a77f2",
+ "sha256": "03qymnnsw5fb2xv1bm4z8arz8mnzqhg988baj15r13j1fcakl55r"
},
"stable": {
"version": [
@@ -28301,10 +28586,10 @@
},
{
"ename": "eprime-mode",
- "commit": "37b4f3dce033fa18d23202ca4c36bc85754d547d",
- "sha256": "0vswjcs24f3mdyw6ai7p21ab8pdn327lr2d6css0a5nrg539cn2g",
+ "commit": "41405ce2b327350415db3c4f13266856909d0cf9",
+ "sha256": "0vhp6ccsxjxnka4gsicnf71d7qy9wsxh2adnvhxk2v4p99ifygsl",
"fetcher": "github",
- "repo": "AndrewHynes/eprime-mode",
+ "repo": "VioletHynes/eprime-mode",
"unstable": {
"version": [
20140513,
@@ -28340,14 +28625,14 @@
"repo": "emacsomancer/equake",
"unstable": {
"version": [
- 20210731,
- 2016
+ 20210913,
+ 145
],
"deps": [
"dash"
],
- "commit": "f9d741baf42232125663c1d27e01ec04ab0ca85f",
- "sha256": "0cxax1dgznzvfzwy00spqi609q93gxkabcy6jm6009029gmsdhdr"
+ "commit": "4d6ef75a4d91ded22caad220909518ccb67b7b87",
+ "sha256": "11xfr71y78idcn461p4pz7b0k01nhz15cyl97bjqq6ii5xhbhvdx"
}
},
{
@@ -28782,15 +29067,14 @@
"repo": "ergoemacs/ergoemacs-mode",
"unstable": {
"version": [
- 20210402,
- 1642
+ 20211103,
+ 2356
],
"deps": [
- "cl-lib",
- "undo-tree"
+ "cl-lib"
],
- "commit": "f9d6e3f7d99b877a63fa6f5ab61e6ba05a7075c8",
- "sha256": "0xw99i47mmry205aps4mha1ninnnzir652s7jh81fdsys8y5j7w1"
+ "commit": "63fe57790e212a3375fd9af2ccb3184f3e1d821b",
+ "sha256": "1hac7p9v510iw15livf3mx8f5f522n6s3w4mbhflilymb3bxclgh"
},
"stable": {
"version": [
@@ -28837,8 +29121,8 @@
20200914,
644
],
- "commit": "731f300deac14e10792a0bbf22c86cbe0c9c7e4b",
- "sha256": "1fgqk0xvfxaqj737b62ngnqivd8fhp5pakwbh2zvvdl76frkbsmv"
+ "commit": "475d9add939bf86936a1d5b41c3260f0000bd3c8",
+ "sha256": "0f7849s67gzzrnkb57hm2p6hbkrd50s02m9l5xfqg286dinhqp0v"
},
"stable": {
"version": [
@@ -28861,17 +29145,17 @@
20210315,
1640
],
- "commit": "2ef0ca21ddf75c28b6a1ca07d20c33cbdc24e853",
- "sha256": "1dzj8frv80lx34chv94ksm83749l7f8195iy337vcpbvgpzf4arf"
+ "commit": "b3d4affcf9880255f6edc2e67095015e6ed2aca2",
+ "sha256": "1rz9akamp7qc8m417xgbjbm0785bj1jsjpaabzmq3pjxcqzykna0"
},
"stable": {
"version": [
24,
- 0,
- 6
+ 1,
+ 4
],
- "commit": "163593593441984f8446f513bdc7684ac5fe067e",
- "sha256": "0z01hkzf2y6lz20s2vkn4q874lb6n6j00jkbgk4gg60rhrmq904z"
+ "commit": "eef2e7066ecdf9de5dc7fd81dc5043d9a9757efa",
+ "sha256": "0gpjl5avpfgrkm6g3p8b2b3zgfvrpsxgvzgb01mhbcw8mi2raka0"
}
},
{
@@ -29299,25 +29583,25 @@
"repo": "xuchunyang/eshell-did-you-mean",
"unstable": {
"version": [
- 20150915,
- 1952
+ 20211104,
+ 237
],
"deps": [
"cl-lib"
],
- "commit": "7cb6ef8e2274d0a50a9e114d412307a6543533d5",
- "sha256": "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"
+ "commit": "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d",
+ "sha256": "158g8b4crm0gf5pilfxf89hdsb22gr1wbrjyx9gf45bmcll3i9vf"
},
"stable": {
"version": [
0,
- 1
+ 2
],
"deps": [
"cl-lib"
],
- "commit": "7cb6ef8e2274d0a50a9e114d412307a6543533d5",
- "sha256": "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"
+ "commit": "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d",
+ "sha256": "158g8b4crm0gf5pilfxf89hdsb22gr1wbrjyx9gf45bmcll3i9vf"
}
},
{
@@ -29417,11 +29701,11 @@
"repo": "zwild/eshell-prompt-extras",
"unstable": {
"version": [
- 20201115,
- 440
+ 20210925,
+ 110
],
- "commit": "d7d874ce3da3ae55a42f669aca723a8774c8292c",
- "sha256": "1ahydmiffxn4mp76fmzax73fx1lws37nacnnxp1imxnvmk8f0zjp"
+ "commit": "c2078093323206b91a1b1f5786d79faa00b76be7",
+ "sha256": "1zchbl59jkay46w8rf2skza71al2xf9lqsssjd22s5h5vwkl64kn"
},
"stable": {
"version": [
@@ -29443,8 +29727,8 @@
20210429,
413
],
- "commit": "32d2568ebeb42553a30dda77e03c0e2ec8854199",
- "sha256": "0my99472i5zdlhcv95jhfv58ph28gaw159p2llp4wv13acryin56"
+ "commit": "8e3a685fc6d97af79e1046e5b24385786d8e92f6",
+ "sha256": "15m084kk3ikw85pw9dg5xwc1abbv51a2f0k421vks0bhi37ba1wd"
},
"stable": {
"version": [
@@ -29497,6 +29781,24 @@
"sha256": "05mfwp8zira7p2ip1rmqa08arlbkv7w1mbx7s5saj655scg7jaq3"
}
},
+ {
+ "ename": "eshell-vterm",
+ "commit": "1370431919f47a6ca7d3645a4feffea1171a28e6",
+ "sha256": "08ai9nl219zavdl8blx49jiqbqgdmsihfi6qsb348lihrrbvr0wz",
+ "fetcher": "github",
+ "repo": "iostapyshyn/eshell-vterm",
+ "unstable": {
+ "version": [
+ 20211024,
+ 1443
+ ],
+ "deps": [
+ "vterm"
+ ],
+ "commit": "f2212dbfa51aa4b67efda55304b2b3811e8e0625",
+ "sha256": "02q1iyh77m7vg9cip7c9wzpiggnsbhhicfs5rqzpc5d7n70gbk2p"
+ }
+ },
{
"ename": "eshell-z",
"commit": "8079cecaa59ad2ef22812960838123effc46a9b3",
@@ -29534,11 +29836,11 @@
"repo": "codesuki/eslint-fix",
"unstable": {
"version": [
- 20180514,
- 700
+ 20211005,
+ 221
],
- "commit": "f81f3b47a47460611fbdbdae1d23275ec78f2f8d",
- "sha256": "0k3asz3mdz4nm8lq37x9rgx4wb8hsfyr0hlfyhzwdb10x57jfzns"
+ "commit": "636bf8d8797bdd58f1b543c9d3f4910e3ce879ab",
+ "sha256": "02hjm685fl4f33s5fi8nc088wwfzhyy6abx5g4i93b2dx3hr2lyi"
},
"stable": {
"version": [
@@ -29723,11 +30025,11 @@
"repo": "emacs-ess/ESS",
"unstable": {
"version": [
- 20210818,
- 843
+ 20211011,
+ 2049
],
- "commit": "a7ce81bb768d7cc410885711cf99bad0f8941ac3",
- "sha256": "0kz9diqb26ksrgnfqdcdgf48sqjapvfg6z1fjk9ib2q2si6nv0yx"
+ "commit": "569dca1f4ff939a93c7be97c34577666d9af8b3a",
+ "sha256": "086nl0486l28n1zmw9jxqh63d7bqanzlqwh9nm4a4aw1fyjy7pda"
},
"stable": {
"version": [
@@ -29891,27 +30193,27 @@
"repo": "ShuguangSun/ess-view-data",
"unstable": {
"version": [
- 20210603,
- 1412
+ 20211103,
+ 1525
],
"deps": [
"csv-mode",
"ess"
],
- "commit": "845412ba57efab1a28fbaf0dcdbe76bdab03f828",
- "sha256": "0m5wmxi4zq3xy9jsg7d2318iyn9g6fpzqiraq0810fbmrdl4dda4"
+ "commit": "060ea424d7781d652ae385a48384848b6ded0105",
+ "sha256": "1nwdf2i47j1m1vhy8ng02xbrmr15gm97fmnd5z4yb29gj2kb69fv"
},
"stable": {
"version": [
1,
- 3
+ 4
],
"deps": [
"csv-mode",
"ess"
],
- "commit": "845412ba57efab1a28fbaf0dcdbe76bdab03f828",
- "sha256": "0m5wmxi4zq3xy9jsg7d2318iyn9g6fpzqiraq0810fbmrdl4dda4"
+ "commit": "fddf070b51dbcbf7fa060a9998e676e8d0c15e1d",
+ "sha256": "1zhlinkfzybkk0gbr1pskvx69wk566r6a5dxgpjjry247hq76ci2"
}
},
{
@@ -30318,15 +30620,15 @@
"repo": "emacs-evil/evil",
"unstable": {
"version": [
- 20210902,
- 2016
+ 20211021,
+ 2104
],
"deps": [
"cl-lib",
"goto-chg"
],
- "commit": "82e5becae21b7768ffbb4728bce83dab8751d610",
- "sha256": "1jkijmfr5bvvp7yl3rdyg9yqp2za855hiymbrpy0cvqljddjs0zv"
+ "commit": "17c635f6e1f538bf4b2c3c276ddd9d4d165a52fb",
+ "sha256": "1yd7kmhk0v235h4nlynfs29ljx7ca6i7s7h8wj5krk5b8sv51x27"
},
"stable": {
"version": [
@@ -30470,28 +30772,28 @@
"repo": "wbolster/emacs-evil-colemak-basics",
"unstable": {
"version": [
- 20210818,
- 1228
+ 20211022,
+ 1248
],
"deps": [
"evil",
"evil-snipe"
],
- "commit": "db01118a76112c61b7617aa44aa8c438d8f1871f",
- "sha256": "15ihz0wwc7gzqsmzbrr48zzh3rw3bmbf2ghnhcy13pdq42wridcv"
+ "commit": "f9fbb49c48b3347d97fd2e19d7499bfee0ac5ad9",
+ "sha256": "0w40qfwjjmvzkxi8p09s9g266ggvxcw7jhg7j70fz24hq6plmc2r"
},
"stable": {
"version": [
2,
- 1,
- 0
+ 2,
+ 1
],
"deps": [
"evil",
"evil-snipe"
],
- "commit": "7844079b47f47bb1dc24c885b0ac2e67524fa960",
- "sha256": "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2"
+ "commit": "05c023740f3d95805533081894bfd87f06401af5",
+ "sha256": "1fnzrwr53h18wp4wkb834j39xg8bv7yqcmilb41bc81npfmi2mn1"
}
},
{
@@ -30520,15 +30822,15 @@
"repo": "emacs-evil/evil-collection",
"unstable": {
"version": [
- 20210904,
- 830
+ 20211028,
+ 1851
],
"deps": [
"annalist",
"evil"
],
- "commit": "869d056dcab5eb9781824bcd591bf946969b8b41",
- "sha256": "0vm5xncxvnys957pxq6ih6bz65v65aglpjavbf5lypycwjq55iqn"
+ "commit": "9e47d61bdfb63495503e62955ac5509b34c51de0",
+ "sha256": "06lwla41sr7m4bzlixbivn46c0ydc2hx0jfcqgi9lxk447v8ixcs"
},
"stable": {
"version": [
@@ -31086,26 +31388,26 @@
"repo": "redguardtoo/evil-matchit",
"unstable": {
"version": [
- 20210819,
- 5
+ 20210923,
+ 931
],
"deps": [
"evil"
],
- "commit": "24a95751f48fb64246de15278734e0179c9f622f",
- "sha256": "0gdfnpzzy6y9626nqia7rs5l37bl31nndn1m71dnm0qns5cqfngk"
+ "commit": "9b228b097a863e9deef8033b11747597e055674b",
+ "sha256": "0cxv1bmbnir59k778dip5mkjyqhbh10pk9b4ayvwpgiz25dlp4ss"
},
"stable": {
"version": [
2,
- 3,
- 13
+ 4,
+ 1
],
"deps": [
"evil"
],
- "commit": "80dc731ab736545541546ca64187e850bf0e39c8",
- "sha256": "1j1p4z6ps58nbsh55l9h30gxbkrzwzkjpq7zl50q6yfc84z7byzk"
+ "commit": "9b228b097a863e9deef8033b11747597e055674b",
+ "sha256": "0cxv1bmbnir59k778dip5mkjyqhbh10pk9b4ayvwpgiz25dlp4ss"
}
},
{
@@ -31187,16 +31489,16 @@
"repo": "hlissner/evil-multiedit",
"unstable": {
"version": [
- 20200229,
- 528
+ 20211030,
+ 2202
],
"deps": [
"cl-lib",
"evil",
"iedit"
],
- "commit": "9f271e0e6048297692f80ed6c5ae8994ac523abc",
- "sha256": "03imayy9afv084yl6g4kg6qis3mikllpbbizd2fya7njbsnpbpq1"
+ "commit": "dd88d83a6c4d8501b809aa58d18ac2d51ad5fddb",
+ "sha256": "028qnaiwnx78c412iywsr4wqsh6fw6mjk5aqpkf5xrk7gvka27h0"
},
"stable": {
"version": [
@@ -31221,11 +31523,11 @@
"repo": "redguardtoo/evil-nerd-commenter",
"unstable": {
"version": [
- 20210719,
- 1305
+ 20211014,
+ 455
],
- "commit": "6bc41317ba4b8710d713a62e1b78047c3cc2d2d5",
- "sha256": "14s2zrl2rpnqpfp647naa80qzb2x4c6jflvs1nhxsvn43s0gdfj9"
+ "commit": "63baf2d1c796edd11bbec5fe1dee711173d4155d",
+ "sha256": "0kk9l9wvvb40hric4wdzvccp98mbipln7ah9h8grl5ayb9kw6xxg"
},
"stable": {
"version": [
@@ -31260,14 +31562,14 @@
"repo": "juliapath/evil-numbers",
"unstable": {
"version": [
- 20210808,
- 1424
+ 20211011,
+ 103
],
"deps": [
"evil"
],
- "commit": "8ce0066fa4889c9a43db5917d116baa9497837b7",
- "sha256": "04dls5fmr4a8b8j3802nm0cf4rngr01bgpsa25rgdq1cdv9x9zb6"
+ "commit": "08f0c1ee93b8a563770eaefaf21ab9087fca7bdb",
+ "sha256": "0pcacrfvvk6ra9dgq84fdcsh5ziwk78k8dmr2c442fvr2lzch4yn"
},
"stable": {
"version": [
@@ -31822,14 +32124,14 @@
"repo": "7696122/evil-terminal-cursor-changer",
"unstable": {
"version": [
- 20210130,
- 1855
+ 20211002,
+ 709
],
"deps": [
"evil"
],
- "commit": "a88c680c631676ff8f6c5156b529f86d6b9f0841",
- "sha256": "1b9y21p56a000z62mknbnr22ypkv1j58r24i8bg9836n23y8l717"
+ "commit": "5b2d76fd26bf33022bbad0198acd9b83c9759750",
+ "sha256": "0f9i5w2vdvrsmcf4vv0vf5bkrqpqdq3gm6p9a0hm1j2p0dfvh8hd"
}
},
{
@@ -31846,8 +32148,8 @@
"deps": [
"evil"
],
- "commit": "82e5becae21b7768ffbb4728bce83dab8751d610",
- "sha256": "1jkijmfr5bvvp7yl3rdyg9yqp2za855hiymbrpy0cvqljddjs0zv"
+ "commit": "17c635f6e1f538bf4b2c3c276ddd9d4d165a52fb",
+ "sha256": "1yd7kmhk0v235h4nlynfs29ljx7ca6i7s7h8wj5krk5b8sv51x27"
},
"stable": {
"version": [
@@ -32001,14 +32303,25 @@
"repo": "emacsorphanage/evil-textobj-line",
"unstable": {
"version": [
- 20150729,
- 1522
+ 20211101,
+ 1429
],
"deps": [
"evil"
],
- "commit": "3d401b6831bdbeec967ec8e64177a8950251e812",
- "sha256": "1vnk27bizzi321mdq3k39zxv8w20ifxbhxabiy685nyk89cq3mbj"
+ "commit": "9eaf9a5485c2b5c05e16552b34632ca520cd681d",
+ "sha256": "1w98gc1sqik8ab35a1hg5853dwar98a8qd94lxpq4ckabpgypins"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "9eaf9a5485c2b5c05e16552b34632ca520cd681d",
+ "sha256": "1w98gc1sqik8ab35a1hg5853dwar98a8qd94lxpq4ckabpgypins"
}
},
{
@@ -32038,15 +32351,15 @@
"repo": "meain/evil-textobj-tree-sitter",
"unstable": {
"version": [
- 20210904,
- 1350
+ 20211029,
+ 514
],
"deps": [
"evil",
"tree-sitter"
],
- "commit": "a315a8832fc170c163be01c31b625b19641ce20a",
- "sha256": "0msg9kpj4sajcszjamb8gqbi9hdhybsg1gdajprzg0p5z09sv863"
+ "commit": "08823ff97277fe50540d8226c7d298e06fb14932",
+ "sha256": "0w0kj6nd2achp7s6h56vzjjb28c8m5i45laa11iph3g8avvyhf2c"
}
},
{
@@ -32461,14 +32774,14 @@
"repo": "purcell/exec-path-from-shell",
"unstable": {
"version": [
- 20201215,
- 33
+ 20210914,
+ 1247
],
"deps": [
"cl-lib"
],
- "commit": "bf4bdc8b8911e7a2c04e624b9a343164c3878282",
- "sha256": "0b19lhidn2kvkc4aaa1x634y2biryq85di1iwxdh8070k4j2yw9s"
+ "commit": "0a07f5489c66f76249e6207362614b595b80c230",
+ "sha256": "081p104ma9b7nzhs42y6zn8r8vz5dp7kz6vp79xdyl42w9dqinww"
},
"stable": {
"version": [
@@ -32534,10 +32847,10 @@
},
{
"ename": "exotica-theme",
- "commit": "2788fa27ba5b3bddc98c28fed6243d1f34e8caa8",
- "sha256": "0inglwhia3l9cl7k7d6gwir1za3wz861gknj4pb6n76x5p0zap0f",
+ "commit": "744e4cf9105c9eaafe2b49ca1f8d7d6b9c5be4a6",
+ "sha256": "0gkidf8jcv3j3cqhjkjcxg6hv0m8kspycffn9dvjxqn912n6ljks",
"fetcher": "github",
- "repo": "1bharat/exotica-theme",
+ "repo": "zenobharat/exotica-theme",
"unstable": {
"version": [
20180212,
@@ -32692,20 +33005,20 @@
"repo": "doublep/extmap",
"unstable": {
"version": [
- 20200617,
- 1905
+ 20211023,
+ 1904
],
- "commit": "2a6373d4fad1a5ac95272cabb6f5e4af89233d67",
- "sha256": "0n0hz93x7mbf95mf8vvc6cam7qbzwj4kskbbws07km2av7jsi166"
+ "commit": "5875a4ab27831eb81af6246b12a174c765d52a78",
+ "sha256": "00415w4l9wfpw9v0a35dm1av2w1m6s36yr9f9286jg844x6l375f"
},
"stable": {
"version": [
1,
- 1,
+ 2,
1
],
- "commit": "341e3e16e217da5a006c0859cb3a59cbc40cfb84",
- "sha256": "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"
+ "commit": "5875a4ab27831eb81af6246b12a174c765d52a78",
+ "sha256": "00415w4l9wfpw9v0a35dm1av2w1m6s36yr9f9286jg844x6l375f"
}
},
{
@@ -33157,19 +33470,19 @@
"repo": "WJCFerguson/emacs-faff-theme",
"unstable": {
"version": [
- 20210602,
- 1952
+ 20211013,
+ 1554
],
- "commit": "cb8803355e20812d84195b1b7c9b0578c3262e68",
- "sha256": "0wx2k9262p712aasn3ha8si250yzhcqz513apna8lp5gri2rxsg8"
+ "commit": "3c13ae4d694025207ba7eb43f174f90bb49395d4",
+ "sha256": "1iv9i1j39wj29y86z49yyw1a22wgyafdybjizmji60hi7x4r66az"
},
"stable": {
"version": [
2,
- 20
+ 21
],
- "commit": "45f2faef92ee23738b86f4f8d0a433ad729a5ca8",
- "sha256": "0slvrgw508388il24wlx9g0bf32anpk6rbhmb2r99anq2vhn4b4g"
+ "commit": "3c13ae4d694025207ba7eb43f174f90bb49395d4",
+ "sha256": "1iv9i1j39wj29y86z49yyw1a22wgyafdybjizmji60hi7x4r66az"
}
},
{
@@ -33223,14 +33536,14 @@
"repo": "jrosdahl/fancy-dabbrev",
"unstable": {
"version": [
- 20210901,
- 637
+ 20210909,
+ 752
],
"deps": [
"popup"
],
- "commit": "a2e8449e4ceda45adc5ab7b7d2225c2cc3765371",
- "sha256": "165mv9v18fyyha4b27yhardb1k8i30qjchz1lgrfnzv15qv0d7yg"
+ "commit": "9435ad63c1c4756f574ae98d2d63ecf1189ec832",
+ "sha256": "1qnh6ykmwvwk06rpi8pcvql5zq9gpiz2xiyl3j2imhmx1jiw4xdz"
}
},
{
@@ -33288,14 +33601,14 @@
"repo": "condy0919/fanyi.el",
"unstable": {
"version": [
- 20210905,
- 1203
+ 20211030,
+ 1408
],
"deps": [
"s"
],
- "commit": "352fc9ae3230e87470fcbb638d623169c2e582f9",
- "sha256": "06w54klzl9781bxmxhx0vhj1yj6ym8i68fb1bry9yhy8r3qamyip"
+ "commit": "2e37cc1d19f0f6f710932610639e4fd206884770",
+ "sha256": "0j0mqlx5xv1m1ik61q82lj6y030226k7isswd5plbq2v5z1d8b76"
}
},
{
@@ -33466,6 +33779,28 @@
"sha256": "16p7qmljjki4svci3mxzydmvpxaprbnfq6794b3adyyixkmgr6k7"
}
},
+ {
+ "ename": "fb2-reader",
+ "commit": "5142d1146d359070e56eeaa5a20dabfc46803ec6",
+ "sha256": "1gznaxn1p7gzg0s161agx0x4p1v6kqql907k2vj6bxv3j4dqi94z",
+ "fetcher": "github",
+ "repo": "jumper047/fb2-reader",
+ "unstable": {
+ "version": [
+ 20211104,
+ 24
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "f",
+ "s",
+ "visual-fill-column"
+ ],
+ "commit": "3d4f2aef7051ab35f63ed94fda19ab25d1182883",
+ "sha256": "01vjz1bq7lrf8ynrfyr8lvkll0z228p9qdwj933c3812wjwgk6ml"
+ }
+ },
{
"ename": "fcitx",
"commit": "e8c40f09d9397b3ca32a7ed37203f490497dc984",
@@ -33635,20 +33970,20 @@
"repo": "technomancy/fennel-mode",
"unstable": {
"version": [
- 20210817,
- 1612
+ 20211101,
+ 1749
],
- "commit": "47152970a98734723b5086b5c774f50da34c0488",
- "sha256": "1p9fi5rrqlcx9gg5gljdndmi318x0z5zzxryi1kbqkkc8119kbsg"
+ "commit": "777c19b8cbf48f3247f8bd47f61858581ad02b50",
+ "sha256": "0v9a6psnlbh9cyibp95k2frix29ma6b69cgivmh8z4nrp0ycywc7"
},
"stable": {
"version": [
0,
- 3,
+ 4,
0
],
- "commit": "ea8564a2cc4f7e10b3fc13faf26a4f098b159f00",
- "sha256": "03z3f60qsn6k9wg1km49ad4xlwp82114r5pzibnxly2n0vmmdsyb"
+ "commit": "815f4c9433fa389bf10ddcf1da6f280e512912ff",
+ "sha256": "0v9a6psnlbh9cyibp95k2frix29ma6b69cgivmh8z4nrp0ycywc7"
}
},
{
@@ -33681,8 +34016,8 @@
"f",
"s"
],
- "commit": "142a7a5ecd79b4a3db7ce3dfdd0d87ceeedab468",
- "sha256": "1lmfnc5nljghqapciaqrvmj177v3m1ybndf7mjj74d6n41gphwcj"
+ "commit": "3d524dd404862de1a40ec5834cc1b85137a1acd2",
+ "sha256": "1ds46hl7givwmw4zsz4nx7wg4n9xxmn1a806dxkjjqcp0cvhv4l5"
},
"stable": {
"version": [
@@ -33785,15 +34120,15 @@
"repo": "knpatel401/filetree",
"unstable": {
"version": [
- 20210629,
- 356
+ 20211025,
+ 2000
],
"deps": [
"dash",
"helm"
],
- "commit": "f7dd8a310f5364f1e1549082ef231c3c27285e89",
- "sha256": "1w1f924as6l0s9dkpjjk6bnkp29x52mf5pzzqxqsigp2r1z6k2lk"
+ "commit": "a7a71d875cb666bed34e2ec86ae7921d8af5c28a",
+ "sha256": "08lz5zksnc8728v8gxpmc587pi7i85iv7f35d46appffwc42hfra"
}
},
{
@@ -33853,8 +34188,8 @@
20210707,
354
],
- "commit": "cad66696f334f70adf2b8bdf9910852c017dbdd0",
- "sha256": "0jg7gppjf39qzwb44n1q7bikhqvxs5hr4yd403v7apf75z0hpc3m"
+ "commit": "562d6d5118097b4e62f20773fd90d600ab19fb61",
+ "sha256": "0v5irns6061qx0madrf2dc1ahkn4j90v8jpx16l69y9i98dh6n5k"
},
"stable": {
"version": [
@@ -33976,20 +34311,20 @@
"repo": "redguardtoo/find-file-in-project",
"unstable": {
"version": [
- 20210813,
- 657
+ 20210924,
+ 952
],
- "commit": "f26f081f835165bfb05e247afbfbcbddf53236a5",
- "sha256": "13vsmi02v1rv5h2m62s36dw21781nxsj9dj4hlaxfz2v5avmp00c"
+ "commit": "1d2f0b374460be798ba5c4854d3660e9b4d6d6f7",
+ "sha256": "1aqsgfbhc382h009hv3xqh5kq5x7y3smk1vc0vj3bwfg95fw6jdx"
},
"stable": {
"version": [
6,
1,
- 1
+ 2
],
- "commit": "f26f081f835165bfb05e247afbfbcbddf53236a5",
- "sha256": "13vsmi02v1rv5h2m62s36dw21781nxsj9dj4hlaxfz2v5avmp00c"
+ "commit": "52274e6001545bdf45c6477ba21bfaa8eca04755",
+ "sha256": "0v5c9cnwlbw6jj371swhd5bs8sb2zf6g5yjvhdsfnxly7g3dg636"
}
},
{
@@ -34098,8 +34433,8 @@
"repo": "LaurenceWarne/finito.el",
"unstable": {
"version": [
- 20210904,
- 1352
+ 20211015,
+ 937
],
"deps": [
"async",
@@ -34110,13 +34445,13 @@
"s",
"transient"
],
- "commit": "0895002dfacdaab9010a35c190139384935cb4d0",
- "sha256": "0cg6axjv41da3ryxq2vszhn8f7jslc8ipf8izh1h7ldg2li5kz9c"
+ "commit": "21a492d3e67e5e3ab59b75107d345142a4c3ac02",
+ "sha256": "02n3h2zvdf24jxmcpp0cjcfba54cs0isymcd4k4j68zywszwzp36"
},
"stable": {
"version": [
0,
- 2,
+ 3,
0
],
"deps": [
@@ -34128,8 +34463,8 @@
"s",
"transient"
],
- "commit": "bf720fec1fcd46664dce66a667ef77a1c80ef89a",
- "sha256": "0q55ny88rpc2xrnkbpmifb9nnshjlx69mwf6kvxqryljvcjbk69y"
+ "commit": "b7cbb5fa672031cbc9d7de18797ecdd2df8e224f",
+ "sha256": "00rimqh2hmz9hzqq5piq0bn60rh820ym18r7irh6dv4vdk06zww8"
}
},
{
@@ -34535,11 +34870,11 @@
"repo": "seblemaguer/flatfluc-theme",
"unstable": {
"version": [
- 20200707,
- 630
+ 20210908,
+ 1423
],
- "commit": "5a30b1cd344ac0d3c3bf9dab017805ab96897b54",
- "sha256": "0vcinly3lrrkbihafgxcv084zn8fhw94wc8qjjq2lwcc1db7lfjc"
+ "commit": "33726cd072ad83c6943e1c3b83db2fff60f324ce",
+ "sha256": "1nai41dzpnmv63k75xnhc64vipb9nqyv3k75mp2g8csxz569ph2l"
}
},
{
@@ -34634,27 +34969,27 @@
"repo": "plandes/flex-compile",
"unstable": {
"version": [
- 20201218,
- 1549
+ 20210914,
+ 1255
],
"deps": [
"buffer-manage",
"dash"
],
- "commit": "bc1f0804f089686260b64d5e4dde80c0c9f6df21",
- "sha256": "0l9dxh9578gsczhq944id0lacwdr4k7383d5i147v7c6l7s8d7sw"
+ "commit": "64f61ba1c113be38e4eae2a1fcee5596223c5d85",
+ "sha256": "143fzny0l5d8vci43nsgaq2a4ns1qmz01bd35c0s66gl62f02w74"
},
"stable": {
"version": [
0,
- 7
+ 9
],
"deps": [
"buffer-manage",
"dash"
],
- "commit": "bc1f0804f089686260b64d5e4dde80c0c9f6df21",
- "sha256": "0l9dxh9578gsczhq944id0lacwdr4k7383d5i147v7c6l7s8d7sw"
+ "commit": "64f61ba1c113be38e4eae2a1fcee5596223c5d85",
+ "sha256": "143fzny0l5d8vci43nsgaq2a4ns1qmz01bd35c0s66gl62f02w74"
}
},
{
@@ -34729,28 +35064,28 @@
"repo": "Floobits/floobits-emacs",
"unstable": {
"version": [
- 20180801,
- 524
+ 20211018,
+ 550
],
"deps": [
"highlight",
"json"
],
- "commit": "489b294a7f30ecd2af2edc0823dead8102f27af6",
- "sha256": "1pw88qn6s8ln626c8mgxgpfax39h7ww4m930dp7gg4aklxjbspkn"
+ "commit": "93b3317fb6c842efe165e54c8a32bf51d436837d",
+ "sha256": "1fxjba956ikhnsgzvavgg96ryz8q6h55az7cnkgcy58q7b0jk1j2"
},
"stable": {
"version": [
1,
9,
- 3
+ 4
],
"deps": [
"highlight",
"json"
],
- "commit": "489b294a7f30ecd2af2edc0823dead8102f27af6",
- "sha256": "1pw88qn6s8ln626c8mgxgpfax39h7ww4m930dp7gg4aklxjbspkn"
+ "commit": "93b3317fb6c842efe165e54c8a32bf51d436837d",
+ "sha256": "1fxjba956ikhnsgzvavgg96ryz8q6h55az7cnkgcy58q7b0jk1j2"
}
},
{
@@ -34848,11 +35183,11 @@
"repo": "amake/flutter.el",
"unstable": {
"version": [
- 20210304,
- 1341
+ 20210914,
+ 17
],
- "commit": "960b63576a13b7bd3495d0ad1883ed736873543b",
- "sha256": "0l6k8ydrdbwms8va45jw88514ichj1qxbxkq8mfvvacb3rkb0gj0"
+ "commit": "81c524a43c46f4949ccde3b57e2a6ea359f712f4",
+ "sha256": "16j455iymwcnqh6zwwlk47x9jsdim4va9k4il3qqj8bwgjv30xmb"
}
},
{
@@ -34870,8 +35205,8 @@
"flutter",
"flycheck"
],
- "commit": "960b63576a13b7bd3495d0ad1883ed736873543b",
- "sha256": "0l6k8ydrdbwms8va45jw88514ichj1qxbxkq8mfvvacb3rkb0gj0"
+ "commit": "81c524a43c46f4949ccde3b57e2a6ea359f712f4",
+ "sha256": "16j455iymwcnqh6zwwlk47x9jsdim4va9k4il3qqj8bwgjv30xmb"
}
},
{
@@ -34900,14 +35235,14 @@
"repo": "lewang/flx",
"unstable": {
"version": [
- 20191115,
- 659
+ 20211101,
+ 146
],
"deps": [
"cl-lib"
],
- "commit": "647cb2f92f9936c62e277d7a74ad54a80502d255",
- "sha256": "1mslib2zrj1ckl8hiyidc4hi4r83pcv3i1hincvqd2f7qj957lxv"
+ "commit": "e3b3f0533e44c5250ce73d728b59a7e96c692b5d",
+ "sha256": "0sgs83gn6ms90yk68ygvcib8k5k94ql6s23qzllas07qzmx0cn48"
},
"stable": {
"version": [
@@ -34937,8 +35272,8 @@
"cl-lib",
"flx"
],
- "commit": "647cb2f92f9936c62e277d7a74ad54a80502d255",
- "sha256": "1mslib2zrj1ckl8hiyidc4hi4r83pcv3i1hincvqd2f7qj957lxv"
+ "commit": "e3b3f0533e44c5250ce73d728b59a7e96c692b5d",
+ "sha256": "0sgs83gn6ms90yk68ygvcib8k5k94ql6s23qzllas07qzmx0cn48"
},
"stable": {
"version": [
@@ -35472,8 +35807,8 @@
"deps": [
"flycheck"
],
- "commit": "15998140b0a4172cd4b4d14d0377fba96a8917fc",
- "sha256": "0bdzffwp9hliy9bkvqn1p432yy161g7n7bl814mmi6zj4sfn1sy1"
+ "commit": "3e37f282af06a8b82d266b2d7a7863f3df2ffc3b",
+ "sha256": "1rwm7srb3xlsja4hana83an9a6l9f9rmi299qkjxhjcry8x9p78g"
},
"stable": {
"version": [
@@ -35907,8 +36242,8 @@
"deps": [
"flycheck"
],
- "commit": "6e2bc77da6e2a8812246b4717d97b68675ed84f1",
- "sha256": "02m22d9y152aj7aba736j5gxpniqr0rc2k8iyq9cgbgavfhbr3ac"
+ "commit": "8b68168db13df4e393d65ca8c0464019dcc45745",
+ "sha256": "1fiycjznzpv0gm41xx8xgqkzsjg04zgg6v4prlaqx4vfzh069a2k"
},
"stable": {
"version": [
@@ -35978,16 +36313,16 @@
"repo": "emacs-grammarly/flycheck-grammarly",
"unstable": {
"version": [
- 20210814,
- 1627
+ 20211027,
+ 1357
],
"deps": [
"flycheck",
"grammarly",
"s"
],
- "commit": "c4b3c5b4889ee719b6dd0800305f9be869cfd7ec",
- "sha256": "0sb8fvkzhc1f1p28mmplj2ld97v8lkpwz4frf62hn3jg21fzj7pk"
+ "commit": "cb086c996db0837e774a5dc9edca9592e2e8f9a8",
+ "sha256": "08njaf2fxfiww5c967qrz18zq3sazdlwdvg66nbxkyzhyhgy6r3b"
},
"stable": {
"version": [
@@ -36365,8 +36700,8 @@
"flycheck",
"keg"
],
- "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
- "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
+ "commit": "bf2457d128dca207b3fb00a2660eb662327f877b",
+ "sha256": "0yc24n8mvppxni3hbfwk1p5spxqswax90l2v0gwc9wf20djmkdfq"
}
},
{
@@ -36412,8 +36747,8 @@
"deps": [
"flycheck"
],
- "commit": "c4a1dd0b23b8b25ba706eed48ae7d3e97bf4f349",
- "sha256": "1zcp9brh9cygga0yflw4saf7bf503ll1l4nmhf79h039xm7p3rcz"
+ "commit": "4fcf88d131fd0e149a7f1c787c07f4e03ea24fe8",
+ "sha256": "0p1fmxgbpfh3bihpdaqd2dfsgi3s9x17nhb8439livfrjhqdhfhd"
},
"stable": {
"version": [
@@ -36466,14 +36801,14 @@
"repo": "hinrik/flycheck-lilypond",
"unstable": {
"version": [
- 20200614,
- 2104
+ 20211006,
+ 2102
],
"deps": [
"flycheck"
],
- "commit": "17133911b519be76365103dec8c10cb2f3729f1a",
- "sha256": "01486ch8vsq7kcfdpggvykbdangv2pvq2v4g9npr9izlja2kwpar"
+ "commit": "78f8c16cd67f9f6d3f1806e1fd403222723ba400",
+ "sha256": "1pasdrc17rxgqdldlv979vs5m99l0bkndpljdw6ldlx86hmflmn8"
}
},
{
@@ -36620,26 +36955,26 @@
"repo": "GyazSquare/flycheck-objc-clang",
"unstable": {
"version": [
- 20201003,
- 1053
+ 20210911,
+ 1023
],
"deps": [
"flycheck"
],
- "commit": "5e74a5a796e73fca7f3fd15986fefa56529b8e98",
- "sha256": "11sdxlqwk4wa3pgbfyxjq100yra11iya61wnx6c01n2fxmf82iih"
+ "commit": "5a441a31e58de17da94f933277150be39198d98c",
+ "sha256": "05j5bngvf3vpabjv7gcm5qar73mr1dyba7z9g1x4i385dgm97f6z"
},
"stable": {
"version": [
4,
0,
- 1
+ 2
],
"deps": [
"flycheck"
],
- "commit": "5efd0a929cefacbe1020fe1a80d27630a619a165",
- "sha256": "10cqqy78jfsmqx6m8i0xfm9iwfjffaf1c29c8918bc9hw813gpaq"
+ "commit": "5a441a31e58de17da94f933277150be39198d98c",
+ "sha256": "05j5bngvf3vpabjv7gcm5qar73mr1dyba7z9g1x4i385dgm97f6z"
}
},
{
@@ -36757,6 +37092,24 @@
"sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
}
},
+ {
+ "ename": "flycheck-php-noverify",
+ "commit": "5cf2435beeec24c29f96d829e58555450e6567c4",
+ "sha256": "08xcnyq76gbfmj6fgdyv0imr30axyx3pj2srjmy8rp250wsinrpv",
+ "fetcher": "github",
+ "repo": "Junker/flycheck-php-noverify",
+ "unstable": {
+ "version": [
+ 20211005,
+ 401
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "3c5cfa5b790bb7f0a8da7f3caee8e4782b67f8ac",
+ "sha256": "0p95h0j9v3qq4yihynp9g62rcx77p54v0q1ddwhafzzkshqqcs7f"
+ }
+ },
{
"ename": "flycheck-phpstan",
"commit": "5a2b6cc39957e6d7185bd2bdfa3755e5b1f474a6",
@@ -36842,8 +37195,8 @@
"deps": [
"flycheck"
],
- "commit": "ca00e018ecb9ebea4dde7f17eadb95d755ea88ab",
- "sha256": "0j2klnv15v2gqnly5vgdrdrkccsza9mwz5c87i6qgnfawmnsh32d"
+ "commit": "3c303551cb9c317e49878cb860c6ed6d142d9613",
+ "sha256": "1mm558vjyjk5cxxwns69fh477ws02hhmh0ain46zp7qdz6h08nbk"
},
"stable": {
"version": [
@@ -36998,15 +37351,15 @@
"repo": "emacs-php/psalm.el",
"unstable": {
"version": [
- 20200510,
- 1540
+ 20211002,
+ 1555
],
"deps": [
"flycheck",
"psalm"
],
- "commit": "b2a1e8a9524b0004e62996c70da5536f86e56182",
- "sha256": "0r0qz5bdznzdj7zxq6a6fz7fwn2c978bq57yywj3fcy8f5vh8jcf"
+ "commit": "28d546a79cb865a78b94cd7e929d66d720505faa",
+ "sha256": "0r5qa0i42dkv0qrs2mksjx7w0yl98mdkg18blckk49w2gd8srdjr"
},
"stable": {
"version": [
@@ -37152,8 +37505,8 @@
"flycheck",
"rtags"
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -37305,26 +37658,26 @@
"repo": "GyazSquare/flycheck-swift3",
"unstable": {
"version": [
- 20201003,
- 916
+ 20210910,
+ 1244
],
"deps": [
"flycheck"
],
- "commit": "f83b2bb7086e54beb2bd2df406a498927a7b2fba",
- "sha256": "04rdc8jsb8gx2bhrf7rwpyrw4pw04638j574g6614f9h1whpw9jw"
+ "commit": "54193175c87a4c0bbf7ed16a3e76d6daff35c76f",
+ "sha256": "000fp4qzmc4kbjji03lxwafyvv32r4i7adf29j9s7v7dmdljpndl"
},
"stable": {
"version": [
3,
1,
- 1
+ 2
],
"deps": [
"flycheck"
],
- "commit": "35119a559206fd62e87018c605d4f302300e831d",
- "sha256": "1m7jay1fvi2zljjd0j1ghc1n1cqpz4l8vw94jfywz4l8w0c9xbkh"
+ "commit": "54193175c87a4c0bbf7ed16a3e76d6daff35c76f",
+ "sha256": "000fp4qzmc4kbjji03lxwafyvv32r4i7adf29j9s7v7dmdljpndl"
}
},
{
@@ -37683,8 +38036,8 @@
"deps": [
"flymake"
],
- "commit": "afd458daf88f475cfacdd22375635e43a5017564",
- "sha256": "17fzs4r22nlf27xcdfj9qs337879xkk9hgq121dgxd93xy3n0ky7"
+ "commit": "0c9f3fa273cf1cea8fd64c2b3c20119e2d5c8f6e",
+ "sha256": "0vw21na55i7fxrls5b3frf2mml7nk8k6y39936r7gbnmn00dcmam"
},
"stable": {
"version": [
@@ -37904,15 +38257,15 @@
"repo": "emacs-grammarly/flymake-grammarly",
"unstable": {
"version": [
- 20210814,
- 1628
+ 20210913,
+ 1416
],
"deps": [
"grammarly",
"s"
],
- "commit": "28888bc8d1c795e1b2d798fb5c6cdcc16571c73e",
- "sha256": "0vm10sx3w3y110s0qkdiabqnf5fvfjixgnq456rbh8v30y1wgrkc"
+ "commit": "3cdf30a6d45778640252c6ab563b53382fd4a4d3",
+ "sha256": "0hbjixzzgm0jmpp5xp3407n0rm0b1iah94kzj2mqk2xrg1qmbbbk"
},
"stable": {
"version": [
@@ -38113,11 +38466,11 @@
"repo": "turbo-cafe/flymake-kondor",
"unstable": {
"version": [
- 20210814,
- 1303
+ 20211026,
+ 501
],
- "commit": "0058ef5167142a521825e824aced6229e4898ae9",
- "sha256": "09f2xn309gyn0nrsf9hcpwprjyliiqlli3ll406gibgs5nh88hds"
+ "commit": "784e57f36812a37e323409b90b935ef3c6920a22",
+ "sha256": "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"
},
"stable": {
"version": [
@@ -38161,8 +38514,8 @@
"deps": [
"s"
],
- "commit": "5c93f538978f2d272e5210b27f5255ee87b6b61f",
- "sha256": "1awd69ns238ia27k2njlx65gkyscxzayyyx777rbmy6g259bndzq"
+ "commit": "cd6e5602e58bd9c03ec1c6a3b01c337d17ebf0fe",
+ "sha256": "1gjwxycbpvf3z332y5my6w57mjmqgs9mwfcfi0p3jdby18ykwyd2"
},
"stable": {
"version": [
@@ -38689,8 +39042,8 @@
20210724,
1042
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38717,8 +39070,8 @@
"avy-menu",
"flyspell-correct"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38749,8 +39102,8 @@
"flyspell-correct",
"helm"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38781,8 +39134,8 @@
"flyspell-correct",
"ivy"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38813,8 +39166,8 @@
"flyspell-correct",
"popup"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -39286,8 +39639,8 @@
"repo": "magit/forge",
"unstable": {
"version": [
- 20210906,
- 1234
+ 20211103,
+ 2319
],
"deps": [
"closql",
@@ -39300,14 +39653,14 @@
"transient",
"yaml"
],
- "commit": "86e18914eac706928e66705418c765f34d077703",
- "sha256": "01i8vb120vn8wmiscyjhk3zl7qk0zrnydkq4d282w9b5sqzrgjpp"
+ "commit": "760affa8de6dd4ccb1607d343e36b54296473074",
+ "sha256": "0139z7h835669f6msflnp940106s3x29k7kagiga413ijjiv140h"
},
"stable": {
"version": [
0,
- 2,
- 1
+ 3,
+ 0
],
"deps": [
"closql",
@@ -39317,10 +39670,11 @@
"let-alist",
"magit",
"markdown-mode",
- "transient"
+ "transient",
+ "yaml"
],
- "commit": "e7d0d759440492549db331f3c39c3cc62880118f",
- "sha256": "0j28vc0q1h36pk0y2nidnlsc2y7n0vpfrd8civiv1zp8z0jwfyc9"
+ "commit": "cdf34e7586a2d4edde7a6da38752741080b68233",
+ "sha256": "15zm5azgl8gyd91i40a00ih4s2iwg1r8007n2gcfnmi6m4b7s0ak"
}
},
{
@@ -39355,15 +39709,15 @@
"repo": "lassik/emacs-format-all-the-code",
"unstable": {
"version": [
- 20210824,
- 1659
+ 20211017,
+ 1857
],
"deps": [
"inheritenv",
"language-id"
],
- "commit": "06d4d9ee6dd79941d26798cc9754b9c9be87e932",
- "sha256": "1bcqj4v5zrqs1ysvvnvar422c3xh1n5yvl1mg7rfwybd0l5pzc80"
+ "commit": "4851bab1659d519b4eaf8a16bfb76a4242d4dde2",
+ "sha256": "02363agwy1mn30q0z4p2ilf2ahb4ry13jv1cfwy318w1d6wgg6b2"
},
"stable": {
"version": [
@@ -39500,26 +39854,26 @@
"repo": "rnkn/fountain-mode",
"unstable": {
"version": [
- 20210807,
- 106
+ 20211104,
+ 1141
],
"deps": [
"seq"
],
- "commit": "60f4dc4f02a8ea222abcd51556163e7861f0fbe8",
- "sha256": "09i4ilwgrnw8ymlzd4rzwnbhwz0c7axrlr2pn0nmzp3v60lhxnl2"
+ "commit": "bf1849456f6c7587e15a44a0e5c7e1f93810a6e2",
+ "sha256": "1hm2qw11kka2sfafqqhxvbc7ksrgsz5x7difmrbx03ljnib6fvcg"
},
"stable": {
"version": [
3,
5,
- 1
+ 3
],
"deps": [
"seq"
],
- "commit": "7de7159a58e0594c0120d66af78f65264f61ea5f",
- "sha256": "0y7dd6qq4b95scj7fay4zzhkf0g0x89npylc4v1hz59b1yyylfqy"
+ "commit": "16bc2a6a817b53ed3306a3ff3cebd271e7bf8746",
+ "sha256": "13k84dzjar67fa1ixicl6h8gxzblszd0ik8vi11bvipysgp3j3ws"
}
},
{
@@ -39581,15 +39935,14 @@
"repo": "alphapapa/frame-purpose.el",
"unstable": {
"version": [
- 20201219,
- 1340
+ 20211011,
+ 1518
],
"deps": [
- "dash",
- "dash-functional"
+ "dash"
],
- "commit": "b4a259fa077671e2dcf33d11b42955c91e395b8b",
- "sha256": "033vbvv4rrjbsfw0bbhhzx2754r96vy9h4n1y8jmxrqzs9wi5mmq"
+ "commit": "7d498147445cc0afb87b922a8225d2e163e5ed5a",
+ "sha256": "03qalcx8hbf6r0jmh7hf1r4san13fbgaaabcs4c50cam7kdv525r"
},
"stable": {
"version": [
@@ -39983,16 +40336,16 @@
"repo": "waymondo/frog-jump-buffer",
"unstable": {
"version": [
- 20210809,
- 1702
+ 20210906,
+ 1634
],
"deps": [
"avy",
"dash",
"frog-menu"
],
- "commit": "bed6c483445017698a1ec27fc61edeffefc004b2",
- "sha256": "0yriw08f9crl2basr1a06m73kln8qk1w0n1ljcr4zr6j7ya1fcdf"
+ "commit": "387fa2a61a9e4b50701aece19dd798361f51d366",
+ "sha256": "104nhnix34ymkkgdvxn612d1k4iy95swrmb5isknd48c5mys94gq"
}
},
{
@@ -40051,14 +40404,14 @@
"repo": "fsharp/emacs-fsharp-mode",
"unstable": {
"version": [
- 20210807,
- 1417
+ 20211031,
+ 1617
],
"deps": [
"s"
],
- "commit": "c90d762c0692cc43032291d37b8ca3201c3d49bd",
- "sha256": "1zavk5aykd04143jqsyygnlxn4n86qvjcg267h9kiihsr8wh108r"
+ "commit": "e92e270c6c987497041fac65cded82146cd41dde",
+ "sha256": "0jzxdim6mpj984cmhxzpafig6dcaav5x98y59f4ji3dxc95qs6r7"
},
"stable": {
"version": [
@@ -40124,8 +40477,8 @@
"deps": [
"cl-lib"
],
- "commit": "7b451bb813d242dbc0cd6c29d071e0b320f2200e",
- "sha256": "0wvbjc40f3bph7vhkixnrqa7k18f5jl81zdvdrr3fplkqnm3vxwj"
+ "commit": "8515fe960b5b0bfce158ad91e9141f07a2c5fcc4",
+ "sha256": "19ch4ndc0pcw6ggv49wpdkq42pw7m86g973g7qrv4mgf95aprbi0"
},
"stable": {
"version": [
@@ -40391,11 +40744,11 @@
"repo": "tarsius/fwb-cmds",
"unstable": {
"version": [
- 20180318,
- 2219
+ 20211011,
+ 1610
],
- "commit": "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f",
- "sha256": "1xwvv8wjgdaz96v1x1xc5w697bfvcanlcixd0n5qbx6ryakqrb72"
+ "commit": "9418ad51eaf7c6fd973d7f068ca67de66f3635ee",
+ "sha256": "1rsifl61qdrzmhd6r0d9if5a7a1pwjp3z7aq9rwrkrz6k37mnd0a"
},
"stable": {
"version": [
@@ -40626,8 +40979,8 @@
20210328,
2037
],
- "commit": "b7bfa6a3b294039f5093f85e4ff809ff05333abd",
- "sha256": "1197cvf42b3191vd01gv5jj0781954p3b6w4clcxb1c5wxxlb07b"
+ "commit": "4badcf6a0c951daba4d7259db3913b78254c0423",
+ "sha256": "0m2nqgv6k5ficqym5z453ni12bncxyi5xhxx1dii4vfckx80b1n6"
},
"stable": {
"version": [
@@ -40724,19 +41077,19 @@
"repo": "emacs-geiser/geiser",
"unstable": {
"version": [
- 20210808,
- 16
+ 20211003,
+ 2152
],
- "commit": "327ff01e5b9c6e019fdd0cb710a4c19082249345",
- "sha256": "0vis470dhk7adpxr335wq33jv1035sd3vj1cxdq3jsx8biqas4c1"
+ "commit": "d5cdad7f3eb44cec434610846cf78f2ad272089b",
+ "sha256": "1dd1jqfnwghqhsm2r5akqq1s4d621rd5rh93rxdqix2xg0nr9yp6"
},
"stable": {
"version": [
0,
- 17
+ 18
],
- "commit": "77d4c3a91c0acdb16cefa8a3e0efac3435aebdc0",
- "sha256": "07g1zlf9kmfish2wa6m376xba0nv6n4spw8wbmr90a56xj0qpswc"
+ "commit": "d5cdad7f3eb44cec434610846cf78f2ad272089b",
+ "sha256": "1dd1jqfnwghqhsm2r5akqq1s4d621rd5rh93rxdqix2xg0nr9yp6"
}
},
{
@@ -40863,14 +41216,14 @@
"repo": "emacs-geiser/gauche",
"unstable": {
"version": [
- 20200802,
- 1300
+ 20210911,
+ 1041
],
"deps": [
"geiser"
],
- "commit": "66e51430bded0f0e2037f474818a7bbaafb2906c",
- "sha256": "1gsvl0r6r385lkv0z4gkxirz9as6k0ghmk402zsyz8gvdpl0f3jw"
+ "commit": "fd52cbaed9b0a0d0f10e87674b5747e5ee44ebc9",
+ "sha256": "1sv1a6lhxn8xhbgajz2knrblnaaryp3fz4yw19ggzdx4r30k278y"
},
"stable": {
"version": [
@@ -40889,25 +41242,25 @@
"repo": "emacs-geiser/guile",
"unstable": {
"version": [
- 20210508,
- 1838
+ 20211029,
+ 1512
],
"deps": [
"geiser"
],
- "commit": "8dda28f4f1758221f84f5cb5dc5b5ca5fd56caa9",
- "sha256": "0iw23nlgqppf6f00ly50m8lq85n9mv244pw3whxv0hynfjxr2ic0"
+ "commit": "1c5affdf1354220b49ab08b5a7665ebf61080863",
+ "sha256": "0gndf0w8dbv54bzc04svp2ck8wypa7i3b8kpixf6rkg91l79xpci"
},
"stable": {
"version": [
0,
- 17
+ 18
],
"deps": [
"geiser"
],
- "commit": "8dda28f4f1758221f84f5cb5dc5b5ca5fd56caa9",
- "sha256": "0iw23nlgqppf6f00ly50m8lq85n9mv244pw3whxv0hynfjxr2ic0"
+ "commit": "1c5affdf1354220b49ab08b5a7665ebf61080863",
+ "sha256": "0gndf0w8dbv54bzc04svp2ck8wypa7i3b8kpixf6rkg91l79xpci"
}
},
{
@@ -40918,14 +41271,14 @@
"repo": "emacs-geiser/kawa",
"unstable": {
"version": [
- 20210427,
- 1626
+ 20210920,
+ 1607
],
"deps": [
"geiser"
],
- "commit": "3d999a33deedd62dae60f3f7cedfbdb715587ea7",
- "sha256": "1i4ywb4ggq884p2lbpmp6y53l8ys5ajma7sk21zxi1jx28nb01nm"
+ "commit": "5896b19642923f74f718eb68d447560b2d26d797",
+ "sha256": "1vv8i3qqk8690p4cpklvy7g3alh5fb3v7h3b91dj1gardzf0vwpf"
},
"stable": {
"version": [
@@ -41034,11 +41387,11 @@
"url": "https://git.carcosa.net/jmcbray/gemini.el.git",
"unstable": {
"version": [
- 20210901,
- 1406
+ 20210909,
+ 1442
],
- "commit": "0a02e97cc2ce2ddd97c7624187c7e7b6ab2e9fe7",
- "sha256": "18vd78ya03d3x7aib2x7d3snripi7r5xrkyi7vm2xxzx91fan4rf"
+ "commit": "60bd07b3a1e532c950c132673777ceb635c9960d",
+ "sha256": "1dj6bmlrqkqvykasdav9f4jw8aykqj6c0jr09r9x4sb2w0pcd9ik"
},
"stable": {
"version": [
@@ -41050,6 +41403,25 @@
"sha256": "0fiix0ssaannim5kxpckhd5z6fssij3igv1dg9y7143dzxf274zz"
}
},
+ {
+ "ename": "gemini-write",
+ "commit": "e97c45cafc44a4b2f08e577325e375c6312f6557",
+ "sha256": "039rdjsyx9lw7lh21ps84agm1rpinbylzlks6iv1h5pn341s67nd",
+ "fetcher": "git",
+ "url": "https://alexschroeder.ch/cgit/gemini-write",
+ "unstable": {
+ "version": [
+ 20211026,
+ 1639
+ ],
+ "deps": [
+ "elpher",
+ "gemini-mode"
+ ],
+ "commit": "169333a5c251c14a84286dea02a63d1a5e93cf54",
+ "sha256": "1mfg8yb03wr278x6whzqz0y68xsl2g5zdwak08j9a6yigib8pmcf"
+ }
+ },
{
"ename": "general",
"commit": "d86383b443622d78f6d8ff7b8ac74c8d72879d26",
@@ -41058,14 +41430,14 @@
"repo": "noctuid/general.el",
"unstable": {
"version": [
- 20200516,
- 50
+ 20211008,
+ 1651
],
"deps": [
"cl-lib"
],
- "commit": "a0b17d207badf462311b2eef7c065b884462cb7c",
- "sha256": "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"
+ "commit": "26f1d4c4e258c40e6b70ce831a04800c914f29b3",
+ "sha256": "16rjsmmhjjx4mch1aygrxqj3pr5c4xxqzf21qvr6s4c9yk6ayx1f"
}
},
{
@@ -41183,11 +41555,11 @@
"repo": "matsuyoshi30/germanium-el",
"unstable": {
"version": [
- 20210821,
- 1813
+ 20211101,
+ 1453
],
- "commit": "88a14826695b60ac218c2b3beadba0dbd89bcd60",
- "sha256": "1h85zpli5ysbfx6j0ajmkyngmj1nq6qwkx94kl0risamz8lxvk7r"
+ "commit": "1f28da73dd767b1cf5afe2230a0fd81bfbb1bb6f",
+ "sha256": "1v1ig4pf5ydb4b1fnjv9awdr2kfwzv1vbgqgkqhbswasxzzz4vgm"
}
},
{
@@ -41198,8 +41570,8 @@
"repo": "thisch/gerrit.el",
"unstable": {
"version": [
- 20210620,
- 334
+ 20211005,
+ 605
],
"deps": [
"dash",
@@ -41207,8 +41579,8 @@
"magit",
"s"
],
- "commit": "ac555ccec74c48297bac0944a207e5b8aceac49e",
- "sha256": "053gn6ja80810y4a2dayz3xy1bmzb7w06lvf87difa0nhm3mr54g"
+ "commit": "3de210e2bcf9a7ce9a2a448cd910ffe477de8432",
+ "sha256": "1aaaff18crz86f1mpjkwc6vfjdayjnv4imqrl8qnqfccbmkb5z4w"
}
},
{
@@ -41291,11 +41663,11 @@
"repo": "leoliu/ggtags",
"unstable": {
"version": [
- 20190320,
- 2208
+ 20211020,
+ 354
],
- "commit": "1c43705753e639b34b58c9bf961a80b6610a7109",
- "sha256": "15hv3d4wc32nidi0pl73i2v673s2lipzsy8llqy6asls2y268qgz"
+ "commit": "8e16861392d7499bf3a212db1f5e9e0ef2e4fba9",
+ "sha256": "01fhc6cc13i9nvyl3d692s0fsyymr6vjxqpj7ydxsh489nw7hj4a"
},
"stable": {
"version": [
@@ -41466,28 +41838,28 @@
"repo": "magit/ghub",
"unstable": {
"version": [
- 20210727,
- 1414
+ 20211001,
+ 2224
],
"deps": [
"let-alist",
"treepy"
],
- "commit": "00a77b79c28e22db1b151c3f7857073ccbeff726",
- "sha256": "0qrp2n53fhvwr5ndnmfzh841g88hzmcgz3i54hbcqq1gj6vwqd7f"
+ "commit": "192eff9da2c0f61813f3bc9c00913985c1804180",
+ "sha256": "1bc5z63ylb0ir5v9qngyl50svmlfd6hx9lv1ladwywncdpsslls8"
},
"stable": {
"version": [
3,
5,
- 3
+ 4
],
"deps": [
"let-alist",
"treepy"
],
- "commit": "ae59388adbba32fa00e39f3323fe69367739ee6f",
- "sha256": "1sn7rzfkm75vj3whhisrjk1s34lz6hc08hmf4nnznbdvyimnd013"
+ "commit": "192eff9da2c0f61813f3bc9c00913985c1804180",
+ "sha256": "1bc5z63ylb0ir5v9qngyl50svmlfd6hx9lv1ladwywncdpsslls8"
}
},
{
@@ -41826,36 +42198,36 @@
},
{
"ename": "git-commit",
- "commit": "2571aed58ce9c4df998588cbcffdde704f4dce54",
- "sha256": "171spbjdgnphv1d108y2ivf09yaqfpg61sjc7gs62cwld4krk4l6",
+ "commit": "cca2c57104e14cb0c47e27d7fe4b437b38009a5c",
+ "sha256": "0j4z9pmkbn366gqc9521dix5g5capqw4r6prjfxc6g0vlnzan30g",
"fetcher": "github",
"repo": "magit/magit",
"unstable": {
"version": [
- 20210806,
- 1607
+ 20211010,
+ 1635
],
"deps": [
"dash",
"transient",
"with-editor"
],
- "commit": "d173de73e96e207d4ba3821e1d720c8d81f6bafb",
- "sha256": "1yq077j2fvmgpji6arlliq00bcs08bhl877fsklhq6j0yif1vz9s"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
3,
- 2,
- 1
+ 3,
+ 0
],
"deps": [
"dash",
"transient",
"with-editor"
],
- "commit": "b70f660e36c024fa9319ea0e2977e45ef3c6f3ac",
- "sha256": "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m"
+ "commit": "f44f6c14500476d918e9c01de8449edb20af4113",
+ "sha256": "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"
}
},
{
@@ -41935,11 +42307,11 @@
"repo": "emacsorphanage/git-gutter",
"unstable": {
"version": [
- 20210730,
- 429
+ 20211002,
+ 2345
],
- "commit": "1003c8cbe2367482ad02422ace0a85a7d56d01d3",
- "sha256": "1w2rlxn731jly7v8ks0w670i6351darkh75dvczic50116hfnwnv"
+ "commit": "c1e51865eb26739052035177846f53476c8605da",
+ "sha256": "00rldkgmrjzr8nc3mngfh4vjscsdswqfqzrdwxmwmc0m3kx2yppz"
},
"stable": {
"version": [
@@ -41988,16 +42360,16 @@
"repo": "emacsorphanage/git-gutter-fringe",
"unstable": {
"version": [
- 20200323,
- 2249
+ 20211003,
+ 2228
],
"deps": [
"cl-lib",
"fringe-helper",
"git-gutter"
],
- "commit": "4f19866494fa1debfa319382913e39a153431634",
- "sha256": "02gbpgizlsmip2xwn79mb6yhdms38m589kcd6m95izj4ycyhwmdv"
+ "commit": "648cb5b57faec55711803cdc9434e55a733c3eba",
+ "sha256": "13bqq5r8ys2mmw1ffsm6hn6fji0vq3nx3slw98c9dgbvlprkaiip"
},
"stable": {
"version": [
@@ -42125,11 +42497,11 @@
"repo": "sshaw/git-link",
"unstable": {
"version": [
- 20210815,
- 55
+ 20211024,
+ 1538
],
- "commit": "c4cb0edc92013ae4e3660f94c0c0d4d13fca6ee6",
- "sha256": "03gh9rgw5j4m1clsv97jj02ibmfwz0s4dhr0567g1jhavqm7ibl3"
+ "commit": "b2d803ad8764b896f5dd7f7e139ceb4903f7d8b6",
+ "sha256": "0gsa2qqxmynj10mpb3mm7xgsbk8fx7f4scwaxwl8l7dw3cmk9rmv"
},
"stable": {
"version": [
@@ -42155,8 +42527,8 @@
"deps": [
"popup"
],
- "commit": "a69b6f359bd34b77335619103c82cef07ecdbc7c",
- "sha256": "0wbinfl3jvkpcky7j6rvw66dnw1k2yjb7jq41kxqnsb5l6qllkaw"
+ "commit": "eade986ef529aa2dac6944ad61b18de55cee0b76",
+ "sha256": "1ffy3im4rj9z85mx8ik6r55srhpj4ldgphgzdgf1vj9i3r2d5pcp"
},
"stable": {
"version": [
@@ -42170,6 +42542,30 @@
"sha256": "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"
}
},
+ {
+ "ename": "git-modes",
+ "commit": "cc3a0ce6c8a4a67b8a8d4b8b2c090694535e6848",
+ "sha256": "0rpl890n76aqdpx6flgc5kvgg7sic1i85ps8c5j8mbz0pbz06ajv",
+ "fetcher": "github",
+ "repo": "magit/git-modes",
+ "unstable": {
+ "version": [
+ 20211020,
+ 2306
+ ],
+ "commit": "62fbf2e5b84ca789e7bc2f87939386023b5ba3df",
+ "sha256": "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "commit": "62fbf2e5b84ca789e7bc2f87939386023b5ba3df",
+ "sha256": "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"
+ }
+ },
{
"ename": "git-msg-prefix",
"commit": "bd37811d17beaa54e08eb4968791da960d37b391",
@@ -42318,30 +42714,6 @@
"sha256": "0igawn43i81icshimj5agv33ab120hd6182knlrn3i46p7lcs3lx"
}
},
- {
- "ename": "gitattributes-mode",
- "commit": "4b4e2ddd2a80875afc0fc654052e6cbff2f3777f",
- "sha256": "1gjs0pjh6ap0h54savamzx94lq6vqrg58jxqaq5n5qplrbg15a6x",
- "fetcher": "github",
- "repo": "magit/git-modes",
- "unstable": {
- "version": [
- 20210528,
- 1854
- ],
- "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
- "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
- },
- "stable": {
- "version": [
- 1,
- 3,
- 1
- ],
- "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
- "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
- }
- },
{
"ename": "gitconfig",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -42366,30 +42738,6 @@
"sha256": "0j0w6ywhiapmx7dk20yw3zgf8803kmccnjsr664am3g85kbb644v"
}
},
- {
- "ename": "gitconfig-mode",
- "commit": "44a37f59b87f59a587f6681e7aadfabf137c98d7",
- "sha256": "0hqky40kcgxdnghnf56gpi0xp7ik45ssia1x84v0mvfwqc50dgn1",
- "fetcher": "github",
- "repo": "magit/git-modes",
- "unstable": {
- "version": [
- 20210528,
- 1856
- ],
- "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
- "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
- },
- "stable": {
- "version": [
- 1,
- 3,
- 1
- ],
- "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
- "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
- }
- },
{
"ename": "github-browse-file",
"commit": "f8bca60348fc5e2ad55663e69b8690093cf861ca",
@@ -42493,11 +42841,14 @@
"repo": "TxGVNN/github-explorer",
"unstable": {
"version": [
- 20210825,
- 1440
+ 20211031,
+ 120
],
- "commit": "cd1186fb6ca7728c1cf2478ad3878a6401c65246",
- "sha256": "0zfnqsw3918rfcfapzgfalrd5w6rhy01ym6ykdswrlv38zd9kjk6"
+ "deps": [
+ "graphql"
+ ],
+ "commit": "a40c122e6768578254641fc0f24a8437ee70fac9",
+ "sha256": "1n7h5sw6b6907w2ry9d1knmda86s8iy9bim75ggyy6qcy06w0jdh"
},
"stable": {
"version": [
@@ -42575,8 +42926,8 @@
"repo": "charignon/github-review",
"unstable": {
"version": [
- 20210314,
- 2203
+ 20211029,
+ 243
],
"deps": [
"a",
@@ -42585,8 +42936,8 @@
"ghub",
"s"
],
- "commit": "341b7a1352e4ee1f1119756360ac0714abbaf460",
- "sha256": "15lqiknl7ilskpy1s9qdfi0qjvrkvmj8nw110cf8ifwvvyxyqbhb"
+ "commit": "725fbc7b385228f53a7ddc46a92c1276bab4aea8",
+ "sha256": "1261p65wlpl9s5xqq1jfnkj7hrn27a4bn85rxc3allqdl5hc63hd"
}
},
{
@@ -42654,30 +43005,6 @@
"sha256": "16ldfz1k0hxc1b785gzrf70hg0q88ijjxp39hb62iax1k1aw9vlw"
}
},
- {
- "ename": "gitignore-mode",
- "commit": "44a37f59b87f59a587f6681e7aadfabf137c98d7",
- "sha256": "1i98ribmnxr4hwphd95f9hcfm5wfwgdbcxw3g0w17ws7z0ir61mn",
- "fetcher": "github",
- "repo": "magit/git-modes",
- "unstable": {
- "version": [
- 20210528,
- 1856
- ],
- "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
- "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
- },
- "stable": {
- "version": [
- 1,
- 3,
- 1
- ],
- "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
- "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
- }
- },
{
"ename": "gitignore-snippets",
"commit": "b1d03ee45e45fc6ec30936a5f4bd8b756728da31",
@@ -42958,15 +43285,15 @@
"repo": "Kinneyzhang/gkroam",
"unstable": {
"version": [
- 20201204,
- 917
+ 20210914,
+ 1311
],
"deps": [
"company",
"db"
],
- "commit": "b40555f45a844b8fefc419cd43dc9bf63205a0b4",
- "sha256": "072r4q03ddy4mkqqlvhsgjh6i5pcjkgzvpv8n7433qgxgdbyhwaa"
+ "commit": "a9c9034a8fa3c08ec3097ae40e227d400d766db9",
+ "sha256": "1fc8srqvygiv3h2hw31vy20ip6kbm2m1aq5imx01fw9qig7xfv47"
},
"stable": {
"version": [
@@ -43249,11 +43576,11 @@
"repo": "lokedhs/gnu-apl-mode",
"unstable": {
"version": [
- 20210904,
- 509
+ 20211012,
+ 1139
],
- "commit": "c1203e8ff655ba776ecdc49b3420aaed4bd37952",
- "sha256": "1hicrnwn4z0q0v39qdhfwgailgy6fw433gvk70pm779npp2zv90s"
+ "commit": "5d998206a963f2205dc6c4eddb41fb34187cb527",
+ "sha256": "1yzyq8k770j78f2gkkr1n1d5jpdfmj9l3w40pjd7fmn94xg3qw9a"
}
},
{
@@ -43389,11 +43716,11 @@
"repo": "unhammer/gnus-recent",
"unstable": {
"version": [
- 20210604,
- 720
+ 20210920,
+ 902
],
- "commit": "09b9e96f8e0ab006d9cfe8f5ab000ce7e50ef4de",
- "sha256": "0qsnfiqcivy7czg2j7kdsifz7p5nid1zvw6zdnaihghzdxa1w1ia"
+ "commit": "dfa0e687601e78d6be82530413cb00edb1a39889",
+ "sha256": "021rq3qp3544abqzr8cdsblpqh8yh2ss3f9gsf5sifckz7127h0s"
},
"stable": {
"version": [
@@ -43537,20 +43864,20 @@
},
{
"ename": "go-autocomplete",
- "commit": "ef45683cbfe82bf8a9d6f3f1c59e3cf340accbe3",
- "sha256": "15ns1zzw6kblcbih7dmjvk1p0f6f3p2wpgx4gnd9ax0fcj65ghwi",
+ "commit": "552d033e573ff96a60a37d588a6c544a9263bf05",
+ "sha256": "1b9csrd2wacvp1j16vzwkikyv303axq0jmlw47vxggp86cfw6q0d",
"fetcher": "github",
- "repo": "mdempsky/gocode",
+ "repo": "emacsattic/go-autocomplete",
"unstable": {
"version": [
- 20150904,
- 240
+ 20170626,
+ 1023
],
"deps": [
"auto-complete"
],
- "commit": "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c",
- "sha256": "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb"
+ "commit": "5327738ec1be51061a3f31010c89bdd4924ca496",
+ "sha256": "0a5zga3jxs4pidcakd88im9ddin8xfn7y6xjp27x645fm5in4j05"
},
"stable": {
"version": [
@@ -43621,26 +43948,26 @@
"repo": "benma/go-dlv.el",
"unstable": {
"version": [
- 20200713,
- 1202
+ 20211015,
+ 816
],
"deps": [
"go-mode"
],
- "commit": "69b86c1bdb73d78fb3404f2f1eefbc9a93b1aba6",
- "sha256": "1ww91sw15qnwrglz9q37vxm5qxxa43ccpyczz7kkjp66qs6746wh"
+ "commit": "8811c0aa79fcbc0d495ed8c68f49a3c42d1a0d4b",
+ "sha256": "1h4p0i13fxsr4rgxh4grn5p24sbwb9c6mszwdajnlf8yjz65prf9"
},
"stable": {
"version": [
0,
- 4,
+ 5,
0
],
"deps": [
"go-mode"
],
- "commit": "69b86c1bdb73d78fb3404f2f1eefbc9a93b1aba6",
- "sha256": "1ww91sw15qnwrglz9q37vxm5qxxa43ccpyczz7kkjp66qs6746wh"
+ "commit": "8811c0aa79fcbc0d495ed8c68f49a3c42d1a0d4b",
+ "sha256": "1h4p0i13fxsr4rgxh4grn5p24sbwb9c6mszwdajnlf8yjz65prf9"
}
},
{
@@ -44118,19 +44445,19 @@
"repo": "lorniu/go-translate",
"unstable": {
"version": [
- 20210527,
- 1257
+ 20211025,
+ 443
],
- "commit": "7a9b7978057bf747ed06fa6c9d2f30047714aa05",
- "sha256": "1wydx9ak09dfmvqvvkdd5zdzablj8rhisk3im1f41a4hgiba80hr"
+ "commit": "8de1c3b660602b6739444ceed3e48214c417fe38",
+ "sha256": "0b8jbcs848ck0zbl6rmyyac3mbhx58zq04l7wvi7paficg9lphj9"
},
"stable": {
"version": [
0,
- 1
+ 2
],
- "commit": "27d9218aa10dc361aa89f666f91aea7fdfb43d1f",
- "sha256": "0jgicsv8102pk340fn122w0hbhvac2nqcpr16lj7ccjg44qmnrdw"
+ "commit": "b3174e09a03954b1423c4ea2f2936f9fcd94f381",
+ "sha256": "054l7m9slhznpfkixrnk6n5h8rc9x7gjsahizxvkd73q0jvgqxgn"
}
},
{
@@ -44204,11 +44531,19 @@
"repo": "minad/goggles",
"unstable": {
"version": [
- 20210208,
- 124
+ 20211031,
+ 1513
],
- "commit": "b014b2414fad8bb3a9a7b6a7e765822887c28fe8",
- "sha256": "1p3pagldf17mpyv0qmks5hq8y4q59bim0zh42p3b7c4y89nv7qw7"
+ "commit": "36139cb1898c763be08167c74b5c5d05efada9e5",
+ "sha256": "06r5zpp4k4flv9slkpgxfy9m9c7b5kyix2si30bdka3fq4c1jwl5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "6023ca87b28fa05ebad320c8b9c5887c6dd0f51b",
+ "sha256": "15bqjmwfdqp2np6fln6xjyw59c5iddvzsyga0lvb8raa753cdh2k"
}
},
{
@@ -44341,11 +44676,11 @@
"repo": "io12/good-scroll.el",
"unstable": {
"version": [
- 20210820,
- 633
+ 20211101,
+ 942
],
- "commit": "bd369750d3aeb7e210c1c033569a53d0fda898c9",
- "sha256": "0dkqipsbl7sl6j6asqv7y0md2kxx91n1k4hms7d4jbj4shka7hnz"
+ "commit": "a7ffd5c0e5935cebd545a0570f64949077f71ee3",
+ "sha256": "0f1zs3fjz5yc25qjka5g60018554ssdbp4j7xj275pmzrc78915w"
},
"stable": {
"version": [
@@ -44383,8 +44718,8 @@
20180130,
1736
],
- "commit": "d88a5b7b59948d23977942ee62037e8912ff68ce",
- "sha256": "1k29za2g3b10jy3nlkg09h5jn8d25w9yghrmz8cvm8zghxkqi2m7"
+ "commit": "9806df89a3bc110cb9cabc41287bf942710599a3",
+ "sha256": "10l80l8aq30c4pgf930wj9dgfbhxp9jx81f4jnl2gq8z9bd7qwp6"
}
},
{
@@ -44599,11 +44934,11 @@
"url": "https://depp.brause.cc/gotham-theme.git",
"unstable": {
"version": [
- 20210508,
- 1632
+ 20211023,
+ 2056
],
- "commit": "8a97fb8a68cef8e431c972b3d5713b637e21dd7e",
- "sha256": "1ldywxhbb34pj7p4rhhzlavwqci9i35i4f8cnyi1w5b1469v1x9f"
+ "commit": "885ea8c8dd19686bdf152f363cbf4c38f1096ab2",
+ "sha256": "1fxwsqqgk2vhahkqczkhzxq9x6xwscryzjgav6j8qkxdpgz887z5"
},
"stable": {
"version": [
@@ -44626,8 +44961,8 @@
20210323,
332
],
- "commit": "1ed2df72f495784a2eccbe61de5f1b01b854fbea",
- "sha256": "0hr6yhsr2x745i1q9sywvgr8xwvnpc05lr3zi84gci0frlab92d9"
+ "commit": "51a66148c31f0ee7fdcc7aa554ae42e9c4db876c",
+ "sha256": "1g5ccjlqrgwifnsxq995isd09h7dx182ii0gxb5536dp26cd0464"
},
"stable": {
"version": [
@@ -44713,8 +45048,8 @@
20210323,
422
],
- "commit": "4cef6cab89eab5906330412efee6a3d9564f6e14",
- "sha256": "02hywgvy9d0mhan595jgc2x6vqy428hi9ha9zybiz1hl2394xila"
+ "commit": "0af704e85d3b15ecb8c45b2f48ed9a34a375a2fe",
+ "sha256": "05h7jzm31b139vsv1175ck0nk33wim63k01x42dn6ffmlgkvc8lc"
},
"stable": {
"version": [
@@ -44743,13 +45078,13 @@
"magit-popup",
"s"
],
- "commit": "e49ad93a11f6e0528d1dc2b6d6d4ec2a131636e0",
- "sha256": "0hs2vk9fp860y2fldr6d85hlpizccj0v5a7bjmkirvfnk2w086mv"
+ "commit": "14d8083c9ca296ce3c3e6d4fe21e455119f56db5",
+ "sha256": "0k8k22vwd0148sr8lnxjsvrhsp4byfb8icaqhk9cshws3g5hpb7w"
},
"stable": {
"version": [
0,
- 26,
+ 27,
1
],
"deps": [
@@ -44758,8 +45093,8 @@
"magit-popup",
"s"
],
- "commit": "ec5a4a7c63275875655d0fb57962ccefd68d39e5",
- "sha256": "0zmam6s2vpdl88qd3h863gzy25m0g6bkmzrgib00807sj2i42704"
+ "commit": "6209be5b5c0bd5d81078fdc82eb4001f202f90e7",
+ "sha256": "15w2jbpilhk88rhsanq1hw19qvs66bcrv21v8hkmzsd1579p2qhy"
}
},
{
@@ -44970,16 +45305,16 @@
"repo": "emacs-grammarly/grammarly",
"unstable": {
"version": [
- 20210219,
- 1713
+ 20211027,
+ 1359
],
"deps": [
"request",
"s",
"websocket"
],
- "commit": "46e802631a136cf356f5563005c9f9f5dedd09ed",
- "sha256": "01vw411ngj325q1irhkx3fmf7g0mh99yrc72cxz3275mnc0dpdpj"
+ "commit": "38d5c0384e90d577c4c657110fe4ef2d76b6146a",
+ "sha256": "0dxds8w213ad4czw5mrrb8a2i41jwsvrphy797lln5j7h404gs07"
},
"stable": {
"version": [
@@ -45157,11 +45492,11 @@
"repo": "davazp/graphql-mode",
"unstable": {
"version": [
- 20201001,
- 2113
+ 20210912,
+ 1544
],
- "commit": "2371316a750b807de941184d49ca19d277ecadcd",
- "sha256": "07k0r4khzx58m6bb13lsczlxakzipl9zxn68ymag4ibim5wf2j3n"
+ "commit": "80e9ac8020f7a4a8a963136698eb97a9fca28f7d",
+ "sha256": "1m4glbijclbhhzq8apvfyslfv1lgn3hy3wcfiynrpkxnxszygnyx"
}
},
{
@@ -45502,11 +45837,11 @@
"repo": "rexim/gruber-darker-theme",
"unstable": {
"version": [
- 20200227,
- 2238
+ 20210921,
+ 1408
],
- "commit": "7f95ce96079eb22b9214435ed25c5af98f60b482",
- "sha256": "1zdqbjhcb8b1f4szzjmkzhpxcg17dqfp91882h95f1x9c2an5gdw"
+ "commit": "091515cee37e586f2028d1226f5ec40e2080f2f9",
+ "sha256": "0dp2c97rww8brpw933szfcgdvxaxnq748bs274favsq9ikm12708"
},
"stable": {
"version": [
@@ -45581,14 +45916,14 @@
"repo": "greduan/emacs-theme-gruvbox",
"unstable": {
"version": [
- 20210606,
- 1419
+ 20211022,
+ 318
],
"deps": [
"autothemer"
],
- "commit": "c2ae5e3fff39f78f23109d90fdf36b3b189df511",
- "sha256": "1vx3grgnnb5mamig3cd882pvcbqpni3kglrjawgdc96wwiv1krbg"
+ "commit": "b9e661e2e141ef1a9e82b57f3b277090474a9b4d",
+ "sha256": "15926n5cmz4772wzwk06c6c1y7hm71dvfafs5qj7rl0w62lrn581"
},
"stable": {
"version": [
@@ -45890,11 +46225,11 @@
"repo": "Overdr0ne/gumshoe",
"unstable": {
"version": [
- 20210812,
- 1631
+ 20211029,
+ 2148
],
- "commit": "35a4b0f45437309a10e2c72e523012c2e2eded07",
- "sha256": "16h691h1078m5gm1xqypiapr671i7phsc3kl196m8n3dqypwjj9m"
+ "commit": "397379a3e032f31e98a57f5eb2187a0607c6bd7a",
+ "sha256": "0qmknrb4h20cp4ldzkiwnvgggr3pg1qjbkql0wz9vg4h90bf3gfh"
}
},
{
@@ -45905,11 +46240,11 @@
"repo": "bbatsov/guru-mode",
"unstable": {
"version": [
- 20200708,
- 728
+ 20211025,
+ 1157
],
- "commit": "fcb13d46f85dda886249bfaa19bcb777fe9f8a6a",
- "sha256": "10iwpl57dbgn2icqn4g9n65x64r190j15qv27f100sd3n0a1x7xg"
+ "commit": "a3370e547eab260d24774cd50ccbe865373c8631",
+ "sha256": "0h7d41l7rybljpb49hvkh14kc7bnh56rfrqzldpdry1qk3mr9bhj"
},
"stable": {
"version": [
@@ -46029,14 +46364,14 @@
"repo": "hhvm/hack-mode",
"unstable": {
"version": [
- 20210901,
- 2129
+ 20211005,
+ 25
],
"deps": [
"s"
],
- "commit": "4c1c2b093970b92f8589b061759288c0deb228c9",
- "sha256": "1lyp42d6j623v78sw9k5awj6188wgbsmpbj1izknisp0cnih90av"
+ "commit": "211b5a8f43b852e9e73de83013f51cb01855a530",
+ "sha256": "1s9ab1ca072hi2bg7zfzsqwz8md23jd78ky9h9jjra1a75lfbgxb"
},
"stable": {
"version": [
@@ -46085,8 +46420,8 @@
20210226,
1226
],
- "commit": "cea521750eddb3a70ccd38789d12b09bbdc7e906",
- "sha256": "0mc9v8az97kap11f8np55xkbrl4mbiy6jfg76jaagkdsfizqpx5a"
+ "commit": "ccfa75c0b3d67201cdf0f2324f311544ade498db",
+ "sha256": "0cssj9ql66l842kv5lnkp26cf5r21a0b71l3bypv671jxqsc5l2h"
},
"stable": {
"version": [
@@ -46477,11 +46812,11 @@
"repo": "haskell/haskell-mode",
"unstable": {
"version": [
- 20210816,
- 716
+ 20210908,
+ 1543
],
- "commit": "333205066754348b3dd47c5ce834757dd1bbdf48",
- "sha256": "1dd79bhvqcz2jwwki6q99815a99agadqk2dbbn7ib4s135xy4fyb"
+ "commit": "8402caa341d90b4236f5c0a802751f9023ccfbe7",
+ "sha256": "05pp38r8gb94w8gxnm3rkrawa7d73538lpz7lwccmlr83pvpl0cb"
},
"stable": {
"version": [
@@ -46554,11 +46889,19 @@
"repo": "minad/hasklig-mode",
"unstable": {
"version": [
- 20181110,
- 1859
+ 20211017,
+ 1730
],
- "commit": "57e8ac22bd499b632ab94657b855c7c43b166dda",
- "sha256": "11792hjxfsnkfwj3q2v6d090x6klf5g257dd75casnsadrlbka2b"
+ "commit": "4b73d61f4ef1c73733f7201fbf0b49ba9e3395b6",
+ "sha256": "12a5hgaf2z6prqx45n6y0xyknz2sivpzwxjnzbsdx9sw6rniqm57"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "4b73d61f4ef1c73733f7201fbf0b49ba9e3395b6",
+ "sha256": "12a5hgaf2z6prqx45n6y0xyknz2sivpzwxjnzbsdx9sw6rniqm57"
}
},
{
@@ -46623,6 +46966,36 @@
"sha256": "1j9cvy95wnmssg68y7hcjr0fh117ix1ypa0k7rxqn84na7hyhdpl"
}
},
+ {
+ "ename": "hass",
+ "commit": "d9f55bfa87d6fbaeafe713f8862369ea013a0c67",
+ "sha256": "1jmxngfjad8vqd6abgqhf2a8x3vysxfhwk4qs0c327qfazmd7vq3",
+ "fetcher": "github",
+ "repo": "purplg/hass",
+ "unstable": {
+ "version": [
+ 20210913,
+ 2051
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "f7a24c34631aa09fb7bc5bd13e8e4037e256730a",
+ "sha256": "1qvmxjl2f9qlj27aqvrpw6w5qkrp35pzdlzj622n5pc5xfpb64x0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "7b068b91f99ac37c36ad9785863bb2e626179a8b",
+ "sha256": "0w7q0394q52bxhmn1f72dmfrisg03y6j35hp0rsb2i7rqzv8fdkp"
+ }
+ },
{
"ename": "haste",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -46752,8 +47125,8 @@
20200315,
2129
],
- "commit": "e12b1df2ca28d2b06c471cd709c038a2dc0bcdbd",
- "sha256": "05j97g2l4rdx35a435xpdpq1ixgf9j94828fx4yhh4g60fjwwb82"
+ "commit": "e4d9eef631e8a386341ae8f94f7c2579586e65b5",
+ "sha256": "19xdag5qn3sgp30xdpannb9qa36jy6hl5n7pf866ir4l4lgpz6nx"
},
"stable": {
"version": [
@@ -46811,16 +47184,16 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20210906,
- 651
+ 20211031,
+ 1714
],
"deps": [
"async",
"helm-core",
"popup"
],
- "commit": "3fe4076076eea8d244793b80a0274de0d685bd9d",
- "sha256": "0kwa2aabbvkr5wyp339ajrkwn4rk6gwq52ly86fskyq0n7263n7b"
+ "commit": "349663e85eddb40ed6ae78329e6abc47513b17f1",
+ "sha256": "0as1wk8crs9yizn1h6pqj60z4df59f6m632kfcnwl08yvzhiva3n"
},
"stable": {
"version": [
@@ -47113,8 +47486,8 @@
"cl-lib",
"helm"
],
- "commit": "12079bb09f203dda5cc2dd003bd60a6ad490f762",
- "sha256": "11y1yif6z26cc502s72p310z9m6130p5kyqb2py74r3x0k0nc61s"
+ "commit": "aa775340ba691d2322948bfdc6a88158568a1399",
+ "sha256": "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"
},
"stable": {
"version": [
@@ -47282,8 +47655,8 @@
"bufler",
"helm"
],
- "commit": "b951e621bc4a4bb07babf8b32dc318d91ae261c9",
- "sha256": "14d2mcx6ppjzkpv63m7iir0j2dn549gkxr30bxx8qvc1v7r7r6wn"
+ "commit": "a68e0eb2719c67ab8a3ad56c4036364061d06004",
+ "sha256": "155g4p2yw88cpc8ydfzybc4r6ab2qwcmzdwkrrhnra4psimahjq6"
},
"stable": {
"version": [
@@ -47719,14 +48092,14 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20210906,
- 557
+ 20211017,
+ 530
],
"deps": [
"async"
],
- "commit": "3fe4076076eea8d244793b80a0274de0d685bd9d",
- "sha256": "0kwa2aabbvkr5wyp339ajrkwn4rk6gwq52ly86fskyq0n7263n7b"
+ "commit": "349663e85eddb40ed6ae78329e6abc47513b17f1",
+ "sha256": "0as1wk8crs9yizn1h6pqj60z4df59f6m632kfcnwl08yvzhiva3n"
},
"stable": {
"version": [
@@ -48027,8 +48400,8 @@
"dogears",
"helm"
],
- "commit": "00dd88cc53d3a7d6ddeb3c6eea2c2a37d9b610d6",
- "sha256": "196gh32l18laawqypc9l08pmqrs48lj5g4wj2m1vl4c13mff5giz"
+ "commit": "c05b69e504a538c9e00fbb0ea86934fafe191d0c",
+ "sha256": "12qvzd8wvryr2hnlv7l683148vxd1sry7s8y12xnysc7yz4dhsgv"
}
},
{
@@ -48283,8 +48656,8 @@
"deps": [
"helm"
],
- "commit": "5d6366adc14c51570374320fa827b0772833a61e",
- "sha256": "0nrkghnsn83ah0jqbv7fx2i90p1z37lfmh6kwgjkr2aq4ggrcklj"
+ "commit": "0828c3c8975b34394d6ac7b73940113020cd50ab",
+ "sha256": "0pmrypz9zbs3zc26brh3rl30jmzxxh1iyjdg2rvsx0630bdgkfw9"
},
"stable": {
"version": [
@@ -48548,8 +48921,8 @@
"flx",
"helm"
],
- "commit": "9d57e4802aacfc50efe4804e45ace16f6931635c",
- "sha256": "1l2vjksmgp7djxfwp6lyg9vqbsx2snc8h3wnf9pf020p3h4ccy9v"
+ "commit": "8d44247fd3600fe3e5e7a64a1904ae6b11bcc9fe",
+ "sha256": "1k86gz89s16sxqyab3gc6lxafdxcddvwmmpgqbg9mn2c8imsl8hd"
},
"stable": {
"version": [
@@ -49070,10 +49443,10 @@
},
{
"ename": "helm-img",
- "commit": "e0ea97a55f8f4183d375424c94705f372189d6ed",
- "sha256": "0sq9l1wgm97ppfc45w3bdcv0qq5m85ygnanv1bdcp8bxbdl4vg0q",
+ "commit": "139038c4fc32afae2bc3d00292e03cced5f6b4e7",
+ "sha256": "0rw873gmkg7g4mp21ls3xbiiawwkmcrgk0mwhm91v38makxr7606",
"fetcher": "github",
- "repo": "l3msh0/helm-img",
+ "repo": "mtmtcode/helm-img",
"unstable": {
"version": [
20151224,
@@ -49089,10 +49462,10 @@
},
{
"ename": "helm-img-tiqav",
- "commit": "f6a948f91dc58ce565e54967ab75fe572f37f616",
- "sha256": "1m083hiih2rpyy8i439745mj4ldqy85fpnvms8qnv3042b8x35y0",
+ "commit": "172b9fa7692ba084d7ab84fab06749974eb58156",
+ "sha256": "02gfsrwi9ypad40bprpd55idsc8x1x3g1j3yq7gmrmahqla9j6mz",
"fetcher": "github",
- "repo": "l3msh0/helm-img-tiqav",
+ "repo": "mtmtcode/helm-img-tiqav",
"unstable": {
"version": [
20151224,
@@ -49349,26 +49722,26 @@
"repo": "emacs-helm/helm-ls-git",
"unstable": {
"version": [
- 20210906,
- 738
+ 20211016,
+ 1433
],
"deps": [
"helm"
],
- "commit": "178192296acd59c53d933dfa55e8a27b8ce802cb",
- "sha256": "1wrnjzj53n78bll3jlqr7gwlx4x2awxh2zr34y9q02izlgvwwq4z"
+ "commit": "3eadeb2bc5d609e68bdaa184c2a50407c974c2a8",
+ "sha256": "1qqxwzalsjnhb2rggi4zv7qmlq7l1xwhh9nd6i8bn8sxhnma5y18"
},
"stable": {
"version": [
1,
9,
- 1
+ 3
],
"deps": [
"helm"
],
- "commit": "7b7b6dc2554603ad98412927f84a803625069ab3",
- "sha256": "1s748a5abj58hd7cwzfggfnnmyzhj04gpbqqwqmskn8xlsq5qcdi"
+ "commit": "312392b786a7ea322914b60760e2693b53772ad6",
+ "sha256": "1bqk0z6zd3aza7ibb8h0ghya5kid4m6z01gs7jf4sr6p49rzp7hd"
}
},
{
@@ -49818,8 +50191,8 @@
"repo": "alphapapa/org-ql",
"unstable": {
"version": [
- 20210608,
- 1556
+ 20210922,
+ 615
],
"deps": [
"dash",
@@ -49827,17 +50200,22 @@
"org-ql",
"s"
],
- "commit": "94f9e6f3031b32cf5e2149beca7074807235dcb0",
- "sha256": "022arhyyn8hbb1hzjkv4gl3dr8lz1gv0x4h70x0970bsbqlsa27w"
+ "commit": "31aeb0a2505acf8044c07824888ddec7f3e529c1",
+ "sha256": "1jfm4ahh58x3a3njigrbfzd86fnbyybbcgca2mgmxddcy6bszfp1"
},
"stable": {
"version": [
0,
- 5,
- 2
+ 6
],
- "commit": "d3b0ef2f5194452d88bf23ec31ebfef822c47c24",
- "sha256": "0b3xxnbhnrz0263fnrrdbs3gif4pjkfws4mxkfqqpg0fc8azp2rx"
+ "deps": [
+ "dash",
+ "helm-org",
+ "org-ql",
+ "s"
+ ],
+ "commit": "31aeb0a2505acf8044c07824888ddec7f3e529c1",
+ "sha256": "1jfm4ahh58x3a3njigrbfzd86fnbyybbcgca2mgmxddcy6bszfp1"
}
},
{
@@ -49848,8 +50226,8 @@
"repo": "alphapapa/org-recent-headings",
"unstable": {
"version": [
- 20201213,
- 837
+ 20211011,
+ 1519
],
"deps": [
"dash",
@@ -49858,8 +50236,8 @@
"org-recent-headings",
"s"
],
- "commit": "5da516a1586675992c0122ed32978c18dda06318",
- "sha256": "1xnhahgs1q6y7w0rrc33qbkdagjm6q71a4i0msi4gsfnnzwn4vam"
+ "commit": "97418d581ea030f0718794e50b005e9bae44582e",
+ "sha256": "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"
}
},
{
@@ -50101,15 +50479,15 @@
"repo": "tumashu/helm-posframe",
"unstable": {
"version": [
- 20210412,
- 1147
+ 20211103,
+ 236
],
"deps": [
"helm",
"posframe"
],
- "commit": "2412e5b3c584c7683982a7e9cfa10a67427f2567",
- "sha256": "0k4lmgvrxm4lswafc3fb8aab3ax0gnkkq64vg3vmiry85kih2cqb"
+ "commit": "87461b52b6f3f378c63642a33f584d4a4ba28351",
+ "sha256": "1hmf1l6hmir0kvpl5h0wk4l17nmk0lfi659lvg89jc1sm18v2xv9"
}
},
{
@@ -50580,8 +50958,8 @@
"helm",
"rtags"
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -50715,8 +51093,8 @@
"s",
"searcher"
],
- "commit": "76a8de11e39da5c7a94066bcf3d515cdd23c6f63",
- "sha256": "1698j6x0vbxfdpdknrzwihr4pwpl1914i3azarmngkh8wnhma26s"
+ "commit": "326b5777db284f1e24c4f94730834e4b1e2bb66c",
+ "sha256": "17dzzqgd3sn69g3idbrdbqw162rsa7s4fa15rh6jpyx42ylbgiba"
},
"stable": {
"version": [
@@ -51399,14 +51777,25 @@
"repo": "brotzeit/helm-xref",
"unstable": {
"version": [
- 20201004,
- 1817
+ 20211017,
+ 1334
],
"deps": [
"helm"
],
- "commit": "23f1174cfca7667d95828dcd388c655a4a9c877d",
- "sha256": "0v0lkabpi1n4hgnp28jk19f7b78yk93ssm0gr0fr25yqx5zskdnk"
+ "commit": "ea0e4ed8a9baf236e4085cbc7178241f109a53fa",
+ "sha256": "1xbz6idr1fnqkqh0fsn9bhwavng6b2s4idc2l302s2vziygcm42d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "9764eabd50c40b009073c7ef64e3a71d0d066d0b",
+ "sha256": "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"
}
},
{
@@ -51528,8 +51917,8 @@
"repo": "Wilfred/helpful",
"unstable": {
"version": [
- 20210319,
- 802
+ 20211021,
+ 625
],
"deps": [
"dash",
@@ -51537,8 +51926,8 @@
"f",
"s"
],
- "commit": "7e4b1f0d5572a4e2b8ee7a9b084ef863d0315a73",
- "sha256": "0qrz3klqs94aj6bxh49qymf9fvpa73xpp6djkxwpypgb2wv8hk6n"
+ "commit": "8df39c15d290cd499ef261de868191d3fc84f75a",
+ "sha256": "0wnbzwlsbigxc9bncy8lf8i5kcjg7qrb6l93k0fsyj8y0qibaja3"
},
"stable": {
"version": [
@@ -52467,11 +52856,11 @@
"repo": "ideasman42/emacs-hl-block-mode",
"unstable": {
"version": [
- 20210617,
- 1324
+ 20211029,
+ 602
],
- "commit": "0ea43d320219ba4e6b7b1be36a5c1533ac3edb42",
- "sha256": "1hg18rm7lqs45gvv1rb5d3vqh6g9nmyf2wd2sichl06a2cn48n16"
+ "commit": "0593a1a77db28503025d5c1850e6a99551c3bcbd",
+ "sha256": "1rkxm6ak1zaqzp6q6mqpng0k4qjnsshkwydfxfm63xfsgr4vwhwv"
}
},
{
@@ -52518,11 +52907,11 @@
"repo": "ideasman42/emacs-hl-prog-extra",
"unstable": {
"version": [
- 20210629,
- 602
+ 20211025,
+ 2138
],
- "commit": "c251d0cd354565b859ddf7c61bdae32649c6a0f4",
- "sha256": "0a8dkay7d31h2k4vsapwigf62wl77yk4r0wa86ly4p6vghbczj3w"
+ "commit": "121f24c12c6711f65157259d90cbe88a53c10336",
+ "sha256": "0mwhqhf84kf76wrqz6l9rp4majfl7dnxs1dg49qls32lv44ihs2x"
}
},
{
@@ -52555,11 +52944,11 @@
"repo": "tarsius/hl-todo",
"unstable": {
"version": [
- 20210828,
- 1225
+ 20210909,
+ 1114
],
- "commit": "d13a0892645536b970ce130a01ebe5f62e04689f",
- "sha256": "0fw0qwxrc05paq17vdhvvwlzwrl351js8wf4mc5crkhahry9608a"
+ "commit": "42f744ffb513cf2b95517144c64dbf3fc69f711a",
+ "sha256": "1f84d4wms8q2kcj5mb6ih6b5ni35fwqvckp2j3mcdznms759j7li"
},
"stable": {
"version": [
@@ -52655,16 +53044,16 @@
"repo": "thanhvg/emacs-hnreader",
"unstable": {
"version": [
- 20210518,
- 428
+ 20211018,
+ 1746
],
"deps": [
"org",
"promise",
"request"
],
- "commit": "0bda35e6b2063ddecca2fe2b0dd21f46a3391de3",
- "sha256": "04d784b39f9g1klxkwm7a89h8vkl8cmlnb4h0pgnagl1h5ch96pf"
+ "commit": "5eb55aff411406882b8928ff233ac3d761641c6f",
+ "sha256": "13i08hb4i6am4ljvdh9ifi616jbrld05pvhd159vmmli3wpyzgaw"
}
},
{
@@ -52682,36 +53071,6 @@
"sha256": "1814si09xjimmn1a8yp6q13lz1lr6cwnaz7fqfszqcil8lldcwvx"
}
},
- {
- "ename": "hoa-pp-mode",
- "commit": "0c0d707dad9dc86bb3d6a829a60e21e92a5f3160",
- "sha256": "01ijfn0hd645j6j88rids5dsanmzwmky37slf50yqffnv69jwvla",
- "fetcher": "github",
- "repo": "hoaproject/Contributions-Emacs-Pp",
- "unstable": {
- "version": [
- 20151027,
- 736
- ],
- "deps": [
- "names"
- ],
- "commit": "925b79930a3f4377b0fb2a36b3c6d5566d4b9a8e",
- "sha256": "0g2r4d0ivbadqw1k8jsv0jwv8krpfahsg0qmzyi909p2yfddqk1l"
- },
- "stable": {
- "version": [
- 0,
- 3,
- 0
- ],
- "deps": [
- "names"
- ],
- "commit": "a72104a191214fba502653643a0d166a8f5341d9",
- "sha256": "1wg6vc9swwspi6s6jpig3my83i2pq8vkq2cy1q3an87rczacmfzp"
- }
- },
{
"ename": "holiday-pascha-etc",
"commit": "4108926b1fee78e54c9fa68445c7a2b1b20404ea",
@@ -52735,16 +53094,16 @@
"repo": "alhassy/holy-books",
"unstable": {
"version": [
- 20210227,
- 2225
+ 20211025,
+ 127
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "53ee29d1b1a1a9cbd664c318b01aa1c13011efff",
- "sha256": "0n7qnr23h22lsp2n19z3j30zq6l2rvqj1mldkaki0gvw5whi4r3w"
+ "commit": "02c2956d36631d3d8c8b4bacdcf0a5cdd1f3136d",
+ "sha256": "011a9wg0b68cf2pcr2w5my4dlawaa9yzz98mnsv71v8ny42rzgs6"
}
},
{
@@ -52784,15 +53143,15 @@
"repo": "dunn/homebrew-mode",
"unstable": {
"version": [
- 20210820,
- 1735
+ 20210919,
+ 331
],
"deps": [
"dash",
"inf-ruby"
],
- "commit": "78e20613674247a65483f89a7912111e3ce4b9b0",
- "sha256": "0snclyby8y2k7ps1qrbb18sx3d8h3dkw0d81sg1kxhlwddpp6n8y"
+ "commit": "8c630c6f768b942a86a10750f720abc64a817cd0",
+ "sha256": "1n688qffn8nrr45hnq4mmxr8v1wccjim50206c1xw8mvd63hnzhc"
},
"stable": {
"version": [
@@ -52896,11 +53255,11 @@
"repo": "axelf4/hotfuzz",
"unstable": {
"version": [
- 20210731,
- 821
+ 20210924,
+ 936
],
- "commit": "c09ee50c337a56114834b66ab3475985e3099d06",
- "sha256": "1bl99zr75cbknvx1iilw7zjzzmpcv3h541jsz7cz8si1s4dcyhcq"
+ "commit": "e963cef1bf24b2da491c1aafd4260ee6ae3a766c",
+ "sha256": "1w51drd0zchgl5yxyg1a3rd0xkxf6cybfalzdz7cjprd8kmipmj5"
}
},
{
@@ -52988,16 +53347,16 @@
"repo": "thanhvg/emacs-howdoyou",
"unstable": {
"version": [
- 20210903,
- 201
+ 20210909,
+ 2000
],
"deps": [
"org",
"promise",
"request"
],
- "commit": "61489045a1b1982d9bcd307fcc5bbd9195133c06",
- "sha256": "0crzd0qyq751rlljs31vxblyvjcyjzfnj2x78rmqp7vj6hyr7xfg"
+ "commit": "a01971a7279c8a031de78513c004d7a09d293712",
+ "sha256": "05jmq05bjj0rfc6c69ykjrv6lavxpb21fnjny958if8hxzd7v1v8"
}
},
{
@@ -53190,8 +53549,8 @@
20200929,
559
],
- "commit": "97f885a550bed05f2fbdd933718313e6645a6ea1",
- "sha256": "0b8wz43k64c2ca4kqjlp9zx97hafwmnjc38pa7lyip9yhhnhkkf5"
+ "commit": "ec85e68a4cba064d4caa593e1dec69b1b35b12dd",
+ "sha256": "143c4in1hykd3rnzrznri60aikmsm9fyhmmsx5gzapyr18lbw9wq"
},
"stable": {
"version": [
@@ -53434,16 +53793,15 @@
"repo": "hylang/hy-mode",
"unstable": {
"version": [
- 20201010,
- 1351
+ 20211016,
+ 2011
],
"deps": [
"dash",
- "dash-functional",
"s"
],
- "commit": "5253533ddbd55f58168d00940352a82a66d38fec",
- "sha256": "0zdy0j99slklblvgggyihkj3w7iy296jbj0mk3ni7k8mvx859hcr"
+ "commit": "df814865a1faa8414dacdbb35b2a9029995312ec",
+ "sha256": "1aavih2l4kwv25vw8iai18mjl7w66ih3yvblqfhcpmgbihnv4fp0"
},
"stable": {
"version": [
@@ -54078,17 +54436,17 @@
},
{
"ename": "idle-highlight-mode",
- "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
- "sha256": "1i5ky61bq0dpk71yasfpjhsrv29mmp9nly9f5xxin7gz3x0f36fc",
- "fetcher": "github",
- "repo": "nonsequitur/idle-highlight-mode",
+ "commit": "43c7b0d74b482de5134de097e982934cd72c5f04",
+ "sha256": "1yrvvizw48lky06zjsx2n2w5cb2c5qz2kvcm9bpqyr5gp2w63pls",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-idle-highlight-mode",
"unstable": {
"version": [
- 20120920,
- 1648
+ 20211011,
+ 557
],
- "commit": "c466f2a9e291f9da1167dc879577b2e1a7880482",
- "sha256": "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"
+ "commit": "0916be7075e792773440c3bdb5cf9c153691846b",
+ "sha256": "0817y99zm1x01nya6lnhby96da2w9kivw4p59bbaxm7hi0ycrsfz"
},
"stable": {
"version": [
@@ -54511,15 +54869,15 @@
"repo": "idris-hackers/idris-mode",
"unstable": {
"version": [
- 20210728,
- 846
+ 20211103,
+ 1521
],
"deps": [
"cl-lib",
"prop-menu"
],
- "commit": "3cc9361b4c0ca88fd3ba218633ea1edeae18d6fe",
- "sha256": "04zj69lwjcwz0dmmwz84lfr3w0cdca94pv69ldvik4qh685cd0n9"
+ "commit": "8553aef4e4bd22e35a236413b09980c6f93a9041",
+ "sha256": "15r63yqaslsdg760xiwrg2d7cxiiyvzrjzfmnfx8zwg32nfpkh1b"
},
"stable": {
"version": [
@@ -54597,11 +54955,11 @@
"repo": "jrosdahl/iflipb",
"unstable": {
"version": [
- 20210515,
- 829
+ 20210907,
+ 1717
],
- "commit": "94f12bb6d2e03690562647b5fbb7b6672ac83e37",
- "sha256": "1flpzvrnp3ilkal6xidmajipzhn9yzwkw8nwnl25bl9m4kjl129v"
+ "commit": "2854e73cebb463007b686a784b66242999c3366b",
+ "sha256": "0fyjdfv2pw7lkh3dgmp7cjlcpnsnn82ssfh19wngiskf3p405s1v"
},
"stable": {
"version": [
@@ -54764,20 +55122,20 @@
"repo": "tarsius/imake",
"unstable": {
"version": [
- 20210615,
- 1506
+ 20210918,
+ 2046
],
- "commit": "b61b1582abe8f7a389883f48b7e5243abb010a69",
- "sha256": "19nbas7kpbxksd0vqbvf8awzpnrmy97yxd616kcxcp86qk34mlwr"
+ "commit": "e69a09e7962afe81474aa6c88974a1e6add15624",
+ "sha256": "0953irnlzx0nl4iirpgf7llyld2n8yl1w9yjkh0lvlz1l9gcpvqy"
},
"stable": {
"version": [
1,
- 0,
- 3
+ 1,
+ 0
],
- "commit": "100d62c7095743fadddfad5b9e0740ee386ba4cf",
- "sha256": "0wpfl74v7xnvsk3ribxkfyy4p5p9j2wskrcf0naavqpgm6fc6jvr"
+ "commit": "e69a09e7962afe81474aa6c88974a1e6add15624",
+ "sha256": "0953irnlzx0nl4iirpgf7llyld2n8yl1w9yjkh0lvlz1l9gcpvqy"
}
},
{
@@ -54954,20 +55312,20 @@
"repo": "petergardfjall/emacs-immaterial-theme",
"unstable": {
"version": [
- 20210126,
- 1127
+ 20211006,
+ 1048
],
- "commit": "c5684a17c78e6e05ea0bdb63e44373b064db935a",
- "sha256": "09fw0bgqr7fhwhm7vgdd12iw9nbgn19qna7k6vv1ljsdfcmwg5s5"
+ "commit": "ae9980927026324ff656721eef2e0f415cf3dfb4",
+ "sha256": "198xii7cdscd521bbz371465pks072zi3cdgqrgcq6860falyfxf"
},
"stable": {
"version": [
0,
7,
- 0
+ 1
],
- "commit": "288b367ea0efccd5e98efbdf925591ffc989a654",
- "sha256": "1y62yfg67lnbc89l6k4gw5fibahnlpn23g415a6zdk2vz89n6y0k"
+ "commit": "b2b625f690e207bab7b60a23585eba9c2831607a",
+ "sha256": "173mw87hbr1hk0k859liba7sybsxpmdv0d7d97iyy2khhmn7xkn6"
}
},
{
@@ -55055,8 +55413,8 @@
"deps": [
"impatient-mode"
],
- "commit": "bcb636dbef4630c5ae654642c6a637cceb588cac",
- "sha256": "1nnmx7f256cll04wxwip3a1pll3rayiqx4ynirrm1ld97q8hdc3v"
+ "commit": "04ba1617d9f11105f7db01ce39b4c7746aa13974",
+ "sha256": "0pjr6bnd3vjqf3i64gyp9sqx81an9xc2sgawza33b8hmnwvgarmw"
},
"stable": {
"version": [
@@ -55172,8 +55530,8 @@
20210508,
309
],
- "commit": "bfacd60a4be68a89d150f0bf2a9fb8714591f6f5",
- "sha256": "1dxdzvg6bpz0wgj2amqy7q9xl8xi7clsw10d9c86gbq87b9js681"
+ "commit": "ed99e867f81ef69854182b519db1b9141fcdb2a2",
+ "sha256": "04l6ws5fr19k7klpib5yz4zyqmf2aiywdm85kz5skhf196hm21g9"
},
"stable": {
"version": [
@@ -55378,14 +55736,14 @@
"repo": "clojure-emacs/inf-clojure",
"unstable": {
"version": [
- 20210811,
- 645
+ 20211027,
+ 1611
],
"deps": [
"clojure-mode"
],
- "commit": "38e7dc1829646b93473c31d704bda0dee6644a38",
- "sha256": "1g2dacwf8dnm289y7cpy3vpdyp6qndwg52nvgdxzsbg9xx7wdz72"
+ "commit": "765653dc23dc2a2c1520a1e24332ab9d4b49dd47",
+ "sha256": "1hbylg5nsix65a85bibwgzcyjkf19rjvdkg04p9hnvsgh59x2d5l"
},
"stable": {
"version": [
@@ -55829,11 +56187,11 @@
"repo": "ideasman42/emacs-inkpot-theme",
"unstable": {
"version": [
- 20210716,
- 58
+ 20211101,
+ 558
],
- "commit": "c3683aa99c738eb46cf310ba23162dbb315a5ac5",
- "sha256": "14k3n5kn9z2lqdhm00qy0hz8synnv28i17gn518ps4cyk298dmby"
+ "commit": "1ca71416869e7515a9c2587b35f21a11921686f3",
+ "sha256": "0pl2hpcy9165np17gwa9qhqxb43kwm0z746pxcga7rfg6apy6krc"
}
},
{
@@ -56335,15 +56693,15 @@
"repo": "Sarcasm/irony-mode",
"unstable": {
"version": [
- 20210321,
- 1750
+ 20210605,
+ 1018
],
"deps": [
"cl-lib",
"json"
],
- "commit": "ec6dce7ee16ffaa9a735204534aa4aa074d14487",
- "sha256": "0pabzcr06jywa3n4bax8dxxkmb1ffq3cpw1jnxnqpx18h96pfar2"
+ "commit": "b9c64abf81e73860e39ecd82dfa00cca90b53d99",
+ "sha256": "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"
},
"stable": {
"version": [
@@ -56425,8 +56783,8 @@
"deps": [
"f"
],
- "commit": "796e4e9a2508120ae430f522115c7d174d912276",
- "sha256": "0wlh2ph87qa3i3n7j2mvih428ih65gqj0bzqwqw123cfflcz6xy2"
+ "commit": "ac829919c144aef94232837a63ed19f029a90515",
+ "sha256": "0ykzjflb101jn7x6g902xn2bkpc6v3ymm79vwndkl01n172v23m3"
},
"stable": {
"version": [
@@ -56658,11 +57016,11 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20210903,
- 1814
+ 20210930,
+ 1450
],
- "commit": "6a8e5611f32cf7cc77c2c6974dc2d3a18f32d5a5",
- "sha256": "0mwrvcnpl7cr8ynhx8ilmlbjqmggxccwa6w8k15j5i640chl19xh"
+ "commit": "1c6b3da377a840e898b14020133f59fca9ceea1c",
+ "sha256": "1w8x2qk8lafnn6ksv1anixayyl476y1j6hp2amfnqmdkh0vnh63v"
},
"stable": {
"version": [
@@ -56689,8 +57047,8 @@
"avy",
"ivy"
],
- "commit": "6a8e5611f32cf7cc77c2c6974dc2d3a18f32d5a5",
- "sha256": "0mwrvcnpl7cr8ynhx8ilmlbjqmggxccwa6w8k15j5i640chl19xh"
+ "commit": "1c6b3da377a840e898b14020133f59fca9ceea1c",
+ "sha256": "1w8x2qk8lafnn6ksv1anixayyl476y1j6hp2amfnqmdkh0vnh63v"
},
"stable": {
"version": [
@@ -56714,16 +57072,16 @@
"repo": "tmalsburg/helm-bibtex",
"unstable": {
"version": [
- 20201014,
- 803
+ 20210927,
+ 1205
],
"deps": [
"bibtex-completion",
"cl-lib",
- "swiper"
+ "ivy"
],
- "commit": "12079bb09f203dda5cc2dd003bd60a6ad490f762",
- "sha256": "11y1yif6z26cc502s72p310z9m6130p5kyqb2py74r3x0k0nc61s"
+ "commit": "aa775340ba691d2322948bfdc6a88158568a1399",
+ "sha256": "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"
},
"stable": {
"version": [
@@ -56862,8 +57220,8 @@
"repo": "s-kostyaev/ivy-erlang-complete",
"unstable": {
"version": [
- 20191112,
- 1137
+ 20211019,
+ 447
],
"deps": [
"async",
@@ -56871,8 +57229,8 @@
"erlang",
"ivy"
],
- "commit": "c443dba0c466d36bef01a8985474f5da0a5a65fe",
- "sha256": "0f0qr6h4y891lzlfi3k0a555qg0jw79fl9bfgv5fxi06m24q4683"
+ "commit": "6913f6ef7c942a5a2c42bc17635d09c91353e7ca",
+ "sha256": "0i06332ycky68ccnyay4c277nl227r0hvbrflswbj4g1rybfdd3q"
},
"stable": {
"version": [
@@ -56936,8 +57294,8 @@
"ivy",
"s"
],
- "commit": "3ad203f6166f82c7a09ab4ad065fd40136915fb8",
- "sha256": "07mdv0cnrjys0lcxamwpg5xl0g7wb0mgnzbkqyaik559avp5kq5a"
+ "commit": "368c0c2db6b2ff279a956b8075eaf9ba2c334234",
+ "sha256": "1q2k6118yip8vlpaf8jhygi23wvf7zy7s3bpv51jgfkw89a3vgxa"
},
"stable": {
"version": [
@@ -57057,8 +57415,8 @@
"hydra",
"ivy"
],
- "commit": "6a8e5611f32cf7cc77c2c6974dc2d3a18f32d5a5",
- "sha256": "0mwrvcnpl7cr8ynhx8ilmlbjqmggxccwa6w8k15j5i640chl19xh"
+ "commit": "1c6b3da377a840e898b14020133f59fca9ceea1c",
+ "sha256": "1w8x2qk8lafnn6ksv1anixayyl476y1j6hp2amfnqmdkh0vnh63v"
},
"stable": {
"version": [
@@ -57226,15 +57584,15 @@
"repo": "tumashu/ivy-posframe",
"unstable": {
"version": [
- 20210609,
- 1053
+ 20211103,
+ 233
],
"deps": [
"ivy",
"posframe"
],
- "commit": "9c8382823392d5e64fb4879055e43ab4a029e62a",
- "sha256": "1dqbgi12rd79jkrbyd59lrx9b5wi5a0k2xmf927c4mcqjfbvih2w"
+ "commit": "5d9420252ca855d6d206f1f8ef5993a6be3c618f",
+ "sha256": "1yan9h12208dalzgpffqxnzv8b0hwzhzna01gnzb9wmkcfi3fpmh"
},
"stable": {
"version": [
@@ -57265,8 +57623,8 @@
"ivy",
"prescient"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -57357,8 +57715,8 @@
"ivy",
"rtags"
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -57390,8 +57748,8 @@
"s",
"searcher"
],
- "commit": "84faba3cd87374f54d5e27344d4812737375fbaa",
- "sha256": "1lxiamv0960j1sfs9afqbdkp7mjkdbi1nw1nh5w8q3m9a44c1h89"
+ "commit": "0e8280ef40814eab1065d442146fe81ab1fc6149",
+ "sha256": "0cfhdmbrm41q3iwmrr0amhk3csrwxhqbisayjc5s01bf129rx7rf"
},
"stable": {
"version": [
@@ -57472,14 +57830,14 @@
"repo": "alexmurray/ivy-xref",
"unstable": {
"version": [
- 20191126,
- 401
+ 20211008,
+ 1103
],
"deps": [
"ivy"
],
- "commit": "3d4c35fe2b243d948d8fe02a1f0d76a249d63de9",
- "sha256": "1c0k1in2hpfwfd7m5r8623d58kxsrfl6pwpgdrkk3077vdgbwiip"
+ "commit": "a82e8e117d2dd62c28b6a3e3d6e4cfb11c0bda38",
+ "sha256": "0h4cnhfqgrzm63kfrlz2mhgsk20jkcq18gjx9pvbbhhg59xvvnaj"
}
},
{
@@ -57670,11 +58028,11 @@
"repo": "brianc/jade-mode",
"unstable": {
"version": [
- 20160525,
- 1441
+ 20210908,
+ 2121
],
- "commit": "4dbde92542fc7ad61df38776980905a4721d642e",
- "sha256": "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1"
+ "commit": "1ad7c51f3c6a6ae64550d9510c5e4e8470014375",
+ "sha256": "1n26jlvf0z7h5yq3w2pzznj43g5xknq1icg68pc0ysqdfm4nq51m"
},
"stable": {
"version": [
@@ -57718,11 +58076,11 @@
"repo": "ALSchwalm/janet-mode",
"unstable": {
"version": [
- 20200509,
- 1651
+ 20210924,
+ 44
],
- "commit": "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7",
- "sha256": "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"
+ "commit": "9e3254a0249d720d5fa5603f1f8c3ed0612695af",
+ "sha256": "1c95znizd2xs84ggk70qy0lya8s6w83d0d2fl95iccj37r12m00y"
}
},
{
@@ -57811,15 +58169,15 @@
"repo": "dakrone/emacs-java-imports",
"unstable": {
"version": [
- 20201115,
- 545
+ 20211006,
+ 2153
],
"deps": [
"pcache",
"s"
],
- "commit": "7083b5efeb23ded95e6c1d2ab0319837851eb42f",
- "sha256": "0q1wqy946vmz54d0bsfvgs33ma78zfzdvgcprm0s5dczkn434ixd"
+ "commit": "7535a36d85497448a6e83579b822beaca7251ccb",
+ "sha256": "0zny134wxbwf4igzg9s4f4505hgjb7hy5l9ycqhl7l0ss2baz19j"
},
"stable": {
"version": [
@@ -58406,11 +58764,11 @@
"repo": "Michael-Allan/Java_Mode_Tamed",
"unstable": {
"version": [
- 20210512,
- 2301
+ 20211027,
+ 1852
],
- "commit": "c5cc024a06684b91da9bb05fecf681426596af5e",
- "sha256": "1qkkqqq4r5j10s4q17r2r4ryim0gpknr5h512jj9yk52a77q1g7d"
+ "commit": "647cae28087529d18367f895d7ef689c7f64c6bd",
+ "sha256": "086h53mmdjx30093zazwylx3fg7jvbcjy63q4ph63ybizsbiy5lg"
}
},
{
@@ -58776,14 +59134,14 @@
"repo": "mooz/js2-mode",
"unstable": {
"version": [
- 20210830,
- 12
+ 20210906,
+ 2337
],
"deps": [
"cl-lib"
],
- "commit": "b913961e410dbfdc52a80d62eb4cfe7a305b4e3e",
- "sha256": "0xxb25a6vixzfxsndyy2mgwbpr4h5pm76fq9ibw7434yc8zjwmrj"
+ "commit": "a059c4105b374ce037b4cc0c942f9aed96508021",
+ "sha256": "0cghwxk43jzajb5f5l4904bl2p95bdcld2qc25r08a5d34jidvl1"
},
"stable": {
"version": [
@@ -58938,28 +59296,26 @@
"repo": "joshwnj/json-mode",
"unstable": {
"version": [
- 20190123,
- 422
+ 20211011,
+ 630
],
"deps": [
- "json-reformat",
"json-snatcher"
],
- "commit": "0e819e519ae17a2686e0881c4ca51fa873fa9b83",
- "sha256": "0m4i6b5qmakdc0h8npsyajdp06jq03cb1c5rkj6x0khnjw9fv2fl"
+ "commit": "eedb4560034f795a7950fa07016bd4347c368873",
+ "sha256": "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"
},
"stable": {
"version": [
1,
- 7,
+ 8,
0
],
"deps": [
- "json-reformat",
"json-snatcher"
],
- "commit": "9ba01b868a6b138feeff82b9eb0abd331d29325f",
- "sha256": "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"
+ "commit": "eedb4560034f795a7950fa07016bd4347c368873",
+ "sha256": "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"
}
},
{
@@ -59141,14 +59497,14 @@
"repo": "tminor/jsonnet-mode",
"unstable": {
"version": [
- 20210726,
- 1251
+ 20211003,
+ 1518
],
"deps": [
"dash"
],
- "commit": "63c0f44fe7b5a333173235db7102ef8c2ae0b006",
- "sha256": "1l7v5ibbl52ylbnz92ipw10ds8ahj3s2q4yxansnj8xy19kpjchz"
+ "commit": "f3d1f5118fa8328a2a43fd3d750c2afdd02b65ac",
+ "sha256": "02dqr916vxzqvlaf6wffnd7s1q082hnxhjwwip8iyjfj9fzk9yk1"
},
"stable": {
"version": [
@@ -59226,11 +59582,11 @@
"repo": "JuliaEditorSupport/julia-emacs",
"unstable": {
"version": [
- 20210904,
- 908
+ 20211023,
+ 1434
],
- "commit": "06f6fdb94cdd88db7bb40b8f511a386605711408",
- "sha256": "0153zh3vl6qmaw40v0b2kf81x6wfyxwgmc9iwvz4rximra9xxmyg"
+ "commit": "47f43f7d839019cac3ba6559d93b29487ca118cb",
+ "sha256": "0gfm6xnijxxgc1fjqgbsvzf9m68pfcbdhrii6c7a29v5cw6khkaj"
},
"stable": {
"version": [
@@ -59249,14 +59605,14 @@
"repo": "tpapp/julia-repl",
"unstable": {
"version": [
- 20210408,
- 639
+ 20210913,
+ 1256
],
"deps": [
"s"
],
- "commit": "79e686e3ebf164bd39fc2ea5cf09d38d0e1d763a",
- "sha256": "1dn1n726lp5m744s4qib6rgcp2an01qblj7ynams3drgca6j6076"
+ "commit": "3f888ecd30f613ed50f67c614be0b42b7546c693",
+ "sha256": "04baf40gqd1mzk7pvyq663ndg5byyq848r802j10zvggvacjwcbx"
},
"stable": {
"version": [
@@ -59297,8 +59653,8 @@
"repo": "gcv/julia-snail",
"unstable": {
"version": [
- 20210818,
- 310
+ 20211103,
+ 449
],
"deps": [
"dash",
@@ -59307,8 +59663,8 @@
"spinner",
"vterm"
],
- "commit": "5b95b278772de8339ac198fe6eaadb0427d680fb",
- "sha256": "11spibld7dyggr38hzkrd05lmdf847d57cc9qyk01mb3bli21vxd"
+ "commit": "74aa827032e34f1d4202831008bcfa3c29b9f0c8",
+ "sha256": "03rmj7pj91bhg1kzqha9l5glnxgrjqmbsmblamrka4k22r09pcn6"
},
"stable": {
"version": [
@@ -59497,8 +59853,8 @@
"websocket",
"zmq"
],
- "commit": "1f0612eb936d36abab0f27b09cca691e81fc6e74",
- "sha256": "1mpch20iahijlgwg8bjpjg7bm9hd2wyskqbknafw8jkwyj7dvng2"
+ "commit": "20e68a683632d4772780199216932223fa404aa7",
+ "sha256": "1ivq67cbkvb675sllrs1184a32agvh3c2i950vf017jjf1hab05k"
},
"stable": {
"version": [
@@ -59540,6 +59896,41 @@
"sha256": "0i280w7nv6zdzpwsyc9njlz5n75awqgpmmh3wklzrfh7mh1vzp89"
}
},
+ {
+ "ename": "justl",
+ "commit": "5a74b3213ab362fd00a11409e046854ec832c827",
+ "sha256": "01s9szxr83mdjnzhjy0xr9fqk4vzv3spphq68jpzcj56njah6r9b",
+ "fetcher": "github",
+ "repo": "psibi/justl.el",
+ "unstable": {
+ "version": [
+ 20210924,
+ 1138
+ ],
+ "deps": [
+ "f",
+ "s",
+ "transient",
+ "xterm-color"
+ ],
+ "commit": "18604956b8f6ba58cba99470464c67f7b16ce329",
+ "sha256": "1d6y84gm5n9gkn7v9rhxhxsihabrdgx6mddam0pw75ka53q5s8wi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "f",
+ "s",
+ "transient",
+ "xterm-color"
+ ],
+ "commit": "db77f4ada0840dfb6080121f80249b11721ee779",
+ "sha256": "0250yayv136ypsy5gy814lv1schm1pza51lvsad7ayr3z1l812b3"
+ }
+ },
{
"ename": "jvm-mode",
"commit": "7cdb7d7d7b955405eb6357277b5d049df8aa85ce",
@@ -59869,28 +60260,28 @@
"repo": "ogdenwebb/emacs-kaolin-themes",
"unstable": {
"version": [
- 20210814,
- 1741
+ 20211023,
+ 1347
],
"deps": [
"autothemer",
"cl-lib"
],
- "commit": "716aae7e64637e1a7fdeed8ef5b278512b8076f9",
- "sha256": "0h7ipf2n9bbp6k1qda1g634gvjx2p3x2g4nkf8473iihk8960k1p"
+ "commit": "ea6394619219b6d54b843836e3a6b2e7d8aaecec",
+ "sha256": "1awgh70g7k7bjjga8kd6rfd8k3fqzkswgxyf4qgrsjci80is8jcn"
},
"stable": {
"version": [
1,
6,
- 5
+ 6
],
"deps": [
"autothemer",
"cl-lib"
],
- "commit": "1e6d02784a1c1e9f537b45aa487ee16885283b60",
- "sha256": "1prs055mx64ck6dhwsj5xx0pk90mhw0vbinxwr2chn68zkzyvf6g"
+ "commit": "f17f29d63cfbe2c9203bff1877db983c5663825e",
+ "sha256": "1r6bi26c6hqx64s54vjzm86q7bdn6x7m03g07x8v7h9v3xvlpdpf"
}
},
{
@@ -59965,11 +60356,11 @@
"repo": "delaanthonio/kconfig-mode",
"unstable": {
"version": [
- 20210321,
- 1106
+ 20211018,
+ 2142
],
- "commit": "7d03fa239e6879854c3b26c8e750489eceb58503",
- "sha256": "0j07h1g8xcs6lq6gyi594zb353x9igi9k9iz8nci8gy79l3n7l3m"
+ "commit": "241436a507782d18f09dab7d1f373ddea60fad3d",
+ "sha256": "0ayizg9ih98yn9127737i0g9q8f484v0fc9qwda0al3r69iqxpxq"
}
},
{
@@ -59995,20 +60386,20 @@
"repo": "ifosch/keepass-mode",
"unstable": {
"version": [
- 20210110,
- 630
+ 20211030,
+ 948
],
- "commit": "515343a7667b2bf4253309449f65a6eb94933df7",
- "sha256": "0hrq521swki0l3m81wk9p7pkc5j99li441fb75h7107v6z0p102c"
+ "commit": "be190a86fd82337fe5280c1833f92d1f9997bced",
+ "sha256": "1z252qqv55yzjz5w2cq1vpcwdnzwkm1hldc9a5i9qv1dkp73nkkd"
},
"stable": {
"version": [
0,
0,
- 4
+ 5
],
- "commit": "cd07542fddf080927eae927afdcf62be1b087503",
- "sha256": "1syz5yds6b59dws6f8b6az2ng7czwnq34izlc9y25c8ng94bynm5"
+ "commit": "f432bb60f9f3bd027025140d723906dcabeefaef",
+ "sha256": "0wrzbcd070l8yjqxg7mmglc3kfgy420y3wnykky198y83xsv3qy2"
}
},
{
@@ -60019,14 +60410,11 @@
"repo": "conao3/keg.el",
"unstable": {
"version": [
- 20210226,
- 2246
+ 20211104,
+ 617
],
- "deps": [
- "cl-lib"
- ],
- "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
- "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
+ "commit": "bf2457d128dca207b3fb00a2660eb662327f877b",
+ "sha256": "0yc24n8mvppxni3hbfwk1p5spxqswax90l2v0gwc9wf20djmkdfq"
}
},
{
@@ -60040,8 +60428,8 @@
20200601,
333
],
- "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
- "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
+ "commit": "bf2457d128dca207b3fb00a2660eb662327f877b",
+ "sha256": "0yc24n8mvppxni3hbfwk1p5spxqswax90l2v0gwc9wf20djmkdfq"
}
},
{
@@ -60169,8 +60557,8 @@
20200226,
2129
],
- "commit": "1ee67f3f8977d95785e021f7896685de1979137e",
- "sha256": "0cv0naq2g8z52vgf1p4mb55ww30bp2kpj1jp5cjnql1hxsvbx0mm"
+ "commit": "6d31fcf78a1ab1841f735dfb5cbd2bf6b2ed25db",
+ "sha256": "19cszpr5m6j5xj18wl4myn7ifw27rrwbmhd0wcsds28b4czw2mhm"
}
},
{
@@ -60308,14 +60696,14 @@
"repo": "tarsius/keymap-utils",
"unstable": {
"version": [
- 20210125,
- 823
+ 20211027,
+ 1933
],
"deps": [
"cl-lib"
],
- "commit": "0b282e19ac3d23b9a74f656b137b9eebeb2aaa39",
- "sha256": "0ni03xnakai9ncq07gwzqy4walgijd04bnxslk3b4xnnk60i8m2h"
+ "commit": "20e5ab2a8bfdf9b44c813c6abd96b478f822ddef",
+ "sha256": "1acflsq0yh3sj607g2yasdbwacyzdh27hmgplybxc3zg464gldj1"
},
"stable": {
"version": [
@@ -60446,8 +60834,8 @@
20210523,
403
],
- "commit": "075b05b6ed7fe1b9f4f22544bc26749243de6808",
- "sha256": "01qwcr65qzz0ilzj9318hnz9hs3gdd722xpajmp8sa1520w9vhzm"
+ "commit": "584395339f85a95ffe3ade3f4e30898bad495ecd",
+ "sha256": "0vqi7cq8952idymp9hm89v0pin5icj7ng2wxdsysqsy2crfyd5zm"
},
"stable": {
"version": [
@@ -60492,6 +60880,30 @@
"sha256": "0xq835xzywks4b4kaz5i0pp759i23kibs5gkvvxasw0dncqh7j5c"
}
},
+ {
+ "ename": "khalel",
+ "commit": "6860800b52e2c06ae339f5f65ace6a5e05ddcbbc",
+ "sha256": "1g5r1zz3x8w3azip72wrw0168n3fzkzgik3w094yapchrrv13cpq",
+ "fetcher": "gitlab",
+ "repo": "hperrey/khalel",
+ "unstable": {
+ "version": [
+ 20211003,
+ 1150
+ ],
+ "commit": "c6f2adfd7211c747d443bf85618833820078ca4b",
+ "sha256": "0f76a9zr76azhb8rkzs24afscnx0sdypmha1z03cidn4mcz00sdb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "c6f2adfd7211c747d443bf85618833820078ca4b",
+ "sha256": "0f76a9zr76azhb8rkzs24afscnx0sdypmha1z03cidn4mcz00sdb"
+ }
+ },
{
"ename": "khardel",
"commit": "d0dafe07d355f705b268b19460cf071ab878961f",
@@ -60678,8 +61090,8 @@
20210318,
2106
],
- "commit": "92ff508dc17831a57a4bb900d7bc218b577e066e",
- "sha256": "1gmkf00mka99griysazipph27xfx42s5jfrrcy3mxwmlzs6zgfd3"
+ "commit": "e8725996ac8cc8d533ba91f1e8325b74928d0b7d",
+ "sha256": "0px17zsy1dawgkm5zjbkg8j4zbsgiswkfcwrg1dxp0bf1b3my1j6"
},
"stable": {
"version": [
@@ -60699,26 +61111,26 @@
"repo": "stardiviner/kiwix.el",
"unstable": {
"version": [
- 20210811,
- 31
+ 20211013,
+ 1558
],
"deps": [
"request"
],
- "commit": "7d6039fa5d5d7561f42c4c2a93c698468ed34e70",
- "sha256": "0g99qkch22ws3d8qwp91v0mysjh295bag1ak3bdl8q7rl015p9ik"
+ "commit": "cb843349c10b1a492ceb59da20bfcef3ef02f4b5",
+ "sha256": "08dkxjrpdy3i6j0zgfa7bqdk8cykjfzybrfwrrf9848fxy96n4pb"
},
"stable": {
"version": [
1,
1,
- 3
+ 4
],
"deps": [
"request"
],
- "commit": "7d6039fa5d5d7561f42c4c2a93c698468ed34e70",
- "sha256": "0g99qkch22ws3d8qwp91v0mysjh295bag1ak3bdl8q7rl015p9ik"
+ "commit": "6191d43e184e29de868a82331495ced9c9cc9be0",
+ "sha256": "1a8rcrln36brdik5rki7dkrm1syl8my7sjsv960fw45pfr1pkb5s"
}
},
{
@@ -60865,11 +61277,11 @@
"repo": "Emacs-Kotlin-Mode-Maintainers/kotlin-mode",
"unstable": {
"version": [
- 20210831,
- 1802
+ 20210917,
+ 1911
],
- "commit": "876cc27dc105979a0b59782141785f8e172891e8",
- "sha256": "1vyls3ilypxskhng96z1m8byripmbsghgfalsg4qnmn8lakaq68d"
+ "commit": "3e0c34087ba4965a8bf08d3f27325f0a1e631bfb",
+ "sha256": "15gxznanmcgjgcqlcazschxcwlsmd4rzivw0jb6pvz3m7zabd16r"
}
},
{
@@ -60955,6 +61367,21 @@
"sha256": "1yml417gj8ds3fiy0vvrv9vxnjyis157hcmhyn491hb67bd6xl5j"
}
},
+ {
+ "ename": "kubedoc",
+ "commit": "5bbe8bf1c9ecb4fdeb4dc8681ee6774e92c4546d",
+ "sha256": "106jb6xrlq8hqz55nqzyrcjfr6ydg7j0s7irxk9jr0nywk9q4vdh",
+ "fetcher": "github",
+ "repo": "r0bobo/kubedoc.el",
+ "unstable": {
+ "version": [
+ 20211005,
+ 810
+ ],
+ "commit": "20692189359ce0517726a945c8ab798bb91a8624",
+ "sha256": "1f1lv4wbfx4w371gvnplzmm4rmgr4zlbk2fy4cmck5vp8g179q4h"
+ }
+ },
{
"ename": "kubel",
"commit": "6fe35f90b858d0b6710b4bae8a2b80f97f1b8228",
@@ -60963,8 +61390,8 @@
"repo": "abrochard/kubel",
"unstable": {
"version": [
- 20210623,
- 1316
+ 20211001,
+ 1327
],
"deps": [
"dash",
@@ -60972,8 +61399,8 @@
"transient",
"yaml-mode"
],
- "commit": "801d4cc78cb59b3c39e9ea53d7f16ec3c9a6bb6b",
- "sha256": "120pyq6njxvhjwjrsbrclxj9g4qsi9awm9pmvvy74z3qzxjkj7bl"
+ "commit": "8cf9a8db6af7e604e963d180274af17755562239",
+ "sha256": "1s6lbqrfkdl2kwshrjwjfxwxl4jmchb3y2y8cjpjjp4f65r4p7m6"
},
"stable": {
"version": [
@@ -60998,15 +61425,15 @@
"repo": "abrochard/kubel",
"unstable": {
"version": [
- 20201223,
- 1657
+ 20210922,
+ 2325
],
"deps": [
"evil",
"kubel"
],
- "commit": "801d4cc78cb59b3c39e9ea53d7f16ec3c9a6bb6b",
- "sha256": "120pyq6njxvhjwjrsbrclxj9g4qsi9awm9pmvvy74z3qzxjkj7bl"
+ "commit": "8cf9a8db6af7e604e963d180274af17755562239",
+ "sha256": "1s6lbqrfkdl2kwshrjwjfxwxl4jmchb3y2y8cjpjjp4f65r4p7m6"
},
"stable": {
"version": [
@@ -61029,8 +61456,8 @@
"repo": "kubernetes-el/kubernetes-el",
"unstable": {
"version": [
- 20210830,
- 2219
+ 20211031,
+ 133
],
"deps": [
"dash",
@@ -61039,8 +61466,8 @@
"transient",
"with-editor"
],
- "commit": "6cd0e63d302197bed03f1ac74afcd92b6115c9f5",
- "sha256": "02aqkfklm6zxclaw9gdip38qri10iwvnhy9xcby7f6x61m3x26j2"
+ "commit": "cfe2aff207d22af0be08835302a74bc52a30f69a",
+ "sha256": "1jfg73vam49rg4kw88mvh4arlf02w8vsgyxnqwr4f3112x3m1r76"
},
"stable": {
"version": [
@@ -61074,8 +61501,8 @@
"evil",
"kubernetes"
],
- "commit": "6cd0e63d302197bed03f1ac74afcd92b6115c9f5",
- "sha256": "02aqkfklm6zxclaw9gdip38qri10iwvnhy9xcby7f6x61m3x26j2"
+ "commit": "cfe2aff207d22af0be08835302a74bc52a30f69a",
+ "sha256": "1jfg73vam49rg4kw88mvh4arlf02w8vsgyxnqwr4f3112x3m1r76"
},
"stable": {
"version": [
@@ -61225,16 +61652,16 @@
"repo": "tecosaur/LaTeX-auto-activating-snippets",
"unstable": {
"version": [
- 20210826,
- 1017
+ 20211103,
+ 1633
],
"deps": [
"aas",
"auctex",
"yasnippet"
],
- "commit": "a992e92bf80f5d9e401f916a9e74acce05af4a8e",
- "sha256": "0di6p1wapm714vd8d85d1wwzlh68ikfjw3qpjninbmjrzw2bwqp4"
+ "commit": "397bde14a67e91cb95ca6b2d5a5d5025cae243c3",
+ "sha256": "1kjda08zpzwvmk17f4654zvxildg1dyfxm10n6py0mfc0ldp8rf3"
},
"stable": {
"version": [
@@ -61289,6 +61716,29 @@
"sha256": "1r221fwfigr6fk4p3xh00wgw9wxm2gpzvj17jf5pgd7cvyspchsy"
}
},
+ {
+ "ename": "lacquer",
+ "commit": "c06360c9aeee408d144f756943a65cf465e41139",
+ "sha256": "1bi59x2l6xxayr4dqy2bpkfx4gd5sc9ban9dc2hykphvz560qmqn",
+ "fetcher": "github",
+ "repo": "dingansichKum0/lacquer",
+ "unstable": {
+ "version": [
+ 20211005,
+ 1517
+ ],
+ "commit": "3ef4c22982119674861ed61e3302ac3e0f05be2b",
+ "sha256": "0m05qyy0w5k9ycb2ywv222cy99brw2d1gmcan6b4311r04fv9k70"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "6609581a58ae9c0124de785b056f4f5bbcec3b61",
+ "sha256": "12bav2dd0q6b47sxnqfv6ibrhzd6i74wwqz7zvm7lp9s4mpqscsa"
+ }
+ },
{
"ename": "laguna-theme",
"commit": "58566386032a017c26ab07c551e72fbe1c20117d",
@@ -61327,16 +61777,16 @@
"repo": "Deducteam/lambdapi",
"unstable": {
"version": [
- 20210520,
- 1737
+ 20211029,
+ 1658
],
"deps": [
"eglot",
"highlight",
"math-symbol-lists"
],
- "commit": "4cf69db45aeeb01feb6b38c88b6aa2d01ae4da13",
- "sha256": "1ihs24dqnbzj37y9zrwdwzwnr1xrxcs4qxm0z3d1bjalffai2x13"
+ "commit": "6b453ab1f1fd0c48bb18ce077009e038c649cf04",
+ "sha256": "13bprd1vg4adr61hbcbih3p2yghlx4ygw5zi0vgcfr2r4lbpnn6k"
}
},
{
@@ -61461,25 +61911,26 @@
"repo": "lassik/emacs-language-id",
"unstable": {
"version": [
- 20210822,
- 412
+ 20210916,
+ 831
],
"deps": [
"cl-lib"
],
- "commit": "9efcd0f699bd7f1a55db7a62c8f1b547c6aeddb6",
- "sha256": "1r2krv7a0gz5xpss17a15cdj004s0g4qrlqm4qascc1f5p9fgd9x"
+ "commit": "906fac7d91994d02120cfb5f547c1d06cea1ad69",
+ "sha256": "1rgf90z6rl5g348s49w39ng7avq2s9qwi7mmpfxi3hjaslazn1jl"
},
"stable": {
"version": [
0,
- 16
+ 16,
+ 1
],
"deps": [
"cl-lib"
],
- "commit": "9efcd0f699bd7f1a55db7a62c8f1b547c6aeddb6",
- "sha256": "1r2krv7a0gz5xpss17a15cdj004s0g4qrlqm4qascc1f5p9fgd9x"
+ "commit": "906fac7d91994d02120cfb5f547c1d06cea1ad69",
+ "sha256": "1rgf90z6rl5g348s49w39ng7avq2s9qwi7mmpfxi3hjaslazn1jl"
}
},
{
@@ -61520,8 +61971,8 @@
"repo": "mihaiolteanu/lastfm.el",
"unstable": {
"version": [
- 20201212,
- 836
+ 20211018,
+ 838
],
"deps": [
"anaphora",
@@ -61530,8 +61981,8 @@
"request",
"s"
],
- "commit": "276c30a16518e545c95b7d693bada3ec01ddd207",
- "sha256": "1n58f9g5xgicmm9j3bdik1cpqcfs0pjrxqwnb1sfrck9c00482fk"
+ "commit": "b4b19f0aadc5087febeeb3f59944a89c4cdcf325",
+ "sha256": "0yp6gzxs6hxfqhdwhp5vldjsxl1y6qvj4i3s5fdvcf0sjdjncvxw"
},
"stable": {
"version": [
@@ -61842,11 +62293,11 @@
"repo": "conao3/leaf.el",
"unstable": {
"version": [
- 20210611,
- 1550
+ 20211030,
+ 621
],
- "commit": "a4fd520f5c31f54e0797155866e0b35df277664e",
- "sha256": "0xy1zjr32xpj4kkl3rxshcz5x2qvkn1ciq4v61p6a7vfr3qmkiz2"
+ "commit": "61365188be30c34c0e8b6f2004488e60a83dfcd6",
+ "sha256": "1fps4pmwhciksk21b9w7y6y827panf8xr80rk14fjsf2j2bpv841"
},
"stable": {
"version": [
@@ -62057,11 +62508,11 @@
"repo": "pfitaxel/learn-ocaml.el",
"unstable": {
"version": [
- 20210831,
- 1906
+ 20211003,
+ 1412
],
- "commit": "db13769ffc821dbcf6daa37f9add46de21ed1a3f",
- "sha256": "1xxhbgyki8nkkjnfzqxllrcfmqlj6sqgvwxvqz7v4j6m40c745m6"
+ "commit": "ac6ef9cbd39f7d9ac0019e28da09aad5bc2cfae5",
+ "sha256": "1gsv9yir8l53qfz280ji7307vawrifxx80g7bb5kyq7s0k5zfsan"
}
},
{
@@ -62141,8 +62592,8 @@
"repo": "kaiwk/leetcode.el",
"unstable": {
"version": [
- 20210620,
- 706
+ 20211005,
+ 1331
],
"deps": [
"aio",
@@ -62151,14 +62602,14 @@
"log4e",
"spinner"
],
- "commit": "7ef1dffd44be9bba6450953d25ff787e122afc69",
- "sha256": "15gfyx53m02andalyicnvs7b3v59zq64r0jmmgkg6gy5za6c0hsd"
+ "commit": "e278b099173dced55e6e39f9924e90899542ebf1",
+ "sha256": "1cm6z3ad3c704y3n0f1h38fhqrd69mrf7f4x79l8v76f6fj8vdhh"
},
"stable": {
"version": [
0,
1,
- 22
+ 23
],
"deps": [
"aio",
@@ -62167,8 +62618,8 @@
"log4e",
"spinner"
],
- "commit": "aeba19919e6d8f1c0529330572240143a2af38e0",
- "sha256": "0yfghps19832w4sdjaglnbb9xn40fc5a6072lxbsw8gan9c2bjh7"
+ "commit": "e278b099173dced55e6e39f9924e90899542ebf1",
+ "sha256": "1cm6z3ad3c704y3n0f1h38fhqrd69mrf7f4x79l8v76f6fj8vdhh"
}
},
{
@@ -62263,11 +62714,11 @@
"repo": "mtenders/emacs-leo",
"unstable": {
"version": [
- 20201122,
- 2210
+ 20210922,
+ 1138
],
- "commit": "b9d8f6705dcec4fcefd4209c18a043c355988c3a",
- "sha256": "053w15s7lr5y4vay6057by15lymk4n18a8a6hac3a4jrjkzj2f8j"
+ "commit": "2ab30fe567412b4f4e69bc8014b8886d19b30f30",
+ "sha256": "1sjgp0yfa3ynrksrf33gc4qrhj7819lih2ax0sq83vd4gn2m6lcn"
}
},
{
@@ -62430,8 +62881,8 @@
20210603,
1241
],
- "commit": "f39ec6a9b93f09e1a49ee84405d1e03e04adc7cf",
- "sha256": "0ri06q30z699amw7a94a14ccf83zx547przviqw0wla3l2xaw26j"
+ "commit": "3d2483d6a46552eaa832f8e6df5dc1162e58fc79",
+ "sha256": "1vpif0g45xh16sqqsjh9hin61kzc2la79pmrxl3rmw2jvpg6pzym"
},
"stable": {
"version": [
@@ -62654,8 +63105,8 @@
"deps": [
"request"
],
- "commit": "bfd5ef11f26ba46c8e0894ea08ffec74cca72288",
- "sha256": "1x02lwplyd41qaxy27np2fza818p0h62np6kd9sqqxkng4ahy97z"
+ "commit": "9d945eecb31c6be02bf0388c5c6883dfd1782bb9",
+ "sha256": "1f1ykbjrvz11i4sj1ff9hyl3kl65ll1c88gxgb66gmbxggqy5mja"
},
"stable": {
"version": [
@@ -62693,20 +63144,20 @@
"repo": "ligolang/ligo",
"unstable": {
"version": [
- 20210303,
- 1751
+ 20211011,
+ 954
],
- "commit": "edd5c702a7b94440bd76f7ef16ca58f028d06ef6",
- "sha256": "1ahmrhm2ym4qv26cf6gvfnnkx3h311v4lwdna3bzv2mw3rzfrlq6"
+ "commit": "faad1b26fd53121bd65e938ad4a4e78281712bde",
+ "sha256": "0bm2hxk2fhr11q2v45issa268snz0mxjhyc3ik2w8kg12faz936g"
},
"stable": {
"version": [
0,
- 24,
+ 28,
0
],
- "commit": "c351737acfdd778b81a64065d8d20ebb10a006f0",
- "sha256": "1ahmrhm2ym4qv26cf6gvfnnkx3h311v4lwdna3bzv2mw3rzfrlq6"
+ "commit": "16fee65109043bc5d899c5f34dd10354bd087615",
+ "sha256": "0bm2hxk2fhr11q2v45issa268snz0mxjhyc3ik2w8kg12faz936g"
}
},
{
@@ -62717,15 +63168,16 @@
"repo": "emacs-vs/line-reminder",
"unstable": {
"version": [
- 20210715,
- 839
+ 20211025,
+ 1745
],
"deps": [
"fringe-helper",
+ "ht",
"indicators"
],
- "commit": "38ca45f01b31d5de07a4a5e43ec54c4644718dcf",
- "sha256": "12qcrsjb9j9w7nqr28ff1gnk4icl134pgjvm9ph5psf6a6qd9d78"
+ "commit": "593bbe1277651e1281807f84e46a4e9a75ced784",
+ "sha256": "1r8dkbca9abjs5g949hqkn54ggd2wmgl60h10jx8y9s6c07g14hq"
},
"stable": {
"version": [
@@ -62857,14 +63309,14 @@
"repo": "noctuid/link-hint.el",
"unstable": {
"version": [
- 20210727,
- 1302
+ 20211008,
+ 1652
],
"deps": [
"avy"
],
- "commit": "d3c5bacc9c697c4cf8b14616c4199210f9267068",
- "sha256": "1d25lf556c9idr0slzakcks93rcw032bp1hbbcqffrljqzapxz4x"
+ "commit": "83cd0489b16f013647d0507ef20905a0a91db433",
+ "sha256": "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"
}
},
{
@@ -62958,6 +63410,30 @@
"sha256": "06rnma2xj2vnbvy1bnls59cagk6qsf862bj1zp6xbmpr1a5l9m4z"
}
},
+ {
+ "ename": "liquidmetal",
+ "commit": "9aa2004e04ef2f1fbfdd722b271c7cdcbdc8ad10",
+ "sha256": "0f7xp490nd4ff43pi5g911hsbcvlxzj5wx26b6lflhhnljkh5fsv",
+ "fetcher": "github",
+ "repo": "jcs-elpa/liquidmetal",
+ "unstable": {
+ "version": [
+ 20211004,
+ 1429
+ ],
+ "commit": "e42baf790629cc3a7310194c4f00d9dafa34f933",
+ "sha256": "1p3bgfcp1pqilmc4jxs3y182mcddrqd7m0l9b2k2wbdcar1fphpf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "commit": "32ddd9b52875a6fa403104ed271e15d86d215463",
+ "sha256": "1czyiy26wxkxc2lbrrblz8hzpf8p71fyp4hh63vsdf2fyimyl1cw"
+ }
+ },
{
"ename": "liso-theme",
"commit": "27b849f3a41a5ae3d497cef02a95c92fd479b93b",
@@ -63061,8 +63537,8 @@
"repo": "abo-abo/lispy",
"unstable": {
"version": [
- 20210906,
- 1503
+ 20211020,
+ 907
],
"deps": [
"ace-window",
@@ -63071,8 +63547,8 @@
"iedit",
"zoutline"
],
- "commit": "e5d0f949f76df23245e3904463c433d0908e9b7f",
- "sha256": "05qagghksg1m7dd0dijw0xjzn1yqpfb6n7vr759injpa39lswcrh"
+ "commit": "bf315768020f98f6139d5f722bd365f1ddd1fb52",
+ "sha256": "1sd3czlvvpsfq44ppk8jrv53d7irnk1c8nxvjjlyjbxpxj6zk5zh"
},
"stable": {
"version": [
@@ -63119,11 +63595,11 @@
"repo": "dgtized/list-environment.el",
"unstable": {
"version": [
- 20210810,
- 1612
+ 20210930,
+ 1439
],
- "commit": "a07dc2d2da83ac13abf59eb3de941e5069e9a1e9",
- "sha256": "1wq3mxp3pl3gs2a6n9lh22wv2x4kaflghr03jbh4ahj42n0hnzv4"
+ "commit": "0a72a5a9c1abc090b25202a0387e3f766994b053",
+ "sha256": "1prnav7xg1qchfkj1645vsx2wcpawgim0fkyqlsrzf83j278xn7k"
}
},
{
@@ -63218,22 +63694,20 @@
"repo": "publicimageltd/lister",
"unstable": {
"version": [
- 20210812,
- 1729
+ 20211028,
+ 1659
],
- "commit": "a8cc3c5d1f0f4b710e15e76477eae40a99a79ad7",
- "sha256": "0n6xiyx9syxxq7867ir1nrm5bzjilrp7vcjch279754v238lgcpf"
+ "commit": "22df7ad4a7cccd5e5861a37127263317ef6bea2a",
+ "sha256": "07im7gnrn8n8hsaf7zyfj7h1r5ig0bw7p0g26sicgwgbhfnz22y9"
},
"stable": {
"version": [
0,
- 7
+ 9,
+ 1
],
- "deps": [
- "seq"
- ],
- "commit": "06eac24b6d229eb559eb7f8e6097614e647b4dab",
- "sha256": "1mdmpm9iv0zfv64sjnfvx8pqm7vi8v053f2rpj7glkgm8nmms5lb"
+ "commit": "4c442c18ed5e4865393e72ffff16de9919b54456",
+ "sha256": "07h55vsfmpf4r1dggjn4a0xxpxahbj1amyfywbf21wx59p17aja8"
}
},
{
@@ -63364,14 +63838,14 @@
"repo": "sulami/literate-calc-mode.el",
"unstable": {
"version": [
- 20210528,
- 815
+ 20211101,
+ 948
],
"deps": [
"s"
],
- "commit": "18d523d5b6a8cecc3e93c550d2ceab2d1035de02",
- "sha256": "1d8dlb2xsqk88lac7f9n0y8ridkn6gfl5pb6sr2n66v9mq75j6rq"
+ "commit": "ba7d22140a165b0fdd900a8d04916115ca6ab8ff",
+ "sha256": "1bdybw44pmhfpikdv1kg2sx88546xyncks5a4b2s0ak4p66r82k3"
}
},
{
@@ -63411,11 +63885,11 @@
"repo": "jingtaozf/literate-elisp",
"unstable": {
"version": [
- 20210612,
- 1056
+ 20211004,
+ 212
],
- "commit": "1a6465d4190491ddf927698554b13352a7babb3a",
- "sha256": "1nbzrxfrz209dgnlhkqq9bpf2h678laac2wsrrmf9flw65dpafv9"
+ "commit": "d1eb390e01407a0b17bbed51f2928afdc26cc488",
+ "sha256": "0ixwdw6d8hxrmi86wka4sy8i3sscgzcddihkbyf70niclrllspra"
},
"stable": {
"version": [
@@ -63508,11 +63982,11 @@
"repo": "donkirkby/live-py-plugin",
"unstable": {
"version": [
- 20210701,
- 1955
+ 20211102,
+ 152
],
- "commit": "21fcb1a86167e93bf847d60f4f1b4e99eb2f1641",
- "sha256": "0rl1cmlx1g07ncyksj1ydi5mvy58ax67jnzdfq6c3s5jlc93kxwd"
+ "commit": "bd933c7351751eecc0f988166e983a9e478531be",
+ "sha256": "1apdjil570i9kjl4hm952cp5rjh68vhi23a1mq1d0vna4sc6pzl1"
},
"stable": {
"version": [
@@ -63607,11 +64081,11 @@
"repo": "replrep/ll-debug",
"unstable": {
"version": [
- 20201211,
- 2010
+ 20211002,
+ 1031
],
- "commit": "f551a7e1d5ecd64608db744d0f0e24aa0b8645fe",
- "sha256": "1d8m7pbfny0bkbaq609k1m8y5cd2lm0w1dnl53lls9ahyz60hdk4"
+ "commit": "a2cfeab46e5100c348b35987fae34f9ea76d7c0b",
+ "sha256": "1pp092g79grn6dxdl9c61qrdgq2ni7m0prk6kjjfn348prs9gjsk"
}
},
{
@@ -63667,14 +64141,14 @@
"repo": "daviderestivo/load-bash-alias",
"unstable": {
"version": [
- 20201229,
- 1711
+ 20210929,
+ 1537
],
"deps": [
"seq"
],
- "commit": "7ff80e4507a1dd71865440cf009bfe0c33323fc2",
- "sha256": "14rbsvyami7h7f5yjg731ppjv7fxp3aq8a9gpdzg61cilxv93dpj"
+ "commit": "b320ef5bf30d11454ae77eb76818da08973a5ef6",
+ "sha256": "0h5jbzmi7ahd7l91mcl1gdharzjip7fn6qa2g2s9dq6myj9fhy6g"
}
},
{
@@ -63807,11 +64281,11 @@
"repo": "aki2o/log4e",
"unstable": {
"version": [
- 20200420,
- 745
+ 20211019,
+ 948
],
- "commit": "7df0c1ff4656f8f993b87064b1567618eadb5546",
- "sha256": "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"
+ "commit": "737d275eac28dbdfb0b26d28e99da148bfce9d16",
+ "sha256": "1yagzwai4l9cf8am6a3fixv7n6yv81vx2yc4lcwdavclk81ghfrz"
},
"stable": {
"version": [
@@ -63907,8 +64381,8 @@
"ht",
"s"
],
- "commit": "497eb1fa71340a8d7758dd7c8115de05ab452129",
- "sha256": "1c5psadb590wbcqab0bjdfdsfd3rninbahr42pbi8gvdg0ay9qws"
+ "commit": "904d90665fc67b5baba0357bf1ef2ac87e8cd43b",
+ "sha256": "1adqlm92skfndv4f6qpy3kas6mk23dy3b54f9i6b8pbw8g7p13rs"
},
"stable": {
"version": [
@@ -64142,15 +64616,15 @@
"repo": "okamsn/loopy",
"unstable": {
"version": [
- 20210906,
- 1614
+ 20211101,
+ 2351
],
"deps": [
"map",
"seq"
],
- "commit": "74840299407b23a75bd415903a2157e71e68bd7f",
- "sha256": "0fl8wxv84h9y7vp4rgfa9qarsdhh42qmx7d8mpk3fqmgz8a6fm7m"
+ "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
+ "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
},
"stable": {
"version": [
@@ -64174,15 +64648,15 @@
"repo": "okamsn/loopy",
"unstable": {
"version": [
- 20210906,
- 1539
+ 20211020,
+ 157
],
"deps": [
"dash",
"loopy"
],
- "commit": "74840299407b23a75bd415903a2157e71e68bd7f",
- "sha256": "0fl8wxv84h9y7vp4rgfa9qarsdhh42qmx7d8mpk3fqmgz8a6fm7m"
+ "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
+ "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
},
"stable": {
"version": [
@@ -64262,8 +64736,8 @@
"repo": "emacs-lsp/lsp-dart",
"unstable": {
"version": [
- 20210829,
- 27
+ 20211009,
+ 2036
],
"deps": [
"dap-mode",
@@ -64273,14 +64747,14 @@
"lsp-mode",
"lsp-treemacs"
],
- "commit": "64fb5d93038483abab59751200749ad81698a845",
- "sha256": "19b1y5fd0ik3s96qzma4ym3m2x1720x9z0hjpxx61s4y8wgngnyy"
+ "commit": "e2f4ee0d3a88956afdd8515a055678b06f947bf0",
+ "sha256": "0ma0q36q7i0bxbxx525h8s0y0p63pc1hnc5bidbdykrp3hlxw50c"
},
"stable": {
"version": [
1,
20,
- 0
+ 1
],
"deps": [
"dap-mode",
@@ -64290,8 +64764,8 @@
"lsp-mode",
"lsp-treemacs"
],
- "commit": "1a839dcdedac47c90b4f82f456fea0a7cacf2940",
- "sha256": "0m1bccpamxvasimdg6pq28lnbwy2v2xnzjradbl93x7c2drsvnik"
+ "commit": "e2f4ee0d3a88956afdd8515a055678b06f947bf0",
+ "sha256": "0ma0q36q7i0bxbxx525h8s0y0p63pc1hnc5bidbdykrp3hlxw50c"
}
},
{
@@ -64363,8 +64837,8 @@
"request",
"s"
],
- "commit": "bb7fe5d70a3d21813858d93f70fe807beba99688",
- "sha256": "143afkkfm7dvhlpl77j98hbm5fk2jsrrkxkx1dpn17mj74ijq0ix"
+ "commit": "0a8d9468aeb414bc698566534389031837ba354d",
+ "sha256": "17vgbqyij0q0yms5sxk9f66cxzczfpxf8wykmsgpc7xac1igf7pm"
},
"stable": {
"version": [
@@ -64461,8 +64935,8 @@
"repo": "emacs-lsp/lsp-java",
"unstable": {
"version": [
- 20210806,
- 1842
+ 20211017,
+ 1826
],
"deps": [
"dap-mode",
@@ -64474,8 +64948,8 @@
"request",
"treemacs"
],
- "commit": "2a7d27e899edf7ad221a546ed67711ef5487f3ec",
- "sha256": "0w5rq9g3gr5miqkhbj400r7gazsxs4lf9906y7a3p2avr400h930"
+ "commit": "2b789750b272c85e838b9fc4e3d4f1d2eff34b5b",
+ "sha256": "1sqv15mbv9f6pw995jrmw3wqr16pkrkm83vgabc0wi7j3dkz1cx7"
},
"stable": {
"version": [
@@ -64616,30 +65090,30 @@
"repo": "emacs-languagetool/lsp-ltex",
"unstable": {
"version": [
- 20210826,
- 1034
+ 20211024,
+ 809
],
"deps": [
"f",
"lsp-mode",
"s"
],
- "commit": "59ecc6db3bcf80568241be2d99bb7ef60c58e502",
- "sha256": "0avl1ifkc106gaznpwli0gqwfbfsxj8zij3sc4vy2d00ppr4173r"
+ "commit": "f600d5f1d65c6209fa73a7bb916f6de2b60e5fc5",
+ "sha256": "1ss0b2rk22i58sl430844vi119maz9rd0j1zv9wkcn81k6wmrdlq"
},
"stable": {
"version": [
0,
2,
- 0
+ 1
],
"deps": [
"f",
"lsp-mode",
"s"
],
- "commit": "5d25bfdc80da46b4839289164d1c4c3699c8908f",
- "sha256": "1xf1pxbgjql9badcb1wayzv7j117syh488y82m5q061nnpq4lz06"
+ "commit": "7ff60400f23efe4916778e7b21a238114e5cdba7",
+ "sha256": "0s7xi41di8gszn0fz04lpnv610xgydfr5hylp3z1dshba2kpkk1f"
}
},
{
@@ -64650,8 +65124,8 @@
"repo": "emacs-lsp/lsp-metals",
"unstable": {
"version": [
- 20210815,
- 929
+ 20210914,
+ 1821
],
"deps": [
"dap-mode",
@@ -64663,8 +65137,8 @@
"scala-mode",
"treemacs"
],
- "commit": "ca927e5a837c4e613727c804a14d9c8d36ecfcdc",
- "sha256": "0yz4z53iwrz7kz45fqsy3921badcszn6c8zwxsnzgw2qd191hwy1"
+ "commit": "695291761b2a3db734c3f53bb7fc4acfe0a5eb94",
+ "sha256": "0kg51yjrjrmsz78aj3ahbk2knrn8ccz4ccs894p8li6vz3gxm2fh"
},
"stable": {
"version": [
@@ -64694,8 +65168,8 @@
"repo": "emacs-lsp/lsp-mode",
"unstable": {
"version": [
- 20210905,
- 1124
+ 20211103,
+ 1331
],
"deps": [
"dash",
@@ -64705,8 +65179,8 @@
"markdown-mode",
"spinner"
],
- "commit": "d9c8ed3a932b568614d9bbf682271cf43bb8ec73",
- "sha256": "0bj87sfadry03lsnlmy4d75za5a2q5p8i981pnz8gvhi154fhz93"
+ "commit": "293a43819a96eb94b90bc14b6cb11ebfd090e8c8",
+ "sha256": "0rd3nh9wslp753cm5xypp9h8x2p7a5s7v6gkdqfs80fzdiy8ny3m"
},
"stable": {
"version": [
@@ -64756,15 +65230,15 @@
"repo": "emacs-lsp/lsp-origami",
"unstable": {
"version": [
- 20210126,
- 843
+ 20211016,
+ 1045
],
"deps": [
"lsp-mode",
"origami"
],
- "commit": "bedea3d25552d6969e917a15a0acc3d333ddc742",
- "sha256": "0sbqplrchfz7d662xk1xjrgxvijd3dzwpvphaksv6agv4bjikbad"
+ "commit": "5b88ab77dc2696c93fa5dd9debe183821c533b71",
+ "sha256": "0chf7b8qdgzm173crpbz3vl3kjhgcdsmkprz8bf6w3qb5lpvaysw"
},
"stable": {
"version": [
@@ -64853,16 +65327,16 @@
"repo": "emacs-lsp/lsp-pyright",
"unstable": {
"version": [
- 20210513,
- 1022
+ 20211103,
+ 619
],
"deps": [
"dash",
"ht",
"lsp-mode"
],
- "commit": "72fd57643d2e8eccb9a55058ec0c89bdc04dba7d",
- "sha256": "1p90d85bm51fjxy4q3fxjc4xj2vzabyi9db1bjl2j0q9pr2yphsz"
+ "commit": "d428dbcf1802fbe147271c8dc74b073bd9cd7403",
+ "sha256": "0y31dajhd6jfla4h137k78clvwsfj1pdmgd61ni83yl6ackpvm8c"
}
},
{
@@ -64974,14 +65448,14 @@
"repo": "merrickluo/lsp-tailwindcss",
"unstable": {
"version": [
- 20210826,
- 1046
+ 20211003,
+ 305
],
"deps": [
"lsp-mode"
],
- "commit": "5250c4305f2334796d65779c7b61442e17d7c69b",
- "sha256": "10xlb3gqlsx9k716mmrvpwlsdn086vr0jiqakcj2f5vixpxj1sxy"
+ "commit": "8b45d5ab6ad41f881ef52983d6906193736e6f41",
+ "sha256": "07ggss18zvmxv7r2x3m5x07c994sjwq0bfjjq50j7kfnd53bmb4h"
},
"stable": {
"version": [
@@ -65003,8 +65477,8 @@
"repo": "emacs-lsp/lsp-treemacs",
"unstable": {
"version": [
- 20210904,
- 2039
+ 20210923,
+ 2112
],
"deps": [
"dash",
@@ -65013,8 +65487,8 @@
"lsp-mode",
"treemacs"
],
- "commit": "d82df44d632f331a46eaf1f7a37eb6b1ada0c69b",
- "sha256": "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"
+ "commit": "7bf3d52bccb4a5fdce4fdde9ff61bc75161b97af",
+ "sha256": "0vbwam492y858cq1mrka9bn2i695c6rxvap8z92diklmaawdkg4p"
},
"stable": {
"version": [
@@ -65040,16 +65514,16 @@
"repo": "emacs-lsp/lsp-ui",
"unstable": {
"version": [
- 20210904,
- 2037
+ 20211101,
+ 131
],
"deps": [
"dash",
"lsp-mode",
"markdown-mode"
],
- "commit": "b625f3cb5e88559ab99bec58f7a14272edb296bc",
- "sha256": "00yirx6qzlb8fv8rd53zaw93nw72z3br40rb16scdqj1v20qsp47"
+ "commit": "dd4c181a22d19a28236c442cf6c9cd4bbd6d85f8",
+ "sha256": "1awvnv29ca3whfg48icwqhgdfijrags61cmq9dn6mn0w849b6k4m"
},
"stable": {
"version": [
@@ -65281,8 +65755,8 @@
"f",
"request"
],
- "commit": "4545f5c5609166198b5f6f2e12de7309d294b629",
- "sha256": "135qiprw4r03s1cjkq2hr8i4a6p2aapiz07cw697mhkr3rvvvbam"
+ "commit": "f0212bea838f0c284ea97e051c9c6c63f1b527ff",
+ "sha256": "03mnj12b7y597p77066c979d0pbyz4a092vgjyb830dhihms2x5y"
},
"stable": {
"version": [
@@ -65536,11 +66010,11 @@
"repo": "roadrunner1776/magik",
"unstable": {
"version": [
- 20210903,
- 1345
+ 20210907,
+ 804
],
- "commit": "d5da43b6a49b7b6a0b6b9ed19c13ac5a076b79b2",
- "sha256": "15d4vzr4cww25ic6im9372nl43pdsn8bm9hnpyqjfg3c3axnfp4l"
+ "commit": "6fe271f371ccb06b599a782839030bb8dee8535f",
+ "sha256": "178whq47zs055srly8wzdai5p0d0s1n3p349kb5wx2d9c2lg0pnm"
},
"stable": {
"version": [
@@ -65554,14 +66028,14 @@
},
{
"ename": "magit",
- "commit": "4158066a2c75cf0bff128bd2dc1073472c32b1f4",
- "sha256": "1hrh90qd47s6q6grr6rp2y7kfqq8bzhdfpyq2saihrric91s1rqz",
+ "commit": "cca2c57104e14cb0c47e27d7fe4b437b38009a5c",
+ "sha256": "0n327xp6zdyp5bbqr84qp0f779qqv6jrlr2kaf00whkgp59g5kf4",
"fetcher": "github",
"repo": "magit/magit",
"unstable": {
"version": [
- 20210906,
- 1023
+ 20211101,
+ 1824
],
"deps": [
"dash",
@@ -65570,14 +66044,14 @@
"transient",
"with-editor"
],
- "commit": "d173de73e96e207d4ba3821e1d720c8d81f6bafb",
- "sha256": "1yq077j2fvmgpji6arlliq00bcs08bhl877fsklhq6j0yif1vz9s"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
3,
- 2,
- 1
+ 3,
+ 0
],
"deps": [
"dash",
@@ -65586,8 +66060,8 @@
"transient",
"with-editor"
],
- "commit": "b70f660e36c024fa9319ea0e2977e45ef3c6f3ac",
- "sha256": "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m"
+ "commit": "f44f6c14500476d918e9c01de8449edb20af4113",
+ "sha256": "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"
}
},
{
@@ -65598,28 +66072,28 @@
"repo": "magit/magit-annex",
"unstable": {
"version": [
- 20210817,
- 2049
+ 20211004,
+ 2314
],
"deps": [
"cl-lib",
"magit"
],
- "commit": "4271a086635ef2e1ca54b81afeda896b65b3ac25",
- "sha256": "10wfd113js54zykmsm84z1h4hn10hnb5a7wl9x5770g9asg0dnqa"
+ "commit": "018e8eebd2b1e56e9e8c152c6fb249f4de52e2d8",
+ "sha256": "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk"
},
"stable": {
"version": [
1,
8,
- 0
+ 1
],
"deps": [
"cl-lib",
"magit"
],
- "commit": "17e5e60b59eac3cf5938c1b22c29458c0d694b0a",
- "sha256": "0ak4chfn95p2vj3y0wiyimj609a4jfzrfpsc1kn0is1jv3dlkl6c"
+ "commit": "018e8eebd2b1e56e9e8c152c6fb249f4de52e2d8",
+ "sha256": "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk"
}
},
{
@@ -65642,6 +66116,24 @@
"sha256": "0rbbprjax6af0np1m5prilh2ndbhhlzfrq8sb8mn5vi3is2w1mgs"
}
},
+ {
+ "ename": "magit-commit-mark",
+ "commit": "2d6e8cd768a8d119f1ac3407f9d5793b084e8f1d",
+ "sha256": "0dvw9plzhm3yql719xi2n4j1v9q31g67jnwx5n5pzjk90v2rzqxm",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-magit-commit-mark",
+ "unstable": {
+ "version": [
+ 20211101,
+ 948
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "3debd2bdf20b78e108d309be606db01bb2cb4810",
+ "sha256": "0pmggb980an5nxjq5jkxfvib9akqyd4k9j80ljpbayhiypda93a2"
+ }
+ },
{
"ename": "magit-delta",
"commit": "6e045d09ceec253bbd033b561ab077d897e9b6b2",
@@ -65849,26 +66341,26 @@
"repo": "magit/magit-imerge",
"unstable": {
"version": [
- 20210525,
- 2326
+ 20211004,
+ 2311
],
"deps": [
"magit"
],
- "commit": "cf3b4646aa0205e8d7f47e45165fe6403d6440f5",
- "sha256": "1j96vg9kc03vxxq4r5a7v4di88pvbb5i01n8js06lgs9qzl097k7"
+ "commit": "1ee213d7fa1536c86c128d09946b44ededbfac9c",
+ "sha256": "1virc4ps25nwv8jkyvlb4ylxpcz676bfw449izaly97f2f2a91hk"
},
"stable": {
"version": [
1,
- 1,
+ 2,
0
],
"deps": [
"magit"
],
- "commit": "cf3b4646aa0205e8d7f47e45165fe6403d6440f5",
- "sha256": "1j96vg9kc03vxxq4r5a7v4di88pvbb5i01n8js06lgs9qzl097k7"
+ "commit": "1ee213d7fa1536c86c128d09946b44ededbfac9c",
+ "sha256": "1virc4ps25nwv8jkyvlb4ylxpcz676bfw449izaly97f2f2a91hk"
}
},
{
@@ -65879,60 +66371,60 @@
"repo": "Ailrun/magit-lfs",
"unstable": {
"version": [
- 20190831,
- 118
+ 20210918,
+ 2000
],
"deps": [
"dash",
"magit"
],
- "commit": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
- "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
+ "commit": "ee005580c1441cce4251734dd239c84d9e88639e",
+ "sha256": "1mv5rw65gn2rsk654q1ccp7hdg6jfap123b652cf9chwxy6c6nrk"
},
"stable": {
"version": [
0,
4,
- 0
+ 1
],
"deps": [
"dash",
"magit"
],
- "commit": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
- "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
+ "commit": "ee005580c1441cce4251734dd239c84d9e88639e",
+ "sha256": "1mv5rw65gn2rsk654q1ccp7hdg6jfap123b652cf9chwxy6c6nrk"
}
},
{
"ename": "magit-libgit",
- "commit": "0580362be495894c61b99b7efb4cfa435cc0dd72",
- "sha256": "0fi3w2f79qn3hf5rw5jp8128xbk5r0xwwwb56zcjn2na02dynfb1",
+ "commit": "cca2c57104e14cb0c47e27d7fe4b437b38009a5c",
+ "sha256": "1hh7d1ii3aw9ghmidc6pifaa0ci230vm17sadl3xlq7snpghlrhi",
"fetcher": "github",
"repo": "magit/magit",
"unstable": {
"version": [
- 20210806,
- 1607
+ 20211004,
+ 1956
],
"deps": [
"libgit",
"magit"
],
- "commit": "d173de73e96e207d4ba3821e1d720c8d81f6bafb",
- "sha256": "1yq077j2fvmgpji6arlliq00bcs08bhl877fsklhq6j0yif1vz9s"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
3,
- 2,
- 1
+ 3,
+ 0
],
"deps": [
"libgit",
"magit"
],
- "commit": "b70f660e36c024fa9319ea0e2977e45ef3c6f3ac",
- "sha256": "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m"
+ "commit": "f44f6c14500476d918e9c01de8449edb20af4113",
+ "sha256": "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"
}
},
{
@@ -65994,14 +66486,14 @@
"repo": "dickmao/magit-patch-changelog",
"unstable": {
"version": [
- 20210616,
- 1302
+ 20210910,
+ 1333
],
"deps": [
"magit"
],
- "commit": "623d1a6a3bfa0f01bcaaffa13ad5ce5ae29cdb0a",
- "sha256": "1dds83a6fcpakmhny5n3s4ibcvjba4p07pg8bpy37k32c704lw27"
+ "commit": "875f8ace4c38d1f6f2126ab0f038687c42f1ab2b",
+ "sha256": "1mbh5qshaiv5x6rlklzx9l3icccb9kn3rvbdaq1xbqbgfdpfhfwd"
}
},
{
@@ -66074,32 +66566,32 @@
},
{
"ename": "magit-section",
- "commit": "92cab05cc5ba4153be97648d6fcd95417871e9c7",
- "sha256": "1v9g8y9r0lmp54hgaxgjqr3x86l7cz4wvrrjbpij7aai40ddqdp3",
+ "commit": "cca2c57104e14cb0c47e27d7fe4b437b38009a5c",
+ "sha256": "13dxx1rjpj465h1ns2nki7wfsmnfh9m1gzlm49jkka38iwnqr81j",
"fetcher": "github",
"repo": "magit/magit",
"unstable": {
"version": [
- 20210829,
- 1849
+ 20211019,
+ 2114
],
"deps": [
"dash"
],
- "commit": "d173de73e96e207d4ba3821e1d720c8d81f6bafb",
- "sha256": "1yq077j2fvmgpji6arlliq00bcs08bhl877fsklhq6j0yif1vz9s"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
3,
- 2,
- 1
+ 3,
+ 0
],
"deps": [
"dash"
],
- "commit": "b70f660e36c024fa9319ea0e2977e45ef3c6f3ac",
- "sha256": "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m"
+ "commit": "f44f6c14500476d918e9c01de8449edb20af4113",
+ "sha256": "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"
}
},
{
@@ -66339,16 +66831,16 @@
"repo": "ThibautVerron/magma-mode",
"unstable": {
"version": [
- 20200312,
- 1306
+ 20211018,
+ 917
],
"deps": [
"cl-lib",
"dash",
"f"
],
- "commit": "0d810239be625b3f8a82f4e27ffd311fc2e1841e",
- "sha256": "0ibr94vlpa6hnycgssbm5fip0zvrw8rx24mvmq36a4qgd6qi7g4j"
+ "commit": "dd784445bc8cddf4a3ebe0f60009bed1f722f597",
+ "sha256": "0p413pjfznqrv62175kkzpf3nvnq35081kq76rvwlzh00skvpjdl"
}
},
{
@@ -66705,8 +67197,8 @@
"deps": [
"manage-minor-mode"
],
- "commit": "ae46a80e27dc42913620ad78d7a84ece12643bd7",
- "sha256": "16ygsxk5raa6p767jp6g5hmgsghq0dpk102g526d770iim5s8nlb"
+ "commit": "22a00d919d56ae7b3c3bf3090cafacffaeb50d7e",
+ "sha256": "1pidsjdx1wdd02vmcl74ps622n9fyydbn8jpbrlbm6y6ffhy6rrz"
},
"stable": {
"version": [
@@ -66882,19 +67374,19 @@
"repo": "minad/marginalia",
"unstable": {
"version": [
- 20210905,
- 1700
+ 20211028,
+ 1244
],
- "commit": "cb1d3ba604dda17d8d44e7355ad76a1651830a30",
- "sha256": "1lvw0vvb7zmpxlvrvzis6j558n00rlg9jkcnnhzsqqjwfvglhqp8"
+ "commit": "09d8ab38a5a4aa55a83968dc3e454d11fee05255",
+ "sha256": "140hbxyb7z09vp0f0h5fad4jiyfz4s34nnhgrw3vpm1whspq7ng8"
},
"stable": {
"version": [
0,
- 8
+ 9
],
- "commit": "b65d66e9301f9a0e3012568ca6721ae4ec276ebc",
- "sha256": "1d6xbidxcxd5gxs5cjxbx1i1wdcmgdnn3hh7fxz0sgf1gaxyp5kv"
+ "commit": "37e24b798afca98da0d0364dde3fa63a42c5853e",
+ "sha256": "19l3fwh6phd17rssxk30v2380bs04x7w6cb3hjy4mx7vkc7w6ymv"
}
},
{
@@ -67002,11 +67494,11 @@
"repo": "jrblevin/markdown-mode",
"unstable": {
"version": [
- 20210904,
- 733
+ 20211022,
+ 55
],
- "commit": "4810cac10355310ec76cd0946d0af92d595b3b81",
- "sha256": "0yl98mk1qbgwk3qhnkq73njfkrb7hxydk66lax9r2900dnrifhlg"
+ "commit": "c3c2f0d473a3f8ca8c4ffb2ecc094d5c3541769f",
+ "sha256": "1pmkpddvs589v9b6sgpfq5mzsli4ifczwvw4396qimx1dh86sb1c"
},
"stable": {
"version": [
@@ -67217,8 +67709,8 @@
20200720,
1034
],
- "commit": "67d19ed3d74c335a6a0e4798c98841c940ec911f",
- "sha256": "04dyb3nn5rdgic1m74sv9wzxkfxvszk3sj2fnixp41dj3pvwwdwb"
+ "commit": "5a63cff899eeb58abc3d0cdc6a0e5a6bbf13eaf6",
+ "sha256": "0g47ch2wnd25vc2g0mypkxdgjjkqznknk14qxxmmyf5ygp5f4ysg"
},
"stable": {
"version": [
@@ -67345,15 +67837,15 @@
"repo": "matsievskiysv/math-preview",
"unstable": {
"version": [
- 20210729,
- 1842
+ 20210909,
+ 1220
],
"deps": [
"dash",
"s"
],
- "commit": "b6f54d7a53d2ed5c71fc9ab6d65da63103c799bc",
- "sha256": "0hzchn5m5r0iv0im43paxbpd00fyv4m1rv53asp1fg2h27zg7xfz"
+ "commit": "90821e2993c8976e6a06f3bc2bf39aae6fbad016",
+ "sha256": "04hb48ncxvh3ia416iyy0x0wpvkhmpqg369565zgmhg9mvl3njmz"
}
},
{
@@ -67365,10 +67857,10 @@
"unstable": {
"version": [
20200131,
- 2333
+ 2338
],
- "commit": "1cf7e2885f3352f55852ee9eba26c7cb5a7cd74b",
- "sha256": "0c2fs87vsxx00svzx09x90p8sc1zm4mj24ab0bvqf7ghpl5qgwa8"
+ "commit": "590d9f09f8ad9aab747b97f077396a2035dcf50f",
+ "sha256": "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"
},
"stable": {
"version": [
@@ -67517,26 +68009,20 @@
"repo": "dochang/mb-url",
"unstable": {
"version": [
- 20191006,
- 1930
+ 20211029,
+ 2220
],
- "deps": [
- "cl-lib"
- ],
- "commit": "7230902e1f844e0a1388f741e9ae6260cda3de69",
- "sha256": "09qsc4dl9ngl11i92bfslpl1b1i5ksnpkvfp2hhxn3hwfpgfh64s"
+ "commit": "670d31edc0938c49c77d80543c6b2a955edadf85",
+ "sha256": "0sdiwgkhqnxq3pva9cyvcjyc69qvpxc91785p1z3rgvb9z3bshjj"
},
"stable": {
"version": [
0,
- 5,
- 1
+ 8,
+ 0
],
- "deps": [
- "cl-lib"
- ],
- "commit": "7230902e1f844e0a1388f741e9ae6260cda3de69",
- "sha256": "09qsc4dl9ngl11i92bfslpl1b1i5ksnpkvfp2hhxn3hwfpgfh64s"
+ "commit": "670d31edc0938c49c77d80543c6b2a955edadf85",
+ "sha256": "0sdiwgkhqnxq3pva9cyvcjyc69qvpxc91785p1z3rgvb9z3bshjj"
}
},
{
@@ -67669,10 +68155,11 @@
"repo": "ahungry/md4rd",
"unstable": {
"version": [
- 20201203,
- 545
+ 20211015,
+ 2123
],
"deps": [
+ "cl-extra",
"cl-lib",
"dash",
"hierarchy",
@@ -67680,8 +68167,8 @@
"s",
"tree-mode"
],
- "commit": "8ed075874425c4aa1081608dd66f46e5dfa333c0",
- "sha256": "0p7qadaa856fskbn7j6w0wqbr2ay4sz0y7i7x8wqn4rpjqk0nzyg"
+ "commit": "fc5fbf6c966dcee1075ef359638eb23003417f30",
+ "sha256": "19ay7n5ds8622qs799icdcmkyhfcqfxd2myffzswsrhvkm9afr8r"
},
"stable": {
"version": [
@@ -67767,11 +68254,11 @@
"repo": "techquila/melancholy-theme",
"unstable": {
"version": [
- 20201129,
- 2137
+ 20211018,
+ 1911
],
- "commit": "8756bb394bcaceb813fc1d315271338224e88295",
- "sha256": "1pn50h2rzkvd7vqh2hzws3772nagj9hrynm6b4q35rzyiq4vb889"
+ "commit": "0401c849203f8f497c8a93c1700451de7ff0675a",
+ "sha256": "0l4xdnhw630klg2yhz7zrh8qscna8fa8cahayyykc7m257blvpiz"
}
},
{
@@ -67887,8 +68374,8 @@
"repo": "skangas/mentor",
"unstable": {
"version": [
- 20201121,
- 1649
+ 20211023,
+ 431
],
"deps": [
"async",
@@ -67896,8 +68383,8 @@
"seq",
"xml-rpc"
],
- "commit": "aa1eb8a8e7d8c5e5564b08f82130eed0943826bb",
- "sha256": "122y2c2dwyz9az0a46dx2dgk70arz6sz1545iv61bs3ibk08szf2"
+ "commit": "b68c47b3d898a441da2278e2e0636197397d755e",
+ "sha256": "0yrfnzj1havjzvlr6s6mamrr875fniafb2wwck76yggfyhdvmxxv"
},
"stable": {
"version": [
@@ -67917,22 +68404,22 @@
},
{
"ename": "meow",
- "commit": "b5515ad6f1b8e8296fba5bd91d7adf5e1fc229b4",
- "sha256": "1s9wqmxg1g8crhsvwn4fh3hkn7pyfj5x71fal9yl0fk6gx59n1p0",
+ "commit": "b8889177ceea64f983841674e4e1486613ad726a",
+ "sha256": "1svhjqx745r9h1di89cvjikhyvf4ipcgfi2k08pchs8ywi84ldq0",
"fetcher": "github",
- "repo": "DogLooksGood/meow",
+ "repo": "meow-edit/meow",
"unstable": {
"version": [
- 20210825,
- 1800
+ 20211104,
+ 807
],
"deps": [
"cl-lib",
"dash",
"s"
],
- "commit": "56f0365dca1dbb3e97a32cf3da65f817598731b2",
- "sha256": "10qp7s84p0j9byrwsfwbr1vyvad8v5y28v8dv7x7mm05pkcr9vv1"
+ "commit": "95a9df3e469355cb867724d1dd1139ec4e21540d",
+ "sha256": "0s231294mgf951y5swqr3hrh1q48ip5p8w4vvj3kqjsq15n0lw3s"
}
},
{
@@ -67946,8 +68433,8 @@
20210720,
950
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -67976,8 +68463,8 @@
"auto-complete",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68010,8 +68497,8 @@
"company",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68073,8 +68560,8 @@
"iedit",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68162,8 +68649,8 @@
"deps": [
"magit"
],
- "commit": "50dd3d92a1794f24b7e375b74e5199c63b54a2d8",
- "sha256": "0l2wpapm0gng4jwicwi6w2sz71v4f2j99faakyh07acyvry1wdbi"
+ "commit": "40bc2e554fc1d0b6f0c403192c0a3ceaa019a78d",
+ "sha256": "0cmkiggrl42sjx31dwnzac32bs3q2ksmamkq1pjjl8fwshp4g8sv"
}
},
{
@@ -68305,8 +68792,8 @@
20210422,
326
],
- "commit": "543813e0acceb55653d876302a5d5741879fb717",
- "sha256": "1w0pfz5dbhqglb5w3c2g4ww2c32nbsir8gqnsh69pa43h9q1msz1"
+ "commit": "68695ed0e012379556d57f9564ac5ad8cd68fbb8",
+ "sha256": "1qk9kshi4hyy0fni3gb383m0yvj4fmgidiab6vhnms5zgghj4kl7"
},
"stable": {
"version": [
@@ -68326,14 +68813,14 @@
"repo": "ianxm/emacs-tracker",
"unstable": {
"version": [
- 20210207,
- 1100
+ 20211026,
+ 1347
],
"deps": [
"seq"
],
- "commit": "e0ddd7a17da899fa85b1d49f1260042f8caa0612",
- "sha256": "0k9lk2z8rnc2pa4wb2afj9byfryqlnw5hg1vs3bx6f0hs8rwa8yh"
+ "commit": "115f6de4a01b9e10936b7e6d1fdadd3770bae391",
+ "sha256": "11jdk260j9axi4f852vzgzqfb0kpl3hry02wfbhba3qp5bff2j7m"
}
},
{
@@ -68397,8 +68884,8 @@
"repo": "danielsz/meyvn-el",
"unstable": {
"version": [
- 20210606,
- 1501
+ 20211025,
+ 106
],
"deps": [
"cider",
@@ -68408,8 +68895,8 @@
"projectile",
"s"
],
- "commit": "ddba1d60d6729bbeeefd0f76dac4e6c20e848f67",
- "sha256": "1c454baagnvbg79yia5vwk51n0fp031rz0xhgawk70lrfjbc8256"
+ "commit": "80ece19a6ce6fd3dac374911edb9734286978450",
+ "sha256": "0qqr88r1g3lwzl4m9qjiwba23ylp44g5hspawwfzchlbs9js6yj7"
},
"stable": {
"version": [
@@ -68428,20 +68915,20 @@
"repo": "purpleidea/mgmt",
"unstable": {
"version": [
- 20190324,
- 1908
+ 20210131,
+ 2152
],
- "commit": "6a7d904fae5014aabae8c91add220485108d485b",
- "sha256": "0r0msrnbz9177cv1mlacsyd35k945nk2qaqm1f8ymgxa99zy124i"
+ "commit": "5927a54208996cbb7b435fe89bb65ac8beb61bb6",
+ "sha256": "1dhz1yfy3gbmpf4nrys11166wzylv5vl1sg1sncwgq67r8zf729x"
},
"stable": {
"version": [
0,
0,
- 21
+ 22
],
- "commit": "6a7d904fae5014aabae8c91add220485108d485b",
- "sha256": "0r0msrnbz9177cv1mlacsyd35k945nk2qaqm1f8ymgxa99zy124i"
+ "commit": "9c75c55fa4b32c2f1fa31a062ad92ddc8dae61a8",
+ "sha256": "1jjfynbag61d36qcv1i0x040spnb8j3wvamqp9vx8sqaf1kb24ar"
}
},
{
@@ -68458,8 +68945,8 @@
"deps": [
"calfw"
],
- "commit": "1cd9cbc7f8cfe40833d1af726644ae45a3d07dc0",
- "sha256": "1cm7y1nfbl8625rpk5i9zcmp9p6rzqdzxy9wcjs8yrdfsc0biq3q"
+ "commit": "67f9596dcd43b7ece3ab6e7a6ce8dc18a4851fe8",
+ "sha256": "01is2x9yfijxz0w7h7nrygkk0dkxnz0a3p3w38kvariqis8vbhl0"
},
"stable": {
"version": [
@@ -68834,23 +69321,20 @@
"repo": "tarsius/minions",
"unstable": {
"version": [
- 20210615,
- 1510
+ 20211022,
+ 2311
],
- "commit": "1be68e8571336672d6cbec86246d1bf7844976be",
- "sha256": "0lg704kwc851spp69745np8hsk0h6rl2hvfpid0j412278ds1qi8"
+ "commit": "3cc45f82cb50a4c895fe5df2ed69e07481ea131b",
+ "sha256": "0pl0lyzwb2ngqbh6kkx4kr6im19kqmnkpybss353947vl2njlbd6"
},
"stable": {
"version": [
0,
3,
- 4
+ 6
],
- "deps": [
- "dash"
- ],
- "commit": "36d39bd25ae58d1359d17f99142520339bea5974",
- "sha256": "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"
+ "commit": "1be68e8571336672d6cbec86246d1bf7844976be",
+ "sha256": "0lg704kwc851spp69745np8hsk0h6rl2hvfpid0j412278ds1qi8"
}
},
{
@@ -69035,8 +69519,8 @@
20210601,
2158
],
- "commit": "cc19df172e2e20a76861ac75ead3616f2f7eb870",
- "sha256": "10ca4q7j83kvk2rv5dghqs56lilkdxsq0zfz0ycvdk41r26cr10z"
+ "commit": "a9f2abd32f2517392a396d61e558bea3c887b5b6",
+ "sha256": "0affcw4vnk2jk7pn56alg4i1vmhf3db9dz0x06k4wl2jcm5cslzd"
},
"stable": {
"version": [
@@ -69440,15 +69924,15 @@
"repo": "damon-kwok/modern-sh",
"unstable": {
"version": [
- 20210716,
- 148
+ 20211101,
+ 1001
],
"deps": [
"eval-in-repl",
"hydra"
],
- "commit": "8b11b67ac738cfd95babbcc7543467fd9190fc7e",
- "sha256": "1y0y2fwyi1qi5k3nypdv51rfyf06f2q2c6ki5yz6bl82lhd0vb1l"
+ "commit": "8ebebe77304aa8170f7af809e7564c79d3bd45da",
+ "sha256": "00ixkd1586xv7707a1gpshml221wmnv92d3dyk1fzzxvws39zvdg"
}
},
{
@@ -69498,20 +69982,20 @@
"repo": "protesilaos/modus-themes",
"unstable": {
"version": [
- 20210906,
- 1104
+ 20211104,
+ 736
],
- "commit": "a30b42395cdfd8759b71193e2f0804c8e54926ad",
- "sha256": "12d6mg6nx7lirj0cb4r90rcnnzrlmk3165lcmcmxrjj6v7g523yr"
+ "commit": "ef234d41fd2d45f32e7c40e6f334231916c9dad9",
+ "sha256": "068im2wq70rfac8l1a6542ishjay3apgx4hqga22x5bvb4kq6351"
},
"stable": {
"version": [
1,
- 5,
+ 6,
0
],
- "commit": "b6fb7cda01a665f9369f2c6a29f3bf26c8cc8019",
- "sha256": "1yz5yr3acc601xcms7vr2jbj4bq6dqz8n5ymyfyxldid0n5ykzy4"
+ "commit": "8dbfe43fe52a9420a23d29e8ca631c2b7f52d966",
+ "sha256": "12f0bki57cncfzyi8cv8fkvxhh8khlxd890x0glb5ny9w1hd6s11"
}
},
{
@@ -69797,20 +70281,20 @@
"repo": "jessieh/mood-line",
"unstable": {
"version": [
- 20210903,
- 1142
+ 20211003,
+ 2113
],
- "commit": "34a1304edeb5a71ab22132bef8b4251f41cd1cda",
- "sha256": "1xzyij1knr0z5mihakq17mnhh994jd035g48xvq7qgk4f0r09pih"
+ "commit": "ef1c752679a8f92faa7b4828adbbb300b6942f22",
+ "sha256": "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga"
},
"stable": {
"version": [
1,
2,
- 4
+ 5
],
- "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
- "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
+ "commit": "ef1c752679a8f92faa7b4828adbbb300b6942f22",
+ "sha256": "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga"
}
},
{
@@ -69845,11 +70329,11 @@
"repo": "tarsius/moody",
"unstable": {
"version": [
- 20210729,
- 1215
+ 20211031,
+ 1815
],
- "commit": "9b679400ca885b8ff51bcfd75b87f79d66c0ee26",
- "sha256": "14x3hd0z0nh0dyfi434vqywi7aawfxhlqj6sp7m17np56zq32yhi"
+ "commit": "5ce7cc070ff5a295b1cc4b15b94698447f9596ae",
+ "sha256": "0yrxdxd3iv6vmym8fwp1d1r3bliid5my3a9720pdbhd887i6m4bx"
},
"stable": {
"version": [
@@ -70133,8 +70617,8 @@
20210306,
1053
],
- "commit": "7e8beed3ddad4f8d1065cbab52f24c16d31f5898",
- "sha256": "16ahy9myimsjg0csff5b6gpj4vvy1pz6y5rpvhwwg4c6id5wz1fi"
+ "commit": "5e7fdb7551b1928d09eaf2114f19601458bc6c31",
+ "sha256": "1jab8w5mbh4x0kc8sfidd29609d2m9m06mv03fh4q6wip4rfkl24"
},
"stable": {
"version": [
@@ -70569,11 +71053,11 @@
"repo": "Alexander-Miller/mu4e-column-faces",
"unstable": {
"version": [
- 20210812,
- 1721
+ 20210927,
+ 1759
],
- "commit": "34b9b3cbe50eaf48a636f2e05a3496111429b265",
- "sha256": "02hqz71ds2alb95y65iii6b9rj0r7a9ymib7yv5321ys25j5bqzl"
+ "commit": "b76a5989cafe88a263688488854187a015beef41",
+ "sha256": "06jd6pj5ngq5j5r6s7d7298jjfy1xkk0ribxrfsg6vpmd111brbf"
},
"stable": {
"version": [
@@ -70607,14 +71091,14 @@
"repo": "wavexx/mu4e-jump-to-list.el",
"unstable": {
"version": [
- 20200913,
- 1558
+ 20211030,
+ 2307
],
"deps": [
"cl-lib"
],
- "commit": "a9a3a1d371451d12e0ec24e456c7d90ccacd9cdd",
- "sha256": "0yq7ky2yk2j6i2p5bzh06ipbj2ab70bi6hvq7hf4jqvr2i94mlwb"
+ "commit": "4d362a668be4ae624ee96bf7806b25505b4bdf5c",
+ "sha256": "0jqnmzaa2vf4gxy9yzrvhijm3s4zaip4qxgxjlb240fr9ray6rgf"
}
},
{
@@ -70693,11 +71177,11 @@
"repo": "wavexx/mu4e-query-fragments.el",
"unstable": {
"version": [
- 20200913,
- 1558
+ 20211030,
+ 2307
],
- "commit": "6a81d43fcbdc51c2fc47d88f4fd8f25d8f906b79",
- "sha256": "0sdjkxb7f31bsi1vj6vn2aw1lwq026sz782ys92zprncjp2mkizp"
+ "commit": "8d93ede3772353e2dbc307de03e06e37ea6a0b6c",
+ "sha256": "0pl9hiwl5snpw9cfga0v9ypw83mz4nw6754whd4f37fs9xc6df31"
}
},
{
@@ -70814,14 +71298,14 @@
"repo": "ReanGD/emacs-multi-compile",
"unstable": {
"version": [
- 20210620,
- 48
+ 20211027,
+ 1954
],
"deps": [
"dash"
],
- "commit": "65699ac6a2f787a07908466e1cbfe3333ace7532",
- "sha256": "05h4rh5g8kqz8sl31r8800rkrcv9ir6jh6qr38qwj1zrcd77zk02"
+ "commit": "3f936abeb3e910cd6221f99ced30004b41bd9ffa",
+ "sha256": "0hk0mxwza04vqxmr4c8z5l1mbwy3kmffkn7mw75k005fl9apj56x"
}
},
{
@@ -70868,11 +71352,11 @@
"url": "https://hg.osdn.net/view/multi-project/multi-project",
"unstable": {
"version": [
- 20210814,
- 1656
+ 20210908,
+ 1233
],
- "commit": "151b4fc935b6f4b286249ce52d6473440fb8d1c5",
- "sha256": "0jqfb7kdm5ajdxvy5fmrp240zjlrf8mzhv77hyvipg1yzkka99gb"
+ "commit": "e213d1f64e173b437a2981afc5d85f90aa40a03e",
+ "sha256": "1cpssylbfw3ir4dh14z5p4b7yfw4k2ky49i09jk2prq7swk0f6xm"
}
},
{
@@ -71055,14 +71539,14 @@
"repo": "zevlg/multitran.el",
"unstable": {
"version": [
- 20210701,
- 2153
+ 20211027,
+ 1833
],
"deps": [
"cl-lib"
],
- "commit": "c34536186088f29d4e85631825e7c6d557a8d0fa",
- "sha256": "0iqkgs3rrkhbj2mind4aa4qv7bf7vflnkdysd39b50jbwd7rv4fx"
+ "commit": "910f4c929e1d9c1844ddc467f72eef2e03aa3f97",
+ "sha256": "13lmhp2vm953s4phqdd119kp7s3p0kb3kqz4z6g3ga6m6py3gq3i"
},
"stable": {
"version": [
@@ -71818,20 +72302,20 @@
"repo": "rolandwalker/nav-flash",
"unstable": {
"version": [
- 20210711,
- 217
+ 20210906,
+ 1942
],
- "commit": "55786c9582410a5637b5635fea022aae564205cd",
- "sha256": "0pj92h241k17hvlx7x0nx2hnjg6vyz65sa4ghyqhwa7mdn0c12pi"
+ "commit": "2e31f32085757e1dfdd8ec78e9940fd1c88750de",
+ "sha256": "0wzk6nqky5zjpds9mmi1dcwn00d3044l7a0giawqycsa4zcybdlk"
},
"stable": {
"version": [
1,
1,
- 0
+ 2
],
- "commit": "9054a0f9b51da9e5207672efc029ba265ba28f34",
- "sha256": "119hy8rs83f17d6zizdaxn2ck3sylxbyz7adszbznjc8zrbaw0ic"
+ "commit": "2e31f32085757e1dfdd8ec78e9940fd1c88750de",
+ "sha256": "0wzk6nqky5zjpds9mmi1dcwn00d3044l7a0giawqycsa4zcybdlk"
}
},
{
@@ -72109,14 +72593,14 @@
"repo": "SpringHan/netease-cloud-music.el",
"unstable": {
"version": [
- 20210817,
- 1148
+ 20211030,
+ 1339
],
"deps": [
"request"
],
- "commit": "e228a3e8646d4d66f61eb91e306b8bc1cfa9861a",
- "sha256": "1wckcxjwj4bx31akxjpbzj3fdbhym0lr29sqq05c8xjbxza8dmkh"
+ "commit": "d821e0359883ae5ccc12a1cb0f684909cbde98a3",
+ "sha256": "0p595lfwzzmjzxx4mdzp47bab07ypxkk3jk3yzvd1dcf2lgd0h9k"
},
"stable": {
"version": [
@@ -72271,6 +72755,21 @@
"sha256": "1zzsfyqwj1k4zh30gl491ipavr9pp9djwjq3zz2q3xh7jys68w8r"
}
},
+ {
+ "ename": "newspeak-mode",
+ "commit": "79f89e772cae716a3e635e7b4588727e0647616c",
+ "sha256": "1xi3nv5zni52r9z8sbam8pc3l244pfm76d7hhfrvaxrvlyyq9dc5",
+ "fetcher": "github",
+ "repo": "danielsz/newspeak-mode",
+ "unstable": {
+ "version": [
+ 20211011,
+ 1425
+ ],
+ "commit": "7ae89edd0f72c2dc005933fada5ddaf48ec97dd6",
+ "sha256": "0fnl27phpmdgg3ja2jpm846x1pq47fqi3yjngxr32fag86hjamvw"
+ }
+ },
{
"ename": "nexus",
"commit": "80d3665e9a31aa3098df456dbeb07043054e42f5",
@@ -72457,8 +72956,8 @@
"repo": "nim-lang/nim-mode",
"unstable": {
"version": [
- 20191219,
- 847
+ 20211102,
+ 917
],
"deps": [
"commenter",
@@ -72466,8 +72965,8 @@
"flycheck-nimsuggest",
"let-alist"
],
- "commit": "d832d6b1fb5e69fedcdddf442d62251dd0f1f489",
- "sha256": "0m0khxcnq6whhxvblqyxrz21xfnpfjg4c8dn4x4i080dhmnmbzka"
+ "commit": "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8",
+ "sha256": "0jjrjsks3q8qpipxcqdkm8pi3pjnkcxcydspbf0rkvy3x6i5mwkv"
},
"stable": {
"version": [
@@ -72493,11 +72992,11 @@
"repo": "m-cat/nimbus-theme",
"unstable": {
"version": [
- 20210830,
- 1619
+ 20211014,
+ 1848
],
- "commit": "09085ce2b1b7a7c1c9986e6e86b7cf94610fbfb0",
- "sha256": "0aw2pqqfnwcbyh3b8q0lbwl27ilc1w281v78ha9316bvrydhkrdm"
+ "commit": "b9e383b4fcc7a3232f9943aed29586a760602a1d",
+ "sha256": "1kmcpndqh4072nkkji2vxd2br0wyp4ih3b7r4rx90mrimpdvcbrm"
}
},
{
@@ -72511,8 +73010,8 @@
20181024,
1439
],
- "commit": "e90dfd3c7528b9c620eab29121a3591af7bf035e",
- "sha256": "052shini6g1a5zjqqrwxvjk92c597qxfkar21pdzs4na0sij7szw"
+ "commit": "0cd88287a4cd77d11c92c7a9b44bb15fb787a1ee",
+ "sha256": "0c93b83zc1x22bq04fnka497qi0v4bs57nvsz9gbanqxng4b4gf7"
},
"stable": {
"version": [
@@ -72610,14 +73109,14 @@
"repo": "NixOS/nix-mode",
"unstable": {
"version": [
- 20210830,
- 1610
+ 20211019,
+ 1523
],
"deps": [
"magit-section"
],
- "commit": "8e20de5ba7061d810b08df5557b1fdb60c94b639",
- "sha256": "18kh6sb8rn391krg5a2xsk03am6ni739pw2ash81asnh112zsxzi"
+ "commit": "1ac42cd103ba11c37e8566e240a2272966e6f813",
+ "sha256": "11s98jjqkk7pfmqb4a99ilvp6w3m8vqr1df65lpwjirlyf2lvw2y"
},
"stable": {
"version": [
@@ -72792,8 +73291,8 @@
"repo": "dickmao/nndiscourse",
"unstable": {
"version": [
- 20210820,
- 1503
+ 20210926,
+ 1845
],
"deps": [
"anaphora",
@@ -72801,8 +73300,8 @@
"json-rpc",
"rbenv"
],
- "commit": "1b064aa49da9ab24fb36d208ec35a40c29d9e5b3",
- "sha256": "0sp807drgl8hmxwhz12r0zr371x8x5f5amp2aap4b4irf665dd22"
+ "commit": "168b5ff1d8d8c39ac2db31e56fbab0927d557d7f",
+ "sha256": "1vka4i3hsgvwiwqh06xsdrlf50q7mjzyvc4gdk28705gaxnzqmiy"
}
},
{
@@ -72813,16 +73312,16 @@
"repo": "dickmao/nnhackernews",
"unstable": {
"version": [
- 20210729,
- 953
+ 20211031,
+ 1221
],
"deps": [
"anaphora",
"dash",
"request"
],
- "commit": "3a2fc7da6c6cfaba15fabcf1f3c9cf57b016c362",
- "sha256": "1z91i6kl0bpsk87rl0ysfm8wifb3a196r82bxb6wlk6lkxlqr8jq"
+ "commit": "34d82e2c2e4c190b85e751dd3f295daa264baa55",
+ "sha256": "1ivmybr94rwrdgxp5d761yy8hnhcdwmiqkhxnyk1bbbyd0a1kxj4"
}
},
{
@@ -72848,8 +73347,8 @@
"repo": "dickmao/nnreddit",
"unstable": {
"version": [
- 20210708,
- 43
+ 20210912,
+ 236
],
"deps": [
"anaphora",
@@ -72859,8 +73358,8 @@
"s",
"virtualenvwrapper"
],
- "commit": "60bf11fdba8ff56b6b4b21f5f0c04953834d8a14",
- "sha256": "1b6i4kwjb81s7x56g7xmkynryw8xzrpbbkfy03597ka0v0n8i717"
+ "commit": "cb22a8480e9688f16f3764953cebebe64df31ccf",
+ "sha256": "0qpy3xymzryncbiz4cay4bzmmarbs575dgh3db2iibaffwb4qb0x"
}
},
{
@@ -72871,16 +73370,16 @@
"repo": "dickmao/nntwitter",
"unstable": {
"version": [
- 20210104,
- 1423
+ 20210911,
+ 1751
],
"deps": [
"anaphora",
"dash",
"request"
],
- "commit": "174eb3bdb1339872b62fe2bf0c27d9a3eb142d27",
- "sha256": "089zsy7f69h6kj6rckn5big2bfdn6hgdwamacsgsb8fpsvmy3ai9"
+ "commit": "a802ef9b589dda41bcb5d6cfce2faf8948c20c8c",
+ "sha256": "0fcskdyapz59cvik117vzj7hyv8kvvp6kh0aing2bgndwvai4apg"
}
},
{
@@ -72906,26 +73405,26 @@
"repo": "emacscollective/no-littering",
"unstable": {
"version": [
- 20210825,
- 356
+ 20211103,
+ 1646
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3a30eb7aa7db56072652c43b1b27595ff8c52a32",
+ "sha256": "0xgz2hsiy1z0vv69xkls2mbqw6361sqb8vp9ljbyrx42616ziq28"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 3
],
"deps": [
"cl-lib"
],
"commit": "dcc96cbf5f018a91d406926d3b69715847ef665a",
"sha256": "1c6nq2sykbsjy30zakfpny503644bbwgb4pxhfsd4wywj5yyzw66"
- },
- "stable": {
- "version": [
- 1,
- 2,
- 2
- ],
- "deps": [
- "cl-lib"
- ],
- "commit": "57357e15643158b4e0d9b3b4f70a82f5fc73178a",
- "sha256": "1kbbbx1agzcxc5n1b6cavdx3wjxz6mgi9rafja8mk8cyaaiz0rkd"
}
},
{
@@ -73226,19 +73725,20 @@
"url": "https://git.notmuchmail.org/git/notmuch",
"unstable": {
"version": [
- 20210830,
- 2334
+ 20211030,
+ 1819
],
- "commit": "49aa44bb012e8c2412b5447119b78b61842740b8",
- "sha256": "008f86pb2zn3xi9d862c2bz0yzavyrypf6bzc3q275il876x4c9z"
+ "commit": "78416a3e97fd19df5c89cdaf564c76be0edea740",
+ "sha256": "1m8x5q9q1q5lzfjjxvyqvm36wh7s0csr38hb3qidy75jg707p0py"
},
"stable": {
"version": [
0,
- 33
+ 34,
+ 1
],
- "commit": "676fcd70ff5aa5d88943a5982a4187cc5699aa4b",
- "sha256": "0wpczv0s0sbdd0p4qhhkw50f5pz5jpx41gaf4c7afc88lwgqr8lv"
+ "commit": "6858c365956ba26b42721093707e5a57ca8a6b93",
+ "sha256": "1bzcnly2xhyfw35k277i8qmw2gdy35jvkriwcyv9y3g7aicbqcc7"
}
},
{
@@ -73262,13 +73762,13 @@
"version": [
0,
2,
- 0
+ 1
],
"deps": [
"notmuch"
],
- "commit": "55ef94d7d3a6eb224950975b4ceb885851e2d93a",
- "sha256": "1iwr1fya1n5vqj1g91sbxjr4ayaklc50fsap21i5af79jcrz80q6"
+ "commit": "c447ddb94b3c2a473ec1762fc083794acd6057f0",
+ "sha256": "0x6vvi3j27xi2gkgd9mf7mfprmymdhc4zvna9gn71padpaqf9v50"
}
},
{
@@ -73351,13 +73851,13 @@
"version": [
0,
2,
- 0
+ 1
],
"deps": [
"notmuch"
],
- "commit": "e34c470521e83c3100f0d6eb9e7402ae35e19321",
- "sha256": "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"
+ "commit": "fd0e2199da746906eca080d4ca5bca17068cdce5",
+ "sha256": "1fqnx6hhg0cqj82yjpl7llg6vvppc3y8q9k6g67mqr7z3712bw0x"
}
},
{
@@ -73469,15 +73969,15 @@
"repo": "shaneikennedy/npm.el",
"unstable": {
"version": [
- 20210601,
- 1122
+ 20210930,
+ 703
],
"deps": [
"jest",
"transient"
],
- "commit": "d14d654c025d8f75f678503c98cd8682e69341cd",
- "sha256": "0a54s7l01z5s5vasysxfysnzc2smn6r5pq01a6a3vqyaq3hz4khi"
+ "commit": "2bd544162cdfce69d70806446569d12ec27ad46c",
+ "sha256": "024p9wn365qdl7gmzljk6hp9snixqffg3vqqivndxbgykcjg4sar"
},
"stable": {
"version": [
@@ -73580,8 +74080,8 @@
"org",
"org-roam"
],
- "commit": "a5508d9958c2148c04ec32d7b3a9f72423e4b0aa",
- "sha256": "1d1snvxbdv0mh48jmi6dx0yr4hmblcq1aajxb1z56714702ycdgj"
+ "commit": "9a76f16d3fdd49a1733e5f2777036f1f83068a40",
+ "sha256": "1lf56iq7iy545q8pcq4scvk8ialkw8nxc7gn97jyihpkxfhq7fi3"
},
"stable": {
"version": [
@@ -75102,11 +75602,11 @@
"repo": "ocaml-ppx/ocamlformat",
"unstable": {
"version": [
- 20210617,
- 1726
+ 20210923,
+ 1348
],
- "commit": "b78f73f9c3a689be73dd6061f3898c8b998048cb",
- "sha256": "0ma9ysizvnwlzb4d1dzfd8n5948gq6zy897526dwwfdj105fsmdi"
+ "commit": "54f41596355394cd0ce08435c21c3cc3d1f7eda3",
+ "sha256": "15f3ix73jjw41jcvnz70lgyrm0bh3287i1rcnl5x95wk0czkmhnj"
},
"stable": {
"version": [
@@ -75216,11 +75716,11 @@
"repo": "OCamlPro/ocp-indent",
"unstable": {
"version": [
- 20190726,
- 1452
+ 20211019,
+ 907
],
- "commit": "9e26c0a2699b7076cebc04ece59fb354eb84c11c",
- "sha256": "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"
+ "commit": "7c4d434132cebc15a8213c8be9e7323692eb0a2b",
+ "sha256": "036qvsjvs1div39w4rkkivg3yicmxcjdjsmdpp64asdzk7531bqq"
},
"stable": {
"version": [
@@ -75299,26 +75799,26 @@
"repo": "oer/oer-reveal",
"unstable": {
"version": [
- 20210827,
- 934
+ 20211029,
+ 611
],
"deps": [
"org-re-reveal"
],
- "commit": "7d29876e3385ad0477e95d9863b868e9d0aafcc7",
- "sha256": "049k35xlv0ilpnjf1la452npv77f0sbx69pmzgkrcg85pql3az6k"
+ "commit": "44eb766df39b722a26cabebec44bb359bcca1e49",
+ "sha256": "12mdp7pxb4nga1pp17d3kawb55kjdnjc1fg8lavyq4ydznyzn225"
},
"stable": {
"version": [
- 3,
- 23,
+ 4,
+ 0,
0
],
"deps": [
"org-re-reveal"
],
- "commit": "7d29876e3385ad0477e95d9863b868e9d0aafcc7",
- "sha256": "049k35xlv0ilpnjf1la452npv77f0sbx69pmzgkrcg85pql3az6k"
+ "commit": "c26ddb39288b60ba96f970fa20ef810aa4d0f418",
+ "sha256": "12mdp7pxb4nga1pp17d3kawb55kjdnjc1fg8lavyq4ydznyzn225"
}
},
{
@@ -75455,20 +75955,20 @@
"repo": "rnkn/olivetti",
"unstable": {
"version": [
- 20210902,
- 1202
+ 20211030,
+ 838
],
- "commit": "95479d5178fc5017060c963a45de0d2095c00e0f",
- "sha256": "0bliylh02lcga84jysf1jr80bgrn8m7cy4n047fr06cjqdqr4sp4"
+ "commit": "a31ac05a161a91fe5c157930b62a6c07037982ee",
+ "sha256": "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"
},
"stable": {
"version": [
2,
0,
- 3
+ 4
],
- "commit": "bfb221845c2e26f923ab80fdcd8f80b70b6adee1",
- "sha256": "0qhv4ah9bn1mjvivgxp7z1gf91d0cdr2ma5cy5xaja97ispa4l3z"
+ "commit": "a31ac05a161a91fe5c157930b62a6c07037982ee",
+ "sha256": "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"
}
},
{
@@ -75724,16 +76224,16 @@
"repo": "willghatch/emacs-on-parens",
"unstable": {
"version": [
- 20180202,
- 2241
+ 20210928,
+ 1913
],
"deps": [
"dash",
"evil",
"smartparens"
],
- "commit": "7a41bc02bcffd265f8a69ed4b4e0df3c3009aaa4",
- "sha256": "0pkc05plbjqfxrw54amlm6pzg9gcsz0nvqzprplr6rhh7ss419zn"
+ "commit": "b8ee8cea45c9b34820fcb951f522f13e3736d216",
+ "sha256": "1i7xhv2a22n6lq0n1pd494g1a5s7sv52i2gblg6s9h87dnb4r9l6"
}
},
{
@@ -76046,11 +76546,11 @@
"repo": "oantolin/orderless",
"unstable": {
"version": [
- 20210812,
- 2035
+ 20210912,
+ 1932
],
- "commit": "1a7011ac9c476dbb083c5ead88462a5f520ef8aa",
- "sha256": "0gmlxfn14gdb241ari4ix3wf9wxg2vpq2kg55h46fchs22wwqyal"
+ "commit": "62f71c34baca0b7d0adeab4a1c07d85ffcee80d9",
+ "sha256": "1spab90q4illpsajw0hcfz8s76c1gp8qpmc6zmv14slg1i9m5yri"
},
"stable": {
"version": [
@@ -76151,15 +76651,15 @@
"repo": "spegoraro/org-alert",
"unstable": {
"version": [
- 20210828,
- 1822
+ 20210922,
+ 125
],
"deps": [
"alert",
"org"
],
- "commit": "67b2e241d9eafcabcbd7de48cca031044ebc8221",
- "sha256": "1bglyry80sbsj0x4w20ncvdsnn8lw7j2ry0rnfsb866fhq03zkrn"
+ "commit": "c039d0121d21e4558c0f5433135c839679b556d7",
+ "sha256": "0xalf5bbawnxm61askvldg2g93gvf6i1bpxqk55bglnl2cdq6g2i"
},
"stable": {
"version": [
@@ -76275,6 +76775,29 @@
"sha256": "0gqqcgadlzzbqd4sqbwbwx41app6ryz2l3lrng8bz9hq9cx547jj"
}
},
+ {
+ "ename": "org-auto-expand",
+ "commit": "6a5b8a2ca3bd49346ac6e62cdcad0ed7e4c8fb51",
+ "sha256": "1ybjj54k548g2xqdlq65x090xf3l0nkjlb148vkcgkq6xywwx28p",
+ "fetcher": "github",
+ "repo": "alphapapa/org-auto-expand",
+ "unstable": {
+ "version": [
+ 20210923,
+ 243
+ ],
+ "commit": "edc27b155befab5626dcf6ceec7938126f7e31d4",
+ "sha256": "1fiqbkjzm0wv9xr0hcil6v742zkwv5qdpyz5wg5l10i0jizs1w86"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "dfb909d9fd0a658df8a05613a5b95b645b855344",
+ "sha256": "1slb8sy6zjdb3rs67vw0k1hd12fwlby1kbjyhn4n7v3kblxff2y3"
+ }
+ },
{
"ename": "org-auto-tangle",
"commit": "8cdae87606068b7b47530e0744e91aead86d288e",
@@ -76283,14 +76806,14 @@
"repo": "yilkalargaw/org-auto-tangle",
"unstable": {
"version": [
- 20210214,
- 917
+ 20211010,
+ 958
],
"deps": [
"async"
],
- "commit": "ea2ca74a68eb44d935b7240ffc8f19c8a4db334a",
- "sha256": "0wskvkwrw0vgknq895by10bcwglaikgkrs1z54f6wyfyksa801ja"
+ "commit": "50292af50d275846baa28e52d94eb8ef69c8d00b",
+ "sha256": "0n0divfnk4635aanjm0b3swdjkcj4qxr0x95q05pdlb67s6lfp5d"
},
"stable": {
"version": [
@@ -76587,14 +77110,14 @@
"repo": "Chobbes/org-chef",
"unstable": {
"version": [
- 20210829,
- 2145
+ 20210930,
+ 1418
],
"deps": [
"org"
],
- "commit": "a9acf45aaa174aacca248272fb30a5698b5163ae",
- "sha256": "0wfq0gpv89sqdzi3acw9b4697lnnpjqvf11mjdlq69y20vfm1qsv"
+ "commit": "87e9a6c4844ff32f47c8d1108ec0f087a3148a8e",
+ "sha256": "0xdfaf3shl3iij7nnshb5ryccqq70rpk0zm0d3fdwdbfa8rf7fkp"
}
},
{
@@ -76662,6 +77185,21 @@
"sha256": "1fpjga40v2wlkvq4ap75hd844m47gm55dkraznqz078k5f8fx8kk"
}
},
+ {
+ "ename": "org-clock-reminder",
+ "commit": "b47bdad26ef776f12fbcb3f08d2a9cae636e0ac9",
+ "sha256": "10a0lh1hdsmni2vw9wjzj2mpb7sja2np36dwskiijlj0qarzig1b",
+ "fetcher": "github",
+ "repo": "inickey/org-clock-reminder",
+ "unstable": {
+ "version": [
+ 20211010,
+ 2139
+ ],
+ "commit": "9f9b88348ffbc6628f2286dcb4c064b520d0a638",
+ "sha256": "1dm1q2adgbdb3q0aqacd9nmqxb1dzsrc5gmz7ap2lf0g02b8nwqa"
+ }
+ },
{
"ename": "org-clock-split",
"commit": "dc8517485e39093a3be387213f766d1df7d50061",
@@ -77208,8 +77746,8 @@
"repo": "kidd/org-gcal.el",
"unstable": {
"version": [
- 20210805,
- 2225
+ 20211007,
+ 1843
],
"deps": [
"alert",
@@ -77217,8 +77755,8 @@
"request",
"request-deferred"
],
- "commit": "80e6f9501fc883f29d26b0c7fea25f8b101512bd",
- "sha256": "0bx2smlls1mfsk4c9c9h3f3xy6fxm78damh96rcmgqk0y6mnvzph"
+ "commit": "8b6df4b727339e3933c68045e104b6b1d99816f7",
+ "sha256": "0gkdh32cfmqbmvvqd67i2x9i1fm5yfmhw6i5yvrb9swsl24kv194"
},
"stable": {
"version": [
@@ -77326,8 +77864,8 @@
"repo": "Trevoke/org-gtd.el",
"unstable": {
"version": [
- 20201112,
- 253
+ 20211006,
+ 1657
],
"deps": [
"f",
@@ -77335,14 +77873,14 @@
"org-agenda-property",
"org-edna"
],
- "commit": "034edc545335ecc0da20b4f1bb4aa9f048454afe",
- "sha256": "0yhnrz7kcq81842sv7zf58fqc6wiy4ckcjyqy8m6bn2z6rwpj655"
+ "commit": "42e75bad36b8a9cadf7ba3cee94c66801e195120",
+ "sha256": "1j2phw903bg7wpymqyrz6yv262s5yjn9dpw6bs9yvy6d9cd3ip64"
},
"stable": {
"version": [
1,
- 0,
- 3
+ 1,
+ 1
],
"deps": [
"f",
@@ -77350,8 +77888,8 @@
"org-agenda-property",
"org-edna"
],
- "commit": "4716603f3719acd89a268fb907b91fd3d6af311a",
- "sha256": "1sjdgdg0j8j7qd5scls9rbyk445bcmkf84iz4kgiyca7bb7rap57"
+ "commit": "13f04f46ed027cd119f21377b050288a96b344cf",
+ "sha256": "15my09gz094z0ihrakxa1x0zcb073s85azwmp891iv62qjhgl5x6"
}
},
{
@@ -77418,16 +77956,16 @@
"repo": "marcIhm/org-index",
"unstable": {
"version": [
- 20210820,
- 519
+ 20211029,
+ 1604
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "7bc78ebf7c1c334e8cc73af44793a7eaffb66a99",
- "sha256": "0g1ahvsn50kr79q9bbrmgf78j1wfcibjp0j57qv7kxiqc71s7s19"
+ "commit": "450dbacacfc0828e40a76a48a5933db60ec7d197",
+ "sha256": "1aqn97lqisa4v48pg3zs877ws9cqivby7mrzqacr7n29q44kvmmn"
},
"stable": {
"version": [
@@ -77501,16 +78039,16 @@
"repo": "ahungry/org-jira",
"unstable": {
"version": [
- 20210813,
- 1834
+ 20211002,
+ 344
],
"deps": [
"cl-lib",
"dash",
"request"
],
- "commit": "f64e5da352193d8e8bc4d9f5678c8e971265e6d1",
- "sha256": "0wrnkpx7ypjfajbfq2dnqxaq18rlvl7fgajsk6a6fsb2sbhfkb97"
+ "commit": "24f2d83bc2f6a2b88b084090f877814e36dcf4da",
+ "sha256": "0f5bij9gvgv8954v80xymvgnwf2ayxg7q4khmfd2djc5sbhj9ch3"
},
"stable": {
"version": [
@@ -77535,14 +78073,14 @@
"repo": "bastibe/org-journal",
"unstable": {
"version": [
- 20210812,
- 1749
+ 20211003,
+ 805
],
"deps": [
"org"
],
- "commit": "9757996ca058029800c4801fba315b1d1614dcb2",
- "sha256": "1h7b165y4z2p7qqbndqh2jyw4fgq50hqxmj2xv24shbjyqg350dh"
+ "commit": "71e8b10088ae52c4ac17f7af87020ea85fbc6ff7",
+ "sha256": "1fld2l1nxhim21icq10bnscw99xl9p398zbwvcm07vm0n0pm3dvf"
},
"stable": {
"version": [
@@ -77614,15 +78152,15 @@
"repo": "stardiviner/org-kindle",
"unstable": {
"version": [
- 20200906,
- 944
+ 20210930,
+ 1008
],
"deps": [
"cl-lib",
"seq"
],
- "commit": "5fde4a53f062612b2a118c53ff0196a128b80d6d",
- "sha256": "0rkj936cdlk9n9k8pi957p3y43xs85zfc9pnn4qhn943sk111b6c"
+ "commit": "fdba34a47b670226f46ad7b3a4db4edc7f7907e7",
+ "sha256": "17klypc5fk6v9ccnyixak9ixyvsfzv3ivm7j8aiv9dk3acjf4yrd"
}
},
{
@@ -77654,14 +78192,14 @@
"repo": "stardiviner/org-link-beautify",
"unstable": {
"version": [
- 20210830,
- 1447
+ 20211022,
+ 114
],
"deps": [
"all-the-icons"
],
- "commit": "19deeb8f212791cf4698a7cd844df5b3e1b5952f",
- "sha256": "0p3iy23nr2saznjz94j0f55qswzmr96x39awd9r8fpvpsm02j14m"
+ "commit": "7a9a5910cf7037c044af9b3be1b8c2f42488b1c1",
+ "sha256": "0db4p9kjz6fh0ignprkb25bshwa349ns4xzc98v21b9zcbs46wz5"
}
},
{
@@ -77826,16 +78364,16 @@
"repo": "ndwarshuis/org-ml",
"unstable": {
"version": [
- 20210627,
- 1623
+ 20210911,
+ 2131
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "e14205312c54a1c97491c7f847d296b09f5f57b0",
- "sha256": "030fsgdp8cg2h8mlxq6769l158pqcwnv4r3bl36lpjs950lv9pas"
+ "commit": "5d61f456b0a639e178d6ae4f210e28be5621a620",
+ "sha256": "1ca6wgjwslv3582fmsxna81mgryziw9v9zh1836sbp3yszqddday"
},
"stable": {
"version": [
@@ -77848,8 +78386,8 @@
"org",
"s"
],
- "commit": "4435cd5fc94c00f6e6054324a3e022ad0e37ae0f",
- "sha256": "0vk9zv6zx7s1wryfhjwzmpj5asdlkn7zlwwvk9hvf5cv9injf1wx"
+ "commit": "0a96482452fc60170e3f5b8cf3a259b2b09c9ef5",
+ "sha256": "1ca6wgjwslv3582fmsxna81mgryziw9v9zh1836sbp3yszqddday"
}
},
{
@@ -77870,6 +78408,37 @@
"sha256": "0qdgs965ppihsz2ihyykdinr4n7nbb89d384z7kn985b17263lvn"
}
},
+ {
+ "ename": "org-movies",
+ "commit": "ea06dc48003ba3c4f8e70fef4738cdb306362198",
+ "sha256": "1l4vd091vqhcs7qgws762x4cdnalj1hiq31d6l740miskc8nb8hr",
+ "fetcher": "github",
+ "repo": "teeann/org-movies",
+ "unstable": {
+ "version": [
+ 20210920,
+ 101
+ ],
+ "deps": [
+ "org",
+ "request"
+ ],
+ "commit": "e96fecaffa2924de64a507aa31d2934e667ee1ea",
+ "sha256": "1h514knqys20nv9qknxdl5y6rgmyymyr42i07dar8hln9vj0ywqm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "org",
+ "request"
+ ],
+ "commit": "e96fecaffa2924de64a507aa31d2934e667ee1ea",
+ "sha256": "1h514knqys20nv9qknxdl5y6rgmyymyr42i07dar8hln9vj0ywqm"
+ }
+ },
{
"ename": "org-mru-clock",
"commit": "b36bf1c1faa4d7e38254416a293e56af96214136",
@@ -77878,20 +78447,20 @@
"repo": "unhammer/org-mru-clock",
"unstable": {
"version": [
- 20210408,
- 1259
+ 20211029,
+ 1147
],
- "commit": "229461b92ff89fd96cd7730df9fd589a8b0ef949",
- "sha256": "1gl63m7h7zisjqljlckcqr0f16zkadfw9jr9h54kypm51alpjzkm"
+ "commit": "454d317bf772a616cb76cf2212f111c7977016a2",
+ "sha256": "1bib2ch2grb7qlyhc7aq82ca1i16nqi8h84nfvlwgx45al8r3k4l"
},
"stable": {
"version": [
0,
- 4,
- 4
+ 6,
+ 1
],
- "commit": "1b19fb0f77dbd519a29997642954dc33fe12b810",
- "sha256": "1g4hszrmvx41iz6i2m4nr2qhl098gklqg384ir3r1nfw7y5ll29l"
+ "commit": "454d317bf772a616cb76cf2212f111c7977016a2",
+ "sha256": "1bib2ch2grb7qlyhc7aq82ca1i16nqi8h84nfvlwgx45al8r3k4l"
}
},
{
@@ -77902,14 +78471,14 @@
"repo": "jeremy-compostella/org-msg",
"unstable": {
"version": [
- 20210901,
- 1630
+ 20210916,
+ 1114
],
"deps": [
"htmlize"
],
- "commit": "599e8b056c30e84d584aa54dd7c85339cdb9dc43",
- "sha256": "07mjxzip1n3j8lksfq00mfy4s015n28wxiczczqvd6cdhgynshpg"
+ "commit": "77f5911b7d390a069104db20be86293506ffbff2",
+ "sha256": "08kv8639zdfr3fpzx4zpbgf40vjpa1xwkhxzz7vdpmjq19i3c28w"
}
},
{
@@ -78059,8 +78628,8 @@
"repo": "doppelc/org-notifications",
"unstable": {
"version": [
- 20210826,
- 1721
+ 20210918,
+ 1827
],
"deps": [
"alert",
@@ -78068,8 +78637,8 @@
"seq",
"sound-wav"
],
- "commit": "04d648ab5f5f65b600a3af1c9e8ce4e07800d995",
- "sha256": "0xi1shrm3a091fa8zv7nr1425f23z8cb1d6qb2xl1b772q9n7bkf"
+ "commit": "b8032f8adfbeb328962a5657c6dd173e64cc76e5",
+ "sha256": "0px7syqcz300mxcns1bm0yn3i9n2j5cx58lzjjqpp6v36xn6x4k8"
}
},
{
@@ -78369,14 +78938,14 @@
"repo": "jakebox/org-preview-html",
"unstable": {
"version": [
- 20210905,
- 1559
+ 20210911,
+ 1528
],
"deps": [
"org"
],
- "commit": "04487392d977258351d06ff693a591d8e77617b7",
- "sha256": "11f8ffwjllzqpqp0s0610cakh1j8028lvknibajqid4ljidm0mcj"
+ "commit": "5f7345e75d0fe71afb19fd30c841dff5bdd6d1ab",
+ "sha256": "13i6yqhizh86608hwlkc4ipsaxx44y79v40kpn007h8p1wl1ba7a"
}
},
{
@@ -78481,8 +79050,8 @@
"repo": "alphapapa/org-ql",
"unstable": {
"version": [
- 20210713,
- 233
+ 20210922,
+ 615
],
"deps": [
"dash",
@@ -78496,18 +79065,16 @@
"transient",
"ts"
],
- "commit": "94f9e6f3031b32cf5e2149beca7074807235dcb0",
- "sha256": "022arhyyn8hbb1hzjkv4gl3dr8lz1gv0x4h70x0970bsbqlsa27w"
+ "commit": "31aeb0a2505acf8044c07824888ddec7f3e529c1",
+ "sha256": "1jfm4ahh58x3a3njigrbfzd86fnbyybbcgca2mgmxddcy6bszfp1"
},
"stable": {
"version": [
0,
- 5,
- 2
+ 6
],
"deps": [
"dash",
- "dash-functional",
"f",
"map",
"org",
@@ -78518,8 +79085,8 @@
"transient",
"ts"
],
- "commit": "d3b0ef2f5194452d88bf23ec31ebfef822c47c24",
- "sha256": "0b3xxnbhnrz0263fnrrdbs3gif4pjkfws4mxkfqqpg0fc8azp2rx"
+ "commit": "31aeb0a2505acf8044c07824888ddec7f3e529c1",
+ "sha256": "1jfm4ahh58x3a3njigrbfzd86fnbyybbcgca2mgmxddcy6bszfp1"
}
},
{
@@ -78598,28 +79165,62 @@
"repo": "oer/org-re-reveal",
"unstable": {
"version": [
- 20210811,
- 710
+ 20211025,
+ 1153
],
"deps": [
"htmlize",
"org"
],
- "commit": "ee712db65782ddc2bffe19c60cdc40b72ce56769",
- "sha256": "0bnb8h13wpgw1i91zc701agbcdar1ns81b0kqpl8raczr9mg5dvf"
+ "commit": "ee0417aac3969ec2d776eba1ddc6434d4c61a10d",
+ "sha256": "0j7394zcbzqfk33g2xdyb3fmw3brxy8v66vvf1j9nqlskfddh7bn"
},
"stable": {
"version": [
3,
- 10,
- 0
+ 12,
+ 4
],
"deps": [
"htmlize",
"org"
],
- "commit": "95c5ad99bc1180d23b69156abc2fb4a95592048c",
- "sha256": "0bnb8h13wpgw1i91zc701agbcdar1ns81b0kqpl8raczr9mg5dvf"
+ "commit": "ee0417aac3969ec2d776eba1ddc6434d4c61a10d",
+ "sha256": "0j7394zcbzqfk33g2xdyb3fmw3brxy8v66vvf1j9nqlskfddh7bn"
+ }
+ },
+ {
+ "ename": "org-re-reveal-citeproc",
+ "commit": "547117388151804f7e6d9e826c14739aa09f2f97",
+ "sha256": "01c430s6qr1j0j1ndnqlfy0b4m29qmb01h56fbr8vmb3jqzwcpar",
+ "fetcher": "gitlab",
+ "repo": "oer/org-re-reveal-citeproc",
+ "unstable": {
+ "version": [
+ 20211028,
+ 1328
+ ],
+ "deps": [
+ "citeproc",
+ "org",
+ "org-re-reveal"
+ ],
+ "commit": "faa9ea387917b20bd1499ad90199ff3d417c00c2",
+ "sha256": "09yvfp4nh3g2jfs4v8jx70y6vyahypwvfjwrcqg5z0sqssbmxhnc"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "deps": [
+ "citeproc",
+ "org",
+ "org-re-reveal"
+ ],
+ "commit": "f1f5a00fc8570234a8d421868b170aa9819c792a",
+ "sha256": "0vxyqbh69l82xascygg0b4k915nq8dz4q77j03fr28xfmv550w5y"
}
},
{
@@ -78630,15 +79231,15 @@
"repo": "oer/org-re-reveal-ref",
"unstable": {
"version": [
- 20210104,
- 1650
+ 20211029,
+ 551
],
"deps": [
"org-re-reveal",
"org-ref"
],
- "commit": "2379e224d6acfdba3ee6f0de72805cdfa6b8e0f8",
- "sha256": "1467vskijg2n8k7fa2jj2hz8xr2s04r8a89521wmz54cza21g5j4"
+ "commit": "ea9661864d5fbef87b12b78f516c13a40c683f24",
+ "sha256": "1vaszb0n5p48mrf5hzci2yyh51b32ws1fk6r4q0gky41ixz243v8"
},
"stable": {
"version": [
@@ -78662,18 +79263,17 @@
"repo": "alphapapa/org-recent-headings",
"unstable": {
"version": [
- 20201213,
- 747
+ 20211011,
+ 1519
],
"deps": [
"dash",
- "dash-functional",
"frecency",
"org",
"s"
],
- "commit": "5da516a1586675992c0122ed32978c18dda06318",
- "sha256": "1xnhahgs1q6y7w0rrc33qbkdagjm6q71a4i0msi4gsfnnzwn4vam"
+ "commit": "97418d581ea030f0718794e50b005e9bae44582e",
+ "sha256": "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"
},
"stable": {
"version": [
@@ -78697,14 +79297,25 @@
"repo": "m-cat/org-recur",
"unstable": {
"version": [
- 20191216,
- 2353
+ 20211007,
+ 238
],
"deps": [
"org"
],
- "commit": "4f25a5be2eaaedb84c78abf9457b9745a9396bcb",
- "sha256": "1nrzm07jmbh52brsb2nmpaw5mpr6bqy3g4xhksrx1gwyyjj321f1"
+ "commit": "5662cc897ab1533b39e3e93b2150dacbe699d591",
+ "sha256": "0fq8ns5f0k9mg9dz1w778jp0icpjkx62fa3a51yrsqisycl3cl6y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "093c1726ffe4358d60fbb97c1bcf01b785827098",
+ "sha256": "004g7av1dx3i25lr0r33dd2ch4i9r5mcgjh7gjm6rj6nbyh1gqhb"
}
},
{
@@ -78730,24 +79341,22 @@
"repo": "jkitchin/org-ref",
"unstable": {
"version": [
- 20210823,
- 27
+ 20211103,
+ 1318
],
"deps": [
+ "avy",
"bibtex-completion",
+ "citeproc",
"dash",
"f",
- "helm",
- "helm-bibtex",
"htmlize",
"hydra",
- "ivy",
- "key-chord",
- "pdf-tools",
+ "parsebib",
"s"
],
- "commit": "37b64e6cc1068c1b7ffe579851a345aa57772333",
- "sha256": "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"
+ "commit": "4a465be9f8a4093a4afa22abc77a2012624f5e90",
+ "sha256": "16pnx1j1zg90yawsw29nxqq97sjigc9vmaxgc3aw18rnhardv0s3"
},
"stable": {
"version": [
@@ -78772,6 +79381,25 @@
"sha256": "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"
}
},
+ {
+ "ename": "org-ref-prettify",
+ "commit": "557733f8732fd48bd68990616190fa9b4dc3c657",
+ "sha256": "08bkrl973nawchnc35ixz3zvb4kdbibzmpv532p7n53qc8i2zqjx",
+ "fetcher": "github",
+ "repo": "alezost/org-ref-prettify.el",
+ "unstable": {
+ "version": [
+ 20210920,
+ 634
+ ],
+ "deps": [
+ "bibtex-completion",
+ "org-ref"
+ ],
+ "commit": "29e05416f102ceca50ac8b118a19a16f9fe7eb2f",
+ "sha256": "1215hrinfggvwz89i15lhpqraa3rhafnqx8iwvfzb0p9fyqfgwg5"
+ }
+ },
{
"ename": "org-repo-todo",
"commit": "d17b602004628e17dae0f46f2b33be0afb05f729",
@@ -78875,8 +79503,8 @@
"repo": "org-roam/org-roam",
"unstable": {
"version": [
- 20210901,
- 1143
+ 20211101,
+ 639
],
"deps": [
"dash",
@@ -78886,8 +79514,8 @@
"magit-section",
"org"
],
- "commit": "1795039ab93ef19611dbb3fca21c4211c4e655a9",
- "sha256": "1hrb4l7b31f9glrdhn30lldqkzbyw0rhw03d5ij49pygfma2qwl0"
+ "commit": "3e47f198c7b6c3254944d98357e41840e5e1b102",
+ "sha256": "1bfrpljx95bqk2gwabsf80igp206nlb6d7b4dr0mlsj8rlzwv96s"
},
"stable": {
"version": [
@@ -78915,16 +79543,16 @@
"repo": "org-roam/org-roam-bibtex",
"unstable": {
"version": [
- 20210903,
- 2120
+ 20211001,
+ 1038
],
"deps": [
"bibtex-completion",
"org-ref",
"org-roam"
],
- "commit": "9675eee4183301b16eb27776dae93e8c0b99eb07",
- "sha256": "1n4nfs9ifzdmzj60adbam4qfw6vkm8z4yh5mp23gvi0j9wfx99s1"
+ "commit": "ed35826fdefda8b5a3f7156c19e892e5e2984ea4",
+ "sha256": "135g8grk7dh0mcn76d7h35larm9z38dqjajs4kclzxkvsrmmfhxb"
},
"stable": {
"version": [
@@ -78979,8 +79607,8 @@
"s",
"seq"
],
- "commit": "db59e2e9d4230997cca4cbf3a5bb1a89fd38f87f",
- "sha256": "1444qsf3fyygw0bpl805fqfyh2mygc821iy2i6cpfyaibrz0n6hj"
+ "commit": "f4c5e612d87d1ab96323b09cee1da859d9d74775",
+ "sha256": "0jbvrzigw0bjcm4lq7mmg97yh2kzchcmv4gwpmd6izgr1ajp2nir"
},
"stable": {
"version": [
@@ -79061,19 +79689,18 @@
"repo": "alphapapa/org-sidebar",
"unstable": {
"version": [
- 20201114,
- 507
+ 20210912,
+ 1321
],
"deps": [
"dash",
- "dash-functional",
"org",
"org-ql",
"org-super-agenda",
"s"
],
- "commit": "1b37069e47d1ea4745eacdf2dec2bdad756ee235",
- "sha256": "0sf406dz4mkpaqaql3z8xs6jcksxasa5j7xkk79a9xnbanaxhzaq"
+ "commit": "288703b897449f5110c9c76e78eb9a928ffc0dcd",
+ "sha256": "0ama42nkc90mzwik516kfsh5rdx47yhaarcsqsknxh7xcrm2v0r1"
},
"stable": {
"version": [
@@ -79125,16 +79752,17 @@
"repo": "alhassy/org-special-block-extras",
"unstable": {
"version": [
- 20210806,
- 154
+ 20210909,
+ 2032
],
"deps": [
"dash",
+ "lf",
"org",
"s"
],
- "commit": "8b7bbcb239cb08ca96a950cf59bb5e9617bee2cc",
- "sha256": "11qni2i00ck0kh2x334gahhr4lhnh03mvn69bzvivnx8rlk6w1f7"
+ "commit": "1e9731dfd79b0605ee88c8cc891d4b5106c9e0f4",
+ "sha256": "0lp0gn7p5d0fkm3wy27xhj2q6snhl1ssqqhyl52hw06jhifamm8l"
},
"stable": {
"version": [
@@ -79310,8 +79938,8 @@
"repo": "alphapapa/org-super-agenda",
"unstable": {
"version": [
- 20201211,
- 918
+ 20210928,
+ 916
],
"deps": [
"dash",
@@ -79320,8 +79948,8 @@
"s",
"ts"
],
- "commit": "a5557ea4f51571ee9def3cd9a1ab1c38f1a27af7",
- "sha256": "1xbdkscg32pqpwzs50igdwkyi2k2mgi01wkqm7rc6bhrpgsk9gkw"
+ "commit": "fb5e2ef277bc811a3b061106c99e4c47b6b86f80",
+ "sha256": "1sjx5ahyjpxv5xkxaf1x0p64bjls8ralv9knf80w17nb87dk3p91"
},
"stable": {
"version": [
@@ -79347,14 +79975,14 @@
"repo": "integral-dw/org-superstar-mode",
"unstable": {
"version": [
- 20210216,
- 1925
+ 20210915,
+ 1934
],
"deps": [
"org"
],
- "commit": "9d64c42e5029910153ec74cb9b5747b074281140",
- "sha256": "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"
+ "commit": "03be6c0a3081c46a59b108deb8479ee24a6d86c0",
+ "sha256": "0w97xqvbgh57227qq750b8rxlkkdd61j9frz7wc9f9x1mya305j2"
},
"stable": {
"version": [
@@ -79730,11 +80358,11 @@
"repo": "takaxp/org-tree-slide",
"unstable": {
"version": [
- 20210224,
- 1213
+ 20211009,
+ 1707
],
- "commit": "9d2ba1df456d8d7c6372c8c294dbe3ee81540b33",
- "sha256": "145avv616k190wzirlrh7rljysfffhh3j37wr7p6sk13wayqc27h"
+ "commit": "27f8bb6a9676e1c0b500e75799e3b5c37a9156af",
+ "sha256": "0751qlg8xxwx7mldgdry1gfrarvhzg2smjzxd3382i6j63mpala9"
},
"stable": {
"version": [
@@ -80043,28 +80671,26 @@
"repo": "ymherklotz/emacs-zettelkasten",
"unstable": {
"version": [
- 20210830,
- 1025
+ 20211002,
+ 1132
],
"deps": [
- "counsel",
"org"
],
- "commit": "748e14b5a0dc2200d10b946d0111bd286e2c1c71",
- "sha256": "1s9nhqbw5jxkqsvy40dd80l5wjw1407vk9qmdfiva8hj0ymcigr6"
+ "commit": "4048bf9e1be7ab759696a9541eec8f435359bcf3",
+ "sha256": "1rnir9mc9cp12wg5p19f0m6g6mvfyv1ahr7zq7azl8hvwmnb6gx7"
},
"stable": {
"version": [
0,
- 3,
+ 4,
0
],
"deps": [
- "counsel",
"org"
],
- "commit": "dd4feae2111357d99dcde1919c1d72523cc5b68c",
- "sha256": "16hqk9hdfmbjmhb6bb0xk6silgx85ji0q1dpncwgida6958rq79r"
+ "commit": "4048bf9e1be7ab759696a9541eec8f435359bcf3",
+ "sha256": "1rnir9mc9cp12wg5p19f0m6g6mvfyv1ahr7zq7azl8hvwmnb6gx7"
}
},
{
@@ -80075,8 +80701,8 @@
"repo": "org2blog/org2blog",
"unstable": {
"version": [
- 20210422,
- 339
+ 20210929,
+ 17
],
"deps": [
"htmlize",
@@ -80084,8 +80710,8 @@
"metaweblog",
"xml-rpc"
],
- "commit": "543813e0acceb55653d876302a5d5741879fb717",
- "sha256": "1w0pfz5dbhqglb5w3c2g4ww2c32nbsir8gqnsh69pa43h9q1msz1"
+ "commit": "68695ed0e012379556d57f9564ac5ad8cd68fbb8",
+ "sha256": "1qk9kshi4hyy0fni3gb383m0yvj4fmgidiab6vhnms5zgghj4kl7"
},
"stable": {
"version": [
@@ -80265,8 +80891,8 @@
"ht",
"s"
],
- "commit": "cd931a01adb23dd473ca1abd22f45ac0a5661cac",
- "sha256": "0cmr4dq90kvmscsm2jvvpdijbmqh0skra79cybcj4pdzafx79c8c"
+ "commit": "0a716d38268735b1df336161b3a7f3f8303539bb",
+ "sha256": "1nh51npi4j0g4kpshsipy9midi8n17qddfcv0isaizv6bm3z8aa4"
},
"stable": {
"version": [
@@ -80372,7 +80998,7 @@
"version": [
0,
1,
- 1
+ 2
],
"deps": [
"forge",
@@ -80380,8 +81006,8 @@
"org",
"orgit"
],
- "commit": "ea2a1cf9d337901b413e9df258b8e07af55c00f6",
- "sha256": "07ia3b6bfilnpify93kq5g10xhh794v5pmc9cmmb312c3qyqi7b4"
+ "commit": "365b75609a9454dccf5681eb6075ca53bd32af85",
+ "sha256": "1y7rywlqhsvkism9dmzlb3sijd8isp6qqhgba79aqgk9wz593rkv"
}
},
{
@@ -80392,15 +81018,15 @@
"repo": "tarsius/orglink",
"unstable": {
"version": [
- 20200719,
- 917
+ 20211010,
+ 2105
],
"deps": [
"org",
"seq"
],
- "commit": "2f1939488204f67d2a427f224b45596361b402b1",
- "sha256": "0ipy1p2cr5i0465hchqazmgn9jrgwzbyrb3prfgkl7z2m1gd7fcg"
+ "commit": "05df4989c987dece40a450bd5cfbbd6cda0f2e7a",
+ "sha256": "184hag1kjbzfc7k7c1nd1y9w3gimgxjgkkyqawjzv00sph3mnvd4"
},
"stable": {
"version": [
@@ -80463,20 +81089,19 @@
"repo": "tgbugs/orgstrap",
"unstable": {
"version": [
- 20210722,
- 737
+ 20210926,
+ 2314
],
- "commit": "3a6bd917c524c73542315f7c2b0d68161fd5c228",
- "sha256": "0kjyg2vif12whfjdj7d4byjw9a4y6q9s40552v6i8b7f1yc7rz0k"
+ "commit": "b99455846908d007cf50ca1ef7093554dc3121a0",
+ "sha256": "1z4hva6dzqrkkabv1apqhic3d2r21dsf9m60blmbnhx6hbc5vgv3"
},
"stable": {
"version": [
1,
- 2,
- 7
+ 3
],
- "commit": "c63c1682de9a10c6d6946978c154f09bb6fa7284",
- "sha256": "0vp4s8m1rg0q3pd8vdk8ys03dzsibglpkx30hfw10z847fbif85w"
+ "commit": "b99455846908d007cf50ca1ef7093554dc3121a0",
+ "sha256": "1z4hva6dzqrkkabv1apqhic3d2r21dsf9m60blmbnhx6hbc5vgv3"
}
},
{
@@ -80487,11 +81112,11 @@
"repo": "tbanel/orgaggregate",
"unstable": {
"version": [
- 20210830,
- 829
+ 20210925,
+ 1850
],
- "commit": "5e826d36402f822c5981593cd106ce06420638a3",
- "sha256": "0jhjm28ypqrvvxdpjqpvwrlsg0gbrnkz4hlfvivlf7wd58852r86"
+ "commit": "3ddf2fc2262ec7d1ae62aff251a70dcb26dd5f04",
+ "sha256": "09lj6kw1fz1hmrr703rx46d3zsp1kpdzavc3nv1q8x7ii9q0w9bw"
}
},
{
@@ -80608,14 +81233,14 @@
"repo": "vyorkin/ormolu.el",
"unstable": {
"version": [
- 20200930,
- 1406
+ 20211020,
+ 2229
],
"deps": [
"reformatter"
],
- "commit": "c40264fb34affeedd260f5da2f7737baee90a780",
- "sha256": "1w5xia4f539agf62mlhj8c6hh2zadmncr1dby6m6j2qm3ndqfyvk"
+ "commit": "1941a8ce48027b5670d226bacc2fa10b00774b3a",
+ "sha256": "1bs6c6059g585dwsd4ldl49v38l6jlr54z9rj9qhc1a1gg6pzb3b"
}
},
{
@@ -81237,14 +81862,14 @@
"repo": "yashi/org-asciidoc",
"unstable": {
"version": [
- 20181230,
- 620
+ 20210919,
+ 1844
],
"deps": [
"org"
],
- "commit": "efb74df1179702e19ce531f84993ac5b5039075f",
- "sha256": "0sxwbqk6sm8qfpbcxhclin21k6xx5286df57rr0m72xrqqpdsw1p"
+ "commit": "d60ac439278cec214882f92c47bc16e0f43ae98e",
+ "sha256": "1h5vjw4byhixl1vwgd13cy09z7zdh3mjrac4ffvc7xpzkmg4r0zm"
}
},
{
@@ -81433,14 +82058,14 @@
"repo": "kaushalmodi/ox-hugo",
"unstable": {
"version": [
- 20210727,
- 117
+ 20211024,
+ 1851
],
"deps": [
"org"
],
- "commit": "6ec3d054ddadbca1f5effb961c1db583e377ca35",
- "sha256": "1vhyq9hbvbny9lj0h8fw7xk2i0fxcwn3v8rhwh6fjns86m7zy0lj"
+ "commit": "9438efc34f3837ed18da5a97bb705e945b234bff",
+ "sha256": "01zgyawwqsq4w29w8da3kff0r8qyzh5zmmpm63b6zrb71dxx5yzg"
},
"stable": {
"version": [
@@ -81547,15 +82172,15 @@
"repo": "jlumpe/ox-json",
"unstable": {
"version": [
- 20191225,
- 750
+ 20210928,
+ 347
],
"deps": [
"org",
"s"
],
- "commit": "11609b0a4125d1cc6a1149748eeddeeff4e5df63",
- "sha256": "0kkv0g1dg0wyygi098667rip0778pd00xd6mafm4rgc6bdjhxz9i"
+ "commit": "4d2e0aa7f92d07e16cea2dd5e1d250a3f243c3cf",
+ "sha256": "1h5930953nnddg7ysr87m5r6gm517zbfi7jbc77hmrywgibqvpik"
},
"stable": {
"version": [
@@ -81614,8 +82239,8 @@
"ox-gfm",
"s"
],
- "commit": "e79c4c4429f64fe61cfa673dcd33273bba30f9db",
- "sha256": "153sr1pnnlglzmsz9kx8d8h604j01anf85n57pdz2dnbh6wr2wak"
+ "commit": "4adf97dd195f0a777b952b97888b77cdd9479629",
+ "sha256": "0yxzhgjkipy632jhw83l8cz5s7727m87sj6ldpzdh57w1abklidq"
}
},
{
@@ -81793,14 +82418,14 @@
"repo": "yjwen/org-reveal",
"unstable": {
"version": [
- 20210902,
- 1452
+ 20211030,
+ 838
],
"deps": [
"org"
],
- "commit": "fe9148b670d144124d9697fcf5d0528f19025104",
- "sha256": "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c"
+ "commit": "c06c88812bb2db267366c2bb95123235e20aa5bc",
+ "sha256": "0lsxrgbpgac9hclcnrk49nhllyvjfqs0fxik9mxsf22bl1vdds1z"
}
},
{
@@ -81884,11 +82509,11 @@
"repo": "dantecatalfamo/ox-ssh",
"unstable": {
"version": [
- 20201217,
- 317
+ 20210917,
+ 1517
],
- "commit": "1b39849e3a315de95543eb3cf69c42fa33a8f5cd",
- "sha256": "0hcm91fh3qcxp6n40363sxdk3hz87vsmbw032d7iwb2wmdfwh6b4"
+ "commit": "be3b39160da6ae37b1f1cd175ed854ac41d1cb63",
+ "sha256": "069qvxsxipgc7sh112ci2ynv406kj5vrsjgqhdhmnzkp6fhyhm9n"
}
},
{
@@ -81899,14 +82524,14 @@
"repo": "yashi/org-textile",
"unstable": {
"version": [
- 20180502,
- 947
+ 20210919,
+ 1738
],
"deps": [
"org"
],
- "commit": "b179abaa6616604c6efe32cb509e62ad46e7374e",
- "sha256": "1hwrnnrhrdp5cjn81wipzi5j8zr82kpwlvr6hna2cj2zr3r7a6m8"
+ "commit": "5f2f61f572c24d702e922845c11a4c3da38ab261",
+ "sha256": "17qf0346a5n1sy3cjzfx8r9kblrlfbnp8hy74y5fq2dczmhqrjrh"
}
},
{
@@ -82409,20 +83034,20 @@
"repo": "emacscollective/packed",
"unstable": {
"version": [
- 20210503,
- 2046
+ 20211021,
+ 1753
],
- "commit": "ed63b4803899c3719aeeba461e249c473e5b26f0",
- "sha256": "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk"
+ "commit": "51f22a68e23b87626d162c58a0afbc21ad22f210",
+ "sha256": "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p"
},
"stable": {
"version": [
3,
0,
- 3
+ 4
],
- "commit": "ed63b4803899c3719aeeba461e249c473e5b26f0",
- "sha256": "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk"
+ "commit": "51f22a68e23b87626d162c58a0afbc21ad22f210",
+ "sha256": "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p"
}
},
{
@@ -82495,8 +83120,8 @@
20210104,
2224
],
- "commit": "3b8549cd414d4d7ee0168ab9917124133566d3db",
- "sha256": "1jdr9rl90vs78pjdnxcl2igc1ll97ryxxgbyqxzkhbivixi4v87n"
+ "commit": "28783cd6b86b3cd41e51e6b2486173e2485a76cc",
+ "sha256": "0c9971l4xz2qm6pskad9fga6rcz72lyr2jfzwjxwhqx1v7ss46bc"
},
"stable": {
"version": [
@@ -82699,15 +83324,15 @@
"repo": "joostkremers/pandoc-mode",
"unstable": {
"version": [
- 20210819,
- 1141
+ 20210910,
+ 2043
],
"deps": [
"dash",
"hydra"
],
- "commit": "39167ff0e9293b4632cf162a32c9d0b6990a371d",
- "sha256": "1rbn8vj1aazwzzzs79455qcd5w04l82xw4y00xn199mch95rim5d"
+ "commit": "bf01a14e99304653ae722226ea064c7d4b641774",
+ "sha256": "0g64fbcbw8pfq92drgixgplrljw954y9fyp9gjbmc5rq2dhpck4l"
},
"stable": {
"version": [
@@ -83054,8 +83679,8 @@
"deps": [
"s"
],
- "commit": "0c4c92283baa951469e75f632fdd08f0cb9fe6af",
- "sha256": "1g34wkb3ca6wgjkgmzbhaak95bpdh1k49p5m00ajhg1rqicxwdzw"
+ "commit": "d14391468c6693016a1960a0480d5589658adddd",
+ "sha256": "1gykb9h4pq428w135591dj49ikp078jrxv8n2hhvf9ri69q3cdg6"
},
"stable": {
"version": [
@@ -83132,26 +83757,20 @@
"repo": "clojure-emacs/parseclj",
"unstable": {
"version": [
- 20201012,
- 712
+ 20211013,
+ 453
],
- "deps": [
- "a"
- ],
- "commit": "1bb3800f8f2417b0b881f57448ccb4acd1fe5b8d",
- "sha256": "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"
+ "commit": "a8c4cf30fb68b66ae51541462a8b21753229a6e5",
+ "sha256": "0n0m3xc2dawgdhb68zznpsbzbbvf9fwgf9v8pzzwa2jncgi1yhh0"
},
"stable": {
"version": [
+ 1,
0,
- 2,
- 0
+ 6
],
- "deps": [
- "a"
- ],
- "commit": "1bb3800f8f2417b0b881f57448ccb4acd1fe5b8d",
- "sha256": "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"
+ "commit": "a8c4cf30fb68b66ae51541462a8b21753229a6e5",
+ "sha256": "0n0m3xc2dawgdhb68zznpsbzbbvf9fwgf9v8pzzwa2jncgi1yhh0"
}
},
{
@@ -83162,28 +83781,28 @@
"repo": "clojure-emacs/parseedn",
"unstable": {
"version": [
- 20210729,
- 1657
+ 20211013,
+ 452
],
"deps": [
- "a",
+ "map",
"parseclj"
],
- "commit": "7b9ca20b398ca0ca0e3005e84c16f23aab49b667",
- "sha256": "0knv5m6w7v9zi94b6qi861r271l49pxzmwzp4nm595c33lxagqj2"
+ "commit": "e5ba280d1fb7b408d54062d4eac545326e850172",
+ "sha256": "1xp2d42yvqkimb7a15bv89bj0124lljw9cb36g49m13d7ny4fafn"
},
"stable": {
"version": [
+ 1,
0,
- 2,
- 0
+ 6
],
"deps": [
- "a",
+ "map",
"parseclj"
],
- "commit": "d25ebc5554c467b1501f1655204ed419e00ca720",
- "sha256": "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"
+ "commit": "e5ba280d1fb7b408d54062d4eac545326e850172",
+ "sha256": "1xp2d42yvqkimb7a15bv89bj0124lljw9cb36g49m13d7ny4fafn"
}
},
{
@@ -83310,8 +83929,8 @@
"s",
"with-editor"
],
- "commit": "3dd14690c7c81ac80e32e942cf5976732faf0fb3",
- "sha256": "10015qvf98j4m26rprrvhbfj4dg4j5sg2c0ps7x94cjjxrph7kf6"
+ "commit": "04cd3023f48cd203f6c0193e57a427226e8b431c",
+ "sha256": "0r5irpzqpglf486zsl78wdwqhkgsqb24xg4zp2isjczs2gl0fi6m"
},
"stable": {
"version": [
@@ -83844,15 +84463,15 @@
"repo": "vedang/pdf-tools",
"unstable": {
"version": [
- 20210531,
- 1613
+ 20211004,
+ 514
],
"deps": [
"let-alist",
"tablist"
],
- "commit": "5f77dae43eb8f71e52e10ba8cf994883f74c3fb7",
- "sha256": "0hzqcnxi66d0c3dq7y3dn28f3yri4zcx46yylhy0xnm3f1yja0rm"
+ "commit": "f68899cf0646255ca763f1144f7a9520e7cd46db",
+ "sha256": "13f0c0a9cyhc2snshjqw8dl0hdnhb89fba6ffcv7avb2cwnxdpk7"
},
"stable": {
"version": [
@@ -84261,25 +84880,25 @@
"repo": "nex3/perspective-el",
"unstable": {
"version": [
- 20210821,
- 259
+ 20211103,
+ 522
],
"deps": [
"cl-lib"
],
- "commit": "1c257f35ccabaa807d3a79f6daed7b6a5872d27b",
- "sha256": "0rgkajcw7fismqmww1r0yy84hnqripx5dwklf2mfm042whn9bqgf"
+ "commit": "54dc30840c8019f387ccdb84bbab06ca2cf8f296",
+ "sha256": "1d2jmxfb6a93d9h4m7w482f3dbhhn2s6wiynzwxjl8af1l19f5aa"
},
"stable": {
"version": [
2,
- 16
+ 17
],
"deps": [
"cl-lib"
],
- "commit": "c052ab2ce23f969ad2b7853ba0b3cbd4a5954c47",
- "sha256": "0hg4rj3v748f6k4fwa21g683vs3bfya0wg9r9xdg216kdhfdk5j7"
+ "commit": "53348cea0f46655c4c072da5984f6a652726df4f",
+ "sha256": "1nmz39pcaa969g1966ykblzrz6lr3ddb0ip465y5in1fj498as6y"
}
},
{
@@ -84676,25 +85295,26 @@
"repo": "OVYA/php-cs-fixer",
"unstable": {
"version": [
- 20210729,
- 1022
+ 20210923,
+ 718
],
"deps": [
"cl-lib"
],
- "commit": "cc9a3624dcdc72d748d91e3d7cdb8544a1d85a51",
- "sha256": "1iiazmyzr6gxwsdpx687j0zp3s1zs0rk4kgv4hicl9mjda2f7dmz"
+ "commit": "7e12a1af5d65cd8a801eeb5564c6268a4e190c0c",
+ "sha256": "1i0jlszc5z59arwknclhi3vmwp0mf6jk18axisvh5xdqggiwpjqf"
},
"stable": {
"version": [
1,
- 0
+ 0,
+ 1
],
"deps": [
"cl-lib"
],
- "commit": "95eace9bc0ace128d5166e303c76df2b778c4ddb",
- "sha256": "1pl6zw1m8n3ir48h58gaq2f474w9j20a6gk4r0cq5vgvzxx25f0h"
+ "commit": "ebf78243b468592f4fbeb714923ecc8709d33ae0",
+ "sha256": "0ik5va5q7gpz6kmaaiarh6wjaafal22qcimflfwizs3nbl49y9mx"
}
},
{
@@ -85183,8 +85803,8 @@
20210629,
1257
],
- "commit": "c04309be9fb73012b4c5c839741b1abcfe0b8aa9",
- "sha256": "1hahd9w5pww3nx1xvbci4pscpbzb0k5xv3yff896jg66di36fvwg"
+ "commit": "1959d2d5e09fde5244f9f945fec043cdffd5d37e",
+ "sha256": "00iyyvqs28l0qgzwm57r6qibdk98w4sdr4ilxsb1f2lrir75q6ir"
},
"stable": {
"version": [
@@ -85477,10 +86097,10 @@
},
{
"ename": "plain-theme",
- "commit": "d25eb506b358a3c89c950e66200ea52fe3ca9133",
- "sha256": "16i60lp0af15sw4fbsj37yd4hs6i212smili9mjaqgiai7wxqv4f",
+ "commit": "e170913006b93f4c235c403c5cde64d274b91e1f",
+ "sha256": "11hafn2wsj5dskf18q3jd6vqj20nhzii067ll8l38977c070qqlh",
"fetcher": "github",
- "repo": "abelianring/plain-theme",
+ "repo": "alpakido/plain-theme",
"unstable": {
"version": [
20171124,
@@ -85685,11 +86305,11 @@
"repo": "thomasluquet/playerctl.el",
"unstable": {
"version": [
- 20210411,
- 1442
+ 20211014,
+ 856
],
- "commit": "41564d453c9f936a4ce2699afacc6d1dff974f1c",
- "sha256": "0fbnfxhfyam5zvf2ild5bxq489dnpyrzclnfwq0lhzgswjj70hw6"
+ "commit": "4c3a6132616fd28f902590bf6e63332e6055492b",
+ "sha256": "18b59kcni6xp46r8lkwb8baz2mic9n4zyndib10dvfs6gwjmas2p"
}
},
{
@@ -86123,15 +86743,15 @@
"repo": "galaunay/poetry.el",
"unstable": {
"version": [
- 20201114,
- 1723
+ 20211016,
+ 834
],
"deps": [
"pyvenv",
"transient"
],
- "commit": "d5163fe065239bb7b46ed8b3ff3b85b1f3229af3",
- "sha256": "0d84d2ysbb635d9riggvfnpck5qmijaybix3ian8r8ayymn7ajl4"
+ "commit": "5b9ef569d629d79820e73b5380e54e443ba90616",
+ "sha256": "1zk5ps9ax456400aa16hcjygpzq4mlhdnhv1d31yy4agqjql927h"
},
"stable": {
"version": [
@@ -86227,16 +86847,16 @@
"repo": "polymode/poly-R",
"unstable": {
"version": [
- 20210210,
- 1053
+ 20210930,
+ 1921
],
"deps": [
"poly-markdown",
"poly-noweb",
"polymode"
],
- "commit": "c42ff3a4d0da96ccb7f826dca5c6b2eb558a2ab5",
- "sha256": "0sazc0vnks2jnrmgz9p2r821l4m9wrggr6mgcwh6v7lzwj76x3f7"
+ "commit": "e4a39caaf48e1c2e5afab3865644267b10610537",
+ "sha256": "19s99k0madr5yp9v523yj1990fmark09vixn31lzfmghi8nmdmck"
},
"stable": {
"version": [
@@ -86551,11 +87171,11 @@
"repo": "polymode/polymode",
"unstable": {
"version": [
- 20210521,
- 1131
+ 20210907,
+ 807
],
- "commit": "7d1f822f0833b43326cc9253dc8a3e267ad4b376",
- "sha256": "15gyqf9vs3yxls8l830ik5rdhvd0wiybqpi0yxnfpd6g9pcajm6w"
+ "commit": "54888d6c15249503e1a66da7bd7761a9eda9b075",
+ "sha256": "0zxhxsil1p0nf4n75saz33d00xl7d4g528n7qj9xx84gq92g4fnb"
},
"stable": {
"version": [
@@ -86663,8 +87283,8 @@
"repo": "ponylang/ponylang-mode",
"unstable": {
"version": [
- 20210118,
- 1325
+ 20211015,
+ 331
],
"deps": [
"company-ctags",
@@ -86676,8 +87296,8 @@
"yafolding",
"yasnippet"
],
- "commit": "3c011744e81263dab6a4b20e96ad1d290ef9d320",
- "sha256": "15ach67d9n8csbsabm6lhmhli9f397pjpf6vk1rn59bfqrhdakmn"
+ "commit": "1abf04bc8f4f09a6add4b587c7cf5ca23735e7c0",
+ "sha256": "1iv04dj2nc9cyyslhir7aj5sligwan1yyclsiarn86lik7b9lmwn"
},
"stable": {
"version": [
@@ -86754,11 +87374,19 @@
"repo": "karthink/popper",
"unstable": {
"version": [
- 20210610,
- 1945
+ 20211011,
+ 435
],
- "commit": "4c51182f5f5dd7a1ffa69fb994ef5ef6f9592686",
- "sha256": "028wfdi240r8xdz7j77fv29brk5ck6yhhh1vj9p58m4f4ff8r9ik"
+ "commit": "1ffc269afa46a9e7a5c1e5511752e49cfcb3aad4",
+ "sha256": "1hpx2qi4ybh1fxjzkfkddj350r3rqrbjazjwas3nvqxwrs9ksqbr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "cc7336c4e30fc9fef129ad82e59fcdef24f0b73d",
+ "sha256": "0qkxxdawwcjswfxnxmih5cgq7klp78l7vc82kj09a8qh400wzr5d"
}
},
{
@@ -87014,11 +87642,11 @@
"repo": "tumashu/posframe",
"unstable": {
"version": [
- 20210617,
- 42
+ 20211104,
+ 512
],
- "commit": "f97c4aff2c2c376ca62276d5597aa108546633a9",
- "sha256": "18w06fdz63w2arwgbgbl9wghb9fin4cqpxnyajppyqk5lpnsn7iq"
+ "commit": "c153c288a462e10fc468d7474f0082e6c8f5c527",
+ "sha256": "1wg1w7h0nzi2gbwyvhi93mnnzz71b415j7amnpv8migd81p6g3sa"
},
"stable": {
"version": [
@@ -87109,14 +87737,14 @@
"repo": "milkypostman/powerline",
"unstable": {
"version": [
- 20210527,
- 1953
+ 20211022,
+ 655
],
"deps": [
"cl-lib"
],
- "commit": "cfba2aa9cfa190e7720900f01a946e1e78aac7e2",
- "sha256": "1ljyp3a1dhak2h89yabjpf88037c7yhk4naxach1p86x3brwk68q"
+ "commit": "390a95fe5b71cfc20e18d034b4b35b5c159a83fc",
+ "sha256": "0n5fd38qqsj2m6m6dkm11ndk0blxnn5z5rdpb9blrni7p45d6z8b"
},
"stable": {
"version": [
@@ -87297,11 +87925,11 @@
"repo": "raxod502/prescient.el",
"unstable": {
"version": [
- 20210724,
- 1756
+ 20211031,
+ 1908
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -87365,15 +87993,15 @@
"repo": "jscheid/prettier.el",
"unstable": {
"version": [
- 20210606,
- 1152
+ 20211018,
+ 955
],
"deps": [
"iter2",
"nvm"
],
- "commit": "e38d21a885e234af9ea6b03f499c487175570571",
- "sha256": "1c7n43xi1sjprqn0xhd1hfdr39ipqiw1r8w76qbm3xx04h9bccy8"
+ "commit": "485417c0677255249e944b1174225547e4c61c00",
+ "sha256": "17jh6xccqs4z2slj6c3hhdk29nv300d4lmvrgz9cn8cxrk157vcy"
},
"stable": {
"version": [
@@ -87419,6 +88047,26 @@
"sha256": "0g2bxa7mwfkc8navbi2w28rd4f4zqphxi13kwmd2p83g3wavd99v"
}
},
+ {
+ "ename": "prettify-math",
+ "commit": "d35f0bc3077fc53b3e91d8f4129373c10927ffab",
+ "sha256": "1w59kca9if3pnm5aavvkavk6fh97ayl6r4h3prhn4ib4fznxl7b4",
+ "fetcher": "git",
+ "url": "https://gitee.com/shaqxu/prettify-math.git",
+ "unstable": {
+ "version": [
+ 20211102,
+ 610
+ ],
+ "deps": [
+ "dash",
+ "jsonrpc",
+ "s"
+ ],
+ "commit": "491bdd6764afeaf3211dd0199e19a06b7bbb7e0a",
+ "sha256": "1v6qdkcwrnns22vlzxywv1rxkblbm3z6ms849fwzmabjvcbfaq1b"
+ }
+ },
{
"ename": "pretty-hydra",
"commit": "865917fcc75c4118afc89b8bcc20ebdb6302f15d",
@@ -87780,8 +88428,8 @@
20210715,
1213
],
- "commit": "e8c22beb14aff6d5661337feb6cebd7af3a3d454",
- "sha256": "09zp7896ndmksk7mywdwhrh4bq951vj5lqjls7ncihifwlgcxa7w"
+ "commit": "4b059ff6ce8cc2ca817247fcc251994bee2090e4",
+ "sha256": "0jn8drn49ab15a7j0584hihzyw66zyq5zv7wwbipnwwkqrd4cagk"
},
"stable": {
"version": [
@@ -87835,11 +88483,11 @@
"repo": "fritzgrabo/project-mode-line-tag",
"unstable": {
"version": [
- 20210615,
- 1825
+ 20211013,
+ 1954
],
- "commit": "ed6adf9287d2aa526d85451623f1aa281cfa7e0a",
- "sha256": "0xryvjsb2r4rj22wgjpixa31kg4sp7xww63hldnf7c1cvcc9g305"
+ "commit": "e411432a33cd82f8a9ff95471c91e9fe1833841c",
+ "sha256": "03aiv70shxhcjcldahny7xxclnqdw5bf37f8496dxmzz0zx0v98j"
}
},
{
@@ -87937,6 +88585,21 @@
"sha256": "1igs3dr3j9lw8lyww1wp69v5i9k2ifvblmsh862vx7l6rvy98f5h"
}
},
+ {
+ "ename": "project-tab-groups",
+ "commit": "83ad01fa762ce395c9c83e83be4bd9d33d868c31",
+ "sha256": "1cbz4fxarch318qnw23gnnvj7if7904siy657n24fcflzfsaniqs",
+ "fetcher": "github",
+ "repo": "fritzgrabo/project-tab-groups",
+ "unstable": {
+ "version": [
+ 20211018,
+ 2252
+ ],
+ "commit": "f0a6c93c2cefdb781b6f1ef6628aff54aac35e7d",
+ "sha256": "1y8xzabh7n7p4g0b2zhv4z9n771skr1fpxfwlm0lia1g4c37rsyh"
+ }
+ },
{
"ename": "projectile",
"commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
@@ -87945,11 +88608,11 @@
"repo": "bbatsov/projectile",
"unstable": {
"version": [
- 20210905,
- 629
+ 20211103,
+ 2050
],
- "commit": "6516a9ce574a9cd8903d0148fe06fa49f954972d",
- "sha256": "0pgrpdgpx7c55csrznhydfpsx5mfi8dy2g7p5mkhz7xmrqqw9ipl"
+ "commit": "584ff420b2c5637b05be5c4808754d6e947ab6c1",
+ "sha256": "1vw392iv4nsdifhq8bf6bsw9mc15pvz05b6wg316j0rrjibmci6p"
},
"stable": {
"version": [
@@ -88298,8 +88961,8 @@
20190408,
310
],
- "commit": "0a75ecd5058c9a006e02d1ecd3f1c84194881abd",
- "sha256": "0y95awjmw9sasjac7s5b6zm42206szqvhr9xkg8zj0frrhnqsx8l"
+ "commit": "f51cf3d7f08ab8946e9869f7de2082536e45cc22",
+ "sha256": "0aqp53l74ivh7vzxgbxcf1nck9jaj5lcdz59ymx78rf3c0v0sk1f"
},
"stable": {
"version": [
@@ -88352,11 +89015,11 @@
"repo": "ProofGeneral/PG",
"unstable": {
"version": [
- 20210820,
- 2321
+ 20211013,
+ 1911
],
- "commit": "51696277a4dc30acd61e9ebb400d99934955e450",
- "sha256": "1y9bnylzml5ijczac210cs3fpy3qdx01c1wqghdvnr3a1p71w71r"
+ "commit": "fd04605af1b07684da522c32d83ac346050926bb",
+ "sha256": "017j3vcwlg6k2h76wbads6jxmnmxj19g4c42zs3mi2vwqhfvgdqx"
},
"stable": {
"version": [
@@ -88456,22 +89119,20 @@
"repo": "google/protobuf",
"unstable": {
"version": [
- 20200619,
- 1742
+ 20211013,
+ 1726
],
- "commit": "10d0faef6de038960ec825c003c85581800fba1c",
- "sha256": "1lynx4vj7w8mlf9mbwz5gwxfvr6iqp99sj89zr88bz5vynl6l43j"
+ "commit": "7ccf4d8f67878a6ceb2184df279478cb3314372b",
+ "sha256": "1fqf7vvha45dzgqcban2zd3kvf5w5nz69jlcw7ad7qg6kf97150l"
},
"stable": {
"version": [
3,
- 18,
- 0,
- -1,
- 2
+ 19,
+ 1
],
- "commit": "32461877b77f61ed8926b1f12641cbe7ea7af713",
- "sha256": "0kyg8j3f94n2f2qfsgdijyqmaxp0hq9mzj9ss3dm5kg4skgdq8pk"
+ "commit": "7c40b2df1fdf6f414c1c18c789715a9c948a0725",
+ "sha256": "1swpq2lkkgz5pwq6q3jn6xgkbaiq9dy20rvmrlghdp0fkfg2a011"
}
},
{
@@ -88526,14 +89187,14 @@
"repo": "emacs-php/psalm.el",
"unstable": {
"version": [
- 20200510,
- 1157
+ 20211002,
+ 1552
],
"deps": [
"php-mode"
],
- "commit": "b2a1e8a9524b0004e62996c70da5536f86e56182",
- "sha256": "0r0qz5bdznzdj7zxq6a6fz7fwn2c978bq57yywj3fcy8f5vh8jcf"
+ "commit": "28d546a79cb865a78b94cd7e929d66d720505faa",
+ "sha256": "0r5qa0i42dkv0qrs2mksjx7w0yl98mdkg18blckk49w2gd8srdjr"
},
"stable": {
"version": [
@@ -88614,15 +89275,15 @@
"repo": "thierryvolpiatto/psession",
"unstable": {
"version": [
- 20210203,
- 828
+ 20211002,
+ 939
],
"deps": [
"async",
"cl-lib"
],
- "commit": "ed53362af4dfc813505c30ca40227072df16fdfc",
- "sha256": "0crq5ynhqi6lbq471nskcnjplyj6i80rxl3z00iyisc9184r7wwb"
+ "commit": "76da05f5fb798572a911c398d2dd6f5f30a74746",
+ "sha256": "07kf8panrfdvqqzklxkhkjbry1fpsb9c6cijjkzrnj4fjwggbkbp"
},
"stable": {
"version": [
@@ -88738,8 +89399,8 @@
"repo": "fvdbeek/emacs-pubmed",
"unstable": {
"version": [
- 20200618,
- 2203
+ 20210927,
+ 1933
],
"deps": [
"deferred",
@@ -88747,13 +89408,14 @@
"s",
"unidecode"
],
- "commit": "88aeb71ed4354af0b58354636ee6a9485887213d",
- "sha256": "154lkpipi5wgcwx4j9w6h3zysciw7hblf03an2irr9xgdhs7xs7q"
+ "commit": "e1ac5433daf966cf7c5e9178b037191e1eb3e4bd",
+ "sha256": "0ylsn36zmrn8mds2z74vbyv7sd4699a4wicg4shrf2gd5bbsi72g"
},
"stable": {
"version": [
0,
- 5
+ 5,
+ 2
],
"deps": [
"deferred",
@@ -88761,8 +89423,8 @@
"s",
"unidecode"
],
- "commit": "d781870e2f57e40110e07768289ab81d8554f122",
- "sha256": "154lkpipi5wgcwx4j9w6h3zysciw7hblf03an2irr9xgdhs7xs7q"
+ "commit": "e1ac5433daf966cf7c5e9178b037191e1eb3e4bd",
+ "sha256": "0ylsn36zmrn8mds2z74vbyv7sd4699a4wicg4shrf2gd5bbsi72g"
}
},
{
@@ -88872,11 +89534,11 @@
"repo": "AmaiKinono/puni",
"unstable": {
"version": [
- 20210824,
- 1555
+ 20211011,
+ 1529
],
- "commit": "3a3272c881945f0dfb4467f7f053d0853f612186",
- "sha256": "1m2z4sif8558qyjzp33kfbjr1laz3nh79qbpzbnykk0j73q5zb9z"
+ "commit": "825952d0a4a1d5eebf849280ffd4e1e44e1a847c",
+ "sha256": "1w3iz542v83n6vc4j0nhqmkp21h0m42rqgp6648jlx7q0n4qmdz6"
}
},
{
@@ -88946,11 +89608,11 @@
"repo": "gnuvince/purp",
"unstable": {
"version": [
- 20190629,
- 1829
+ 20210912,
+ 1940
],
- "commit": "f821a7c30452d970ccb0ee08b68d56603860e31d",
- "sha256": "170k5xkbqr0dbwcwhy75k88qjlnkw6l2ipaqlbr1hdnw17vp2qy9"
+ "commit": "8d3510e1ed995b8323cd5205626ddde6386a76ca",
+ "sha256": "0b3xpiwrbwsc5fmh6k2kj1wxhp3xl4dablxwap07q0kcnp3q47d1"
}
},
{
@@ -89330,8 +89992,8 @@
"repo": "dwcoates/pygn-mode",
"unstable": {
"version": [
- 20210828,
- 1848
+ 20211021,
+ 2325
],
"deps": [
"ivy",
@@ -89340,8 +90002,8 @@
"tree-sitter-langs",
"uci-mode"
],
- "commit": "bbc532a85b7a5555cbf1f0b4cd91214cf9fa6751",
- "sha256": "01c52vl8ynlj6awlqja461q75hz9d87l84phgdfsfngs6grvayzf"
+ "commit": "eb1da7e3eb5f5754b60d404b0e341206eebe19ca",
+ "sha256": "1nf5ihyppviwys3qay07v25f96jj5a2yr4qh1iygv2423y63q7gp"
},
"stable": {
"version": [
@@ -89366,15 +90028,15 @@
"repo": "tumashu/pyim",
"unstable": {
"version": [
- 20210803,
- 226
+ 20211020,
+ 612
],
"deps": [
"async",
"xr"
],
- "commit": "c2604a549b26b7a2125f986e9d34f0b58353336d",
- "sha256": "1ikvg9qk4zzp3ch5glihdzhwhijs3vhrn6y1wc2d68h17j7li1gl"
+ "commit": "778a1eaff3dbb71692939da1fba7daf4ceb22abc",
+ "sha256": "10w0bydn4r8pjn1ygqnxcd39kxwgz397xzamdpb9ayyy72182h4c"
},
"stable": {
"version": [
@@ -89525,6 +90187,21 @@
"sha256": "05qx1p19dw3nr264shihfn33k579hd0wf4cxki5cqrxi7xzpjgrc"
}
},
+ {
+ "ename": "pyinspect",
+ "commit": "da9396dfd85cbef7e92e8aa9db75cd5fc7a2372c",
+ "sha256": "0hmrnf52yb2yi9j23kj7w4l4nknx3hl9d08ryhd3k7caakxnmwmy",
+ "fetcher": "github",
+ "repo": "it-is-wednesday/pyinspect.el",
+ "unstable": {
+ "version": [
+ 20211102,
+ 1415
+ ],
+ "commit": "36cf624236c8b4cce852dd52b64d058d4d4a32fd",
+ "sha256": "0g2k9fgjvcq2jc3j2k2x2v1vghaf0hyarzvdby5vzycsp7jlzcjm"
+ }
+ },
{
"ename": "pylint",
"commit": "a073c91d6f4d31b82f6bfee785044c4e3ae96d3f",
@@ -89536,17 +90213,17 @@
20210411,
1931
],
- "commit": "97f7933d9838853cfff901db37545b9b8478296e",
- "sha256": "1zjp3h8k6a16b03zn7k1s0lar83ps9ndqqsgbnsn06h29gfzl3h6"
+ "commit": "65b552a7ce6734dc7bfe53a14342853750cc92a1",
+ "sha256": "1pshp0q3iv8jzmpyfiwb1myb1xw82hga1wnqm7x5vzdcrdmzc3ip"
},
"stable": {
"version": [
2,
- 10,
- 2
+ 11,
+ 1
],
- "commit": "591a23adcfdd2fe20b8cfdb9e4e07772c8f454f8",
- "sha256": "06xrv79ns4bsk819iqrhjcb36k925yl2zi93l6sv7r228y0y8jl6"
+ "commit": "d98e6e8adcdc5ebcd9c863f630e748cdba639b0a",
+ "sha256": "08kc9139v1sd0vhna0rqikyds0xq8hxv0j9707n2i1nbv2z6xhsv"
}
},
{
@@ -89817,11 +90494,11 @@
"repo": "python-mode-devs/python-mode",
"unstable": {
"version": [
- 20210809,
- 1849
+ 20211013,
+ 1620
],
- "commit": "f43ab088af83ec20c5a70acc3559980c94ed2910",
- "sha256": "0bflpbjv5j9q15qhm9q0yaaw0sfncx3dw5najvsj2rhiw5i47xx3"
+ "commit": "e92d0e800b494c1dfcca109154a6b7eb6fad0e4e",
+ "sha256": "1lxi1iwckpfk6966sgcdj3sz9bcbylsm3nqv9wbbzkqbjlyd28y4"
},
"stable": {
"version": [
@@ -89972,11 +90649,11 @@
"repo": "jorgenschaefer/pyvenv",
"unstable": {
"version": [
- 20210527,
- 829
+ 20211014,
+ 707
],
- "commit": "045ff9476dac26086a04538d9b7ba186aa8f0fd1",
- "sha256": "1y5jqqqh0df75qydw3h7rx24pv5z628ci8ymdksn5khl1qp5041x"
+ "commit": "31ea715f2164dd611e7fc77b26390ef3ca93509b",
+ "sha256": "1708xh2sq7xvs4z5zkik9ircxvzimhzi6phc2j43fvvxgglcgrk5"
},
"stable": {
"version": [
@@ -89995,11 +90672,11 @@
"repo": "psaris/q-mode",
"unstable": {
"version": [
- 20210620,
- 1712
+ 20211001,
+ 1144
],
- "commit": "86d937854c45f6b2a102b42c1a991ba713532f9e",
- "sha256": "1hbb0m5kjczyri6hbgkk1par53zfnsp7m133xqzfhg2sibrvbz2x"
+ "commit": "c7f6ccb936b673032ae557636177befe5f33a3db",
+ "sha256": "1xi7npwpji0c7jvwnkf056ff3jik7j01fb5mcdn0gwkigqhj1g02"
}
},
{
@@ -90025,6 +90702,29 @@
"sha256": "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"
}
},
+ {
+ "ename": "qrencode",
+ "commit": "f92852347c03b1e5c225c72a5df16fe5a1614c21",
+ "sha256": "031x3pl71dh9838l9k3w77xi730q2zvaq1k1ci7r8bq6nb7wjf12",
+ "fetcher": "github",
+ "repo": "ruediger/qrencode-el",
+ "unstable": {
+ "version": [
+ 20211010,
+ 1334
+ ],
+ "commit": "a2c51cd1d54d507ec1902bc5c7bc888fe5a23c8d",
+ "sha256": "0zikg9gbcdzjlm6kdg71i28zxic4k22iijfvf7x4dvx5pc8pw8f6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "76de0de6449031ef5dd3e73ea4ab820e0d58a0e2",
+ "sha256": "1b7z3nxwrgkw1p7dp6ibsvhvpyl2m881w9yr9qcmdrkf78cqlpvx"
+ }
+ },
{
"ename": "qt-pro-mode",
"commit": "e9af710be77ccde8ffa5f22168d2c8a06b73dd6a",
@@ -90438,15 +91138,31 @@
"repo": "greghendershott/racket-mode",
"unstable": {
"version": [
- 20210831,
- 2045
+ 20211103,
+ 112
+ ],
+ "commit": "d78c7381bd47bae8e5f9ae14681935f08206240a",
+ "sha256": "0g80y1hg7jk5291nf0yw6708lf17lwi8ka15a5y2lgrnahq8pd0g"
+ }
+ },
+ {
+ "ename": "rails-i18n",
+ "commit": "4be03fa1fece3bd2a77c1aed929ae3475ab602dd",
+ "sha256": "0jzj1l63yavwn0jxvm92hfxk1m2kyb6sf7kbn2k9v5lkq0iqpl3f",
+ "fetcher": "github",
+ "repo": "otavioschwanck/rails-i18n.el",
+ "unstable": {
+ "version": [
+ 20211026,
+ 1404
],
"deps": [
- "faceup",
- "pos-tip"
+ "dash",
+ "projectile",
+ "yaml"
],
- "commit": "a879a8d67b062c9aa0c6e60602eedba80a2069c5",
- "sha256": "1cf104yb8qbq6dwjk0kplz2snpb565mnpirjdsrhi0hrndd6ryh9"
+ "commit": "86be9e70f6fe90484f88d6c68c2f337f6ecd5651",
+ "sha256": "0z6icgg3hkn141yg7asnpdlir8nlmr4kcrddy2drclgn431pdl5l"
}
},
{
@@ -90635,14 +91351,11 @@
"repo": "Raku/raku-mode",
"unstable": {
"version": [
- 20210412,
- 2342
+ 20210927,
+ 1227
],
- "deps": [
- "pkg-info"
- ],
- "commit": "7496ad3a03bed613c259405ec8839ae02950fdb1",
- "sha256": "002pkw4wx6l64c1apg6n1psq4ckp9129yj3xqkjp68ji5nz2l3bw"
+ "commit": "4ee9045eeb90f7831d7c0ee2e4adfcd957f712be",
+ "sha256": "0z8yclpb67x0k7x4ai13wvpc6w6s9z6kkib6a1lm4jpp4gyyraqw"
},
"stable": {
"version": [
@@ -90865,20 +91578,20 @@
"repo": "thiagoa/rbtagger",
"unstable": {
"version": [
- 20210814,
- 1656
+ 20211026,
+ 2318
],
- "commit": "1cc5e965a221a5987ce0e075825d8002f0862f33",
- "sha256": "03drdmjkmzsz1cd78k2crlzcvvqqx43dj892n9z52z8ia3c36dvk"
+ "commit": "351c4006ddacc2f66e6ff8c79d981613e9a8bd22",
+ "sha256": "1ycjw62wlnkbbanqrz6my6xrfffcs9rnf27ihvmwni5k2carv9p0"
},
"stable": {
"version": [
0,
- 3,
- 4
+ 4,
+ 5
],
- "commit": "32d1df138a9b70530ec7a71dc85aa6e133a6cd95",
- "sha256": "0bcd54pfy6sw95nc344ahpd2m7a7w6x2qf7badda2sil3bk6fcd1"
+ "commit": "bbab9900c7b8cb406da662e4f99064e1a2de729e",
+ "sha256": "0cr32q67ap87b4acbglay0mx9mmpdm7h9byx2q21ad5p5ra1y17w"
}
},
{
@@ -91552,25 +92265,26 @@
"repo": "10sr/recently-el",
"unstable": {
"version": [
- 20200120,
- 1432
+ 20210930,
+ 159
],
"deps": [
"cl-lib"
],
- "commit": "fa8b52fe891a0adaabe0456f6f5a56a2600a831f",
- "sha256": "0y0msmfwsrbsd59jhj9dh3vz49f2g0ykyp34c2i8l8vz5vkac3lp"
+ "commit": "94b31f6bf1dab6af942948fec975e37424938a62",
+ "sha256": "06kx2aykxzj60axsxjvqx2j8z3p19k47i0prbqfg78cjgv7fdwy6"
},
"stable": {
"version": [
0,
- 1
+ 2,
+ 0
],
"deps": [
"cl-lib"
],
- "commit": "3a331936ba33875d0f2fa47abe056aadbc59150e",
- "sha256": "0hdsv3whr2iqk6xirmfcjpbqjnckzqj54n5q04gh2z01bjxv3d7k"
+ "commit": "94b31f6bf1dab6af942948fec975e37424938a62",
+ "sha256": "06kx2aykxzj60axsxjvqx2j8z3p19k47i0prbqfg78cjgv7fdwy6"
}
},
{
@@ -91600,11 +92314,11 @@
"repo": "ideasman42/emacs-recomplete",
"unstable": {
"version": [
- 20210418,
- 925
+ 20211104,
+ 51
],
- "commit": "ef800da3ff3112baa71ad20e84c752f7a56c90b9",
- "sha256": "18m8djkbyykb6cxqayl2v3ap206jkng3w8ah6qr4bixqynkx4yg1"
+ "commit": "7288211d9dd5bae411cc697f7782dc3e01ac0b04",
+ "sha256": "038wzg76spaqd6a766l9vr1lx1plkhbai7srbdasr0r7a464c746"
}
},
{
@@ -91691,11 +92405,19 @@
"repo": "minad/recursion-indicator",
"unstable": {
"version": [
- 20201219,
- 1739
+ 20211017,
+ 1727
],
- "commit": "348030d5d65524b4f6a2dfad1d53f2ca92dbd49c",
- "sha256": "1h96qy2741vsnrsnq5klxf2swm2kib7lfr3ni1rwsygib10hkqb5"
+ "commit": "5d98022dee5a5ba3343f1c26e28febc2f095912c",
+ "sha256": "1ksd8p98z5w7kaahwalsmxdb9zvyb1kcr32mcsjqbnxxzagld880"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "5d98022dee5a5ba3343f1c26e28febc2f095912c",
+ "sha256": "1ksd8p98z5w7kaahwalsmxdb9zvyb1kcr32mcsjqbnxxzagld880"
}
},
{
@@ -92353,14 +93075,14 @@
},
{
"ename": "req-package",
- "commit": "aa5bc1909f807ec03ad441d78013ba8626cd410a",
- "sha256": "1zjhc6f9qcb3j72k1llp6vym25lxnvq1jgqgmnrjxxwc4fhxx595",
- "fetcher": "gitlab",
+ "commit": "9bb31fb6eeb41a19b33a9edb86d8a0bd6c962042",
+ "sha256": "1dg670cp7gfb5w0lvyfk3f8b1ch104wd5ld12y568q4i5wkzhfcp",
+ "fetcher": "github",
"repo": "edvorg/req-package",
"unstable": {
"version": [
- 20180122,
- 500
+ 20180605,
+ 1141
],
"deps": [
"dash",
@@ -92368,8 +93090,8 @@
"log4e",
"use-package"
],
- "commit": "0c0ac7451149dac6bfda2adfe959d1df1c273de6",
- "sha256": "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84"
+ "commit": "a77da72931914ac5f3f64dc61fe9dc3522b2817e",
+ "sha256": "1z27s6f66922jm2nwl3kqwbhdq398d2y6s1sqm2l4f8xmijv2jyq"
},
"stable": {
"version": [
@@ -92397,8 +93119,8 @@
20210816,
200
],
- "commit": "2b68b3ca543f1dfbebb43a44f20601c3947bd729",
- "sha256": "0b8h93jac2rn0zpm50zmjdz0klhhvhyw1apgpngvzfvq4agx457s"
+ "commit": "68003b3f859724de621d0e5a8b0aae51ce708d1e",
+ "sha256": "1xqxrr2law67zm68gxylxrhivashzl8prq21kl01hs4a4q87slja"
},
"stable": {
"version": [
@@ -92425,8 +93147,8 @@
"deferred",
"request"
],
- "commit": "2b68b3ca543f1dfbebb43a44f20601c3947bd729",
- "sha256": "0b8h93jac2rn0zpm50zmjdz0klhhvhyw1apgpngvzfvq4agx457s"
+ "commit": "68003b3f859724de621d0e5a8b0aae51ce708d1e",
+ "sha256": "1xqxrr2law67zm68gxylxrhivashzl8prq21kl01hs4a4q87slja"
},
"stable": {
"version": [
@@ -92569,11 +93291,11 @@
"repo": "pashky/restclient.el",
"unstable": {
"version": [
- 20210813,
- 841
+ 20210923,
+ 2234
],
- "commit": "176d9cb6552f04d98c33e29fc673862bdf3bca03",
- "sha256": "108znxclz80rgymx1kmw107afay6sr0042yfyy207b5ki36vghl1"
+ "commit": "94d2e8421fa14d0e3307d70e1d1e2db9d43b2f95",
+ "sha256": "0c9z6316pdi30w63a4zqn3b84ciqgxfi7mal6rd3micxg6qpv27c"
}
},
{
@@ -92591,8 +93313,8 @@
"helm",
"restclient"
],
- "commit": "176d9cb6552f04d98c33e29fc673862bdf3bca03",
- "sha256": "108znxclz80rgymx1kmw107afay6sr0042yfyy207b5ki36vghl1"
+ "commit": "94d2e8421fa14d0e3307d70e1d1e2db9d43b2f95",
+ "sha256": "0c9z6316pdi30w63a4zqn3b84ciqgxfi7mal6rd3micxg6qpv27c"
}
},
{
@@ -92677,8 +93399,8 @@
"f",
"s"
],
- "commit": "eaf177324482d0eadf0e97a892a156c2d503f245",
- "sha256": "18krcfbjvm9g67846dn3q7a2y4z3figirk3pvdsdb0fv425j11zr"
+ "commit": "c894fc46e5846ecb47ab9a456fadb548cc7359a6",
+ "sha256": "13v6qpxwcsxm12754n4i8s68bp6q2lg9c7bw1g8asa69bvwh2yfk"
},
"stable": {
"version": [
@@ -92726,11 +93448,14 @@
"repo": "a13/reverse-im.el",
"unstable": {
"version": [
- 20200520,
- 853
+ 20211005,
+ 2158
],
- "commit": "2db53105f2f8ee533df903b7482e571e28ce3c7b",
- "sha256": "19mjwk24nwhwn0ylr7m2f9vbyf91ksicznxj1w41jp5slh5h7pr0"
+ "deps": [
+ "seq"
+ ],
+ "commit": "380cce8deb1ea7ad79a8b1aaec4a753bd300b6fa",
+ "sha256": "039y306py7fb3pn4nhlq2mb7rznd6kv2m9bfpd7hbxpfysj7kmi5"
},
"stable": {
"version": [
@@ -92773,11 +93498,11 @@
"repo": "ideasman42/emacs-revert-buffer-all",
"unstable": {
"version": [
- 20210322,
- 159
+ 20211004,
+ 1321
],
- "commit": "14efdbf24ebe0d743ccb3f0d43acae98939c94fd",
- "sha256": "1kimlfq98a8gym0kb6z8b5mys0gsqz8iywnxrbh5s3ck6s911dn7"
+ "commit": "947f2471acaf1b9d5162f8a886aed6a211dd8fca",
+ "sha256": "19nmz7nw8v2i395wzyva96y5sm5z6h01jh1fl6n9dpavq12s934a"
}
},
{
@@ -92845,15 +93570,15 @@
"repo": "dajva/rg.el",
"unstable": {
"version": [
- 20210625,
- 939
+ 20210912,
+ 1227
],
"deps": [
"transient",
"wgrep"
],
- "commit": "0fa6d33d2f3123aecd0b0dbc5fa3d884edf10a92",
- "sha256": "17f11znjyfnxs5y0zafcx9aa055wkw3igzk9gy0cipnyp42yb4v7"
+ "commit": "fa7293df75e1a3f2fb26add6bc96058000e6fbe3",
+ "sha256": "0a9xhfs1knxxqilpbpw3li8vipg248nqhpqq5d6sqqn7gfz4zmjb"
},
"stable": {
"version": [
@@ -93025,8 +93750,8 @@
"repo": "DogLooksGood/emacs-rime",
"unstable": {
"version": [
- 20210723,
- 1236
+ 20211014,
+ 548
],
"deps": [
"cl-lib",
@@ -93034,8 +93759,8 @@
"popup",
"posframe"
],
- "commit": "1d9bcc6dad4182e9b6a5839f8261b260e57be2fc",
- "sha256": "157hndsslfxyi4n927y67shnk2xwhwz0idxwkdhcd4zl9jjzwpqr"
+ "commit": "b296856c21d32e700005110328fb6a1d48dcbf8d",
+ "sha256": "1x3v18hwxj56zhn4437nklyni4d3chk84c82a8y1z1flcayjipvy"
},
"stable": {
"version": [
@@ -93225,11 +93950,11 @@
"repo": "jgkamat/rmsbolt",
"unstable": {
"version": [
- 20210824,
- 110
+ 20210920,
+ 1617
],
- "commit": "9b1a5abbdf461e6d4bfee50f71e3c85d00da1c0c",
- "sha256": "1lmddhaabxq8kzyb54d944xwmdkcb9a6s4gi5wn3dp7sld7yvn4a"
+ "commit": "54bdd5090e0e3ae907d3f9075eb3a3fab0ba497a",
+ "sha256": "0i11kmqnbb201x9gmai279lni7csgq6isi1klpzch2c6y6pw01n0"
}
},
{
@@ -93240,14 +93965,14 @@
"repo": "dgutov/robe",
"unstable": {
"version": [
- 20210818,
- 2338
+ 20210906,
+ 2250
],
"deps": [
"inf-ruby"
],
- "commit": "9e3805c5c7fadcba0da31a59985a8daeeb8a7b0d",
- "sha256": "1bmp317cacl5hmmr5rm7jimxw4k0ggrz80c0vfygb5fx02s5jy0w"
+ "commit": "fd972e912d0c6c310acb2d057da1be1149937d0e",
+ "sha256": "015mciv5d9dap7h0gnjm93fr4jx46dsm1rkp84x8kflmw747g1yk"
},
"stable": {
"version": [
@@ -93479,6 +94204,24 @@
"sha256": "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp"
}
},
+ {
+ "ename": "rsync-mode",
+ "commit": "3571304cfc14998f72c39067dfbbe879721332d3",
+ "sha256": "10mqm2dmmpl9sz8r5x9qzipbbj8smk40iim2ai2xb9y11854i6wk",
+ "fetcher": "github",
+ "repo": "r-zip/rsync-mode",
+ "unstable": {
+ "version": [
+ 20210911,
+ 0
+ ],
+ "deps": [
+ "spinner"
+ ],
+ "commit": "2bc76aa8c2d82bb08ef70e23813a653d66bf3195",
+ "sha256": "0yy0d5pwy61ybrpblljk4z9qwyii0jcgxgv1y6sckai2qr5dia2x"
+ }
+ },
{
"ename": "rtags",
"commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
@@ -93490,8 +94233,8 @@
20210313,
1541
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -93516,8 +94259,8 @@
"deps": [
"rtags"
],
- "commit": "3a057f127b931c683288f8731f05ba5e2aab4133",
- "sha256": "1brf05grh0xdcjllaiixpjxmcg2j130gcrxkqm5v4ryb1w9fki7g"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -93912,11 +94655,11 @@
"repo": "ideasman42/emacs-run-stuff",
"unstable": {
"version": [
- 20210522,
- 243
+ 20211007,
+ 304
],
- "commit": "767eea8928b92da032aca7c8a429b1cced46781d",
- "sha256": "0pdjhvma0hsd8slz240bavpyzvn9mdna7lsrd1ddw3nf8xjibczq"
+ "commit": "db66c1ca0f6a090f8c9ae17f80f99c878047778e",
+ "sha256": "1kfnk3pa3p50nfylhxhcngxa4n8ilqwna1k179w4abmnsm0r4xz8"
}
},
{
@@ -94003,20 +94746,20 @@
"repo": "rust-lang/rust-mode",
"unstable": {
"version": [
- 20210423,
- 1157
+ 20211029,
+ 1133
],
- "commit": "494d59f92cbe12533eb89b202fc4f5342afcd543",
- "sha256": "1g9hch2h3lqdx7ffabikl2ss98akhfpw5las6g5qwyj1l2lcrjbr"
+ "commit": "3b81e81097463e7161de047ad340e4fe572dcc2a",
+ "sha256": "0i05hhfdqg4p4f7l0ylqcw4b0wj9ni3s412d1fp04lpminb74sv3"
},
"stable": {
"version": [
+ 1,
0,
- 5,
- 0
+ 1
],
- "commit": "00177f542976601d7f114fed82caaa3daad7b177",
- "sha256": "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"
+ "commit": "d2b4cde98b660efd746d8853cf8ac04e4570e047",
+ "sha256": "1chb3a97cwf1pkxn8cm3wc35gfh9k55l7khg7pklmx36isr3csjv"
}
},
{
@@ -94050,8 +94793,8 @@
"repo": "brotzeit/rustic",
"unstable": {
"version": [
- 20210830,
- 1944
+ 20211103,
+ 1558
],
"deps": [
"dash",
@@ -94059,13 +94802,34 @@
"let-alist",
"markdown-mode",
"project",
+ "rust-mode",
"s",
"seq",
"spinner",
"xterm-color"
],
- "commit": "804ebfe0295a6bf37870e06f84a8d35f55c9f1a6",
- "sha256": "0ya7l8yfbax74lrwvcr3lxaffb238m3yk8y37msvsk1pvwcjfkr7"
+ "commit": "fc2b1057ad848521a28631f049a1d95d7f088ad8",
+ "sha256": "1zj254rvizlzh96fvpxa1fkw86i0n5h2fv9zr75q9ysj1qrh31yg"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "let-alist",
+ "markdown-mode",
+ "project",
+ "rust-mode",
+ "s",
+ "seq",
+ "spinner",
+ "xterm-color"
+ ],
+ "commit": "ac0cb72de118b143d9a24584073550a7ab5ef9fe",
+ "sha256": "1x06lp0c656zm07n28lnkqp678y4f9zkd9n5m0lramndllrpk3x2"
}
},
{
@@ -94503,8 +95267,8 @@
"deps": [
"cider"
],
- "commit": "c813d94ee8d0a85dd33d0c5dbae832c24cf37e4f",
- "sha256": "0r0c6h7nikb4181a06bs88sqnqa68jw2f550q2zz34khl7zpr2s6"
+ "commit": "614d44b4abb49d0cc3fdd40580d30b9d572d34b2",
+ "sha256": "03wh1kr9yhcagympbd7h3qgrs7qlycd68b0a6nswva48hdc4ay89"
},
"stable": {
"version": [
@@ -94554,8 +95318,8 @@
20200830,
301
],
- "commit": "f673cf6ab9d13e376d5c71230a693a6b88730e76",
- "sha256": "0paflmwafmhk2lcsh74vixids7xkmgacnzn0pm1i7jhkp3a4mn1d"
+ "commit": "caadce26d0e6ed7039e7ba76ad05397aaa5a17f4",
+ "sha256": "02pwqgl0k7xq08rnz74xgha4w226qsds576z1kr106d3gz7mhscv"
}
},
{
@@ -94681,11 +95445,11 @@
"repo": "emacs-pe/scihub.el",
"unstable": {
"version": [
- 20201009,
+ 20211020,
420
],
- "commit": "4f8852dc675fcf3d20ae6e945f4579890ed81de5",
- "sha256": "1hgial1zp4i3m2bahy3hz5f8fkj87m1nc3xccavzgcpxrkkbksx6"
+ "commit": "d96c462e7f340f142ce3c5ffd31fa267223fd854",
+ "sha256": "0w8xlnpawkq580gc6cvxzln29x9v5g05ab7i8wwg1r5jhw9bjvgs"
}
},
{
@@ -94938,11 +95702,11 @@
"repo": "ideasman42/emacs-scroll-on-drag",
"unstable": {
"version": [
- 20210418,
- 1318
+ 20211104,
+ 259
],
- "commit": "157637ba6b6cbe7a21c57f9eefb8a94fffa0085e",
- "sha256": "195ckjmh65z4qg1afs5acz66r6xvc2g91mfnncz12kv7p8bxwrxx"
+ "commit": "8962f5f8a79c9178a577732ddfbb333a101bc7fc",
+ "sha256": "157affz6jsar9gnj5nj8ks8zl3dyrwzq4j1g0njvcs4vpz5zf4p9"
}
},
{
@@ -94953,11 +95717,11 @@
"repo": "ideasman42/emacs-scroll-on-jump",
"unstable": {
"version": [
- 20210426,
- 1226
+ 20211104,
+ 51
],
- "commit": "30dc5f5e50fa702eb65756304f0fe406daec2397",
- "sha256": "02w52rcs8gkf58yig55wn6198b7g6zy6ppp5mjh7k1l07cf2kmay"
+ "commit": "0cf26a15bb6278c4273ee53f6a8d7d790792fc29",
+ "sha256": "0ns1mxbfw5s7mimzqwxbi2sbbs6w60gi7z3l5hmxiv1qwdl0a8p7"
}
},
{
@@ -95144,8 +95908,8 @@
"dash",
"f"
],
- "commit": "46eefd5b3f4a6f24b2f88c8aa18cce0abb32edb1",
- "sha256": "0fi04v84gp74xr84sh7blbc5s93xxb6apsrdh8zlc9dvwkkh5gza"
+ "commit": "137c5791fb5a307192138a6d7c62340253bb4521",
+ "sha256": "0i6k8nlvacnpfq9cj42crs2h6iqgsfnkm73f8dhc8nn9lyz6chf4"
},
"stable": {
"version": [
@@ -95412,8 +96176,8 @@
"prescient",
"selectrum"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -95590,15 +96354,15 @@
"repo": "twlz0ne/separedit.el",
"unstable": {
"version": [
- 20210823,
- 321
+ 20210930,
+ 1319
],
"deps": [
"dash",
"edit-indirect"
],
- "commit": "721ff6abea500d11a23d9c70c522c5010b1939aa",
- "sha256": "0fd8dibzzdp07ljw0qp0z6qflf67bs11ain2h1kv2qsz0scbsc3x"
+ "commit": "62c037e2ab1bfcce79ea3316b2fb70ffff291b3d",
+ "sha256": "0a82mds1l7hnfkifirjq6mp2cdfdfkaxvz6dw4i8sqzygw1dn7dl"
},
"stable": {
"version": [
@@ -95622,11 +96386,11 @@
"repo": "brannala/sequed",
"unstable": {
"version": [
- 20210417,
- 28
+ 20210908,
+ 651
],
- "commit": "b28e20bf3e0ec7c56c705632e38ab842083d9c49",
- "sha256": "09bw3kjr32z8hlhrczl8i3h4yavdcmfx6bk7qxsyhn1f0vmskh03"
+ "commit": "c78ef34da948576290978d876b776c21f8832136",
+ "sha256": "1g11hkh3n74f7asgxjpq8isbvghwd82n6rjpjzcvrrwmkrgkhxam"
}
},
{
@@ -96317,6 +97081,21 @@
"sha256": "1nli26llyfkj1cz2dwn18c5pz1pnpz3866hapfibvdmwrg4z6cax"
}
},
+ {
+ "ename": "shelldon",
+ "commit": "c050177ae10500ecfc0e5d1859dec2d221c2fe99",
+ "sha256": "1v04y2nxyznymqflfqn2glax4pvsgg01grg1gzzgmjjdflxsmxq3",
+ "fetcher": "github",
+ "repo": "Overdr0ne/shelldon",
+ "unstable": {
+ "version": [
+ 20211024,
+ 2053
+ ],
+ "commit": "232a52eb5d7a9c3ca9f5983140578ddd86ba33a1",
+ "sha256": "0cz6d2msa3dxabbrd9vsm49s4g4f1a1cqi2bmzi96l327kbkzbqy"
+ }
+ },
{
"ename": "shelltest-mode",
"commit": "af6dcd4fc0663a255bd85b247bbdf57d425efdb7",
@@ -96363,6 +97142,30 @@
"sha256": "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2"
}
},
+ {
+ "ename": "shenshou",
+ "commit": "8c4760dcd5eeb18604676989e460cfe84af1c39a",
+ "sha256": "0c7livcm6srj6ll9ibk0im6fxfjk74yi9x2mv5x02d2fzbqmy7m4",
+ "fetcher": "github",
+ "repo": "redguardtoo/shenshou",
+ "unstable": {
+ "version": [
+ 20211103,
+ 1010
+ ],
+ "commit": "8e12d366ca371fc259294485047a431a7c610605",
+ "sha256": "09w57wq9mw3yjklxsqm87xl2q229qwqp48ssxlp5xpwhwljgwd2j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "8e12d366ca371fc259294485047a431a7c610605",
+ "sha256": "09w57wq9mw3yjklxsqm87xl2q229qwqp48ssxlp5xpwhwljgwd2j"
+ }
+ },
{
"ename": "shfmt",
"commit": "a20dde08de1a7cd70739a791e1ae321e8f152685",
@@ -96442,11 +97245,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20210825,
- 707
+ 20211029,
+ 150
],
- "commit": "ef34cf7f806a726a53fcffa183280a325defbc54",
- "sha256": "0mga7i1n0s4m2iqqyw7lg0qcdhcfvvfrg3rwqgds3ssmvf096lz6"
+ "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
+ "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
}
},
{
@@ -96521,8 +97324,8 @@
20210715,
1227
],
- "commit": "28dc1d6faf21efbc49436b4458821a2d46e38ffe",
- "sha256": "002vyik2nyqcvrf6d0qfbxc9bs95bc74crmyn9havlr50bw52wlc"
+ "commit": "83b9465a3081436df69afc03f9a4f1debdf57882",
+ "sha256": "1qy7ld64qcj4i8c0v6ddp88287gkm2rn6s696bwfgch7ddviya0q"
},
"stable": {
"version": [
@@ -96895,11 +97698,11 @@
"repo": "ideasman42/emacs-sidecar-locals",
"unstable": {
"version": [
- 20210829,
- 2323
+ 20211006,
+ 1413
],
- "commit": "bc41cab4b1765e48096006465c95f62f66fcaf2b",
- "sha256": "18i7c0knhl8gvwr1hhlnnfl08sh9h48f7vl31cw8jrx817kzgf2y"
+ "commit": "ee6b399ebda994b9ea6db095947386e3b7f063f7",
+ "sha256": "0avinj829gm7hbxljk8kys2abywrzw5w3li2kp0dwbda1gf8832c"
}
},
{
@@ -97114,8 +97917,8 @@
"deps": [
"cl-lib"
],
- "commit": "2281065d00ff8f78a03c1a66fc168fdb198f3d89",
- "sha256": "19x12bw75sizc8b04i930zv5f5jypvmhw45frb0z79m7rw41pbs4"
+ "commit": "7eec13672c2b6d0226d56de8b8b1e12a1f78aa57",
+ "sha256": "03mxy2f4i8pjmb1d9s6llaa4pmzrsigxaf1srfdwzc8ccaj1qi5n"
}
},
{
@@ -97259,14 +98062,14 @@
"repo": "laishulu/emacs-smart-input-source",
"unstable": {
"version": [
- 20201223,
- 547
+ 20211016,
+ 1144
],
"deps": [
"terminal-focus-reporting"
],
- "commit": "f2d4031711714b100ec81aac321917c40cf20dc9",
- "sha256": "1b3nav38g95iasm1shsmw2xbw2jkgf1djddaknywcff129faqb9f"
+ "commit": "237fb7029fde7c16a24d2231754d95190c1f03cd",
+ "sha256": "18fnvr7a6zai2nxnv8sq42lgwgfig6ygfkyvcnzn04x7yw7wigxg"
}
},
{
@@ -97315,11 +98118,11 @@
"repo": "dawranliou/sketch-themes",
"unstable": {
"version": [
- 20210826,
- 1816
+ 20211022,
+ 1915
],
- "commit": "50fd9fe9caf24f42dc481560e1f41addc3a06dbb",
- "sha256": "0j26a9q271cd8b6vcxs6iyn3a3xz210lgyszxb39715x8lvwhvvy"
+ "commit": "8083d2b3e7834c7e4531a6a7882ffa4058aee4c3",
+ "sha256": "0axdrscidpxr4zj88xj53zjfhd5jxbmsg4la4kwsk4krkywp6fm1"
},
"stable": {
"version": [
@@ -97534,15 +98337,15 @@
"repo": "slime/slime",
"unstable": {
"version": [
- 20210802,
- 2231
+ 20211021,
+ 807
],
"deps": [
"cl-lib",
"macrostep"
],
- "commit": "8aa055b9ad4a8b5f1b24ff29c9c7009e9475ee2c",
- "sha256": "126ji049i5s8dikzyccj12vsqy31qy32g4rns7zx0szqqjiwzin6"
+ "commit": "1378aa718781ec6d359845f0116e12865261b2ca",
+ "sha256": "0h0bqmvwnddqj0b18kcmn990mmngpnq118h28w28lzr65aa33m2r"
},
"stable": {
"version": [
@@ -97700,11 +98503,11 @@
"repo": "Fuco1/slovak-holidays",
"unstable": {
"version": [
- 20200919,
- 1345
+ 20211018,
+ 1754
],
- "commit": "4c6f635a2153ecb8f76d566d40ccb9d7b1d5fdc7",
- "sha256": "05gjpmqxbbppxl2yag1c7shdld22grxqax4kinjs6ydkbd5mv5ai"
+ "commit": "bedd26dd45ca497c0028a11e94a905560fcdb2f1",
+ "sha256": "1g7g0kc36017scyi598x20p45qrj5zjczz2ma2gmlgkj33h3bygl"
}
},
{
@@ -98014,11 +98817,11 @@
"repo": "hrehfeld/emacs-smart-hungry-delete",
"unstable": {
"version": [
- 20170412,
- 1343
+ 20211020,
+ 1822
],
- "commit": "7c1d56a92481594e14d40b5fdf6c48657a0108a0",
- "sha256": "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"
+ "commit": "78acd1f16fb99b66a6c9bd605a988c3c74280577",
+ "sha256": "0c4yrnngq1m5nwis5y26qf0mfp12qnargh7s4hd3wm5xl4n5369x"
}
},
{
@@ -98074,25 +98877,25 @@
"repo": "Malabarba/smart-mode-line",
"unstable": {
"version": [
- 20210428,
- 1641
+ 20211005,
+ 233
],
"deps": [
"rich-minority"
],
- "commit": "744ee1a9479a7901cedd6f0d59e6c6c86b20a78d",
- "sha256": "18bf6f5yd8gympf5z8fs904qnjjdijapxpincjbpiyb2429yb34a"
+ "commit": "abcb0ab6f7110a03d6c7428bae67cf8731496433",
+ "sha256": "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"
},
"stable": {
"version": [
2,
- 13
+ 14
],
"deps": [
"rich-minority"
],
- "commit": "9a6d821e0c78361ab35c6e403fc582b76558a1a7",
- "sha256": "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"
+ "commit": "abcb0ab6f7110a03d6c7428bae67cf8731496433",
+ "sha256": "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"
}
},
{
@@ -98128,20 +98931,20 @@
"powerline",
"smart-mode-line"
],
- "commit": "744ee1a9479a7901cedd6f0d59e6c6c86b20a78d",
- "sha256": "18bf6f5yd8gympf5z8fs904qnjjdijapxpincjbpiyb2429yb34a"
+ "commit": "abcb0ab6f7110a03d6c7428bae67cf8731496433",
+ "sha256": "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"
},
"stable": {
"version": [
2,
- 13
+ 14
],
"deps": [
"powerline",
"smart-mode-line"
],
- "commit": "9a6d821e0c78361ab35c6e403fc582b76558a1a7",
- "sha256": "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"
+ "commit": "abcb0ab6f7110a03d6c7428bae67cf8731496433",
+ "sha256": "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"
}
},
{
@@ -98190,8 +98993,8 @@
20200909,
1412
],
- "commit": "dd52a3e1a7b043fb88f799827c7b3e39f60a14f1",
- "sha256": "109iygijidw2wljc9i151zh4r0n6ivrakb2p4zdy9cml7dwk3lzk"
+ "commit": "2c140accd576062f69dbe7db1d43ba038b347b9b",
+ "sha256": "135vpzcazb16l99bdw2wnkjq0ysbdyws83w59ksapq5sq7gl9ll7"
},
"stable": {
"version": [
@@ -98282,15 +99085,15 @@
"repo": "Fuco1/smartparens",
"unstable": {
"version": [
- 20210904,
- 1621
+ 20211101,
+ 1101
],
"deps": [
"cl-lib",
"dash"
],
- "commit": "2834c66c4f09778d0c57e99886c329188eed591a",
- "sha256": "0zy5jamid6qkx8rml9ccqv85f2sr10j1rp3j77acggkf6zf3c096"
+ "commit": "f59a40d54f35299007c396bd667ce3e9ec4714e3",
+ "sha256": "0n0c2knva2c6ajdhqglr2yzhr53sgqr4bscsd1lwmwajgb0iyrw3"
},
"stable": {
"version": [
@@ -98418,8 +99221,8 @@
20200323,
533
],
- "commit": "0cfe0ff083d55bb90c6dfaf1dc930500099c4d5c",
- "sha256": "0vz4fnni2qjghmy040m37xw1p5rlmjljgmzvwrz3gh896kwk48b5"
+ "commit": "afe34e7e3ce811d44880bca11f9fe1e3d91e272f",
+ "sha256": "1yy2lqvn67dr6jhbyqv3zd93rmpw7bggklb1hbhp8spagflvj6li"
},
"stable": {
"version": [
@@ -98889,6 +99692,36 @@
"sha256": "1y1z4lyv1b56sfimfpxzix5zww97hbci8a9q4cphx65hwkgbfa0d"
}
},
+ {
+ "ename": "soccer",
+ "commit": "5111fad0a1dfc8b1e2254ace7907e5ce1be038ca",
+ "sha256": "1gzfqfgzfwkj85mxzrz83i13v6jrqldcbzcwfcz6bg49agh244bk",
+ "fetcher": "github",
+ "repo": "md-arif-shaikh/soccer",
+ "unstable": {
+ "version": [
+ 20211023,
+ 827
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d59b7196a62edb0e72eef52772eec42cab8baa45",
+ "sha256": "1hdp7lcr7pdary7qssf2na6a3n0ycijbx3z0ggk37gxzvz59jiv4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d59b7196a62edb0e72eef52772eec42cab8baa45",
+ "sha256": "1hdp7lcr7pdary7qssf2na6a3n0ycijbx3z0ggk37gxzvz59jiv4"
+ }
+ },
{
"ename": "socyl",
"commit": "774b3006f5b6b781594257f1d9819068becbbcc1",
@@ -98978,26 +99811,26 @@
"repo": "hlissner/emacs-solaire-mode",
"unstable": {
"version": [
- 20210711,
- 2145
+ 20210927,
+ 1622
],
"deps": [
"cl-lib"
],
- "commit": "030964f7c62696c8cfb29125df6e7649d2bf9aeb",
- "sha256": "01c1lkr21y0cd6gixzd38mql89k70jn049jr0xhazgz16cnw1g7j"
+ "commit": "46408f4a105e216c3c2d88659b8b28601d37d80e",
+ "sha256": "0wq5ckwx3wv4c4l8f9hz3ak6v5wy4lg5yh8xlsgn1h1x6yf8afpp"
},
"stable": {
"version": [
2,
0,
- 2
+ 3
],
"deps": [
"cl-lib"
],
- "commit": "030964f7c62696c8cfb29125df6e7649d2bf9aeb",
- "sha256": "01c1lkr21y0cd6gixzd38mql89k70jn049jr0xhazgz16cnw1g7j"
+ "commit": "46408f4a105e216c3c2d88659b8b28601d37d80e",
+ "sha256": "0wq5ckwx3wv4c4l8f9hz3ak6v5wy4lg5yh8xlsgn1h1x6yf8afpp"
}
},
{
@@ -99044,8 +99877,8 @@
"flycheck",
"solidity-mode"
],
- "commit": "6f7bd1641e5282ec5163188d8b8c2f6dfddc2e36",
- "sha256": "0rkw21pic9nypv7vz06chyn9mjl560a4dayb84gj5w6v8gfznrcw"
+ "commit": "9c77b390eab999e5e54dc5c1068f57201e6628bf",
+ "sha256": "0i6kjvd82bq3djh4makf4czdbmg3sb5q74wbdfhdyikx6kkzfj0m"
},
"stable": {
"version": [
@@ -99069,11 +99902,11 @@
"repo": "ethereum/emacs-solidity",
"unstable": {
"version": [
- 20210717,
- 844
+ 20211004,
+ 1910
],
- "commit": "6f7bd1641e5282ec5163188d8b8c2f6dfddc2e36",
- "sha256": "0rkw21pic9nypv7vz06chyn9mjl560a4dayb84gj5w6v8gfznrcw"
+ "commit": "9c77b390eab999e5e54dc5c1068f57201e6628bf",
+ "sha256": "0i6kjvd82bq3djh4makf4czdbmg3sb5q74wbdfhdyikx6kkzfj0m"
},
"stable": {
"version": [
@@ -99093,20 +99926,20 @@
"repo": "cstby/solo-jazz-emacs-theme",
"unstable": {
"version": [
- 20201106,
- 1640
+ 20210924,
+ 7
],
- "commit": "3a2d1a0b404ba7c765526a1b76e0f1148ed8d0f2",
- "sha256": "00fs6ylz29p7fsqvc7jgdbbsakkkvf27w3cxg0rlja87m7628khs"
+ "commit": "f7b9ff800cef2c17ecaad9556fca2bfd4b6cc13d",
+ "sha256": "109r3fsxl1m7cf95h264ncnz91dmlhq6i15lavvg4j7fj3rmh768"
},
"stable": {
"version": [
0,
- 6,
+ 7,
0
],
- "commit": "16a943f8ea86e0dbf737a8c1e779b3002e6e140b",
- "sha256": "0crfnpxh32lg2f3crv92j81ylc0h15hkhgbyg708wzlv2bjrxibh"
+ "commit": "82e9ab129d9c2949a4d91b81c2235295a8d83cd9",
+ "sha256": "0v3zhjx685ppngb01pd1p2iplafwvy9j60z1hgdrixdm2pji3f8d"
}
},
{
@@ -99191,11 +100024,11 @@
"repo": "mssola/soria",
"unstable": {
"version": [
- 20210813,
- 912
+ 20211025,
+ 1535
],
- "commit": "cc225f51ea724d8767f97249d8c6b3fc5182d331",
- "sha256": "0k73skf3wmfzbiv6lfb7dlyb6icsk36q0sfz4zwq2fpr4s3qzp73"
+ "commit": "a111e7169405778d95f7a1e61a7d197ca1217edf",
+ "sha256": "130sz27mq3w0svv114qnwqjdbvrnljprab7v0acp5zwj9gqgwkk5"
},
"stable": {
"version": [
@@ -99569,11 +100402,11 @@
"repo": "nashamri/spacemacs-theme",
"unstable": {
"version": [
- 20210706,
- 1210
+ 20210924,
+ 1220
],
- "commit": "dfe06629f8211ccd9933fc0d457019401ecbe594",
- "sha256": "1apa6bp3lxs6jia37k079yd3qx79wclzh02bf66xpsqkwc2xg5fr"
+ "commit": "e5ed346b9c31f0b43eb359614efd9aa439e1d18d",
+ "sha256": "1d9554sbyg7y2a07dn2v4y8wms60kr1lpdgy4mq7wgm5kxzi8v85"
}
},
{
@@ -99599,11 +100432,11 @@
"repo": "alvinfrancis/spark",
"unstable": {
"version": [
- 20160415,
- 201
+ 20211021,
+ 1832
],
- "commit": "0bf148c3ede3b31d56fd75f347cdd0b0eae60025",
- "sha256": "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"
+ "commit": "c9af24a169b1f1aeba175f1f8d51abda113639af",
+ "sha256": "0ap9xq77i7a3cbrz6xiydkzj5k0866jinfnpfa2551r93x06rdh1"
}
},
{
@@ -99674,11 +100507,11 @@
"repo": "ideasman42/emacs-spatial-navigate",
"unstable": {
"version": [
- 20201115,
- 1006
+ 20211007,
+ 307
],
- "commit": "03bf203854f80b6a98a8098e4aed08f585cb1d71",
- "sha256": "186qn9zbj4izvkhqwygv65rcx050wvi849ffmdw5l7bizd0m0zr6"
+ "commit": "03bc1255dfaa87fb6cb62a850877445bd7a14455",
+ "sha256": "0xyyc89205qc3i9q96jp1in3y3ravcfia9pc5s2smam01kqvipld"
}
},
{
@@ -99689,11 +100522,11 @@
"repo": "condy0919/spdx.el",
"unstable": {
"version": [
- 20210810,
- 1723
+ 20211003,
+ 611
],
- "commit": "1a623ea518c4fa7af37181eb15b8afd6197e3d93",
- "sha256": "05cln85y978sv5fg9mqir14wz3ksyxxcxly8kp1a32mmkj5j1bvi"
+ "commit": "67e276ad37a0cf3754798b436e54792816a6d3f2",
+ "sha256": "02vflf5j1g4f81xywfr9vi5bb3raxpp1az650qin90g8irkjhy4z"
}
},
{
@@ -99820,11 +100653,11 @@
"repo": "ideasman42/emacs-spell-fu",
"unstable": {
"version": [
- 20210814,
- 748
+ 20211103,
+ 328
],
- "commit": "10823ae58f88874aff2a6a35f2da75c8503e726e",
- "sha256": "0s7d1fgjk6cc27y37qlqfcjrrpqa0fxagr92qxzcn0mp2lb7pnhc"
+ "commit": "1159eeec13acbba5ecfc24aa8f6aa620c1274d17",
+ "sha256": "1fm40dkh0albrw2cv6wkkgssp4aka2gamxczkgnvwa4ifkf7p3i0"
}
},
{
@@ -99883,24 +100716,28 @@
"repo": "Fuco1/sphinx-mode",
"unstable": {
"version": [
- 20180620,
- 915
+ 20211021,
+ 1444
],
"deps": [
"dash",
"f"
],
- "commit": "b5ac514e213459dcc57184086f10b5b6be3cecd8",
- "sha256": "06r50n159g18fi03xyxzkv7zr6cvs29ly1yyrmyjl9m6dn97m9mc"
+ "commit": "9d4075c106fc837006394c4c803281383f2ec6f3",
+ "sha256": "0ngc0b4z0s25l85wk3b4f3ipxnzxl4caiava9kb6jsci0ylap98a"
},
"stable": {
"version": [
- 0,
1,
- 1
+ 0,
+ 0
],
- "commit": "3d6e3059350593dc077f06f54c33869b9e28f7bc",
- "sha256": "0l3a8swmf3sm54ayk2ahh1i5j1hf0hd822dfmx50kgwi4wpv48sp"
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "9d4075c106fc837006394c4c803281383f2ec6f3",
+ "sha256": "0ngc0b4z0s25l85wk3b4f3ipxnzxl4caiava9kb6jsci0ylap98a"
}
},
{
@@ -99920,10 +100757,10 @@
},
{
"ename": "spiral",
- "commit": "35763febad20f29320d459394f810668db6c3353",
- "sha256": "074ymaksb3dgrsrdsi6xdlvigki5l2v66r8204xv50yc88z7l8qr",
+ "commit": "f454d98d219785c98dc9b17cf062ef22fece480d",
+ "sha256": "01jvrgc8wd308r3hwwn08dpyrank17353ybmabvzc90vzc1n0kcd",
"fetcher": "github",
- "repo": "Unrepl/spiral",
+ "repo": "volrath/spiral",
"unstable": {
"version": [
20180223,
@@ -100525,11 +101362,11 @@
"repo": "jhgorrell/ssh-config-mode-el",
"unstable": {
"version": [
- 20210724,
- 951
+ 20211003,
+ 2330
],
- "commit": "2642659aa4cb882d95d84f780e8f8bf5e3a9114b",
- "sha256": "1fivfpadw14cw9f78jpjhn7zl1b9sh3jhh7g8lh7f62kjv2p0a9m"
+ "commit": "d560a0876a93ad4130baf33dae1b9405ad37a405",
+ "sha256": "13wpi70ys43nx0mqiyn9fssf1iccq63wwcy3a6cylm3shlv13dz8"
}
},
{
@@ -100836,16 +101673,16 @@
20200606,
1308
],
- "commit": "ed1651792509ddbd1e139a884d26e6cd818160cb",
- "sha256": "1kk5f1i3dl86svvnl845ya2vgc0xhhfp1lgns2bl6glpf5qy8bxb"
+ "commit": "16a65055f92497b035d866fa4b39d1786c4f4b8c",
+ "sha256": "0dkg4ddj0bjn8drvx49ffb4y6q84r27cbh8dxrwi9ikcwqb61b6w"
},
"stable": {
"version": [
1,
- 1
+ 4
],
- "commit": "68f949852ab7f0e8bb52c6a6fc2ece2a74ded824",
- "sha256": "09d69q9m4k4pwhl2k5r7d7lqd4cj0qf22cys94zjkrsyw5gggd36"
+ "commit": "262b2fc5b533f6f609c43a6f543c9d0d185b8f55",
+ "sha256": "0g0jnry8y858dl3z5w4zd02s0lq9qvha848xb8i1xpsx8xh8plf9"
}
},
{
@@ -100886,11 +101723,11 @@
"repo": "motform/stimmung-themes",
"unstable": {
"version": [
- 20210610,
- 1256
+ 20210920,
+ 1345
],
- "commit": "e69b7532ceb27126fb9516c9a8aff652b032088a",
- "sha256": "1jcqcf34d55r1z786gpkj7jwap646izk498pn2dia7skiwwljx5b"
+ "commit": "caf1c099ee5da59c6686af99c36eb846ebb7a610",
+ "sha256": "112l5g5s71r8krbcx03xgm18v5lm3r4dz10a3qss27s2m6a1y8i5"
}
},
{
@@ -100953,11 +101790,20 @@
"repo": "fosskers/streak",
"unstable": {
"version": [
- 20210901,
- 1646
+ 20211004,
+ 2025
],
- "commit": "ac05a0d74ceaccff15f1f7128fbb976be53db549",
- "sha256": "0wffyf382d2mgs4asfbljvlzz3sr1mrs0analkj1ywqblv0z8xhh"
+ "commit": "32d6e3814df50284466d6d3a69f7f236e3746699",
+ "sha256": "0a3cn9kqkln4nxln78wjzr2zph3aa5y3hp0kxymniqz26dga29cn"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "commit": "61723ebe656bc681fc87ad6d86fb9dfca2b2730a",
+ "sha256": "1vn6a9ss9v85ihhch64nm3w151qhq93105lqsi4444n3armsp5ba"
}
},
{
@@ -101034,20 +101880,20 @@
"repo": "akicho8/string-inflection",
"unstable": {
"version": [
- 20210729,
- 658
+ 20210918,
+ 419
],
- "commit": "73b9a35e80e09ba744f2c364db4291f2d6f0a17a",
- "sha256": "0g4lm384380q03pdspqzv8rb2gppb77m354r0xzw71340w8xh3hd"
+ "commit": "fd7926ac17293e9124b31f706a4e8f38f6a9b855",
+ "sha256": "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"
},
"stable": {
"version": [
1,
0,
- 14
+ 16
],
- "commit": "73b9a35e80e09ba744f2c364db4291f2d6f0a17a",
- "sha256": "0g4lm384380q03pdspqzv8rb2gppb77m354r0xzw71340w8xh3hd"
+ "commit": "fd7926ac17293e9124b31f706a4e8f38f6a9b855",
+ "sha256": "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"
}
},
{
@@ -101118,11 +101964,11 @@
"repo": "stepnem/stripes-el",
"unstable": {
"version": [
- 20200330,
- 2022
+ 20211022,
+ 2144
],
- "commit": "7b1d501f44b697a0514ef6759fd126d65867f18d",
- "sha256": "0mx7l751jiijrjnbn3y6awasjy2c7k4ndgjq5c455vzxrlcbwr25"
+ "commit": "5e7adbd6e19a2d362ba818fdb44ad7744d757df2",
+ "sha256": "0ikhgqwwfbx1zmbx2scvi9cx7wlzwq91pwjydj2vxsg7c03iadd8"
},
"stable": {
"version": [
@@ -101197,14 +102043,11 @@
"repo": "brianc/jade-mode",
"unstable": {
"version": [
- 20150313,
- 1512
+ 20211019,
+ 2113
],
- "deps": [
- "sws-mode"
- ],
- "commit": "4dbde92542fc7ad61df38776980905a4721d642e",
- "sha256": "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1"
+ "commit": "1ad7c51f3c6a6ae64550d9510c5e4e8470014375",
+ "sha256": "1n26jlvf0z7h5yq3w2pzznj43g5xknq1icg68pc0ysqdfm4nq51m"
},
"stable": {
"version": [
@@ -101341,14 +102184,14 @@
"url": "https://git.sr.ht/~amk/subsonic.el",
"unstable": {
"version": [
- 20210902,
- 2047
+ 20211016,
+ 940
],
"deps": [
"transient"
],
- "commit": "5740a2b96c827c499f3ac506f98ec5f9ed31ea37",
- "sha256": "0qr96a86zj6kipix6p831hj0nkcyj3kvaggyy2zsmvhx7wjavadf"
+ "commit": "a070cff3f802796dd0dbab4b2ebfbb9f05c36b0b",
+ "sha256": "12j0czk3hgpkm7sxpabwii67q2gfj97f51akhnysdzrm82yb4p60"
},
"stable": {
"version": [
@@ -101651,11 +102494,11 @@
"repo": "leafOfTree/svelte-mode",
"unstable": {
"version": [
- 20210222,
- 1037
+ 20211016,
+ 652
],
- "commit": "839f579fa881467149e77d0e096a4a4a6c5d9878",
- "sha256": "18hhl6x3xg5lykfq01iw2p03lj248x7rqaygq8nj64hbw46nzn0v"
+ "commit": "6a1d4274af7f4c0f271f77bd96678c3dd1fa68e1",
+ "sha256": "058mxzcrxqzsax21bs50vysr4ia3jcig83xbns0vhziqpj220yl1"
}
},
{
@@ -101904,26 +102747,26 @@
"repo": "swift-emacs/swift-mode",
"unstable": {
"version": [
- 20210810,
- 757
+ 20211031,
+ 543
],
"deps": [
"seq"
],
- "commit": "800efe2910e0a8517ac720c8bd0e0714fef142eb",
- "sha256": "10b475axhqdqighfisnq505m2lk66bpcq1qgry0fd6iq4m8jkia6"
+ "commit": "4777c409ba0cd0d02b9a8397ba810e449b5ac213",
+ "sha256": "0dmrshlkhavzlfxhm2fi37x7rf1h203iiamdqvqb7dqq0axah5r7"
},
"stable": {
"version": [
8,
- 3,
- 0
+ 4,
+ 2
],
"deps": [
"seq"
],
- "commit": "1b47a09f1c0e15c543e0551e7f1e643f437e7711",
- "sha256": "1f12rmsxzjz0ixrzvi37gj6kqkjp08mym0qvnxdmqiackagxp2rq"
+ "commit": "e24626440ce350596f4c1676f6644437a0500bbd",
+ "sha256": "09pr8v78nz8nza9l4g87i0xfnp84rmjm2kq1ff6g4a6nisdxyfxm"
}
},
{
@@ -101988,14 +102831,14 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20210521,
- 1319
+ 20210919,
+ 1221
],
"deps": [
"ivy"
],
- "commit": "6a8e5611f32cf7cc77c2c6974dc2d3a18f32d5a5",
- "sha256": "0mwrvcnpl7cr8ynhx8ilmlbjqmggxccwa6w8k15j5i640chl19xh"
+ "commit": "1c6b3da377a840e898b14020133f59fca9ceea1c",
+ "sha256": "1w8x2qk8lafnn6ksv1anixayyl476y1j6hp2amfnqmdkh0vnh63v"
},
"stable": {
"version": [
@@ -102146,11 +102989,11 @@
"repo": "brianc/jade-mode",
"unstable": {
"version": [
- 20150317,
- 1945
+ 20210908,
+ 2121
],
- "commit": "4dbde92542fc7ad61df38776980905a4721d642e",
- "sha256": "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1"
+ "commit": "1ad7c51f3c6a6ae64550d9510c5e4e8470014375",
+ "sha256": "1n26jlvf0z7h5yq3w2pzznj43g5xknq1icg68pc0ysqdfm4nq51m"
},
"stable": {
"version": [
@@ -102235,16 +103078,16 @@
"repo": "bgwines/symbol-navigation-hydra",
"unstable": {
"version": [
- 20201223,
- 2054
+ 20211010,
+ 2353
],
"deps": [
"auto-highlight-symbol",
"hydra",
"multiple-cursors"
],
- "commit": "ed65cd9c22550e59f723d7fc36ecc313aedc83da",
- "sha256": "19a5l2g5j58rfyws78jdnfd4g3dbc5chhq59xps7kghbzm0nmvvv"
+ "commit": "5675976cad4cbeee30f43e6c4b28c2e5904575a5",
+ "sha256": "06cl7njizn68vml21lsl3p66wpcdcw6ah49jqjvwzjkzivrds3m5"
}
},
{
@@ -102325,8 +103168,8 @@
"repo": "countvajhula/symex.el",
"unstable": {
"version": [
- 20210829,
- 2036
+ 20211016,
+ 51
],
"deps": [
"evil",
@@ -102338,8 +103181,8 @@
"seq",
"undo-tree"
],
- "commit": "cd80cfbff832b64de65fc4ecb50a53956dac760f",
- "sha256": "1nh6fncm46lml9df9vlj3s21qxai43fgsvl3b8mzr7rp3c0f40l5"
+ "commit": "6dab41cf72fb5f25e0de30fde64fee960944a604",
+ "sha256": "1p8x7q1hf3bbblm43b4w3kns8ns6zjsz008x7pgvinqwi78a6nfs"
},
"stable": {
"version": [
@@ -102572,16 +103415,16 @@
"repo": "vapniks/syslog-mode",
"unstable": {
"version": [
- 20210906,
- 1438
+ 20210910,
+ 1952
],
"deps": [
"hide-lines",
"hsluv",
"ov"
],
- "commit": "f0d25da654d0666c6084fcb0d075326e13ec06c0",
- "sha256": "1baa9n85vq77xha89j09n32zmwppgrwxg3z30vrbbjqaiwlb6nr3"
+ "commit": "072664784dae41a573a9de8d178bf577b7526b82",
+ "sha256": "04ddpn6il6mh1f992x3fxl6yljryghi51q4845lx08cbc74wnfz0"
},
"stable": {
"version": [
@@ -102613,10 +103456,10 @@
"stable": {
"version": [
1,
- 0,
- 11
+ 1,
+ 0
],
- "commit": "3ad6d52072f0bd043dced40ba7bd422fd9c00a7b",
+ "commit": "05add2fe051846e2ecb3c23ef22c41ecc59a1f36",
"sha256": "0n4qr5qqy6hbc1hg4wi1d2ckdl870v5mf9xhv5m9vrlwaphvnnjr"
}
},
@@ -102718,11 +103561,11 @@
"repo": "fritzgrabo/tab-bar-echo-area",
"unstable": {
"version": [
- 20210525,
- 2204
+ 20211013,
+ 1942
],
- "commit": "2196e76cb6f11e6ae0f35ac8259dfb755ea60336",
- "sha256": "1xifgdwqpf0ccmdxhdr9zxzqsa769984xs4343v657171f53flz4"
+ "commit": "d0d51ecbc5929eb7752b387c5bdfe4d879e78224",
+ "sha256": "1p3ikc776mr18r5py0sw098ahsj9w45ikqns4wbgr2fsjmgcgksr"
}
},
{
@@ -102733,14 +103576,14 @@
"repo": "fritzgrabo/tab-bar-groups",
"unstable": {
"version": [
- 20210615,
- 1915
+ 20211013,
+ 2012
],
"deps": [
"s"
],
- "commit": "a2e456097322d0b1cfdb7aa37c32a628bcca3bf0",
- "sha256": "19ni9bl34hzmqsb9wiznbghw67m7g9zz3z5m3wgndn9zsj37ccka"
+ "commit": "a0389d87d2e793055dd74ae85b4593aa1d2720fd",
+ "sha256": "040nl3yn0vfhk5nbll2jpxz7qcjf8kdlkzqa44lz0gvc6d9414yv"
}
},
{
@@ -102751,11 +103594,11 @@
"repo": "fritzgrabo/tab-bar-lost-commands",
"unstable": {
"version": [
- 20210215,
- 1412
+ 20211013,
+ 1945
],
- "commit": "e587cdb5d6d2c8d509c43db4b5bb285415916c4e",
- "sha256": "1bnpcfh0lzjz4f1lbj2jqz7ly6d3bv8jhi4lxr5pj3g21437xf4y"
+ "commit": "989e03dc3d1057264b21b9a5d241fcba86cd297a",
+ "sha256": "047261v8nvi67h9yils2f1jilmbxc55n31v98qlqxmf56jkzz158"
}
},
{
@@ -102987,11 +103830,11 @@
"repo": "11111000000/tao-theme-emacs",
"unstable": {
"version": [
- 20210726,
- 1827
+ 20211027,
+ 1900
],
- "commit": "f35b97823f27e8d0f378bbd18b79a61f9e34cc55",
- "sha256": "097zvklc90dy90p62fbk5khnysijzmb6knvzyi8m6wba2g32v4mh"
+ "commit": "2d271a2733463f3be711c31da036236b53f6224e",
+ "sha256": "0n4n3ln5n3ygkb2pa9ag8pwqqs7a9lkzzb0j04b0rphjhmsn5hbr"
},
"stable": {
"version": [
@@ -103202,28 +104045,28 @@
"repo": "zevlg/telega.el",
"unstable": {
"version": [
- 20210903,
- 2313
+ 20211102,
+ 1327
],
"deps": [
"rainbow-identifiers",
"visual-fill-column"
],
- "commit": "5450160db7ab7661ec2519d53bb26429ea90a1fe",
- "sha256": "1yzqlnw1vmbk2dn790ljirp253k4h5j12r0pm2zpp4iachl1z2kw"
+ "commit": "7829e605467a3177e143f5c6ff9e55ac00803c8f",
+ "sha256": "0v7pmj2y7d8pidlais20kk7qi5kksq6pc7pn2fsb5q90p2mdlw9q"
},
"stable": {
"version": [
0,
7,
- 30
+ 31
],
"deps": [
"rainbow-identifiers",
"visual-fill-column"
],
- "commit": "26fee82fac70d55ade55381b475e865d99dde496",
- "sha256": "1g29v5fgkqx43wsvh1npx0g3hj00n37lxgvxjvy85fs4h9226gl9"
+ "commit": "c07f310552643dfeb6bed98860bd63b965baf262",
+ "sha256": "05j82796s4k3yr0igl6hir3p8qj0cw66vvhbpbcy28d6q9v9vjjz"
}
},
{
@@ -103290,11 +104133,11 @@
"repo": "lassik/emacs-teletext",
"unstable": {
"version": [
- 20210312,
- 1951
+ 20211016,
+ 2156
],
- "commit": "7ec1118b9e4a8663fe9ec933e9e13f7c2d57e986",
- "sha256": "1ffnxb088kvr3g0kjjwr6hdxd20pmlbi52bhpla3phmyzl8vz38k"
+ "commit": "e6e4ad4231f916d69f34a389f0b4cede6e04c951",
+ "sha256": "06iv3y6ij484n2gx46yby0whb8q99h7gb40rwialravgbpfj4xw9"
}
},
{
@@ -103305,14 +104148,14 @@
"repo": "lassik/emacs-teletext-yle",
"unstable": {
"version": [
- 20201019,
- 756
+ 20210927,
+ 825
],
"deps": [
"teletext"
],
- "commit": "c5ba744191eb35b6877863b31bc00e6e9a264927",
- "sha256": "11rck07k0fz1rflzwb8b9h7kc7xsgq6q8nhxfnb0pswd58dnrxiv"
+ "commit": "9c8f4b503923c4ec688e2dcc9dff62d71bc55933",
+ "sha256": "0j0qd75nz0b97pg7x58cf6cxanmwkbyam6raq6zwdlvllwmsq6qd"
}
},
{
@@ -103801,20 +104644,20 @@
"repo": "TxGVNN/terraform-doc",
"unstable": {
"version": [
- 20210514,
- 737
+ 20211003,
+ 1333
],
- "commit": "5d35efbf2c1619d9385ef00ed74e9de1ea7cf32d",
- "sha256": "11df5606hiqgglxi6xrrljwh70h2wgkib447ggvs2r3f2jayilr4"
+ "commit": "16179e57ce290190c222b27961900657a1981330",
+ "sha256": "1p77m2babfw544cl9vpfjlnmga79hxfwv13hhczywapfqxzki8y6"
},
"stable": {
"version": [
1,
- 1,
- 1
+ 2,
+ 0
],
- "commit": "5d35efbf2c1619d9385ef00ed74e9de1ea7cf32d",
- "sha256": "11df5606hiqgglxi6xrrljwh70h2wgkib447ggvs2r3f2jayilr4"
+ "commit": "16179e57ce290190c222b27961900657a1981330",
+ "sha256": "1p77m2babfw544cl9vpfjlnmga79hxfwv13hhczywapfqxzki8y6"
}
},
{
@@ -103986,6 +104829,21 @@
"sha256": "18ahbksxg1i3gvsayx2mhkjd1p75c60x5f8d9a3abm4h50gs5mvf"
}
},
+ {
+ "ename": "text-categories",
+ "commit": "f987f609e43adf4df3f0883343edb901a885707f",
+ "sha256": "0znhdi2cqmxp4c09insgi49f1sy9qxivq1scfnz9dbrg4i9zhfay",
+ "fetcher": "github",
+ "repo": "Dspil/text-categories",
+ "unstable": {
+ "version": [
+ 20211031,
+ 947
+ ],
+ "commit": "d400c2692373c14d7cf773e7ae587cbe9c7d1e13",
+ "sha256": "1wbx74pc0lzb51gs43zhs66jid4kyaavcgckx37m5m05k17kdv97"
+ }
+ },
{
"ename": "textile-mode",
"commit": "3ebe5e52bc9bb8875ca390b34ac32eb47f4e1252",
@@ -103994,11 +104852,11 @@
"repo": "juba/textile-mode",
"unstable": {
"version": [
- 20170304,
- 1716
+ 20210912,
+ 906
],
- "commit": "c37aaab809503df008209390e31e19abf4e23630",
- "sha256": "16543im5iymc5hfcix1lglbvpq4v0441vb7sk58nbnffqba83yzy"
+ "commit": "a49d9bf42166584cca395a92311e9d0a199efc46",
+ "sha256": "0b7vbqy2ryp5c0jz7gb5ddpa3mlqmkd7jlf94hdb0d0ffapspqsv"
}
},
{
@@ -104293,18 +105151,18 @@
20200212,
1903
],
- "commit": "3569010b61baefb4324d4b28f1ae60799283a4b5",
- "sha256": "10y5h8qfcbgxnihnm61ab9xs74128jni5gha9k3m7afa5wg8j84b"
+ "commit": "0d838c46aeb771ec5c1e3108faeb82cd3da935aa",
+ "sha256": "02drmjh4ay8krimf7bm32f72n5d6929ylc2znpnp70vihn40ybjr"
},
"stable": {
"version": [
2021,
- 8,
- 30,
+ 11,
+ 1,
0
],
- "commit": "9dabbd58640cfe95ddb7f30d497693f4ba6d9f01",
- "sha256": "0mw7vhs78m0zk7mz8icd6zr4bzsjn82jcdgrb13bw76xw6i88161"
+ "commit": "bea461a963aae123322e893bc3a03ba1ad0657d5",
+ "sha256": "0y9jsq8lmz1xj0r3ybs4qbqwfvc3jbawpd3h4516zw1k5nwgf7d4"
}
},
{
@@ -104360,8 +105218,8 @@
"deps": [
"haskell-mode"
],
- "commit": "638a1079a0ba8cd757bc74f99a58d5724b3314f5",
- "sha256": "1ki0i9f1fvvhkac1ivd7smg5c3vnbdrfyxr6v9q4fms4mczj4jc9"
+ "commit": "cff017c60a92d446f1c7f0eaf65b9b63a0224800",
+ "sha256": "0xfm3hniijpd3wky62khg57il1gfxza0byr64v1aa6drsw9ygc4i"
},
"stable": {
"version": [
@@ -104384,8 +105242,8 @@
"repo": "ananthakumaran/tide",
"unstable": {
"version": [
- 20210517,
- 507
+ 20210930,
+ 356
],
"deps": [
"cl-lib",
@@ -104394,8 +105252,8 @@
"s",
"typescript-mode"
],
- "commit": "1e376e3e9798206ea3e42a5c037a7c00aa64ee00",
- "sha256": "1g5q70j55qbvsl5ix9hsbmf5xllph1ch27miln7j3y5mi56k0lq9"
+ "commit": "28137ed904deb143dba8f8f67660966e11921c6d",
+ "sha256": "1ikvdxjr9kbs0l5hlann34q79r6gr3796rvi2ci2ki50kp69kfbw"
},
"stable": {
"version": [
@@ -104416,17 +105274,17 @@
},
{
"ename": "tikz",
- "commit": "fe4080be1b98c4016360113741a9bb6b3764e872",
- "sha256": "07wbl8aih7p9gzjnljymryrrakq9ffwzd2l73h08hjvrr8ff92m9",
+ "commit": "fcf5b1f01558daa1c178275435bce7a07867c1c1",
+ "sha256": "0zmzfz8hf4vnsqg0rmcjhzpdgibdnbv6pc0y9wr6fzrz5wy660qp",
"fetcher": "github",
"repo": "emiliotorres/tikz",
"unstable": {
"version": [
- 20200728,
- 913
+ 20210927,
+ 1704
],
- "commit": "f1495516657da6dc2296ffb6c38a3bb4acf118ad",
- "sha256": "0w9xff7y6zhb28b1cfbbam9gy7dp11i96yb4rn4lj8h2yry89293"
+ "commit": "f9ea0793affa34be29e1861bfa559fd248b7d22e",
+ "sha256": "03jcj6vkb8i7jqfwyiix5achq5bgwvjz97w2pwr46v3hbrf4r62q"
}
},
{
@@ -104609,19 +105467,19 @@
"repo": "aimebertrand/timu-spacegrey-theme",
"unstable": {
"version": [
- 20210828,
- 2241
+ 20211101,
+ 1649
],
- "commit": "07fa0c6287612693a4d9b571d6a9a72e498e41c2",
- "sha256": "0fswhfn0qjpb94dlbl3rivgkbz3vdly4hk5hgl017zgj3nfb06vn"
+ "commit": "3da96d529c09dc1000de425f937380895ab9efa6",
+ "sha256": "0k2l15lkk3b5y7qfzhjid8l1clam5j9nhm635a1qmhjgcdln18x3"
},
"stable": {
"version": [
1,
- 5
+ 8
],
- "commit": "f3243f0d27988eb4c29215dbe07d35f37031114f",
- "sha256": "0wpam6kjg53j00g4k4ar0zhf0v0nbpp00klk0cbpv06yr4lvswpc"
+ "commit": "3da96d529c09dc1000de425f937380895ab9efa6",
+ "sha256": "0k2l15lkk3b5y7qfzhjid8l1clam5j9nhm635a1qmhjgcdln18x3"
}
},
{
@@ -104728,14 +105586,11 @@
"repo": "kuanyui/tldr.el",
"unstable": {
"version": [
- 20200330,
- 1025
+ 20210921,
+ 1715
],
- "deps": [
- "request"
- ],
- "commit": "d59405bd72f3379417b9e73f06e8848b43cb021d",
- "sha256": "19yb4cxcaif73yvf62d4891l5rvp8ynhxl0f2wc9lvssg0lpx5y0"
+ "commit": "d3fd2a809a266c005915026799121c78e8b358f0",
+ "sha256": "0jbyz1anxq2ql8351v97dw9l70akys7mvh5m8q35nska2sgbzkax"
}
},
{
@@ -104819,16 +105674,16 @@
"repo": "abrochard/emacs-todoist",
"unstable": {
"version": [
- 20210905,
- 2024
+ 20210922,
+ 2254
],
"deps": [
"dash",
"org",
"transient"
],
- "commit": "cd934e50d6a226c8718957877aedc4d2d947ac59",
- "sha256": "12v9alrkvzwihkldn2wbn3xc3yc408kmp155j9pn9vjy53fypvg1"
+ "commit": "3662c323f02e89d48c206103b43a185b930220e7",
+ "sha256": "02wwsaj7vc5vs8xij6kzgqqdwigy0qcvridbp8zsjmhy2rgq4w3w"
}
},
{
@@ -105131,6 +105986,21 @@
"sha256": "188cdgic25wrb4jdgdcj070a0pxsh3m0rd9d2r6i1s1n1nalrs6g"
}
},
+ {
+ "ename": "totp",
+ "commit": "9c50c8a6cf312696f4bfd4ac8c165b6932d06562",
+ "sha256": "1gfvdglxnmcxk3yggkd8ffb98qmpf2qh4139clwhjr94mpwr0qg9",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/emacs-totp",
+ "unstable": {
+ "version": [
+ 20211018,
+ 1743
+ ],
+ "commit": "680b2c969823b91e0b35afbe2a35a610cb2fa26a",
+ "sha256": "17ylcrz7gw1hyq9ls5anz7ycd5y6f3j06jxr6i80hj5ccylzy82c"
+ }
+ },
{
"ename": "tox",
"commit": "08a7433e16f2a9a2c04168600a9c99bc21c68ddf",
@@ -105375,26 +106245,26 @@
},
{
"ename": "transient",
- "commit": "ee7bfefdf4423d63706a6dcf128886ca6b514e6b",
+ "commit": "cdd8115e3ab3df5f74a21dbf63d89ee11b4f1c17",
"sha256": "04xkdspn475dlch5fcw21phhdhshxlbyznjbi0l7qk8snm130qpv",
"fetcher": "github",
"repo": "magit/transient",
"unstable": {
"version": [
- 20210819,
- 2118
+ 20211104,
+ 143
],
- "commit": "65f4eac82c564204d20df0a606dc2fcaa72cc41e",
- "sha256": "1avxr5xdx8awzj63r97a505xd32d49qwjszbjzd0yfs3i5y243li"
+ "commit": "202271f755497bacb50a1f2b3c93566e816f447e",
+ "sha256": "1y0rir7w12h85jagjdnww9wgwi1aazmm22ry7gz9wiax6mm1pcdn"
},
"stable": {
"version": [
0,
3,
- 6
+ 7
],
- "commit": "51e833e5152e9fdcdc1dbbf34ad2d4905bde1f69",
- "sha256": "10k9dzs8y6i0rfckclxm5n3maylmh95993n5dvrs8rbmlcpmihvy"
+ "commit": "74cba5a418ff1b1661494fc2970c330ecdbb4b22",
+ "sha256": "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"
}
},
{
@@ -105514,8 +106384,8 @@
20200910,
1636
],
- "commit": "d2651b913a6ec615e6285712833566a79dca7247",
- "sha256": "0pw401npbahlii6x37c6mi66ghd16mv04d6y0d1nirflvg4nfl8a"
+ "commit": "a31c7aae9d48edfcd10ccefc7b513214d6ddfb29",
+ "sha256": "0c7q250bkhjrqb8nzbciggngywbh5rkvbpzay8pcqnb04phxxvax"
},
"stable": {
"version": [
@@ -105603,6 +106473,18 @@
],
"commit": "e2b169daae9d1d6f7e9fc32365247027fb4e87ba",
"sha256": "1wrip00q6lbpllhaz0c7llnm774dq2mizr39ynfssvsdci38z1lm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "e2b169daae9d1d6f7e9fc32365247027fb4e87ba",
+ "sha256": "1wrip00q6lbpllhaz0c7llnm774dq2mizr39ynfssvsdci38z1lm"
}
},
{
@@ -105622,32 +106504,31 @@
},
{
"ename": "tree-sitter",
- "commit": "315cccbfb1a9aadb546a5b62de5c3b681108ba6c",
- "sha256": "1y7y8qrzc4nr31rh9gi8y3qpgb33jfl8aj8lmbagw5b7pc3v5f11",
+ "commit": "cb5169a41c3284f1fe1887cd2d32f9e98e34fbe0",
+ "sha256": "1n08rsf1cmxsrpld9j78a8smzckcpg006za93h464gfqls4y2kl2",
"fetcher": "github",
"repo": "emacs-tree-sitter/elisp-tree-sitter",
"unstable": {
"version": [
- 20210904,
- 216
+ 20210912,
+ 1211
],
"deps": [
"tsc"
],
- "commit": "dbab35d5fc2fd5cb6ba08f31478446706e65282f",
- "sha256": "0jv31399968ig4yys4jvkjzpkj1kszskil9aiba6hc0p6sips91f"
+ "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
+ "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
},
"stable": {
"version": [
0,
- 15,
- 1
+ 15
],
"deps": [
"tsc"
],
- "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
- "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
+ "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
+ "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
}
},
{
@@ -105683,32 +106564,31 @@
},
{
"ename": "tree-sitter-langs",
- "commit": "4163e6e43626c5149be06b95ec2e6de55acb85cc",
- "sha256": "1bkjd5h817dw5zkbfb1dn4yg6cy29m9g0d650ap5ldi2y605zz5v",
+ "commit": "cb5169a41c3284f1fe1887cd2d32f9e98e34fbe0",
+ "sha256": "0dqz421vwbgmp83nib9jigwi0rayb9hqsralwhj0139w6jkvxmmb",
"fetcher": "github",
"repo": "emacs-tree-sitter/tree-sitter-langs",
"unstable": {
"version": [
- 20210831,
- 1555
+ 20210918,
+ 1621
],
"deps": [
"tree-sitter"
],
- "commit": "ef42920bb573b40e64b35e43968dac355f87e959",
- "sha256": "03257nqxz11g4qivmq2h7gs98ssrmpvdyaghrfxpaizagbk7clmd"
+ "commit": "2b845a70080c0edd66f13200b9dc8d6d0c3f42ce",
+ "sha256": "0w3jzy4n445nrbcj7i46nbg7jk81gjqjs6zahsjnal8dhyjqaymi"
},
"stable": {
"version": [
0,
- 10,
- 4
+ 10
],
"deps": [
"tree-sitter"
],
- "commit": "95c8d2869926014351ffb932ad6749f5dfaff033",
- "sha256": "19rjnqsx7xi4g5dj32nb4x7xlxmbhagrm652khfn1chlwd7z94la"
+ "commit": "28e98d52e8516d73cce76e7ce5c6294a9728bb56",
+ "sha256": "1zy1wjw6ixpl5mw8f3drp47w256xbbzgxrgs2kpgj0w7wif10yjc"
}
},
{
@@ -105755,8 +106635,8 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20210906,
- 1653
+ 20211101,
+ 1223
],
"deps": [
"ace-window",
@@ -105768,26 +106648,27 @@
"pfuture",
"s"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
- 8
+ 9,
+ 5
],
"deps": [
"ace-window",
+ "cfrs",
"cl-lib",
"dash",
- "f",
"ht",
"hydra",
"pfuture",
"s"
],
- "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
- "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105798,15 +106679,28 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20210408,
- 2051
+ 20211102,
+ 2155
],
"deps": [
"all-the-icons",
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 9,
+ 5
+ ],
+ "deps": [
+ "all-the-icons",
+ "treemacs"
+ ],
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105817,27 +106711,28 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20210821,
- 1041
+ 20211019,
+ 1654
],
"deps": [
"evil",
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
- 8
+ 9,
+ 5
],
"deps": [
"evil",
"treemacs"
],
- "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
- "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105848,26 +106743,26 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20210630,
- 1953
+ 20211011,
+ 1824
],
"deps": [
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
- 8
+ 9,
+ 5
],
"deps": [
- "cl-lib",
"treemacs"
],
- "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
- "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105878,29 +106773,30 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20210906,
- 1653
+ 20211010,
+ 1005
],
"deps": [
"magit",
"pfuture",
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
- 8
+ 9,
+ 5
],
"deps": [
"magit",
"pfuture",
"treemacs"
],
- "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
- "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105919,21 +106815,22 @@
"persp-mode",
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
- 8
+ 9,
+ 5
],
"deps": [
"dash",
"persp-mode",
"treemacs"
],
- "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
- "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105952,8 +106849,22 @@
"perspective",
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 9,
+ 5
+ ],
+ "deps": [
+ "dash",
+ "perspective",
+ "treemacs"
+ ],
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -105971,20 +106882,21 @@
"projectile",
"treemacs"
],
- "commit": "90088cee342fe3418b4b6435094e51ff78f37efc",
- "sha256": "09h9ryxb840nbw6ph8wiak4ila5h5whm5sh1fj56fzh164vp7ih4"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
- 8
+ 9,
+ 5
],
"deps": [
"projectile",
"treemacs"
],
- "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
- "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106221,26 +107133,25 @@
},
{
"ename": "tsc",
- "commit": "c44eceafdfe3dd4a98010a8dcac2e9e3ddaeae4c",
- "sha256": "1gwavabszakqvvyw8yrr17dng7k9w27g8dsaf5zwihp8j46wim27",
+ "commit": "cb5169a41c3284f1fe1887cd2d32f9e98e34fbe0",
+ "sha256": "0di9v57sn2b6dvgf7id409drk9ir65brv2mdigk54gra8801fk64",
"fetcher": "github",
"repo": "emacs-tree-sitter/elisp-tree-sitter",
"unstable": {
"version": [
- 20210825,
- 1402
+ 20210912,
+ 1211
],
- "commit": "dbab35d5fc2fd5cb6ba08f31478446706e65282f",
- "sha256": "0jv31399968ig4yys4jvkjzpkj1kszskil9aiba6hc0p6sips91f"
+ "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
+ "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
},
"stable": {
"version": [
0,
- 15,
- 1
+ 15
],
- "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
- "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
+ "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
+ "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
}
},
{
@@ -106310,14 +107221,14 @@
"repo": "ocaml/tuareg",
"unstable": {
"version": [
- 20210904,
- 917
+ 20210913,
+ 1031
],
"deps": [
"caml"
],
- "commit": "eb0bff8d7bdf229322aa28ff0a8f44ba5e162202",
- "sha256": "1y2dpc2hndqwk8gc6lp6f1c4px3kak514hk120sjxpb3133g3ivf"
+ "commit": "00faf47a7c65e4cdcf040f38add1c6a08cd2ee2f",
+ "sha256": "1rjz11q9ww5bvmfp2jri0nlrv9aiw7qzl80wlkmkcv7lv3qmvblb"
},
"stable": {
"version": [
@@ -106574,11 +107485,11 @@
"repo": "emacs-typescript/typescript.el",
"unstable": {
"version": [
- 20210830,
- 1858
+ 20211022,
+ 1051
],
- "commit": "2a58631230fe2d176352af262a0efdecc21f90ac",
- "sha256": "0fjgw71sgyrygzk9s6hfrqky06lqfwzz75bjxkxhb7yl5mdj8ccv"
+ "commit": "13e6da6c5746187842d8ebb5323bf2d88d5759c2",
+ "sha256": "1vqx8nzjnjj4980yzlcn2bpph7rjmk0b7nblfspn8xp83iw3cd2m"
},
"stable": {
"version": [
@@ -106824,6 +107735,36 @@
"sha256": "15nspdkjwbvxbqxlhmpsbhdf1zij9zd2z2xxhkmvdyjy89w0hyzp"
}
},
+ {
+ "ename": "ue",
+ "commit": "dc9ec7c99477746b1bddc97231a8f5ee37322d11",
+ "sha256": "0ig2zapbd5iw3nd6rmxy2dnn1wq3ipf54rygwz28z5l3fs6wr0fr",
+ "fetcher": "gitlab",
+ "repo": "unrealemacs/ue.el",
+ "unstable": {
+ "version": [
+ 20210929,
+ 1258
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "7819d5b78e5b52a09b36c634ce404dc8bc3711ef",
+ "sha256": "0rl71y6mzfcfymkimin18pnfhsa1wb906jywr5jx8b0nwkxk227n"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 9
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "7819d5b78e5b52a09b36c634ce404dc8bc3711ef",
+ "sha256": "0rl71y6mzfcfymkimin18pnfhsa1wb906jywr5jx8b0nwkxk227n"
+ }
+ },
{
"ename": "uimage",
"commit": "346cb25abdfdd539d121a9f34bce75b2fc5a16be",
@@ -106969,8 +107910,8 @@
20200719,
618
],
- "commit": "741ab716ada8e71a94a9dae3daa4236298d29bd7",
- "sha256": "1ibjwmvx4p7kchxlnfpqxj4p3k99nwxwhzk4m2b1yyswpiad2k0z"
+ "commit": "fa821425572cc75fbc7b990c800d4659dd893a4e",
+ "sha256": "0k9b5lv9nkfjk8r1kmcal7b4jsgiglpgfwzhfczc61lj4q9i9zq7"
},
"stable": {
"version": [
@@ -107013,11 +107954,11 @@
"repo": "ideasman42/emacs-undo-fu",
"unstable": {
"version": [
- 20210813,
- 249
+ 20211030,
+ 612
],
- "commit": "34b27c01da4c3eb8aa595f3613b7e2e1ed4e54be",
- "sha256": "1inh3c88l2dbhcpwivvn88zyq37fba41ccpmyjbkcbyjay52927n"
+ "commit": "ab8bc10e424bccc847800c31ab41888db789d55d",
+ "sha256": "1vdaysc328gwqi57fp4cfbl96g76m8wc2qr53wgb3l89m9kx5sgg"
}
},
{
@@ -107028,11 +107969,11 @@
"repo": "ideasman42/emacs-undo-fu-session",
"unstable": {
"version": [
- 20210617,
- 1327
+ 20211007,
+ 306
],
- "commit": "579936966b41d2d6782f587509fef21477141374",
- "sha256": "1sqjp84hi81q62pyx7py7zvmkwdywh106i6jqqnmgkv0ai9cb2ml"
+ "commit": "1810251485a551bc41472ec9e7e7bfab72a45a3c",
+ "sha256": "195zm428c6gan92g8dsgzgdc30xxyrjfk294dmzqdal86jsajvmr"
}
},
{
@@ -107091,8 +108032,8 @@
20210106,
220
],
- "commit": "eef1614c79eb259cb782437a25680246793a924d",
- "sha256": "0vx0sv8595lbx8x23ly3dg6zb73skp4cxi8l6m2h4l4v8fs6r0fl"
+ "commit": "3bd4c8d3df15fb54a79f97e26177819fc0ebf877",
+ "sha256": "1dwy1pcvsqdxi7zrfgh3k9g2h9dnc3yyaqabmin5h3abs6mivb7v"
},
"stable": {
"version": [
@@ -107234,8 +108175,8 @@
"persistent-soft",
"ucs-utils"
],
- "commit": "e3942fe40b418bfb2dc4e73633e09195437fef01",
- "sha256": "1vyldpmbi92yqzj0v7wbxma86f3cla0jhxbmq8jzl94pqy6q98jc"
+ "commit": "47f2397ade28eba621baa865fd69e4efb71407a5",
+ "sha256": "1c9byhlkzjvijhl7izwxfp4z6dwism4np4m8705i23ccrpf039jw"
},
"stable": {
"version": [
@@ -107760,9 +108701,9 @@
},
{
"ename": "use-package-el-get",
- "commit": "aca60522257353fbfd9d032f8c3cae7914d6bd36",
- "sha256": "143vydssjxmkcgs661hz6nhg310r8qypn2a4vyxy5sb31wqcclzg",
- "fetcher": "gitlab",
+ "commit": "7566d3d57203ab8483d6f7a0e6a10082f106ab80",
+ "sha256": "11n4142zcqpx4jqwrv6s6v2nd7zvfn4h6l4y3rm3v1mxvd9wb730",
+ "fetcher": "github",
"repo": "edvorg/use-package-el-get",
"unstable": {
"version": [
@@ -107892,8 +108833,8 @@
"deps": [
"s"
],
- "commit": "aa6e271e8efc3a93caaaa740245d126d24e778ab",
- "sha256": "0a8qb7wyi5pkg7g0x7imzzxryz55dr8msiila9j9skq6jlmn84hl"
+ "commit": "418d8617f5c6431b72baa3d22e5b67dc5307870f",
+ "sha256": "0fkryq2iipjndhykryc0yzj290il217qaa2cgjv2sxpajh499cyy"
},
"stable": {
"version": [
@@ -107916,11 +108857,11 @@
"repo": "ideasman42/emacs-utimeclock",
"unstable": {
"version": [
- 20210418,
- 1050
+ 20211008,
+ 454
],
- "commit": "21e74953a88ea5a0a17b86a951bf649dc9a0eaf4",
- "sha256": "14hn22ld61l4w4livl83fjf4w59kzwn9qy2pc94p05qpgp8x2hy8"
+ "commit": "e6e3dd50fb7e3b20e38db555950b2f417a12c993",
+ "sha256": "0iri2836zxadqdvivkmm0rz2ai4wxb1khnfxjmk8k8q274w1lslf"
}
},
{
@@ -107999,15 +108940,15 @@
"repo": "damon-kwok/v-mode",
"unstable": {
"version": [
- 20210608,
- 629
+ 20211015,
+ 309
],
"deps": [
"dash",
"hydra"
],
- "commit": "3afbd72180417ada6aeeec861081495aca962124",
- "sha256": "0is9hdh8w87l9x84ihhcd040z8m7cy2321q2rmbfmpffaaja90cl"
+ "commit": "a5f39031a3391d0044c716425eb28645af51c79c",
+ "sha256": "0k0100fxhhzfyl2pcsrwblj1h7j0x9fzfnpcxqd751yvwihgrsb6"
}
},
{
@@ -108250,11 +109191,11 @@
"repo": "venks1/emacs-fossil",
"unstable": {
"version": [
- 20210124,
- 812
+ 20210928,
+ 737
],
- "commit": "5d66231e25f34aaedb4befa0fcd80a9c30d7e607",
- "sha256": "01r8j7a8b3icfgyxpgxh3pimzwig0xbhmggahzllgn96w5fafgpv"
+ "commit": "7815c30d739a01e1100961abb3f2b93e0ea9920f",
+ "sha256": "0j33cmnl9ka2r7ahf84dkj6y2lf8m455986y7rms1d62ih9fq6ds"
}
},
{
@@ -108265,19 +109206,20 @@
"repo": "muffinmad/emacs-vc-hgcmd",
"unstable": {
"version": [
- 20210608,
- 1030
+ 20211021,
+ 1704
],
- "commit": "c00d792b34219a387832f8f9b4a689d7972f592a",
- "sha256": "05gjyq4cpc79ipiyl3j263cw6mdbfxmh7wvsxsxavp21q588fb0y"
+ "commit": "d044448965d31ca8214f8bca48487e4d9b9d9a0f",
+ "sha256": "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj"
},
"stable": {
"version": [
1,
- 14
+ 14,
+ 1
],
- "commit": "12e102f8359095953e06ed17c7223cd6638e5cea",
- "sha256": "1mm8lnwii53j32v54aahl8sf3ciwymrvc1rgy4nw2m7hcrnjsb78"
+ "commit": "d044448965d31ca8214f8bca48487e4d9b9d9a0f",
+ "sha256": "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj"
}
},
{
@@ -108434,16 +109376,16 @@
"repo": "justbur/emacs-vdiff-magit",
"unstable": {
"version": [
- 20210614,
- 1630
+ 20210908,
+ 135
],
"deps": [
"magit",
"transient",
"vdiff"
],
- "commit": "fa62a260411387702dd4cc4791075c737519001f",
- "sha256": "04n47g3ffnh3bjq5575b6l046cpy7dixksfjy8pzsgh9ah1h37lz"
+ "commit": "d3a39c3f8cb7ad9a6a769ce45f633b613b067490",
+ "sha256": "0ci5zsmd4r7z8h7g19ddd29y09lja0ikkm9rp8d2whxi9fz37dha"
},
"stable": {
"version": [
@@ -108628,20 +109570,20 @@
"repo": "federicotdn/verb",
"unstable": {
"version": [
- 20210809,
- 2140
+ 20211103,
+ 1927
],
- "commit": "6f5b454782d5c2ce9d86616c3d015935d3d5dd6b",
- "sha256": "172520apwczyp6c0apga1bz2vbfzy60jdyiq09sjk34533fymcg4"
+ "commit": "f9ea5780ec65e6f30451514b72ce99619dd8457f",
+ "sha256": "1l38ax1ms7s2qwjnqd0djf2gcy5jpqha55d17vyvkx1kgwjapja7"
},
"stable": {
"version": [
2,
- 14,
+ 15,
0
],
- "commit": "0d7f7d36f6ae8130a9bd40845f156a3e3b30eb49",
- "sha256": "1bpfxfgq5q022rx592wkigj5chq8ihry8lgrni4rsqbbmbrc1h4b"
+ "commit": "f9ea5780ec65e6f30451514b72ce99619dd8457f",
+ "sha256": "1l38ax1ms7s2qwjnqd0djf2gcy5jpqha55d17vyvkx1kgwjapja7"
}
},
{
@@ -108708,20 +109650,19 @@
"repo": "mihaiolteanu/versuri",
"unstable": {
"version": [
- 20200316,
- 852
+ 20211102,
+ 1142
],
"deps": [
"anaphora",
"dash",
"esqlite",
"esxml",
- "ivy",
"request",
"s"
],
- "commit": "41e20583d1080beeeda0e36d1b2e6d74b9c57920",
- "sha256": "0fgc1rai9gp6lwl0rxr9400vi420py0c0b8nv9wzl12ph80yhwj7"
+ "commit": "eafc925e3089aa80cefd6ceeb0cb87abce5490a9",
+ "sha256": "1gqbd6iwfpicqrpigyki402jy73a58nx0k3akzybzgljdgw7xg9p"
}
},
{
@@ -109025,11 +109966,11 @@
"repo": "thanhvg/emacs-virtual-comment",
"unstable": {
"version": [
- 20210210,
- 255
+ 20211103,
+ 209
],
- "commit": "dadf36158c7ff89291bea4695999860cca2d094e",
- "sha256": "10vnw6p5zg3azn1hf74014497qyxbxh6rr27lba45nrnxiz6wfmp"
+ "commit": "4effa95c7d6243fc5696597f488653f9d2a5d4a6",
+ "sha256": "164yiiqqxk2fpjk65y72fr71j05b1330zmvbaxh0w3ww2axkjz68"
}
},
{
@@ -109125,11 +110066,11 @@
"repo": "joostkremers/visual-fill-column",
"unstable": {
"version": [
- 20210419,
- 857
+ 20211014,
+ 2141
],
- "commit": "6fa9e7912af412533aec0da8b8f62c227f9f3f54",
- "sha256": "1wfww6bqdphv871in80fc84ml8gkl04il6w51z2ycx99km8b723l"
+ "commit": "2df643827a4fd82b732ea93042916c61078d4206",
+ "sha256": "1j8x044s4xzmfmqrsabim9gv435scj2yhym3f3p9bf5vq5ds2smj"
},
"stable": {
"version": [
@@ -109356,8 +110297,8 @@
20210627,
2121
],
- "commit": "28398f1059f88e7e242f39cfa0ff8213cdaefc42",
- "sha256": "0ln5idsmj7x0b769g7bj9wk0bjr826kq4bryw206dxxnz06s3wcs"
+ "commit": "fc9766b4d772df7006998f3d863e9469498cfdc3",
+ "sha256": "1ssjwmv0f24zx0hp1rhicgza1s3pfcr6b04kf2n00zdyn37gwfvn"
},
"stable": {
"version": [
@@ -109379,8 +110320,8 @@
20210627,
2121
],
- "commit": "500d35f051fca07459abd163d5692c853a49329f",
- "sha256": "1k5akiim0c0qiv10np5yzdndz8p499qhzhhrp1i8dz36gbp5x8ll"
+ "commit": "1211f09ec83f3f375b2e38e4d704bd102bf3f6e3",
+ "sha256": "18ciz8rvx5n4hqqbr4y7vjkjzyq8dc2393yxfi6rhp3hkdld043p"
},
"stable": {
"version": [
@@ -109414,11 +110355,11 @@
"repo": "ianyepan/vscode-dark-plus-emacs-theme",
"unstable": {
"version": [
- 20210720,
- 1218
+ 20210925,
+ 1940
],
- "commit": "aadf603bccb51addfcbd1ee4f684f720d56df56f",
- "sha256": "0zskaz2np8x6wz3zrkqw5bhmwzyq8llvqq5sbwjzlgdl2xph876f"
+ "commit": "b6ab14278cc0aaac13fb7cb3a12e73985a781cb7",
+ "sha256": "1f24cd9isxhlr1rdbk3inhc2rx9n090wx35fs47nxicicz8hncas"
},
"stable": {
"version": [
@@ -109453,11 +110394,11 @@
"repo": "akermu/emacs-libvterm",
"unstable": {
"version": [
- 20210905,
- 903
+ 20210908,
+ 640
],
- "commit": "db9f47f62391e9ac02fff6f0c63528bd8e5658de",
- "sha256": "19fvxyqcrhim6p06krsh4zaqkl49vcdpkd6i9xqldsmm4lzmcqj8"
+ "commit": "2681120b770573044832ba8c22ccbac192e1a294",
+ "sha256": "173qhfj5h4xd8rrf4avzknp24hzl0nlxs783pr7900d980cpbygr"
}
},
{
@@ -109596,16 +110537,16 @@
"repo": "d12frosted/vulpea",
"unstable": {
"version": [
- 20210821,
- 1625
+ 20211028,
+ 704
],
"deps": [
"org",
"org-roam",
"s"
],
- "commit": "bc0abbc81917edf130476db7007184c015768d05",
- "sha256": "0wjpvspyg6h0692gy9vfz42wcwsr599y53b8mfkjmnbdkbdwy1i0"
+ "commit": "a1cdaf43649e133e1d571b597195e2d17c7c5928",
+ "sha256": "0qqz7xy6yfscjac05klckf81pcmfwgl4jhd5i4g873xmrclmfzwi"
},
"stable": {
"version": [
@@ -109675,10 +110616,12 @@
},
"stable": {
"version": [
- 20201005
+ 0,
+ 0,
+ 1
],
- "commit": "34ba004717ecb9d46c3fc20162005261cffb0bcd",
- "sha256": "1n9bbc8s8ls9idjbh1f2nsf4cb829qpdbdq0iws56xqyd8sxsss4"
+ "commit": "1dbdc056f507172857195b5e14b7550c565018bc",
+ "sha256": "0wy9yvbb3a6j797z19ja3mkc0kcp0gprka3pzn865frdkd4bq29s"
}
},
{
@@ -109689,11 +110632,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20210906,
- 347
+ 20211025,
+ 2324
],
- "commit": "ef34cf7f806a726a53fcffa183280a325defbc54",
- "sha256": "0mga7i1n0s4m2iqqyw7lg0qcdhcfvvfrg3rwqgds3ssmvf096lz6"
+ "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
+ "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
}
},
{
@@ -109784,8 +110727,8 @@
20210903,
1619
],
- "commit": "8fa54f3cf7921e961e46d20e1afc51eec8286003",
- "sha256": "196y13zjbp4j1fjsgcaqri9bplzj5445g8i8l4plv4ff9nkyyc2p"
+ "commit": "627e94389fe754da9802a8c93e4a3d1a1831967b",
+ "sha256": "0i0a9imkpz0aq4r340vd2li22m1wnv7p83s4bcaihl1z8axfa611"
}
},
{
@@ -109823,8 +110766,8 @@
"org",
"transient"
],
- "commit": "00b4fd5cae7fe27085995dbb178828fb765c7edc",
- "sha256": "1ya91159i58x4mccpnx429kq2k0xc04alikbly549qm8yw1y1hxg"
+ "commit": "0cb9c2fef6e611b4389f7df7fcccc17744053e9b",
+ "sha256": "1fv4bn6c04kv39jv25r09pvxc5hz5gwwbj16fhxs5930rf77ikqb"
},
"stable": {
"version": [
@@ -109914,16 +110857,16 @@
"repo": "wanderlust/wanderlust",
"unstable": {
"version": [
- 20210629,
- 1252
+ 20211028,
+ 1330
],
"deps": [
"apel",
"flim",
"semi"
],
- "commit": "769699d60aa033049804083b459ee562b82db77e",
- "sha256": "0mgl28xsvc0421pysy6hh0hymr0li8iayaa330r41cbqsk3gz4nw"
+ "commit": "475514f22c0869d7b84cdf0b957f9ae75a45605b",
+ "sha256": "050dglv2l5z7pgrkzpmplzjm5mx3b4yg4zaqp2ghd9ddd19kn3y8"
}
},
{
@@ -110337,26 +111280,26 @@
"repo": "emacs-love/weblorg",
"unstable": {
"version": [
- 20210906,
- 1254
+ 20210919,
+ 1547
],
"deps": [
"templatel"
],
- "commit": "e49a901223b9f5db390adf01e3928f134aa66f25",
- "sha256": "1h1k54p5sfd5bxqg40w62nprii28g0pjkfy0ayf0vyxsyhdj6d9y"
+ "commit": "0f8ec7e9065b2962c93209ee30b46f91843e2815",
+ "sha256": "0jiq879m74ysl0gb9wh1qmxyxi79nhnr2b1slq33mwf98r1nzcbg"
},
"stable": {
"version": [
0,
1,
- 1
+ 2
],
"deps": [
"templatel"
],
- "commit": "3c860c7b52ccee2f8d0b96e8a9e65e9695eb6e0a",
- "sha256": "1lia9g9dpmn7l7valyw7mvh7ipy2nanhjbd60gha1k4p4ypx3sla"
+ "commit": "0f8ec7e9065b2962c93209ee30b46f91843e2815",
+ "sha256": "0jiq879m74ysl0gb9wh1qmxyxi79nhnr2b1slq33mwf98r1nzcbg"
}
},
{
@@ -110856,11 +111799,11 @@
"repo": "lassik/emacs-whois",
"unstable": {
"version": [
- 20210429,
- 805
+ 20211104,
+ 812
],
- "commit": "6ce65ec5c992b1e1cb538610f1c3708e9d467c39",
- "sha256": "0cz5c0zy4lz0534nfr2xf7p0d09ppcfdmry4335gx19vz47fj60n"
+ "commit": "f22244202fdac5064d5eff95c6f35ae887b01142",
+ "sha256": "0zv80aarrqlgnp7icvmm9yxlpc9qpdzn73lfrvrpry1rmv301wfp"
},
"stable": {
"version": [
@@ -110939,27 +111882,6 @@
"sha256": "0fqv63m8z5m5ghh4j8ccdnmgcdkvi4jqpg9z7lp17g4p9pq3xfjf"
}
},
- {
- "ename": "widgetjs",
- "commit": "78d7a15152f45a193384741fa00d0649c4bba91e",
- "sha256": "0y5h1ag2m7w47l4nx4d18yz3fvd411rm1h5w7zz4xh67bnx4zyy1",
- "fetcher": "github",
- "repo": "foretagsplatsen/emacs-js",
- "unstable": {
- "version": [
- 20160719,
- 1504
- ],
- "deps": [
- "js2-mode",
- "js2-refactor",
- "makey",
- "s"
- ],
- "commit": "58a0e556b4b96e1d23082a7ec2e8c0d4183a1a24",
- "sha256": "0nvyacv711bb56cj9zrja6svzwhmdw22qg1c1bwprnh4nig43a03"
- }
- },
{
"ename": "wiki-nav",
"commit": "baa49e7d2d5c07ebf77e7941c240b88fcfd0fc8b",
@@ -111450,20 +112372,20 @@
"repo": "magit/with-editor",
"unstable": {
"version": [
- 20210524,
- 1654
+ 20211028,
+ 2105
],
- "commit": "5519b6a67ecd66865b4fdd5447425eee900c54f4",
- "sha256": "1bmvkrfnjzrf0ch2mh75cv784mzs64i4f44l91xysapjqv46lfqn"
+ "commit": "521f75e3f37c7fe204bddb8a29ce862cae8f59bd",
+ "sha256": "0my9zbrzgn4h6wxl172iw6mn2dvcn3r85bdcl3pyv0hc5n7lkzxz"
},
"stable": {
"version": [
3,
0,
- 4
+ 5
],
- "commit": "5519b6a67ecd66865b4fdd5447425eee900c54f4",
- "sha256": "1bmvkrfnjzrf0ch2mh75cv784mzs64i4f44l91xysapjqv46lfqn"
+ "commit": "0c37fea45603257435294e2e01a403627da23abe",
+ "sha256": "1pynm4ng4rki2b2ka5dz01p66ygghk69mldsfbxs81d52jqfnx8f"
}
},
{
@@ -111576,26 +112498,26 @@
"repo": "10sr/with-venv-el",
"unstable": {
"version": [
- 20200125,
- 1620
+ 20210925,
+ 2336
],
"deps": [
"cl-lib"
],
- "commit": "51ba19ac75a2796d494587b3b20ce51d4eb178a5",
- "sha256": "1nbw88727spdgivrafjnlzbda81nnd1xprqdgmy6h2xfvki23zzb"
+ "commit": "773192d892ec0341e023d8b5e80639f8eb79f2a5",
+ "sha256": "0dh412qj2v4mz6mcjgkiacdcl8pbh2lgyinm70j3dr7qdsbadw97"
},
"stable": {
"version": [
0,
0,
- 1
+ 2
],
"deps": [
"cl-lib"
],
- "commit": "d12341b93420f4acd7a277ed0cd4a54767bc5bd6",
- "sha256": "0knv2ybf4sbn31zyg9ms44mxvmvg7b51krq320g8fpcpa1bq28s6"
+ "commit": "c34979519278a6e17312e8c47a19eb7bc94e5002",
+ "sha256": "1wwj5pyhb3vxrpyqxrmfayjkyamf0v84jq6bb7j2kl90aa8b2m90"
}
},
{
@@ -111770,8 +112692,8 @@
"repo": "abo-abo/worf",
"unstable": {
"version": [
- 20210826,
- 1000
+ 20211014,
+ 1207
],
"deps": [
"ace-link",
@@ -111779,8 +112701,8 @@
"swiper",
"zoutline"
],
- "commit": "aab516cd0cae65796cce89b29691e95d18bec3ef",
- "sha256": "1kiy00r01h05p5i2g0z5kv9dhk3hcbfhjc3gibcx7bspsjsnmn7q"
+ "commit": "d22146bae521d4eeefd0bc2d95c7b64796760faa",
+ "sha256": "1vakix6pdv4ssmwzw7p7iaprp5kyiqjiw8gpi41hn7l3dsgmi4iq"
},
"stable": {
"version": [
@@ -111954,14 +112876,14 @@
"repo": "joostkremers/writeroom-mode",
"unstable": {
"version": [
- 20201229,
- 2242
+ 20210927,
+ 1301
],
"deps": [
"visual-fill-column"
],
- "commit": "b648b340172ce4e44307375697e190bc723203e0",
- "sha256": "03dq65wsfwf4xdl6rj5zpk72gwzwydfdapfz8gh797jn2mp1dqnk"
+ "commit": "eac1da790f316f357ed76ed67fbb790d6a4d126a",
+ "sha256": "01yrz25aymzwkcj5yzs8pmswsg0jgzbynbp9hmjnf3sqlgmang62"
},
"stable": {
"version": [
@@ -112060,11 +112982,11 @@
"repo": "redguardtoo/wucuo",
"unstable": {
"version": [
- 20210316,
- 156
+ 20210915,
+ 1113
],
- "commit": "986c9d96ff898d346b453422e8e312f7976e6089",
- "sha256": "17wls9mn097kwpcg9f4dxa6is0yshxgmjh2z1pk1nwfd8mdpczvg"
+ "commit": "cf4cfbcdc8e756986b927224a42a9006d070f36a",
+ "sha256": "1ach6c5y54gcfgq1nmgla7lri8mi7nja8a85slws4zxvl4b6802w"
},
"stable": {
"version": [
@@ -112191,156 +113113,6 @@
"sha256": "16y13bwsfx4mm8p1n09f4443kh03hl7jvfvkbwdrm6dlbywiqq8m"
}
},
- {
- "ename": "xah-css-mode",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1kkwfyf94v3ni3d4szy28v49p6f3hy8ww9mlris2vvgc726wy6hr",
- "fetcher": "github",
- "repo": "xahlee/xah-css-mode",
- "unstable": {
- "version": [
- 20210905,
- 1756
- ],
- "commit": "b1316dbf6b8b381a6d9149e1b09c645b748cab78",
- "sha256": "1jwgw5s1midak6f15d7azvqa48nljmdbn36sjcm39xfq55m9rfj6"
- }
- },
- {
- "ename": "xah-elisp-mode",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0cl07hw1hd3hj7wrzkh20m8vcs7mqsajxjmnlbnk2yg927yyijij",
- "fetcher": "github",
- "repo": "xahlee/xah-elisp-mode",
- "unstable": {
- "version": [
- 20210904,
- 716
- ],
- "commit": "2c39feb58415d5163e821bf83d0fa2b6d1a235c6",
- "sha256": "062mxc8zbhjing13anx3hd4wnj0702r6ppwbj6glbrvvrjx44ly8"
- }
- },
- {
- "ename": "xah-find",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1d3x9yhm7my3yhvgqnjxr2v28g5w1h4ri40sy6dqcx09bjf3jhyq",
- "fetcher": "github",
- "repo": "xahlee/xah-find",
- "unstable": {
- "version": [
- 20210902,
- 518
- ],
- "commit": "a4cb60fb893b62d39ebeb79e5c322d1192c7cf4b",
- "sha256": "051m6697fxkff7jh8nhzxl9dh6vjw75ndgfz1cf743i79gdgj8nk"
- }
- },
- {
- "ename": "xah-fly-keys",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0bzfz8q7yd1jai0pgngxwjp82nsfx5ivn24cb20vc5r8hhzj17cs",
- "fetcher": "github",
- "repo": "xahlee/xah-fly-keys",
- "unstable": {
- "version": [
- 20210828,
- 1914
- ],
- "commit": "0258ce1969ea4766a2b1a89d3c091cc96ea7ae16",
- "sha256": "1vfnx4p2361pzr3lf4bj09xqbp93g1s7a7fjmgfz4f7agaph77zj"
- }
- },
- {
- "ename": "xah-get-thing",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0m61bmfgqy19h4ivw655mqj547ga8hrpaswcp48hx00hx8mqzcvg",
- "fetcher": "github",
- "repo": "xahlee/xah-get-thing-or-selection",
- "unstable": {
- "version": [
- 20210828,
- 1913
- ],
- "commit": "849683fa055afc982af4811f89998281ffe99315",
- "sha256": "0zcjb8glb28q1vskyp4mwqpysx1nphyciw8jszfhxqgsbr7nq3fv"
- }
- },
- {
- "ename": "xah-lookup",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0z0h1myw6wmybyd0z2lw4l59vgm6q6kh492q77kf3s0fssc0facc",
- "fetcher": "github",
- "repo": "xahlee/lookup-word-on-internet",
- "unstable": {
- "version": [
- 20210902,
- 519
- ],
- "commit": "a8ef9b5597ab176015c185a9da435b2d5e5d5b71",
- "sha256": "0hsy7y1vdc8warh4h0yanckm5b0jh6kpmwhyh035j7xvkg6lzf4w"
- }
- },
- {
- "ename": "xah-math-input",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1afikjk46sjf97fb5fc8h63h7b9af010wxhsbpnmabsb4j72rx5a",
- "fetcher": "github",
- "repo": "xahlee/xah-math-input",
- "unstable": {
- "version": [
- 20210901,
- 207
- ],
- "commit": "e7aefa49d6335cac5c08c7aeb4f4837e2706ae9d",
- "sha256": "0rkrz324l0gr1lm4nbwzlfl5cs8xh6dr2hh00shbkjby9fshy8b1"
- }
- },
- {
- "ename": "xah-reformat-code",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1sj407nbh4x586hvsq4ycr0ahhxin0wgfwdj0551cz8793wvjpzp",
- "fetcher": "github",
- "repo": "xahlee/xah-reformat-code",
- "unstable": {
- "version": [
- 20200913,
- 1701
- ],
- "commit": "c4682148759051b8c27f7be573981f8fc92447e9",
- "sha256": "0kj0aj4vqfpxcn84fvl83wh5c96iw5hr1ycq50x65f0zkyxx59gv"
- }
- },
- {
- "ename": "xah-replace-pairs",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0r4aq9davh3ypzcjixr3aw9g659dhiblwbmcyhm8iqhkavcpqr1x",
- "fetcher": "github",
- "repo": "xahlee/xah-replace-pairs",
- "unstable": {
- "version": [
- 20210906,
- 1001
- ],
- "commit": "2ae97f13ced5a25881c7d7bca1804259403c1f80",
- "sha256": "0akyld9fpzw5smgqnqsv7cbqpqah262y2cwpka1di4wdmz8sijdb"
- }
- },
- {
- "ename": "xahk-mode",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1bs12z7lnqlhm44hq0l98d0ka1bjgvm2yv97yivaj9akd53znca9",
- "fetcher": "github",
- "repo": "xahlee/xahk-mode.el",
- "unstable": {
- "version": [
- 20170821,
- 1107
- ],
- "commit": "02012b20603c00e3b2ef32159a690ed1e05d12c3",
- "sha256": "09nakcfczb95vd48f8z77igmi1kbcblmgpzfzm9i7df4jcfkkh3c"
- }
- },
{
"ename": "xbm-life",
"commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
@@ -112440,8 +113212,8 @@
"repo": "dandavison/xenops",
"unstable": {
"version": [
- 20210630,
- 740
+ 20211102,
+ 1607
],
"deps": [
"aio",
@@ -112451,8 +113223,8 @@
"f",
"s"
],
- "commit": "95b0b37cf5bb6474f054056b0dad9402c700c5b7",
- "sha256": "09xiabicada3ziyinlc9fczcdy2nr01fn3fqlq1vpjzb5882k63l"
+ "commit": "61f4fe7b5cc2549ea7363635307279becac53ea7",
+ "sha256": "188p1lk7d6gbnshikb7qf646ljpcrsdssr0k9jd1vgga8iz22k0d"
}
},
{
@@ -112763,11 +113535,11 @@
"repo": "ideasman42/emacs-xref-rst",
"unstable": {
"version": [
- 20210320,
- 1123
+ 20211006,
+ 2319
],
- "commit": "8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec",
- "sha256": "07i9x2f1mgfr3d5v507ln5z8mh59zdzqv53yyyrcbhvr7j9vi1p3"
+ "commit": "4ca1c15e9fe98fadfb13098dd0ee104d5ca6abf2",
+ "sha256": "0rawl98fsx1rrhq051d77wmz1xp82m9yr9rgb8k3p5g0yacyfkfv"
}
},
{
@@ -113150,21 +113922,6 @@
"sha256": "1xgqqgg4q3hrhiap8gmr8iifdr1mg4dl0j236b6alhrgmykbhimy"
}
},
- {
- "ename": "yandex-weather",
- "commit": "dda8b0cb26b8c58ad58d74171821208dc5bfe452",
- "sha256": "0s9q861cm7qjzzdngk3xm78p2qd4rjbyihw6j92j9x6jdh3p7nd8",
- "fetcher": "github",
- "repo": "acme4j/yandex-weather.el",
- "unstable": {
- "version": [
- 20160311,
- 2037
- ],
- "commit": "6f823fd9e04ff9efb2aa65f333079e9f7e6e5b28",
- "sha256": "0pw44klm8ldsdjphybzkknv8yh23xhzwg76w3d9cqs79jkd0rw8w"
- }
- },
{
"ename": "yang-mode",
"commit": "bb42ab9b5f118baaf6766c478046552b686981a1",
@@ -113220,11 +113977,11 @@
"repo": "JorisE/yapfify",
"unstable": {
"version": [
- 20200406,
- 830
+ 20210914,
+ 634
],
- "commit": "3df4e8ce65f55fd69479b3417525ce83a2b00b45",
- "sha256": "13q84a4q5bv56r9dhi84jqbkx7dc1bvi42s01ahh8vmdvg4h39d3"
+ "commit": "c9347e3b1dec5fc8d34883e206fcdc8500d22368",
+ "sha256": "0gkz4f0yfpfchh78v1c0plbjafag23y18gcg8a8rc5s21nqqhkj4"
},
"stable": {
"version": [
@@ -113392,25 +114149,25 @@
"repo": "AndreaCrotti/yasnippet-snippets",
"unstable": {
"version": [
- 20210808,
- 1851
+ 20210910,
+ 1959
],
"deps": [
"yasnippet"
],
- "commit": "8bf33e9e54de0dca1728221b0dda6789d99b7930",
- "sha256": "1gz4q8knyss9bsz5s5vywi4qvazgwg8ryh7byxkrmbrxibvc9d18"
+ "commit": "f50b4c16ca2a73fd04ebd301f0bf2f5ab6107d88",
+ "sha256": "0iglhbwnx2pk2p05ym43fh3p4vwd77kch6f8aw63jz77ia05cba4"
},
"stable": {
"version": [
- 0,
- 24
+ 1,
+ 0
],
"deps": [
"yasnippet"
],
- "commit": "be823d7e1a1a46454d60a9f3dabb16b68b5dd853",
- "sha256": "0ak0drxlg3m2v4ya5chpgl82rcl7ic2nmnybhpw1qk51mcmv643y"
+ "commit": "c0ef1e8cfd05ef77b9240f3d9e8f0798bbcf9a58",
+ "sha256": "0m78jxhjyf4212ig2ncxr6bhhd6yx4c3nc8x4ylamzq21x4fl21r"
}
},
{
@@ -113683,11 +114440,11 @@
"repo": "ryuslash/yoshi-theme",
"unstable": {
"version": [
- 20210713,
- 455
+ 20211031,
+ 456
],
- "commit": "06a6bcfc58d1f1cd8815c674c9fcbbf193bba0a9",
- "sha256": "0mp68h924hfj86rya0kvk16w82lvllmiryz8ry70ngcfmwdh930v"
+ "commit": "787bb0a13c6e1b28e904e1b7f18564d5e97c9c93",
+ "sha256": "1yf6nnvzx7pv7qfx1wln9ksanapnf5b0chyrdhzy9wyjfx00hclz"
},
"stable": {
"version": [
@@ -113784,10 +114541,10 @@
},
{
"ename": "ytel",
- "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
- "sha256": "0xafyxqps4dp44b4jmm69fa5d24df3fkyim7wa9ddgxkcqfl3mpx",
+ "commit": "447dac94507a1fd6791d08e0f8225c261d1fae2b",
+ "sha256": "0adxiw83rah9hln3k8gm6s7ks3xpqfknypjb9j51lxcabc7c1677",
"fetcher": "github",
- "repo": "gRastello/ytel",
+ "repo": "grastello/ytel",
"unstable": {
"version": [
20200725,
@@ -113955,10 +114712,10 @@
},
{
"ename": "zeno-theme",
- "commit": "b0f1866eff58e706c9f97895bcb7c9cf08b104be",
- "sha256": "0wf6xslnb2avxd4zr1285cb4flwkmwc6j9d8zikrjz7jx3l0xqib",
+ "commit": "8aef13a70809ee1fc00f0e8c2853936380b22422",
+ "sha256": "1hq3yx0l6v2wwgmmsq5c7h5chbila9flpvsr1a9fpq09lbq2yq7g",
"fetcher": "github",
- "repo": "1bharat/zeno-theme",
+ "repo": "zenobharat/zeno-theme",
"unstable": {
"version": [
20181027,
@@ -114091,15 +114848,15 @@
"repo": "EFLS/zetteldeft",
"unstable": {
"version": [
- 20210819,
- 1048
+ 20210919,
+ 1306
],
"deps": [
"ace-window",
"deft"
],
- "commit": "910a6607e172ae20347d74e651d29ebedc58ea06",
- "sha256": "1cccj3y7a353b2b8gvbbs2ami1g3a7961j3dwmcar9lc0yrh3hys"
+ "commit": "f4f227a9cdb69cf06fd3715e40ddf17a069063f1",
+ "sha256": "0baydmll48m0z2pk8gw5z5ki9b04mc7xjxw8ljaz58ph7ik1dpi0"
},
"stable": {
"version": [
@@ -114127,20 +114884,20 @@
"deps": [
"s"
],
- "commit": "748e14b5a0dc2200d10b946d0111bd286e2c1c71",
- "sha256": "1s9nhqbw5jxkqsvy40dd80l5wjw1407vk9qmdfiva8hj0ymcigr6"
+ "commit": "4048bf9e1be7ab759696a9541eec8f435359bcf3",
+ "sha256": "1rnir9mc9cp12wg5p19f0m6g6mvfyv1ahr7zq7azl8hvwmnb6gx7"
},
"stable": {
"version": [
0,
- 3,
+ 4,
0
],
"deps": [
"s"
],
- "commit": "dd4feae2111357d99dcde1919c1d72523cc5b68c",
- "sha256": "16hqk9hdfmbjmhb6bb0xk6silgx85ji0q1dpncwgida6958rq79r"
+ "commit": "4048bf9e1be7ab759696a9541eec8f435359bcf3",
+ "sha256": "1rnir9mc9cp12wg5p19f0m6g6mvfyv1ahr7zq7azl8hvwmnb6gx7"
}
},
{
@@ -114220,14 +114977,14 @@
"repo": "schmir/zimports.el",
"unstable": {
"version": [
- 20200809,
- 2035
+ 20211011,
+ 2059
],
"deps": [
"projectile"
],
- "commit": "4067b20a2ea25327504b0a42f443903728aa7966",
- "sha256": "01ljp3cpslkmp8kxm24ayp5jlg6r431vpk6dm1b9ylr4x4p1klgx"
+ "commit": "76cf76bdc871cb0454a6fc555aeb1aa94f1b6e57",
+ "sha256": "1vx4j9n5q4gmc63lk1l4gbz5j5qn2423cyfibqcbynkkbwgas11z"
}
},
{
@@ -114539,30 +115296,30 @@
"repo": "fvdbeek/emacs-zotero",
"unstable": {
"version": [
- 20210512,
- 820
+ 20211008,
+ 2207
],
"deps": [
"ht",
"oauth",
"s"
],
- "commit": "15eb7a8d099c93440f0a8920499633103f00fc83",
- "sha256": "13mrssrkcjrrpc470rjpb3mwjfdsyvr4i8niqza54rzk0zxj2m95"
+ "commit": "811bd1f14b38c3dde3f80cd8a13490c9900de888",
+ "sha256": "0gh04kbg109038xxcrzhjffqrfcxx7vbz0dz2idglcmbqpg7lzjq"
},
"stable": {
"version": [
0,
2,
- 2
+ 3
],
"deps": [
"ht",
"oauth",
"s"
],
- "commit": "15eb7a8d099c93440f0a8920499633103f00fc83",
- "sha256": "13mrssrkcjrrpc470rjpb3mwjfdsyvr4i8niqza54rzk0zxj2m95"
+ "commit": "811bd1f14b38c3dde3f80cd8a13490c9900de888",
+ "sha256": "0gh04kbg109038xxcrzhjffqrfcxx7vbz0dz2idglcmbqpg7lzjq"
}
},
{
@@ -114605,11 +115362,11 @@
"repo": "abo-abo/zoutline",
"unstable": {
"version": [
- 20210901,
- 1100
+ 20210913,
+ 1117
],
- "commit": "3c0b5072a2f19a35d92dde6377ae7c1ac0d3bfe7",
- "sha256": "0ickivsq8zn0b50mqfa94c63id3fki94wd1w9br84dbd6kjiy1s7"
+ "commit": "d678b0ea805dd18c18746455c70ea68e51422c1d",
+ "sha256": "134c9ibk920nnhmgnvkr97zwgxy7a41kqj14dkrzxmw9lhxnmz20"
},
"stable": {
"version": [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix b/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
index 61749a89fde4..71f9981f461a 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
@@ -1,27 +1,29 @@
-{stdenv, fetchurl, emacs}:
+{ stdenv, fetchurl, emacs, lib }:
-stdenv.mkDerivation {
- name = "session-management-for-emacs-2.2a";
+stdenv.mkDerivation rec {
+ pname = "session-management-for-emacs";
+ version = "2.2a";
src = fetchurl {
- url = "mirror://sourceforge/emacs-session/session-2.2a.tar.gz";
+ url = "mirror://sourceforge/emacs-session/session-${version}.tar.gz";
sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
};
- buildInputs = [emacs];
+ buildInputs = [ emacs ];
installPhase = ''
mkdir -p "$out/share/emacs/site-lisp"
cp lisp/*.el "$out/share/emacs/site-lisp/"
'';
- meta = {
+ meta = with lib; {
/* installation: add to your ~/.emacs
- (require 'session)
- (add-hook 'after-init-hook 'session-initialize)
+ (require 'session)
+ (add-hook 'after-init-hook 'session-initialize)
*/
description = "Small session management for emacs";
homepage = "http://emacs-session.sourceforge.net/";
- license = "GPL";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix b/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
index 09889593fe69..eaa7d8b57793 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
@@ -6,13 +6,13 @@
trivialBuild rec {
pname = "sunrise-commander";
- version = "0.0.0+unstable=2021-07-22";
+ version = "0.pre+unstable=2021-09-27";
src = fetchFromGitHub {
owner = pname;
repo = pname;
- rev = "7662f635c372224e2356d745185db1e718fb7ee4";
- hash = "sha256-NYUqJ2rDidVchX2B0+ApNbQeZFxxCnKRYXb6Ia+NzLI=";
+ rev = "16e6df7e86c7a383fb4400fae94af32baf9cb24e";
+ hash = "sha256-D36qiRi5OTZrBtJ/bD/javAWizZ8NLlC/YP4rdLCSsw=";
};
buildInputs = [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix b/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix
index ea871ccf414f..73fee0dcf398 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix
@@ -2,14 +2,11 @@
trivialBuild {
pname = "sv-kalender";
- version = "1.9";
+ version = "1.11";
src = fetchurl {
url = "http://bigwalter.net/daniel/elisp/sv-kalender.el";
- sha256 = "0kilp0nyhj67qscy13s0g07kygz2qwmddklhan020sk7z7jv3lpi";
- postFetch = ''
- echo "(provide 'sv-kalender)" >> $out
- '';
+ sha256 = "0mcx7g1pg6kfp0i4b9rh3q9csgdf3054ijswy368bxwdxsjgfz2m";
};
meta = with lib; {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix b/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
index b0df381b5f95..7b57d69d5595 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
@@ -7,7 +7,7 @@
trivialBuild {
pname = "youtube-dl";
- version = "0.0.0+unstable=2018-10-12";
+ version = "0.pre+unstable=2018-10-12";
src = fetchFromGitHub {
owner = "skeeto";
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index bcd55258a49d..db043140e77a 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -198,7 +198,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
description = "The extensible, customizable GNU text editor";
homepage = "https://www.gnu.org/software/emacs/";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ lovek323 peti jwiegley adisbladis ];
+ maintainers = with maintainers; [ lovek323 jwiegley adisbladis ];
platforms = platforms.all;
longDescription = ''
diff --git a/pkgs/applications/editors/featherpad/default.nix b/pkgs/applications/editors/featherpad/default.nix
index 84dc16c76d12..8fbcfbb4c101 100644
--- a/pkgs/applications/editors/featherpad/default.nix
+++ b/pkgs/applications/editors/featherpad/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "featherpad";
- version = "1.0.0";
+ version = "1.0.1";
src = fetchFromGitHub {
owner = "tsujan";
repo = "FeatherPad";
rev = "V${version}";
- sha256 = "sha256-GcOvof6bD7GNrABXIR8jOfzjDEN5Lvnj24M154iqQgU=";
+ sha256 = "sha256-FeqTPDix2tqTJ3UU6i2e6FkmCO0KMNt4tLtrPjX57fc=";
};
nativeBuildInputs = [ cmake pkg-config qttools ];
diff --git a/pkgs/applications/editors/fte/default.nix b/pkgs/applications/editors/fte/default.nix
index 4f78267dbe5d..05841bb1bac2 100644
--- a/pkgs/applications/editors/fte/default.nix
+++ b/pkgs/applications/editors/fte/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchurl, unzip, perl, libX11, libXpm, gpm, ncurses, slang }:
stdenv.mkDerivation rec {
- name = "fte-0.50.02";
+ pname = "fte";
+ version = "0.50.02";
nativeBuildInputs = [ unzip ];
buildInputs = [ perl libX11 libXpm gpm ncurses slang ];
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index e77b63218c37..4f2b3f1eb332 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "geany";
- version = "1.37.1";
+ version = "1.38";
outputs = [ "out" "dev" "doc" "man" ];
src = fetchurl {
url = "https://download.geany.org/${pname}-${version}.tar.bz2";
- sha256 = "060sachn33xpx3a609f09y97qq5ky17gvv686zbvrn618ij7bi8q";
+ sha256 = "abff176e4d48bea35ee53037c49c82f90b6d4c23e69aed6e4a5ca8ccd3aad546";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 998341d6bb52..38f38ae3a51b 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv
+{ stdenv
+, lib
, ctags
+, cmark
, appstream-glib
, desktop-file-utils
-, docbook_xsl
-, docbook_xml_dtd_43
, fetchurl
, flatpak
, gnome
, libgit2-glib
+, gi-docgen
, gobject-introspection
, glade
, gspell
-, gtk-doc
, gtk3
, gtksourceview4
, json-glib
@@ -39,20 +39,20 @@
stdenv.mkDerivation rec {
pname = "gnome-builder";
- version = "3.40.2";
+ version = "41.1";
+
+ outputs = [ "out" "devdoc" ];
src = fetchurl {
- url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "16kikslvcfjqj4q3j857mq9i8cyd965b3lvfzcwijc91x3ylr15j";
+ url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+ sha256 = "XVXkqqKkdYpGJj0cf9AJyz20RV4O1/nkTDoWNIYfo4o=";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
- docbook_xsl
- docbook_xml_dtd_43
+ gi-docgen
gobject-introspection
- gtk-doc
meson
ninja
pkg-config
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
buildInputs = [
ctags
+ cmark
flatpak
gnome.devhelp
glade
@@ -92,8 +93,6 @@ stdenv.mkDerivation rec {
xvfb-run
];
- outputs = [ "out" "devdoc" ];
-
prePatch = ''
patchShebangs build-aux/meson/post_install.py
'';
@@ -134,9 +133,13 @@ stdenv.mkDerivation rec {
done
'';
+ postFixup = ''
+ # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
+ moveToOutput share/doc/libide "$devdoc"
+ '';
+
passthru.updateScript = gnome.updateScript {
packageName = pname;
- versionPolicy = "odd-unstable";
};
meta = with lib; {
diff --git a/pkgs/applications/editors/hexcurse/default.nix b/pkgs/applications/editors/hexcurse/default.nix
index a1b90b83d589..9adce387f407 100644
--- a/pkgs/applications/editors/hexcurse/default.nix
+++ b/pkgs/applications/editors/hexcurse/default.nix
@@ -23,6 +23,22 @@ stdenv.mkDerivation rec {
url = "https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch";
sha256 = "0v6gbp6pjpmnzswlf6d97aywiy015g3kcmfrrkspsbb7lh1y3nix";
})
+
+ # Fix pending upstream inclusion for gcc10 -fno-common compatibility:
+ # https://github.com/LonnyGomes/hexcurse/pull/28
+ (fetchpatch {
+ name = "fno-common.patch";
+ url = "https://github.com/LonnyGomes/hexcurse/commit/9cf7c9dcd012656df949d06f2986b57db3a72bdc.patch";
+ sha256 = "1awsyxys4pd3gkkgyckgjg3njgqy07223kcmnpfdkidh2xb0s360";
+ })
+
+ # Fix pending upstream inclusion for ncurses-6.3 support:
+ # https://github.com/LonnyGomes/hexcurse/pull/40
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/LonnyGomes/hexcurse/commit/cb70d4a93a46102f488f471fad31a7cfc9fec025.patch";
+ sha256 = "19674zhhp7gc097kl4bxvi0gblq6jzjy8cw8961svbq5y3hv1v5y";
+ })
];
meta = with lib; {
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index 3992fc5c2ec4..4d8835c29c5f 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -17,7 +17,7 @@ let loName = toLower product;
+ ".vmoptions";
in
-with stdenv; lib.makeOverridable mkDerivation rec {
+with stdenv; lib.makeOverridable mkDerivation (rec {
inherit name src;
meta = args.meta // { inherit mainProgram; };
@@ -94,4 +94,4 @@ with stdenv; lib.makeOverridable mkDerivation rec {
} // lib.optionalAttrs (!(meta.license.free or true)) {
preferLocalBuild = true;
-}
+})
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index db2d36e338f7..4c65ddcc8f67 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -242,12 +242,12 @@ in
clion = buildClion rec {
name = "clion-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
- sha256 = "0knl0ca15cj0nggyfhd7s0szxr2vp7xvvp3nna3mplssfn59zf9d"; /* updated by script */
+ sha256 = "09qbzkxyk435s4n04s12ncjyri024wj9pwz8wgjjsswpfa69dhr5"; /* updated by script */
};
wmClass = "jetbrains-clion";
update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -255,12 +255,12 @@ in
datagrip = buildDataGrip rec {
name = "datagrip-${version}";
- version = "2021.2.2"; /* updated by script */
+ version = "2021.2.4"; /* updated by script */
description = "Your Swiss Army Knife for Databases and SQL";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
- sha256 = "18dammsvd43x8cx0plzwgankmzfv7j79z0nsdagd540v99c2r2v3"; /* updated by script */
+ sha256 = "1vj9ihzw07bh30ngy8mj027ljq9zzd904k61f8jbfpw75vknh8f6"; /* updated by script */
};
wmClass = "jetbrains-datagrip";
update-channel = "DataGrip RELEASE";
@@ -268,12 +268,12 @@ in
goland = buildGoland rec {
name = "goland-${version}";
- version = "2021.2.2"; /* updated by script */
+ version = "2021.2.4"; /* updated by script */
description = "Up and Coming Go IDE";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
- sha256 = "0ayqvyd24klafm09kls4fdp2acqsvh0zhm4wsrmrshlpmdqd5vjk"; /* updated by script */
+ sha256 = "03x7yz8jz5r4pblm7cvph39zppa33lalvkpzmgvr3wjq0chqmh65"; /* updated by script */
};
wmClass = "jetbrains-goland";
update-channel = "GoLand RELEASE";
@@ -281,12 +281,12 @@ in
idea-community = buildIdea rec {
name = "idea-community-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
- sha256 = "1af43c51ryvqc7c9r3kz2266j0nvz50xw1vhfjbd74c3ycj8a1zz"; /* updated by script */
+ sha256 = "166rhssyizn40rlar7ym7gkwz2aawp58qqvrs60w3cwwvjvb0bjq"; /* updated by script */
};
wmClass = "jetbrains-idea-ce";
update-channel = "IntelliJ IDEA RELEASE";
@@ -294,12 +294,12 @@ in
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
- sha256 = "1257a9d9h3ybdsnm74jmgzp1rfi1629gv9kr0w2nhmxj7ghhbx4w"; /* updated by script */
+ sha256 = "1d0kk2yydrbzvdy6dy9jqr182panidmbf2hy80gvi5ph2r5rv1qd"; /* updated by script */
};
wmClass = "jetbrains-idea";
update-channel = "IntelliJ IDEA RELEASE";
@@ -307,13 +307,13 @@ in
mps = buildMps rec {
name = "mps-${version}";
- version = "2021.1.3"; /* updated by script */
- versionMajorMinor = "2021.1"; /* updated by script */
+ version = "2021.2.2"; /* updated by script */
+ versionMajorMinor = "2021.2"; /* updated by script */
description = "Create your own domain-specific language";
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/mps/${versionMajorMinor}/MPS-${version}.tar.gz";
- sha256 = "0w1nchaa2d3z3mdp43mvifnbibl1ribyc98dm7grnwvrqk72pabf"; /* updated by script */
+ sha256 = "011prnpab72kfgkwq0ms27qqnjamh33h023gb01fxvqwwzcmp6sk"; /* updated by script */
};
wmClass = "jetbrains-mps";
update-channel = "MPS RELEASE";
@@ -321,12 +321,12 @@ in
phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "Professional IDE for Web and PHP developers";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
- sha256 = "1iqnq38d71wbl1iqhqr5as1802s53m3220vq4g42mdjgdj296bdk"; /* updated by script */
+ sha256 = "1avcm4fnkn0jkw85s505yz5kjbxzk038463sjdsca04pv5yhsdp0"; /* updated by script */
};
wmClass = "jetbrains-phpstorm";
update-channel = "PhpStorm RELEASE";
@@ -334,12 +334,12 @@ in
pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "PyCharm Community Edition";
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "1z59yvk3wrqn0c9581vvv62wxf4fyybha426ipyqml8c405z27y4"; /* updated by script */
+ sha256 = "0m98qhkgwnmqkay8sclfyig2xcqvpva74l2kdira3r5sbszmxvcr"; /* updated by script */
};
wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm RELEASE";
@@ -347,12 +347,12 @@ in
pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "PyCharm Professional Edition";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "0sh9kdr53dhhq171p9lmsvci3qzlds4vzyqx12mzfvfs7svri1w2"; /* updated by script */
+ sha256 = "0zp72ag9jqhq0sv4x5n43d6g9y2yzkxa4pkflc7gd5rpg555cqr7"; /* updated by script */
};
wmClass = "jetbrains-pycharm";
update-channel = "PyCharm RELEASE";
@@ -360,12 +360,12 @@ in
rider = buildRider rec {
name = "rider-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.2"; /* updated by script */
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
- sha256 = "1b5ih6q8kyds8px7gldfz1m9ap3kk27yswwxy1735c83094l2nlm"; /* updated by script */
+ sha256 = "17xx8mz3dr5iqlr0lsiy8a6cxz3wp5vg8z955cdv0hf8b5rncqfa"; /* updated by script */
};
wmClass = "jetbrains-rider";
update-channel = "Rider RELEASE";
@@ -373,12 +373,12 @@ in
ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
- sha256 = "09blnm6han2rmdvjbr1va081zndzvjr1i0m3njaiwcb9rf2axm32"; /* updated by script */
+ sha256 = "0bbq5ya1dxrgaqqqsc4in4rgv7v292hww3bb0vpzwz6dmc2jly1i"; /* updated by script */
};
wmClass = "jetbrains-rubymine";
update-channel = "RubyMine RELEASE";
@@ -386,12 +386,12 @@ in
webstorm = buildWebStorm rec {
name = "webstorm-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "Professional IDE for Web and JavaScript development";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
- sha256 = "12i9f5sw02gcgviflfs6gwmnxvzhgmm4v4447am0syl4nq8nyv1s"; /* updated by script */
+ sha256 = "0d79x1jz4ymd6cc1n4s3y3n8lb6gw4g0yj6d4qzjlr5c9snx3zdf"; /* updated by script */
};
wmClass = "jetbrains-webstorm";
update-channel = "WebStorm RELEASE";
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index 2562a821b822..e8c2760973a6 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with lib;
stdenv.mkDerivation rec {
pname = "kakoune-unwrapped";
- version = "2021.08.28";
+ version = "2021.11.08";
src = fetchFromGitHub {
repo = "kakoune";
owner = "mawww";
rev = "v${version}";
- sha256 = "13kc68vkrzg89khir6ayyxgbnmz16dhippcnw09hhzxivf5ayzpy";
+ sha256 = "sha256-lMGMt0H1G8EN/7zSVSvU1yU4BYPnSF1vWmozLdrRTQk=";
};
makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
diff --git a/pkgs/applications/editors/kakoune/plugins/aliases.nix b/pkgs/applications/editors/kakoune/plugins/aliases.nix
index 5ff2a03441de..cf9a65c43f2b 100644
--- a/pkgs/applications/editors/kakoune/plugins/aliases.nix
+++ b/pkgs/applications/editors/kakoune/plugins/aliases.nix
@@ -33,7 +33,7 @@ let
deprecations = lib.mapAttrs (old: info:
throw "${old} was renamed to ${info.new} on ${info.date}. Please update to ${info.new}."
- ) (builtins.fromJSON (builtins.readFile ./deprecated.json));
+ ) (lib.importJSON ./deprecated.json);
in
mapAliases ({
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix
index 6819c4337f4c..686113452eb8 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/default.nix
@@ -22,10 +22,11 @@
}:
mkDerivation rec {
- name = "kile-2.9.93";
+ pname = "kile";
+ version = "2.9.93";
src = fetchurl {
- url = "mirror://sourceforge/kile/${name}.tar.bz2";
+ url = "mirror://sourceforge/kile/kile-${version}.tar.bz2";
sha256 = "BEmSEv/LJPs6aCkUmnyuTGrV15WYXwgIANbfcviMXfA=";
};
diff --git a/pkgs/applications/editors/leo-editor/default.nix b/pkgs/applications/editors/leo-editor/default.nix
index e583671bcb40..cf4a752b1bd0 100644
--- a/pkgs/applications/editors/leo-editor/default.nix
+++ b/pkgs/applications/editors/leo-editor/default.nix
@@ -63,5 +63,6 @@ mkDerivation rec {
longDescription = "Leo is a PIM, IDE and outliner that accelerates the work flow of programmers, authors and web designers.";
license = licenses.mit;
maintainers = with maintainers; [ leonardoce ];
+ mainProgram = "leo";
};
}
diff --git a/pkgs/applications/editors/lighttable/default.nix b/pkgs/applications/editors/lighttable/default.nix
index 0b550c5f11d2..e2e08a84c884 100644
--- a/pkgs/applications/editors/lighttable/default.nix
+++ b/pkgs/applications/editors/lighttable/default.nix
@@ -1,12 +1,12 @@
{ stdenv, lib, fetchurl, zlib, glib, alsa-lib, makeDesktopItem
, dbus, gtk2, atk, pango, freetype, fontconfig, libgnome-keyring3, gdk-pixbuf
-, cairo, cups, expat, libgpgerror, nspr, gnome2, nss, xorg, systemd, libnotify
+, cairo, cups, expat, libgpg-error, nspr, gnome2, nss, xorg, systemd, libnotify
}:
let
libPath = lib.makeLibraryPath [
stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3 nss
- fontconfig gdk-pixbuf cairo cups expat libgpgerror alsa-lib nspr gnome2.GConf
+ fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr gnome2.GConf
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
xorg.libXcomposite xorg.libXi xorg.libXfixes libnotify xorg.libXrandr
xorg.libXcursor
diff --git a/pkgs/applications/editors/mindforger/default.nix b/pkgs/applications/editors/mindforger/default.nix
index 6b93153ec041..2f75fb34cd18 100644
--- a/pkgs/applications/editors/mindforger/default.nix
+++ b/pkgs/applications/editors/mindforger/default.nix
@@ -52,7 +52,6 @@ stdenv.mkDerivation rec {
postInstall = lib.optionalString stdenv.isDarwin ''
mkdir "$out"/Applications
mv app/mindforger.app "$out"/Applications/
- wrapQtApp "$out"/Applications/mindforger.app/Contents/MacOS/mindforger
'';
meta = with lib; {
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index bd61933b38d7..f7fb1b5bfc6a 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
in stdenv.mkDerivation rec {
pname = "nano";
- version = "5.8";
+ version = "5.9";
src = fetchurl {
url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
- sha256 = "133nhxg4xfxisjzi85rn2l575hdbvcax1s13l4m6wcvq5zdn6fz4";
+ sha256 = "dX24zaS7KHNZnkd4OvRj47VHpiewyrsw6nv3H7TCSTc=";
};
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/nano/nanorc/default.nix b/pkgs/applications/editors/nano/nanorc/default.nix
index fcec55871aa8..0675ceaba962 100644
--- a/pkgs/applications/editors/nano/nanorc/default.nix
+++ b/pkgs/applications/editors/nano/nanorc/default.nix
@@ -32,7 +32,6 @@ in stdenv.mkDerivation rec {
git
gnused
nix
- nixfmt
]
}
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"' | sed 's|\\.|-|g')"
@@ -42,7 +41,6 @@ in stdenv.mkDerivation rec {
default_nix="$nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix"
newTag=$(echo $latestTag | sed 's|\.|-|g')
update-source-version ${pname} "$newTag" --version-key=version --print-changes
- nixfmt "$default_nix"
else
echo "${pname} is already up-to-date"
fi
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 9e5901cb9416..6a55e7c8e396 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, cmake, gettext, msgpack, libtermkey, libiconv
, libuv, lua, ncurses, pkg-config
-, unibilium, xsel, gperf
+, unibilium, gperf
, libvterm-neovim
, tree-sitter
, glibcLocales ? null, procps ? null
@@ -32,13 +32,13 @@ let
in
stdenv.mkDerivation rec {
pname = "neovim-unwrapped";
- version = "0.5.0";
+ version = "0.5.1";
src = fetchFromGitHub {
owner = "neovim";
repo = "neovim";
rev = "v${version}";
- sha256 = "0lgbf90sbachdag1zm9pmnlbn35964l3khs27qy4462qzpqyi9fi";
+ sha256 = "0b2gda9h14lvwahrr7kq3ix8wsw99g4ngy1grmhv5544n93ypcyk";
};
patches = [
@@ -113,10 +113,6 @@ in
substituteInPlace src/nvim/CMakeLists.txt --replace " util" ""
'';
- postInstall = lib.optionalString stdenv.isLinux ''
- sed -i -e "s|'xsel|'${xsel}/bin/xsel|g" $out/share/nvim/runtime/autoload/provider/clipboard.vim
- '';
-
# export PATH=$PWD/build/bin:${PATH}
shellHook=''
export VIMRUNTIME=$PWD/runtime
diff --git a/pkgs/applications/editors/neovim/neovide/default.nix b/pkgs/applications/editors/neovim/neovide/default.nix
index 75d20a12a0d9..c2a696cd425b 100644
--- a/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/pkgs/applications/editors/neovim/neovide/default.nix
@@ -17,21 +17,23 @@
, makeFontsConf
, libglvnd
, libxkbcommon
+, stdenv
+, enableWayland ? stdenv.isLinux
, wayland
, xorg
}:
rustPlatform.buildRustPackage rec {
pname = "neovide";
- version = "unstable-2021-08-08";
+ version = "unstable-2021-10-09";
src = fetchFromGitHub {
owner = "Kethku";
repo = "neovide";
- rev = "725f12cafd4a26babd0d6bbcbca9a99c181991ac";
- sha256 = "sha256-ThMobWKe3wHhR15TmmKrI6Gp1wvGVfJ52MzibK0ubkc=";
+ rev = "7f76ad4764197ba75bb9263d25b265d801563ccf";
+ sha256 = "sha256-kcP0WSk3quTaWCGQYN4zYlDQ9jhx/Vu6AamSLGFszwQ=";
};
- cargoSha256 = "sha256-5lOGncnyA8DwetY5bU6k2KXNClFgp+xIBEeA0/iwGF0=";
+ cargoSha256 = "sha256-TQEhz9FtvIb/6Qtyz018dPle0+nub1oMZMFtKAqYcoI=";
SKIA_SOURCE_DIR =
let
@@ -96,9 +98,18 @@ rustPlatform.buildRustPackage rec {
}))
];
- postFixup = ''
+ postFixup = let
+ libPath = lib.makeLibraryPath ([
+ libglvnd
+ libxkbcommon
+ xorg.libXcursor
+ xorg.libXext
+ xorg.libXrandr
+ xorg.libXi
+ ] ++ lib.optionals enableWayland [ wayland ]);
+ in ''
wrapProgram $out/bin/neovide \
- --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd libxkbcommon wayland xorg.libXcursor xorg.libXext xorg.libXrandr xorg.libXi ]}
+ --prefix LD_LIBRARY_PATH : ${libPath}
'';
postInstall = ''
@@ -115,7 +126,7 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/Kethku/neovide";
license = with licenses; [ mit ];
maintainers = with maintainers; [ ck3d ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
mainProgram = "neovide";
};
}
diff --git a/pkgs/applications/editors/neovim/tests.nix b/pkgs/applications/editors/neovim/tests.nix
index 085fceac1108..1e46a59f563b 100644
--- a/pkgs/applications/editors/neovim/tests.nix
+++ b/pkgs/applications/editors/neovim/tests.nix
@@ -87,7 +87,7 @@ rec {
nvim_with_plug = neovim.override {
extraName = "-with-plug";
configure.plug.plugins = with pkgs.vimPlugins; [
- base16-vim
+ (base16-vim.overrideAttrs(old: { pname = old.pname + "-unique-for-tests-please-dont-use"; }))
];
configure.customRC = ''
color base16-tomorrow-night
@@ -97,7 +97,7 @@ rec {
run_nvim_with_plug = runTest nvim_with_plug ''
export HOME=$TMPDIR
- ${nvim_with_plug}/bin/nvim -i NONE -c 'color base16-tomorrow-night' +quit!
+ ${nvim_with_plug}/bin/nvim -i NONE -c 'color base16-tomorrow-night' +quit! -e
'';
diff --git a/pkgs/applications/editors/oni2/common.nix b/pkgs/applications/editors/oni2/common.nix
new file mode 100644
index 000000000000..e049c3ae6416
--- /dev/null
+++ b/pkgs/applications/editors/oni2/common.nix
@@ -0,0 +1,252 @@
+{ lib, stdenv, nodePackages
+# Fetch dependencies
+, fetchFromGitHub, gitMinimal, curlMinimal, cacert, yarn, unzip, xorg, nodejs
+, ripgrep, fontconfig, libGL, libGLU, ncurses, acl, harfbuzz, libjpeg, expat
+, icu58, libpng
+# Build
+, jq, perl, makeWrapper, bash, which, nasm, python2, gn, ninja, cmake, clang
+, fixup_yarn_lock, callPackage }:
+
+{ variant, version, rev, sha256, fetchDepsSha256, license }:
+
+let
+ source = fetchFromGitHub {
+ repo = variant;
+ owner = "onivim";
+ inherit rev sha256;
+ };
+
+ fetchDeps = stdenv.mkDerivation {
+ name = "oni2-fetch-deps";
+
+ unpackPhase = ''
+ cp ${source}/{release,package}.json ./
+ cp -r ${source}/{release.esy.lock,node,extensions} ./
+ chmod -R +w node extensions
+ '';
+
+ nativeBuildInputs = [
+ jq
+ nodePackages.esy
+ gitMinimal
+ curlMinimal
+ cacert
+ python2
+ perl
+ unzip
+ yarn
+ ];
+
+ buildPhase = ''
+ export ESY__PREFIX=$NIX_BUILD_TOP/esy
+ export ESY__GLOBAL_PATH=PATH
+
+ esy '@release' install
+
+ ln -s $NIX_BUILD_TOP/esy/source/i/ $NIX_BUILD_TOP/source
+
+ cd $NIX_BUILD_TOP/source
+ cd $(ls | grep "^esy_skia")
+
+ # Prefetch esy_skia pinned dependencies
+ # angle2, dng_sdk, piex and sfntly are unique and need to be fetched
+ # zlib and webp used here seem to be outdated, so it's impossible to link esy_skia against upstream zlib and webp
+ cat DEPS | grep -E '{|}|angle2|dng_sdk|piex|sfntly|zlib|webp' > DEPS-upd
+ mv DEPS{-upd,}
+ python tools/git-sync-deps
+ # Patch esy_skia builder to use nixpkgs ninja, gn tools and icu, expat and libpng libraries.
+ cd esy
+ patch build.sh ${./esy_skia_use_nixpkgs.patch}
+
+ cd $NIX_BUILD_TOP/source
+ cd $(ls | grep '^revery' | grep -v '__s__')
+ jq '.esy.build |= "bash -c \"\(.)\""' package.json > package-upd.json
+ mv package{-upd,}.json
+
+ # Delete esy_cmake and ninja dependencies (they are brought from Nixpkgs)
+ # Removing them from release.esy.lock is hard because it reports corruption
+ for d in "revery__s__esy_cmake" "ninja"; do
+ cd $NIX_BUILD_TOP/source
+ cd $(ls | grep $d)
+ rm -rf *
+ done
+
+ rm -rf $(find $NIX_BUILD_TOP/esy -name .git)
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cp -r $NIX_BUILD_TOP/esy $out/
+ '';
+
+ dontPatchShebangs = true;
+
+ impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = fetchDepsSha256;
+ };
+in stdenv.mkDerivation (rec {
+ pname = "oni2";
+ inherit version;
+
+ nativeBuildInputs = [
+ clang
+ makeWrapper
+ nodePackages.esy
+ bash
+ perl
+ which
+ nasm
+ python2
+ gn
+ ninja
+ cmake
+ jq
+ yarn
+ fixup_yarn_lock
+ ];
+
+ buildInputs = [
+ nodejs
+ ripgrep
+ fontconfig
+ libGL
+ libGLU
+ ncurses
+ acl
+ harfbuzz
+ libjpeg
+ expat
+ icu58
+ libpng
+ ] ++ (with xorg; [
+ libX11
+ libXext
+ libXi
+ libXxf86vm
+ libXrandr
+ libXinerama
+ libXcursor
+ libICE
+ libSM
+ libXt
+ libxkbfile
+ ]);
+
+ unpackPhase = ''
+ cp -r ${source}/* ./
+ cp -r ${fetchDeps}/esy ./
+
+ chmod -R +w esy node/ extensions/
+ chmod +w assets/configuration
+ '';
+
+ hardeningDisable = [ "fortify" ];
+
+ node = (callPackage ./node.nix { }).offline_cache;
+ extensions = (callPackage ./extensions.nix { }).offline_cache;
+
+ configurePhase = ''
+ runHook preConfigure
+
+ # Esy by default erases the entire environment, so the builder makes a wrapper over bash to automatically re-export it
+ mkdir wrapped-bash
+ echo "#!${bash}/bin/bash" > wrapped-bash/bash
+ export | sed 's/PATH="/PATH="$PATH:/' >> wrapped-bash/bash
+ echo "exec ${bash}/bin/bash \"\$@\"" >> wrapped-bash/bash
+ chmod +x wrapped-bash/bash
+
+ # Use custom builder for Oni2 to provide necessary environment to it
+ echo 'declare -x NIX_LDFLAGS="$NIX_LDFLAGS -lXext -lharfbuzz -ljpeg -lpthread -lpng -lexpat"' > build.sh
+ echo $(jq -r '.esy.build' package.json) >> build.sh
+ jq '.esy.build |= "bash build.sh"' package.json > package-upd.json
+ mv package{-upd,}.json
+
+ export PATH="$NIX_BUILD_TOP/wrapped-bash:$PATH"
+ patchShebangs $NIX_BUILD_TOP/esy/source
+
+ echo "" > assets/configuration/setup.json # it will be set at installation phase.
+
+ substituteInPlace src/gen_buildinfo/generator.re --replace "git rev-parse --short HEAD" "echo '${version}'"
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ # Required by yarn
+ export HOME=$(mktemp -d)
+
+ # Install pinned yarn packages
+ yarnInstall() {
+ # Remove `resolutions` section from package.json
+ jq 'del(.resolutions)' $3/package.json > $3/package-upd.json
+ cp $3/package{-upd,}.json
+
+ # Copy custom yarn.lock to match updated package.json, do fixup
+ cp $2 $3/yarn.lock
+ fixup_yarn_lock $3/yarn.lock
+
+ # Make yarn install prefetched dependencies
+ yarn config --offline set yarn-offline-mirror $1
+ # Set explicit node install directory for node-gyp.
+ npm_config_nodedir=${nodejs} yarn install --frozen-lockfile --offline --no-progress --non-interactive --cwd $3
+ }
+ yarnInstall ${node} ${./node.lock} node
+ yarnInstall ${extensions} ${./extensions.lock} extensions
+
+ export ESY__PREFIX="$NIX_BUILD_TOP/esy"
+ esy '@release' install # should do nothing
+
+ export ESY__GLOBAL_PATH=PATH
+ # Create link to bin directory, currently empty
+ esy '@release' sh -c "ln -s \$cur__bin result"
+ # Finish building Oni2
+ esy '@release' x Oni2 --help
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir $out
+
+ cp -Lr ./result $out/bin
+ cp -r ./node $out/
+ cp -r ./extensions $out/
+
+ chmod +w $out/bin
+ chmod +x $out/bin/Oni2 $out/bin/Oni2_editor
+ # Unset LANG and XMODIFIERS. See https://github.com/onivim/oni2/issues/3772
+ # Unset SDL_VIDEODRIVER because Wayland is not supported. See https://github.com/onivim/oni2/issues/3438
+ mv $out/bin/Oni2{,_unwrapped}
+ makeWrapper $out/bin/Oni2{_unwrapped,} --unset LANG --unset XMODIFIERS --unset SDL_VIDEODRIVER
+ mv $out/bin/Oni2_editor{,_unwrapped}
+ makeWrapper $out/bin/Oni2_editor{_unwrapped,} --unset LANG --unset XMODIFIERS --unset SDL_VIDEODRIVER
+
+ rm -f $out/bin/setup.json
+ jq -n "{node: \"${nodejs}/bin/node\", nodeScript: \"$out/node\", bundledExtensions: \"$out/extensions\", rg: \"${ripgrep}/bin/rg\"}" > $out/bin/setup.json
+
+ mkdir -p $out/share/applications $out/share/pixmaps
+ cp ${source}/scripts/linux/Onivim2.desktop $out/share/applications
+ cp ${source}/assets/images/icon512.png $out/share/pixmaps/Onivim2.png
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Native, lightweight modal code editor";
+ longDescription = ''
+ Onivim 2 is a reimagination of the Oni editor. Onivim 2 aims to bring the speed of Sublime, the language integration of VSCode, and the modal editing experience of Vim together, in a single package.
+ '';
+ homepage = "https://v2.onivim.io/";
+ inherit license;
+ maintainers = with maintainers; [ gardspirito ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+})
+
diff --git a/pkgs/applications/editors/oni2/default.nix b/pkgs/applications/editors/oni2/default.nix
new file mode 100644
index 000000000000..6721cf24d96b
--- /dev/null
+++ b/pkgs/applications/editors/oni2/default.nix
@@ -0,0 +1,16 @@
+{ callPackage }:
+
+let mkOni2 = callPackage ./common.nix { };
+in mkOni2 rec {
+ variant = "oni2";
+ license = {
+ fullName = "Outrun Labs End User License Agreement";
+ url = "https://github.com/onivim/oni2/blob/master/Outrun-Labs-EULA-v1.1.md";
+ free = false;
+ };
+ version = "0.5.7";
+ rev = "v${version}";
+ sha256 = "NlN0Ntdwtx5XLjd1ltUzv/bjmJQR5eyRqtmicppP6YU=";
+ fetchDepsSha256 = "k7G6jPJfxCCSuSucPfiXljCVJhmjl/BxWMCEjv2tfhA=";
+}
+
diff --git a/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch b/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch
new file mode 100644
index 000000000000..50a1802816c0
--- /dev/null
+++ b/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch
@@ -0,0 +1,13 @@
+diff --git a/build-or.sh b/build.sh
+index be0bc6f..fddc9cb 100644
+--- a/build-or.sh
++++ b/build.sh
+@@ -50,6 +50,6 @@ else
+ echo "llvm toolset-7.0 does not need to be manually activated"
+ fi
+
+- bin/gn gen $cur__target_dir/out/Static --script-executable="$PYTHON_BINARY" "--args=cc=\"$CC\" cxx=\"$CXX\" skia_use_system_libjpeg_turbo=true esy_skia_enable_svg=true is_debug=false extra_cflags=[\"-I${ESY_LIBJPEG_TURBO_PREFIX}/include\"] extra_ldflags=[\"-L${ESY_LIBJPEG_TURBO_PREFIX}/lib\", \"-ljpeg\" ]" || exit -1
+- ninja.exe -C $cur__target_dir/out/Static || exit -1
++ gn gen $cur__target_dir/out/Static --script-executable="$PYTHON_BINARY" "--args=cc=\"$CC\" cxx=\"$CXX\" skia_use_system_libjpeg_turbo=true skia_use_system_expat=true skia_use_system_icu=true skia_use_system_libpng=true esy_skia_enable_svg=true is_debug=false extra_cflags=[\"-I${ESY_LIBJPEG_TURBO_PREFIX}/include\"] extra_ldflags=[\"-L${ESY_LIBJPEG_TURBO_PREFIX}/lib\", \"-ljpeg\" ]" || exit -1
++ ninja -C $cur__target_dir/out/Static || exit -1
+ fi
diff --git a/pkgs/applications/editors/oni2/extensions.lock b/pkgs/applications/editors/oni2/extensions.lock
new file mode 100644
index 000000000000..2e757cdf9464
--- /dev/null
+++ b/pkgs/applications/editors/oni2/extensions.lock
@@ -0,0 +1,497 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@emmetio/css-parser@ramya-rao-a/css-parser#vscode":
+ version "0.4.0"
+ resolved "https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660"
+ dependencies:
+ "@emmetio/stream-reader" "^2.2.0"
+ "@emmetio/stream-reader-utils" "^0.1.0"
+
+"@emmetio/extract-abbreviation@0.1.6":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@emmetio/extract-abbreviation/-/extract-abbreviation-0.1.6.tgz#e4a9856c1057f0aff7d443b8536477c243abe28c"
+ integrity sha512-Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw==
+
+"@emmetio/html-matcher@^0.3.3":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@emmetio/html-matcher/-/html-matcher-0.3.3.tgz#0bbdadc0882e185950f03737dc6dbf8f7bd90728"
+ integrity sha1-C72twIguGFlQ8Dc33G2/j3vZByg=
+ dependencies:
+ "@emmetio/stream-reader" "^2.0.0"
+ "@emmetio/stream-reader-utils" "^0.1.0"
+
+"@emmetio/math-expression@^0.1.1":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@emmetio/math-expression/-/math-expression-0.1.1.tgz#1ff2c7f05800f64c57ca89038ee18bce9f5776dc"
+ integrity sha1-H/LH8FgA9kxXyokDjuGLzp9Xdtw=
+ dependencies:
+ "@emmetio/stream-reader" "^2.0.1"
+ "@emmetio/stream-reader-utils" "^0.1.0"
+
+"@emmetio/stream-reader-utils@^0.1.0":
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz#244cb02c77ec2e74f78a9bd318218abc9c500a61"
+ integrity sha1-JEywLHfsLnT3ipvTGCGKvJxQCmE=
+
+"@emmetio/stream-reader@^2.0.0", "@emmetio/stream-reader@^2.0.1", "@emmetio/stream-reader@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz#46cffea119a0a003312a21c2d9b5628cb5fcd442"
+ integrity sha1-Rs/+oRmgoAMxKiHC2bVijLX81EI=
+
+agent-base@4, agent-base@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
+ integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
+ dependencies:
+ es6-promisify "^5.0.0"
+
+applicationinsights@1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.8.tgz#db6e3d983cf9f9405fe1ee5ba30ac6e1914537b5"
+ integrity sha512-KzOOGdphOS/lXWMFZe5440LUdFbrLpMvh2SaRxn7BmiI550KAoSb2gIhiq6kJZ9Ir3AxRRztjhzif+e5P5IXIg==
+ dependencies:
+ diagnostic-channel "0.2.0"
+ diagnostic-channel-publishers "0.2.1"
+ zone.js "0.7.6"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+byline@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
+ integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
+
+commander@^2.19.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commandpost@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/commandpost/-/commandpost-1.4.0.tgz#89218012089dfc9b67a337ba162f15c88e0f1048"
+ integrity sha512-aE2Y4MTFJ870NuB/+2z1cXBhSBBzRydVVjzhFC4gtenEhpnj15yu0qptWGJsO9YGrcPZ3ezX8AWb1VA391MKpQ==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+debug@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.1.0:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
+diagnostic-channel-publishers@0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
+ integrity sha1-ji1geottef6IC1SLxYzGvrKIxPM=
+
+diagnostic-channel@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
+ integrity sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=
+ dependencies:
+ semver "^5.3.0"
+
+editorconfig@^0.15.0:
+ version "0.15.3"
+ resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"
+ integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==
+ dependencies:
+ commander "^2.19.0"
+ lru-cache "^4.1.5"
+ semver "^5.6.0"
+ sigmund "^1.0.1"
+
+entities@~2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
+ integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==
+
+es6-promise@^4.0.3:
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
+ integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
+
+es6-promisify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
+ dependencies:
+ es6-promise "^4.0.3"
+
+file-type@^7.2.0:
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-7.7.1.tgz#91c2f5edb8ce70688b9b68a90d931bbb6cb21f65"
+ integrity sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+glob@^7.1.3:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+highlight.js@10.1.2:
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c"
+ integrity sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA==
+
+http-proxy-agent@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
+ integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
+ dependencies:
+ agent-base "4"
+ debug "3.1.0"
+
+https-proxy-agent@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
+ integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
+ dependencies:
+ agent-base "^4.3.0"
+ debug "^3.1.0"
+
+iconv-lite-umd@0.6.8:
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/iconv-lite-umd/-/iconv-lite-umd-0.6.8.tgz#5ad310ec126b260621471a2d586f7f37b9958ec0"
+ integrity sha512-zvXJ5gSwMC9JD3wDzH8CoZGc1pbiJn12Tqjk8BXYCnYz3hYL5GRjHW8LEykjXhV9WgNGI4rgpgHcbIiBfrRq6A==
+
+image-size@^0.5.2:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
+ integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+jschardet@2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-2.2.1.tgz#03b0264669a90c7a5c436a68c5a7d4e4cb0c9823"
+ integrity sha512-Ks2JNuUJoc7PGaZ7bVFtSEvOcr0rBq6Q1J5/7+zKWLT+g+4zziL63O0jg7y2jxhzIa1LVsHUbPXrbaWmz9iwDw==
+
+jsonc-parser@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e"
+ integrity sha512-hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g==
+
+jsonc-parser@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22"
+ integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==
+
+linkify-it@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
+ integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
+ dependencies:
+ uc.micro "^1.0.1"
+
+lru-cache@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+markdown-it-front-matter@^0.2.1:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/markdown-it-front-matter/-/markdown-it-front-matter-0.2.3.tgz#d6fa0f4b362e02086dd4ce8219fadf3f4c9cfa37"
+ integrity sha512-s9+rcClLmZsZc3YL8Awjg/YO/VdphlE20LJ9Bx5a8RAFLI5a1vq6Mll8kOzG6w/wy8yhFLBupaa6Mfd60GATkA==
+
+markdown-it@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc"
+ integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==
+ dependencies:
+ argparse "^1.0.7"
+ entities "~2.0.0"
+ linkify-it "^2.0.0"
+ mdurl "^1.0.1"
+ uc.micro "^1.0.5"
+
+mdurl@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
+ integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@^2.1.1:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
+
+request-light@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/request-light/-/request-light-0.4.0.tgz#c6b91ef00b18cb0de75d2127e55b3a2c9f7f90f9"
+ integrity sha512-fimzjIVw506FBZLspTAXHdpvgvQebyjpNyLRd0e6drPPRq7gcrROeGWRyF81wLqFg5ijPgnOQbmfck5wdTqpSA==
+ dependencies:
+ http-proxy-agent "^2.1.0"
+ https-proxy-agent "^2.2.4"
+ vscode-nls "^4.1.2"
+
+rimraf@^2.6.3:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+semver@5.5.1:
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
+ integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==
+
+semver@^5.3.0, semver@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+sigmund@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
+ integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+typescript-formatter@7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/typescript-formatter/-/typescript-formatter-7.1.0.tgz#dd1b5547de211065221f765263e15f18c84c66b8"
+ integrity sha512-XgPUSZ3beF7Xx2ZIEngIonWpDTS0XzWqV0vjtcm6nOPONug4WFXQYjbvulCzY2T0+knceZn5CFQjVUShNkIdLA==
+ dependencies:
+ commandpost "^1.0.0"
+ editorconfig "^0.15.0"
+
+typescript-vscode-sh-plugin@^0.6.14:
+ version "0.6.14"
+ resolved "https://registry.yarnpkg.com/typescript-vscode-sh-plugin/-/typescript-vscode-sh-plugin-0.6.14.tgz#a81031b502f6346a26ea49ce082438c3e353bb38"
+ integrity sha512-AkNlRBbI6K7gk29O92qthNSvc6jjmNQ6isVXoYxkFwPa8D04tIv2SOPd+sd+mNpso4tNdL2gy7nVtrd5yFqvlA==
+
+typescript@^4.2.0-dev.20201119:
+ version "4.2.0-dev.20201228"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.0-dev.20201228.tgz#be099aa540d4a8faf4e05deb4af43dae602ef326"
+ integrity sha512-Up2tlZYsgRxJg9UG9nA9Bj2/s2Jf/n8rJJUt9nT6kyGKyJ+U63BaDOybQ4gAdNeSR4uOX0nAzgjaUZD64dVOKA==
+
+uc.micro@^1.0.1, uc.micro@^1.0.5:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
+ integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
+
+vscode-css-languageservice@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.4.0.tgz#a7c5edf3057e707601ca18fa3728784a298513b4"
+ integrity sha512-jWi+297PJUUWTHwlcrZz0zIuEXuHOBJIQMapXmEzbosWGv/gMnNSAMV4hTKnl5wzxvZKZzV6j+WFdrSlKQ5qnw==
+ dependencies:
+ vscode-languageserver-textdocument "^1.0.1"
+ vscode-languageserver-types "3.16.0-next.2"
+ vscode-nls "^5.0.0"
+ vscode-uri "^2.1.2"
+
+vscode-emmet-helper@^1.2.17:
+ version "1.2.17"
+ resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.2.17.tgz#f0c6bfcebc4285d081fb2618e6e5b9a08c567afa"
+ integrity sha512-X4pzcrJ8dE7M3ArFuySF5fgipKDd/EauXkiJwtjBIVRWpVNq0tF9+lNCyuC7iDUwP3Oq7ow/TGssD3GdG96Jow==
+ dependencies:
+ "@emmetio/extract-abbreviation" "0.1.6"
+ jsonc-parser "^1.0.0"
+ vscode-languageserver-types "^3.6.0-next.1"
+
+vscode-extension-telemetry@0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.1.tgz#91387e06b33400c57abd48979b0e790415ae110b"
+ integrity sha512-TkKKG/B/J94DP5qf6xWB4YaqlhWDg6zbbqVx7Bz//stLQNnfE9XS1xm3f6fl24c5+bnEK0/wHgMgZYKIKxPeUA==
+ dependencies:
+ applicationinsights "1.0.8"
+
+vscode-html-languageservice@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz#e92269a04097d87bd23431e3a4e491a27b5447b9"
+ integrity sha512-aLWIoWkvb5HYTVE0kI9/u3P0ZAJGrYOSAAE6L0wqB9radKRtbJNrF9+BjSUFyCgBdNBE/GFExo35LoknQDJrfw==
+ dependencies:
+ vscode-languageserver-textdocument "^1.0.1"
+ vscode-languageserver-types "3.16.0-next.2"
+ vscode-nls "^5.0.0"
+ vscode-uri "^2.1.2"
+
+vscode-json-languageservice@^3.11.0:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz#ad574b36c4346bd7830f1d34b5a5213d3af8d232"
+ integrity sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==
+ dependencies:
+ jsonc-parser "^3.0.0"
+ vscode-languageserver-textdocument "^1.0.1"
+ vscode-languageserver-types "3.16.0-next.2"
+ vscode-nls "^5.0.0"
+ vscode-uri "^2.1.2"
+
+vscode-jsonrpc@6.0.0-next.2:
+ version "6.0.0-next.2"
+ resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0-next.2.tgz#3d73f86d812304cb91b9fb1efee40ec60b09ed7f"
+ integrity sha512-dKQXRYNUY6BHALQJBJlyZyv9oWlYpbJ2vVoQNNVNPLAYQ3hzNp4zy+iSo7zGx1BPXByArJQDWTKLQh8dz3dnNw==
+
+vscode-languageclient@7.0.0-next.5.1:
+ version "7.0.0-next.5.1"
+ resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0-next.5.1.tgz#ed93f14e4c2cdccedf15002c7bf8ef9cb638f36c"
+ integrity sha512-OONvbk3IFpubwF8/Y5uPQaq5J5CEskpeET3SfK4iGlv5OUK+44JawH/SEW5wXuEPpfdMLEMZLuGLU5v5d7N7PQ==
+ dependencies:
+ semver "^6.3.0"
+ vscode-languageserver-protocol "3.16.0-next.4"
+
+vscode-languageserver-protocol@3.16.0-next.4:
+ version "3.16.0-next.4"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.4.tgz#8f8b1b831d4dfd9b26aa1ba3d2a32c427a91c99f"
+ integrity sha512-6GmPUp2MhJy2H1CTWp2B40Pa9BeC9glrXWmQWVG6A/0V9UbcAjVC9m56znm2GL32iyLDIprTBe8gBvvvcjbpaQ==
+ dependencies:
+ vscode-jsonrpc "6.0.0-next.2"
+ vscode-languageserver-types "3.16.0-next.2"
+
+vscode-languageserver-textdocument@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
+ integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
+
+vscode-languageserver-types@3.16.0-next.2:
+ version "3.16.0-next.2"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
+ integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
+
+vscode-languageserver-types@^3.6.0-next.1:
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
+ integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
+
+vscode-languageserver@7.0.0-next.3:
+ version "7.0.0-next.3"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0-next.3.tgz#3833bd09259a4a085baeba90783f1e4d06d81095"
+ integrity sha512-qSt8eb546iFuoFIN+9MPl4Avru6Iz2/JP0UmS/3djf40ICa31Np/yJ7anX2j0Az5rCzb0fak8oeKwDioGeVOYg==
+ dependencies:
+ vscode-languageserver-protocol "3.16.0-next.4"
+
+vscode-nls@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167"
+ integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==
+
+vscode-nls@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
+ integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
+
+vscode-uri@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
+ integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
+
+which@^1.3.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+
+zone.js@0.7.6:
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
+ integrity sha1-+7w50+AmHQmG8boGMG6zrrDSIAk=
diff --git a/pkgs/applications/editors/oni2/extensions.nix b/pkgs/applications/editors/oni2/extensions.nix
new file mode 100644
index 000000000000..08c8f207f4b1
--- /dev/null
+++ b/pkgs/applications/editors/oni2/extensions.nix
@@ -0,0 +1,629 @@
+{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "370c480ac103bd17c7bcfb34bf5d577dc40d3660";
+ path = fetchurl {
+ name = "370c480ac103bd17c7bcfb34bf5d577dc40d3660";
+ url = "https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660";
+ sha1 = "d35990e1b627e7654e67ec4ae98a91a5e72706a7";
+ };
+ }
+ {
+ name = "_emmetio_extract_abbreviation___extract_abbreviation_0.1.6.tgz";
+ path = fetchurl {
+ name = "_emmetio_extract_abbreviation___extract_abbreviation_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/@emmetio/extract-abbreviation/-/extract-abbreviation-0.1.6.tgz";
+ sha1 = "e4a9856c1057f0aff7d443b8536477c243abe28c";
+ };
+ }
+ {
+ name = "_emmetio_html_matcher___html_matcher_0.3.3.tgz";
+ path = fetchurl {
+ name = "_emmetio_html_matcher___html_matcher_0.3.3.tgz";
+ url = "https://registry.yarnpkg.com/@emmetio/html-matcher/-/html-matcher-0.3.3.tgz";
+ sha1 = "0bbdadc0882e185950f03737dc6dbf8f7bd90728";
+ };
+ }
+ {
+ name = "_emmetio_math_expression___math_expression_0.1.1.tgz";
+ path = fetchurl {
+ name = "_emmetio_math_expression___math_expression_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@emmetio/math-expression/-/math-expression-0.1.1.tgz";
+ sha1 = "1ff2c7f05800f64c57ca89038ee18bce9f5776dc";
+ };
+ }
+ {
+ name = "_emmetio_stream_reader_utils___stream_reader_utils_0.1.0.tgz";
+ path = fetchurl {
+ name = "_emmetio_stream_reader_utils___stream_reader_utils_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz";
+ sha1 = "244cb02c77ec2e74f78a9bd318218abc9c500a61";
+ };
+ }
+ {
+ name = "_emmetio_stream_reader___stream_reader_2.2.0.tgz";
+ path = fetchurl {
+ name = "_emmetio_stream_reader___stream_reader_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz";
+ sha1 = "46cffea119a0a003312a21c2d9b5628cb5fcd442";
+ };
+ }
+ {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
+ sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
+ };
+ }
+ {
+ name = "applicationinsights___applicationinsights_1.0.8.tgz";
+ path = fetchurl {
+ name = "applicationinsights___applicationinsights_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.8.tgz";
+ sha1 = "db6e3d983cf9f9405fe1ee5ba30ac6e1914537b5";
+ };
+ }
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+ {
+ name = "byline___byline_5.0.0.tgz";
+ path = fetchurl {
+ name = "byline___byline_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
+ sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+ };
+ }
+ {
+ name = "commander___commander_2.20.3.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.20.3.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+ sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+ };
+ }
+ {
+ name = "commandpost___commandpost_1.4.0.tgz";
+ path = fetchurl {
+ name = "commandpost___commandpost_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/commandpost/-/commandpost-1.4.0.tgz";
+ sha1 = "89218012089dfc9b67a337ba162f15c88e0f1048";
+ };
+ }
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+ {
+ name = "debug___debug_3.2.7.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.7.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
+ sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
+ };
+ }
+ {
+ name = "diagnostic_channel_publishers___diagnostic_channel_publishers_0.2.1.tgz";
+ path = fetchurl {
+ name = "diagnostic_channel_publishers___diagnostic_channel_publishers_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz";
+ sha1 = "8e2d607a8b6d79fe880b548bc58cc6beb288c4f3";
+ };
+ }
+ {
+ name = "diagnostic_channel___diagnostic_channel_0.2.0.tgz";
+ path = fetchurl {
+ name = "diagnostic_channel___diagnostic_channel_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz";
+ sha1 = "cc99af9612c23fb1fff13612c72f2cbfaa8d5a17";
+ };
+ }
+ {
+ name = "editorconfig___editorconfig_0.15.3.tgz";
+ path = fetchurl {
+ name = "editorconfig___editorconfig_0.15.3.tgz";
+ url = "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz";
+ sha1 = "bef84c4e75fb8dcb0ce5cee8efd51c15999befc5";
+ };
+ }
+ {
+ name = "entities___entities_2.0.3.tgz";
+ path = fetchurl {
+ name = "entities___entities_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
+ sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
+ };
+ }
+ {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
+ sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
+ };
+ }
+ {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ path = fetchurl {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+ sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+ };
+ }
+ {
+ name = "file_type___file_type_7.7.1.tgz";
+ path = fetchurl {
+ name = "file_type___file_type_7.7.1.tgz";
+ url = "https://registry.yarnpkg.com/file-type/-/file-type-7.7.1.tgz";
+ sha1 = "91c2f5edb8ce70688b9b68a90d931bbb6cb21f65";
+ };
+ }
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+ {
+ name = "glob___glob_7.1.6.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.6.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+ sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+ };
+ }
+ {
+ name = "highlight.js___highlight.js_10.1.2.tgz";
+ path = fetchurl {
+ name = "highlight.js___highlight.js_10.1.2.tgz";
+ url = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.1.2.tgz";
+ sha1 = "c20db951ba1c22c055010648dfffd7b2a968e00c";
+ };
+ }
+ {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ path = fetchurl {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+ sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+ };
+ }
+ {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ path = fetchurl {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz";
+ sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b";
+ };
+ }
+ {
+ name = "iconv_lite_umd___iconv_lite_umd_0.6.8.tgz";
+ path = fetchurl {
+ name = "iconv_lite_umd___iconv_lite_umd_0.6.8.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite-umd/-/iconv-lite-umd-0.6.8.tgz";
+ sha1 = "5ad310ec126b260621471a2d586f7f37b9958ec0";
+ };
+ }
+ {
+ name = "image_size___image_size_0.5.5.tgz";
+ path = fetchurl {
+ name = "image_size___image_size_0.5.5.tgz";
+ url = "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz";
+ sha1 = "09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c";
+ };
+ }
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.4.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+ sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+ };
+ }
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+ {
+ name = "jschardet___jschardet_2.2.1.tgz";
+ path = fetchurl {
+ name = "jschardet___jschardet_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/jschardet/-/jschardet-2.2.1.tgz";
+ sha1 = "03b0264669a90c7a5c436a68c5a7d4e4cb0c9823";
+ };
+ }
+ {
+ name = "jsonc_parser___jsonc_parser_1.0.3.tgz";
+ path = fetchurl {
+ name = "jsonc_parser___jsonc_parser_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz";
+ sha1 = "1d53d7160e401a783dbceabaad82473f80e6ad7e";
+ };
+ }
+ {
+ name = "jsonc_parser___jsonc_parser_3.0.0.tgz";
+ path = fetchurl {
+ name = "jsonc_parser___jsonc_parser_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz";
+ sha1 = "abdd785701c7e7eaca8a9ec8cf070ca51a745a22";
+ };
+ }
+ {
+ name = "linkify_it___linkify_it_2.2.0.tgz";
+ path = fetchurl {
+ name = "linkify_it___linkify_it_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz";
+ sha1 = "e3b54697e78bf915c70a38acd78fd09e0058b1cf";
+ };
+ }
+ {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+ };
+ }
+ {
+ name = "markdown_it_front_matter___markdown_it_front_matter_0.2.3.tgz";
+ path = fetchurl {
+ name = "markdown_it_front_matter___markdown_it_front_matter_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/markdown-it-front-matter/-/markdown-it-front-matter-0.2.3.tgz";
+ sha1 = "d6fa0f4b362e02086dd4ce8219fadf3f4c9cfa37";
+ };
+ }
+ {
+ name = "markdown_it___markdown_it_10.0.0.tgz";
+ path = fetchurl {
+ name = "markdown_it___markdown_it_10.0.0.tgz";
+ url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz";
+ sha1 = "abfc64f141b1722d663402044e43927f1f50a8dc";
+ };
+ }
+ {
+ name = "mdurl___mdurl_1.0.1.tgz";
+ path = fetchurl {
+ name = "mdurl___mdurl_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz";
+ sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+ };
+ }
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+ {
+ name = "ms___ms_2.1.3.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+ sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
+ };
+ }
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+ {
+ name = "request_light___request_light_0.4.0.tgz";
+ path = fetchurl {
+ name = "request_light___request_light_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/request-light/-/request-light-0.4.0.tgz";
+ sha1 = "c6b91ef00b18cb0de75d2127e55b3a2c9f7f90f9";
+ };
+ }
+ {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+ sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+ };
+ }
+ {
+ name = "semver___semver_5.5.1.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.5.1.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz";
+ sha1 = "7dfdd8814bdb7cabc7be0fb1d734cfb66c940477";
+ };
+ }
+ {
+ name = "semver___semver_5.7.1.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.7.1.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+ sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+ };
+ }
+ {
+ name = "semver___semver_6.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+ sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+ };
+ }
+ {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ path = fetchurl {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz";
+ sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+ };
+ }
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+ {
+ name = "typescript_formatter___typescript_formatter_7.1.0.tgz";
+ path = fetchurl {
+ name = "typescript_formatter___typescript_formatter_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/typescript-formatter/-/typescript-formatter-7.1.0.tgz";
+ sha1 = "dd1b5547de211065221f765263e15f18c84c66b8";
+ };
+ }
+ {
+ name = "typescript_vscode_sh_plugin___typescript_vscode_sh_plugin_0.6.14.tgz";
+ path = fetchurl {
+ name = "typescript_vscode_sh_plugin___typescript_vscode_sh_plugin_0.6.14.tgz";
+ url = "https://registry.yarnpkg.com/typescript-vscode-sh-plugin/-/typescript-vscode-sh-plugin-0.6.14.tgz";
+ sha1 = "a81031b502f6346a26ea49ce082438c3e353bb38";
+ };
+ }
+ {
+ name = "typescript___typescript_4.2.0_dev.20201228.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_4.2.0_dev.20201228.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-4.2.0-dev.20201228.tgz";
+ sha1 = "be099aa540d4a8faf4e05deb4af43dae602ef326";
+ };
+ }
+ {
+ name = "uc.micro___uc.micro_1.0.6.tgz";
+ path = fetchurl {
+ name = "uc.micro___uc.micro_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz";
+ sha1 = "9c411a802a409a91fc6cf74081baba34b24499ac";
+ };
+ }
+ {
+ name = "vscode_css_languageservice___vscode_css_languageservice_4.4.0.tgz";
+ path = fetchurl {
+ name = "vscode_css_languageservice___vscode_css_languageservice_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.4.0.tgz";
+ sha1 = "a7c5edf3057e707601ca18fa3728784a298513b4";
+ };
+ }
+ {
+ name = "vscode_emmet_helper___vscode_emmet_helper_1.2.17.tgz";
+ path = fetchurl {
+ name = "vscode_emmet_helper___vscode_emmet_helper_1.2.17.tgz";
+ url = "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.2.17.tgz";
+ sha1 = "f0c6bfcebc4285d081fb2618e6e5b9a08c567afa";
+ };
+ }
+ {
+ name = "vscode_extension_telemetry___vscode_extension_telemetry_0.1.1.tgz";
+ path = fetchurl {
+ name = "vscode_extension_telemetry___vscode_extension_telemetry_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.1.tgz";
+ sha1 = "91387e06b33400c57abd48979b0e790415ae110b";
+ };
+ }
+ {
+ name = "vscode_html_languageservice___vscode_html_languageservice_3.2.0.tgz";
+ path = fetchurl {
+ name = "vscode_html_languageservice___vscode_html_languageservice_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz";
+ sha1 = "e92269a04097d87bd23431e3a4e491a27b5447b9";
+ };
+ }
+ {
+ name = "vscode_json_languageservice___vscode_json_languageservice_3.11.0.tgz";
+ path = fetchurl {
+ name = "vscode_json_languageservice___vscode_json_languageservice_3.11.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz";
+ sha1 = "ad574b36c4346bd7830f1d34b5a5213d3af8d232";
+ };
+ }
+ {
+ name = "vscode_jsonrpc___vscode_jsonrpc_6.0.0_next.2.tgz";
+ path = fetchurl {
+ name = "vscode_jsonrpc___vscode_jsonrpc_6.0.0_next.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0-next.2.tgz";
+ sha1 = "3d73f86d812304cb91b9fb1efee40ec60b09ed7f";
+ };
+ }
+ {
+ name = "vscode_languageclient___vscode_languageclient_7.0.0_next.5.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageclient___vscode_languageclient_7.0.0_next.5.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0-next.5.1.tgz";
+ sha1 = "ed93f14e4c2cdccedf15002c7bf8ef9cb638f36c";
+ };
+ }
+ {
+ name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.16.0_next.4.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.16.0_next.4.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.4.tgz";
+ sha1 = "8f8b1b831d4dfd9b26aa1ba3d2a32c427a91c99f";
+ };
+ }
+ {
+ name = "vscode_languageserver_textdocument___vscode_languageserver_textdocument_1.0.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_textdocument___vscode_languageserver_textdocument_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz";
+ sha1 = "178168e87efad6171b372add1dea34f53e5d330f";
+ };
+ }
+ {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0_next.2.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0_next.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz";
+ sha1 = "940bd15c992295a65eae8ab6b8568a1e8daa3083";
+ };
+ }
+ {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz";
+ sha1 = "ecf393fc121ec6974b2da3efb3155644c514e247";
+ };
+ }
+ {
+ name = "vscode_languageserver___vscode_languageserver_7.0.0_next.3.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver___vscode_languageserver_7.0.0_next.3.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0-next.3.tgz";
+ sha1 = "3833bd09259a4a085baeba90783f1e4d06d81095";
+ };
+ }
+ {
+ name = "vscode_nls___vscode_nls_4.1.2.tgz";
+ path = fetchurl {
+ name = "vscode_nls___vscode_nls_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz";
+ sha1 = "ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167";
+ };
+ }
+ {
+ name = "vscode_nls___vscode_nls_5.0.0.tgz";
+ path = fetchurl {
+ name = "vscode_nls___vscode_nls_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz";
+ sha1 = "99f0da0bd9ea7cda44e565a74c54b1f2bc257840";
+ };
+ }
+ {
+ name = "vscode_uri___vscode_uri_2.1.2.tgz";
+ path = fetchurl {
+ name = "vscode_uri___vscode_uri_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz";
+ sha1 = "c8d40de93eb57af31f3c715dd650e2ca2c096f1c";
+ };
+ }
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+ {
+ name = "zone.js___zone.js_0.7.6.tgz";
+ path = fetchurl {
+ name = "zone.js___zone.js_0.7.6.tgz";
+ url = "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz";
+ sha1 = "fbbc39d3e0261d0986f1ba06306eb3aeb0d22009";
+ };
+ }
+ ];
+}
diff --git a/pkgs/applications/editors/oni2/node.lock b/pkgs/applications/editors/oni2/node.lock
new file mode 100644
index 000000000000..59f8e0ae5e62
--- /dev/null
+++ b/pkgs/applications/editors/oni2/node.lock
@@ -0,0 +1,376 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@onivim/request-light@0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@onivim/request-light/-/request-light-0.4.1.tgz#13082e5d8a5664b73116d85d4805fb386aa44f61"
+ integrity sha512-C3gamHhT0aPZWpHK/7bVCgFa0RhkuRGZrM4Bl3yTdtaZd4kbjIVOmPiOz6hgNpqZm0YwSXv1+q8LhDuZF9+oXg==
+ dependencies:
+ http-proxy-agent "^2.1.0"
+ https-proxy-agent "^2.2.4"
+ vscode-nls "^4.1.2"
+
+"@onivim/vscode-exthost@1.57.1001":
+ version "1.57.1001"
+ resolved "https://registry.yarnpkg.com/@onivim/vscode-exthost/-/vscode-exthost-1.57.1001.tgz#f4642d8c077fc0ecae9dd266fa9a1dc72d84916d"
+ integrity sha512-17aJk0H24CJRAWcxFN0dR3sNsU1THdHS20GlXwzYA26ahEjtzSDqWDhphzEUVLL8jZW1sy/NFrR5FydwEZP6dg==
+ dependencies:
+ graceful-fs "4.2.6"
+ iconv-lite-umd "0.6.8"
+ minimist "^1.2.5"
+ native-watchdog "1.3.0"
+ node-pty "0.11.0-beta7"
+ spdlog "^0.13.0"
+ vscode-proxy-agent "^0.11.0"
+ vscode-regexpp "^3.1.0"
+
+"@tootallnate/once@1", "@tootallnate/once@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
+ integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+
+"@types/node@^11.9.5":
+ version "11.15.54"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.15.54.tgz#59ed60e7b0d56905a654292e8d73275034eb6283"
+ integrity sha512-1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g==
+
+agent-base@4, agent-base@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
+ integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
+ dependencies:
+ es6-promisify "^5.0.0"
+
+agent-base@6, agent-base@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
+buffer-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+ integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+data-uri-to-buffer@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636"
+ integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
+
+debug@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+debug@4, debug@^4.3.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+ integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+ dependencies:
+ ms "2.1.2"
+
+debug@^3.1.0:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
+es6-promise@^4.0.3:
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
+ integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
+
+es6-promisify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
+ dependencies:
+ es6-promise "^4.0.3"
+
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+ dependencies:
+ pend "~1.2.0"
+
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+file-uri-to-path@2:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba"
+ integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==
+
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+ftp@^0.3.10:
+ version "0.3.10"
+ resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
+ integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=
+ dependencies:
+ readable-stream "1.1.x"
+ xregexp "2.0.0"
+
+get-uri@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
+ integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==
+ dependencies:
+ "@tootallnate/once" "1"
+ data-uri-to-buffer "3"
+ debug "4"
+ file-uri-to-path "2"
+ fs-extra "^8.1.0"
+ ftp "^0.3.10"
+
+graceful-fs@4.2.6:
+ version "4.2.6"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+ integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
+graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+
+http-proxy-agent@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
+ integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
+ dependencies:
+ agent-base "4"
+ debug "3.1.0"
+
+http-proxy-agent@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
+ integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+ dependencies:
+ "@tootallnate/once" "1"
+ agent-base "6"
+ debug "4"
+
+https-proxy-agent@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
+ integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
+ dependencies:
+ agent-base "^4.3.0"
+ debug "^3.1.0"
+
+https-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+ integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
+iconv-lite-umd@0.6.8:
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/iconv-lite-umd/-/iconv-lite-umd-0.6.8.tgz#5ad310ec126b260621471a2d586f7f37b9958ec0"
+ integrity sha512-zvXJ5gSwMC9JD3wDzH8CoZGc1pbiJn12Tqjk8BXYCnYz3hYL5GRjHW8LEykjXhV9WgNGI4rgpgHcbIiBfrRq6A==
+
+inherits@~2.0.1:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+mkdirp@^0.5.5:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.2, ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+nan@^2.14.0:
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
+ integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
+
+native-watchdog@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/native-watchdog/-/native-watchdog-1.3.0.tgz#88cee94c9dc766b85c8506eda14c8bd8c9618e27"
+ integrity sha512-WOjGRNGkYZ5MXsntcvCYrKtSYMaewlbCFplbcUVo9bE80LPVt8TAVFHYWB8+a6fWCGYheq21+Wtt6CJrUaCJhw==
+
+node-addon-api@^3.0.2:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+ integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+
+node-pty@0.11.0-beta7:
+ version "0.11.0-beta7"
+ resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.11.0-beta7.tgz#aed0888b5032d96c54d8473455e6adfae3bbebbe"
+ integrity sha512-uApPGLglZRiHQcUMWakbZOrBo8HVWvhzIqNnrWvBGJOvc6m/S5lCdbbg93BURyJqHFmBS0GV+4hwiMNDuGRbSA==
+ dependencies:
+ nan "^2.14.0"
+
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+
+readable-stream@1.1.x:
+ version "1.1.14"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
+ integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+smart-buffer@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60"
+ integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+ socks "^2.3.3"
+
+socks@^2.3.3:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e"
+ integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==
+ dependencies:
+ ip "^1.1.5"
+ smart-buffer "^4.1.0"
+
+spdlog@^0.13.0:
+ version "0.13.6"
+ resolved "https://registry.yarnpkg.com/spdlog/-/spdlog-0.13.6.tgz#26b2e13d46cbf8f2334c12ba2a8cc82de5a28f02"
+ integrity sha512-iGqDoA88G3Rv3lkbVQglTulp3nv12FzND6LDC7cOZ+OoFvWnXVb3+Ebhed60oZ6+IWWGwDtjXK6ympwr7C1XmQ==
+ dependencies:
+ bindings "^1.5.0"
+ mkdirp "^0.5.5"
+ nan "^2.14.0"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
+
+sudo-prompt@^9.0.0:
+ version "9.2.1"
+ resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd"
+ integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==
+
+typescript@^3.3.3333:
+ version "3.9.10"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
+ integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+vscode-nls@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167"
+ integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==
+
+vscode-proxy-agent@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/vscode-proxy-agent/-/vscode-proxy-agent-0.11.0.tgz#9dc8d2bb9d448f1e33bb1caef97a741289660f2f"
+ integrity sha512-Y5mHjDGq/OKOvKG0IwCYfj25cvQ2cLEil8ce8n55IZHRAP9RF3e1sKU4ZUNDB8X2NIpKwyltrWpK9tFFE/kc3g==
+ dependencies:
+ "@tootallnate/once" "^1.1.2"
+ agent-base "^6.0.2"
+ debug "^4.3.1"
+ get-uri "^3.0.2"
+ http-proxy-agent "^4.0.1"
+ https-proxy-agent "^5.0.0"
+ socks-proxy-agent "^5.0.0"
+ optionalDependencies:
+ vscode-windows-ca-certs "^0.3.0"
+
+vscode-regexpp@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/vscode-regexpp/-/vscode-regexpp-3.1.0.tgz#42d059b6fffe99bd42939c0d013f632f0cad823f"
+ integrity sha512-pqtN65VC1jRLawfluX4Y80MMG0DHJydWhe5ZwMHewZD6sys4LbU6lHwFAHxeuaVE6Y6+xZOtAw+9hvq7/0ejkg==
+
+vscode-windows-ca-certs@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/vscode-windows-ca-certs/-/vscode-windows-ca-certs-0.3.0.tgz#324e1f8ba842bbf048a39e7c0ee8fe655e9adfcc"
+ integrity sha512-CYrpCEKmAFQJoZNReOrelNL+VKyebOVRCqL9evrBlVcpWQDliliJgU5RggGS8FPGtQ3jAKLQt9frF0qlxYYPKA==
+ dependencies:
+ node-addon-api "^3.0.2"
+
+xregexp@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
+ integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=
+
+yauzl@^2.5.1:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"
diff --git a/pkgs/applications/editors/oni2/node.nix b/pkgs/applications/editors/oni2/node.nix
new file mode 100644
index 000000000000..2cf69bb73270
--- /dev/null
+++ b/pkgs/applications/editors/oni2/node.nix
@@ -0,0 +1,453 @@
+{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "_onivim_request_light___request_light_0.4.1.tgz";
+ path = fetchurl {
+ name = "_onivim_request_light___request_light_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/@onivim/request-light/-/request-light-0.4.1.tgz";
+ sha1 = "13082e5d8a5664b73116d85d4805fb386aa44f61";
+ };
+ }
+ {
+ name = "_onivim_vscode_exthost___vscode_exthost_1.57.1001.tgz";
+ path = fetchurl {
+ name = "_onivim_vscode_exthost___vscode_exthost_1.57.1001.tgz";
+ url = "https://registry.yarnpkg.com/@onivim/vscode-exthost/-/vscode-exthost-1.57.1001.tgz";
+ sha1 = "f4642d8c077fc0ecae9dd266fa9a1dc72d84916d";
+ };
+ }
+ {
+ name = "_tootallnate_once___once_1.1.2.tgz";
+ path = fetchurl {
+ name = "_tootallnate_once___once_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz";
+ sha1 = "ccb91445360179a04e7fe6aff78c00ffc1eeaf82";
+ };
+ }
+ {
+ name = "_types_node___node_11.15.54.tgz";
+ path = fetchurl {
+ name = "_types_node___node_11.15.54.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-11.15.54.tgz";
+ sha1 = "59ed60e7b0d56905a654292e8d73275034eb6283";
+ };
+ }
+ {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
+ sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
+ };
+ }
+ {
+ name = "agent_base___agent_base_6.0.2.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz";
+ sha1 = "49fff58577cfee3f37176feab4c22e00f86d7f77";
+ };
+ }
+ {
+ name = "bindings___bindings_1.5.0.tgz";
+ path = fetchurl {
+ name = "bindings___bindings_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
+ sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
+ };
+ }
+ {
+ name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+ path = fetchurl {
+ name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+ url = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
+ sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
+ };
+ }
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+ {
+ name = "data_uri_to_buffer___data_uri_to_buffer_3.0.1.tgz";
+ path = fetchurl {
+ name = "data_uri_to_buffer___data_uri_to_buffer_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz";
+ sha1 = "594b8973938c5bc2c33046535785341abc4f3636";
+ };
+ }
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+ {
+ name = "debug___debug_4.3.2.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.3.2.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
+ sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
+ };
+ }
+ {
+ name = "debug___debug_3.2.7.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.7.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
+ sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
+ };
+ }
+ {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
+ sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
+ };
+ }
+ {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ path = fetchurl {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+ sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+ };
+ }
+ {
+ name = "fd_slicer___fd_slicer_1.1.0.tgz";
+ path = fetchurl {
+ name = "fd_slicer___fd_slicer_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
+ sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
+ };
+ }
+ {
+ name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
+ path = fetchurl {
+ name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+ sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
+ };
+ }
+ {
+ name = "file_uri_to_path___file_uri_to_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "file_uri_to_path___file_uri_to_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz";
+ sha1 = "7b415aeba227d575851e0a5b0c640d7656403fba";
+ };
+ }
+ {
+ name = "fs_extra___fs_extra_8.1.0.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
+ sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
+ };
+ }
+ {
+ name = "ftp___ftp_0.3.10.tgz";
+ path = fetchurl {
+ name = "ftp___ftp_0.3.10.tgz";
+ url = "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz";
+ sha1 = "9197d861ad8142f3e63d5a83bfe4c59f7330885d";
+ };
+ }
+ {
+ name = "get_uri___get_uri_3.0.2.tgz";
+ path = fetchurl {
+ name = "get_uri___get_uri_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz";
+ sha1 = "f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.6.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.6.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+ sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.4.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.4.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
+ sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+ };
+ }
+ {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ path = fetchurl {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+ sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+ };
+ }
+ {
+ name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
+ path = fetchurl {
+ name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz";
+ sha1 = "8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a";
+ };
+ }
+ {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ path = fetchurl {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz";
+ sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b";
+ };
+ }
+ {
+ name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
+ path = fetchurl {
+ name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
+ sha1 = "e2a90542abb68a762e0a0850f6c9edadfd8506b2";
+ };
+ }
+ {
+ name = "iconv_lite_umd___iconv_lite_umd_0.6.8.tgz";
+ path = fetchurl {
+ name = "iconv_lite_umd___iconv_lite_umd_0.6.8.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite-umd/-/iconv-lite-umd-0.6.8.tgz";
+ sha1 = "5ad310ec126b260621471a2d586f7f37b9958ec0";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.4.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+ sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+ };
+ }
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.5.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+ sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+ };
+ }
+ {
+ name = "mkdirp___mkdirp_0.5.5.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.5.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+ sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+ };
+ }
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+ {
+ name = "ms___ms_2.1.2.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+ sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+ };
+ }
+ {
+ name = "nan___nan_2.15.0.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.15.0.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz";
+ sha1 = "3f34a473ff18e15c1b5626b62903b5ad6e665fee";
+ };
+ }
+ {
+ name = "native_watchdog___native_watchdog_1.3.0.tgz";
+ path = fetchurl {
+ name = "native_watchdog___native_watchdog_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/native-watchdog/-/native-watchdog-1.3.0.tgz";
+ sha1 = "88cee94c9dc766b85c8506eda14c8bd8c9618e27";
+ };
+ }
+ {
+ name = "node_addon_api___node_addon_api_3.2.1.tgz";
+ path = fetchurl {
+ name = "node_addon_api___node_addon_api_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz";
+ sha1 = "81325e0a2117789c0128dab65e7e38f07ceba161";
+ };
+ }
+ {
+ name = "node_pty___node_pty_0.11.0_beta7.tgz";
+ path = fetchurl {
+ name = "node_pty___node_pty_0.11.0_beta7.tgz";
+ url = "https://registry.yarnpkg.com/node-pty/-/node-pty-0.11.0-beta7.tgz";
+ sha1 = "aed0888b5032d96c54d8473455e6adfae3bbebbe";
+ };
+ }
+ {
+ name = "pend___pend_1.2.0.tgz";
+ path = fetchurl {
+ name = "pend___pend_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz";
+ sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+ };
+ }
+ {
+ name = "smart_buffer___smart_buffer_4.2.0.tgz";
+ path = fetchurl {
+ name = "smart_buffer___smart_buffer_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz";
+ sha1 = "6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae";
+ };
+ }
+ {
+ name = "socks_proxy_agent___socks_proxy_agent_5.0.0.tgz";
+ path = fetchurl {
+ name = "socks_proxy_agent___socks_proxy_agent_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz";
+ sha1 = "7c0f364e7b1cf4a7a437e71253bed72e9004be60";
+ };
+ }
+ {
+ name = "socks___socks_2.6.1.tgz";
+ path = fetchurl {
+ name = "socks___socks_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz";
+ sha1 = "989e6534a07cf337deb1b1c94aaa44296520d30e";
+ };
+ }
+ {
+ name = "spdlog___spdlog_0.13.6.tgz";
+ path = fetchurl {
+ name = "spdlog___spdlog_0.13.6.tgz";
+ url = "https://registry.yarnpkg.com/spdlog/-/spdlog-0.13.6.tgz";
+ sha1 = "26b2e13d46cbf8f2334c12ba2a8cc82de5a28f02";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+ {
+ name = "sudo_prompt___sudo_prompt_9.2.1.tgz";
+ path = fetchurl {
+ name = "sudo_prompt___sudo_prompt_9.2.1.tgz";
+ url = "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz";
+ sha1 = "77efb84309c9ca489527a4e749f287e6bdd52afd";
+ };
+ }
+ {
+ name = "typescript___typescript_3.9.10.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.9.10.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz";
+ sha1 = "70f3910ac7a51ed6bef79da7800690b19bf778b8";
+ };
+ }
+ {
+ name = "universalify___universalify_0.1.2.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+ sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+ };
+ }
+ {
+ name = "vscode_nls___vscode_nls_4.1.2.tgz";
+ path = fetchurl {
+ name = "vscode_nls___vscode_nls_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz";
+ sha1 = "ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167";
+ };
+ }
+ {
+ name = "vscode_proxy_agent___vscode_proxy_agent_0.11.0.tgz";
+ path = fetchurl {
+ name = "vscode_proxy_agent___vscode_proxy_agent_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-proxy-agent/-/vscode-proxy-agent-0.11.0.tgz";
+ sha1 = "9dc8d2bb9d448f1e33bb1caef97a741289660f2f";
+ };
+ }
+ {
+ name = "vscode_regexpp___vscode_regexpp_3.1.0.tgz";
+ path = fetchurl {
+ name = "vscode_regexpp___vscode_regexpp_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-regexpp/-/vscode-regexpp-3.1.0.tgz";
+ sha1 = "42d059b6fffe99bd42939c0d013f632f0cad823f";
+ };
+ }
+ {
+ name = "vscode_windows_ca_certs___vscode_windows_ca_certs_0.3.0.tgz";
+ path = fetchurl {
+ name = "vscode_windows_ca_certs___vscode_windows_ca_certs_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-windows-ca-certs/-/vscode-windows-ca-certs-0.3.0.tgz";
+ sha1 = "324e1f8ba842bbf048a39e7c0ee8fe655e9adfcc";
+ };
+ }
+ {
+ name = "xregexp___xregexp_2.0.0.tgz";
+ path = fetchurl {
+ name = "xregexp___xregexp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz";
+ sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
+ };
+ }
+ {
+ name = "yauzl___yauzl_2.10.0.tgz";
+ path = fetchurl {
+ name = "yauzl___yauzl_2.10.0.tgz";
+ url = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
+ sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
+ };
+ }
+ ];
+}
diff --git a/pkgs/applications/editors/rstudio/clang-location.patch b/pkgs/applications/editors/rstudio/clang-location.patch
index 700ed754d2bb..8e4a7e3d84c2 100644
--- a/pkgs/applications/editors/rstudio/clang-location.patch
+++ b/pkgs/applications/editors/rstudio/clang-location.patch
@@ -1,25 +1,61 @@
-diff --git i/src/cpp/core/libclang/LibClang.cpp w/src/cpp/core/libclang/LibClang.cpp
-index ec12a3a1ff..8c81b633ae 100644
---- i/src/cpp/core/libclang/LibClang.cpp
-+++ w/src/cpp/core/libclang/LibClang.cpp
-@@ -54,7 +54,7 @@ std::vector defaultCompileArgs(LibraryVersion version)
+diff --git a/src/cpp/core/libclang/LibClang.cpp b/src/cpp/core/libclang/LibClang.cpp
+index 1186f3a..58e8cc7 100644
+--- a/src/cpp/core/libclang/LibClang.cpp
++++ b/src/cpp/core/libclang/LibClang.cpp
+@@ -58,7 +58,7 @@ std::vector defaultCompileArgs(LibraryVersion version)
// we need to add in the associated libclang headers as
// they are not discovered / used by default during compilation
-- FilePath llvmPath = s_libraryPath.parent().parent();
+- FilePath llvmPath = s_libraryPath.getParent().getParent();
+ FilePath llvmPath("@libclang@");
boost::format fmt("%1%/lib/clang/%2%/include");
- fmt % llvmPath.absolutePath() % version.asString();
+ fmt % llvmPath.getAbsolutePath() % version.asString();
std::string includePath = fmt.str();
-@@ -77,10 +77,7 @@ std::vector systemClangVersions()
- #elif defined(__unix__)
- // default set of versions
- clangVersions = {
+@@ -70,46 +70,7 @@ std::vector defaultCompileArgs(LibraryVersion version)
+
+ std::vector systemClangVersions()
+ {
+- std::vector clangVersions;
+-
+-#if defined(__APPLE__)
+- // NOTE: the version of libclang.dylib bundled with Xcode
+- // doesn't seem to work well when loaded as a library
+- // (there seems to be extra orchestration required to get
+- // include paths set up; easier to just depend on command
+- // line tools since we request their installation in other
+- // contexts as well)
+- clangVersions = {
+- "/Library/Developer/CommandLineTools/usr/lib/libclang.dylib"
+- };
+-#elif defined(__unix__)
+- // default set of versions
+- clangVersions = {
- "/usr/lib/libclang.so",
- "/usr/lib/llvm/libclang.so",
- "/usr/lib64/libclang.so",
- "/usr/lib64/llvm/libclang.so",
-+ "@libclang.so@"
- };
-
- // iterate through the set of available 'llvm' directories
+- };
+-
+- // iterate through the set of available 'llvm' directories
+- for (const char* prefix : {"/usr/lib", "/usr/lib64"})
+- {
+- FilePath prefixPath(prefix);
+- if (!prefixPath.exists())
+- continue;
+-
+- std::vector directories;
+- Error error = prefixPath.getChildren(directories);
+- if (error)
+- LOG_ERROR(error);
+-
+- // generate a path for each 'llvm' directory
+- for (const FilePath& path : directories)
+- if (path.getFilename().find("llvm") == 0)
+- clangVersions.push_back(path.completePath("lib/libclang.so.1").getAbsolutePath());
+- }
+-#endif
+-
++ std::vector clangVersions = { "@libclang.so@" };
+ return clangVersions;
+ }
+
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 76d9c2e594b2..62c3a93f76b4 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -1,141 +1,209 @@
-{ lib, mkDerivation, fetchurl, fetchpatch, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib
-, openssl, R, qtbase, qtxmlpatterns, qtsensors, qtwebengine, qtwebchannel
-, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
+{ lib
+, mkDerivation
+, fetchurl
+, fetchpatch
+, fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
+, cmake
+, boost
+, zlib
+, openssl
+, R
+, qtbase
+, qtxmlpatterns
+, qtsensors
+, qtwebengine
+, qtwebchannel
+, libuuid
+, hunspellDicts
+, unzip
+, ant
+, jdk
+, gnumake
+, makeWrapper
+, pandoc
, llvmPackages
+, libyamlcpp
+, soci
+, postgresql
+, nodejs
+, mkYarnModules
+, qmake
}:
-with lib;
let
- verMajor = "1";
- verMinor = "2";
- verPatch = "5042";
- version = "${verMajor}.${verMinor}.${verPatch}";
- ginVer = "2.1.2";
- gwtVer = "2.8.1";
-in
-mkDerivation rec {
pname = "RStudio";
- inherit version;
-
- nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
-
- buildInputs = [ boost zlib openssl R qtbase qtxmlpatterns qtsensors
- qtwebengine qtwebchannel libuuid ];
+ version = "1.4.1717";
+ RSTUDIO_VERSION_MAJOR = lib.versions.major version;
+ RSTUDIO_VERSION_MINOR = lib.versions.minor version;
+ RSTUDIO_VERSION_PATCH = lib.versions.patch version;
src = fetchFromGitHub {
owner = "rstudio";
repo = "rstudio";
rev = "v${version}";
- sha256 = "1n67fa357v51j3z1ma8v2ydfsx3y8n10k2svmfcf4mdzsi8w0kc5";
+ sha256 = "sha256-9c1bNsf8kJjpcZ2cMV/pPNtXQkFOntX29a1cdnXpllE=";
};
- # Hack RStudio to only use the input R and provided libclang.
- patches = [ ./r-location.patch ./clang-location.patch
- (fetchpatch {
- # Fetch a patch to ensure Rstudio compiles against R
- # 4.0.0, should be removed next 1.2.X Rstudio update
- # or possibly 1.3.X
- url = "https://github.com/rstudio/rstudio/commit/3fb2397c2f208bb8ace0bbaf269481ccb96b5b20.patch";
- sha256 = "0qpgjy6aash0fc0xbns42cwpj3nsw49nkbzwyq8az01xwg81g0f3";
- })
- ];
- postPatch = ''
- substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
- substituteInPlace src/cpp/core/libclang/LibClang.cpp \
- --replace '@libclang@' ${llvmPackages.libclang.lib} \
- --replace '@libclang.so@' ${llvmPackages.libclang.lib}/lib/libclang.so
- '';
-
- ginSrc = fetchurl {
- url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
- sha256 = "16jzmljravpz6p2rxa87k5f7ir8vs7ya75lnfybfajzmci0p13mr";
- };
-
- gwtSrc = fetchurl {
- url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
- sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
- };
-
- hunspellDictionaries = filter isDerivation (unique (attrValues hunspellDicts));
- # These dicts contain identically-named dict files, so we only keep the
- # -large versions in case of clashes
- largeDicts = filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries;
- otherDicts = filter (d: !(hasAttr "dictFileName" d &&
- elem d.dictFileName (map (d: d.dictFileName) largeDicts))) hunspellDictionaries;
- dictionaries = largeDicts ++ otherDicts;
-
mathJaxSrc = fetchurl {
- url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip";
- sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
+ url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-27.zip";
+ sha256 = "sha256-xWy6psTOA8H8uusrXqPDEtL7diajYCVHcMvLiPsgQXY=";
};
rsconnectSrc = fetchFromGitHub {
owner = "rstudio";
repo = "rsconnect";
- rev = "984745d8";
- sha256 = "037z0y32k1gdda192y5qn5hi7wp8wyap44mkjlklrgcqkmlcylb9";
+ rev = "f5854bb71464f6e3017da9855f058fe3d5b32efd";
+ sha256 = "sha256-ULyWdSgGPSAwMt0t4QPuzeUE6Bo6IJh+5BMgW1bFN+Y=";
};
- preConfigure =
- ''
- export RSTUDIO_VERSION_MAJOR=${verMajor}
- export RSTUDIO_VERSION_MINOR=${verMinor}
- export RSTUDIO_VERSION_PATCH=${verPatch}
-
- GWT_LIB_DIR=src/gwt/lib
-
- mkdir -p $GWT_LIB_DIR/gin/${ginVer}
- unzip ${ginSrc} -d $GWT_LIB_DIR/gin/${ginVer}
-
- unzip ${gwtSrc}
- mkdir -p $GWT_LIB_DIR/gwt
- mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
-
- mkdir dependencies/common/dictionaries
- for dict in ${builtins.concatStringsSep " " dictionaries}; do
- for i in "$dict/share/hunspell/"*; do
- ln -sv $i dependencies/common/dictionaries/
- done
- done
-
- unzip ${mathJaxSrc} -d dependencies/common/mathjax-26
-
- mkdir -p dependencies/common/pandoc
- cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
-
- cp -r ${rsconnectSrc} dependencies/common/rsconnect
- pushd dependencies/common
- ${R}/bin/R CMD build -d --no-build-vignettes rsconnect
- popd
- '';
-
- cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ];
-
- desktopItem = makeDesktopItem {
- name = "${pname}-${version}";
- exec = "rstudio %F";
- icon = "rstudio";
- desktopName = "RStudio";
- genericName = "IDE";
- comment = meta.description;
- categories = "Development;";
- mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
+ panmirrorModules = mkYarnModules {
+ inherit pname version;
+ packageJSON = ./package.json;
+ yarnLock = ./yarn.lock;
+ yarnNix = ./yarndeps.nix;
};
- qtWrapperArgs = [ "--suffix PATH : ${gnumake}/bin" ];
+in
+mkDerivation rec {
+ inherit pname version src RSTUDIO_VERSION_MAJOR RSTUDIO_VERSION_MINOR RSTUDIO_VERSION_PATCH;
- postInstall = ''
- mkdir $out/share
- cp -r ${desktopItem}/share/applications $out/share
- mkdir $out/share/icons
- ln $out/rstudio.png $out/share/icons
+ nativeBuildInputs = [
+ cmake
+ unzip
+ ant
+ jdk
+ makeWrapper
+ pandoc
+ nodejs
+ copyDesktopItems
+ ];
+
+ buildInputs = [
+ boost
+ zlib
+ openssl
+ R
+ qtbase
+ qtxmlpatterns
+ qtsensors
+ qtwebengine
+ qtwebchannel
+ libuuid
+ libyamlcpp
+ soci
+ postgresql
+ ];
+
+ cmakeFlags = [
+ "-DRSTUDIO_TARGET=Desktop"
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DQT_QMAKE_EXECUTABLE=${qmake}/bin/qmake"
+ "-DRSTUDIO_USE_SYSTEM_SOCI=ON"
+ "-DRSTUDIO_USE_SYSTEM_BOOST=ON"
+ "-DRSTUDIO_USE_SYSTEM_YAML_CPP=ON"
+ "-DPANDOC_VERSION=${pandoc.version}"
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/lib/rstudio"
+ ];
+
+ # Hack RStudio to only use the input R and provided libclang.
+ patches = [
+ ./r-location.patch
+ ./clang-location.patch
+ # postFetch doesn't work with this | error: unexpected end-of-file
+ # replacing /usr/bin/node is done in postPatch
+ # https://src.fedoraproject.org/rpms/rstudio/tree/rawhide
+ (fetchpatch {
+ name = "system-node.patch";
+ url = "https://src.fedoraproject.org/rpms/rstudio/raw/5bda2e290c9e72305582f2011040938d3e356906/f/0004-use-system-node.patch";
+ sha256 = "sha256-P1Y07RB/ceFNa749nyBUWSE41eiiZgt43zVcmahvfZM=";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
+
+ substituteInPlace src/cpp/CMakeLists.txt \
+ --replace 'SOCI_LIBRARY_DIR "/usr/lib"' 'SOCI_LIBRARY_DIR "${soci}/lib"'
+
+ substituteInPlace src/gwt/build.xml \
+ --replace '/usr/bin/node' '${nodejs}/bin/node'
+
+ substituteInPlace src/cpp/core/libclang/LibClang.cpp \
+ --replace '@libclang@' ${llvmPackages.libclang.lib} \
+ --replace '@libclang.so@' ${llvmPackages.libclang.lib}/lib/libclang.so
+
+ substituteInPlace src/cpp/session/include/session/SessionConstants.hpp \
+ --replace "bin/pandoc" "${pandoc}/bin/pandoc"
'';
- meta = with lib;
- { description = "Set of integrated tools for the R language";
- homepage = "https://www.rstudio.com/";
- license = licenses.agpl3;
- maintainers = with maintainers; [ ehmry changlinli ciil ];
- platforms = platforms.linux;
- };
+ hunspellDictionaries = with lib; filter isDerivation (unique (attrValues hunspellDicts));
+ # These dicts contain identically-named dict files, so we only keep the
+ # -large versions in case of clashes
+ largeDicts = with lib; filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries;
+ otherDicts = with lib; filter
+ (d: !(hasAttr "dictFileName" d &&
+ elem d.dictFileName (map (d: d.dictFileName) largeDicts)))
+ hunspellDictionaries;
+ dictionaries = largeDicts ++ otherDicts;
+
+ preConfigure = ''
+ mkdir dependencies/dictionaries
+ for dict in ${builtins.concatStringsSep " " dictionaries}; do
+ for i in "$dict/share/hunspell/"*; do
+ ln -s $i dependencies/dictionaries/
+ done
+ done
+
+ unzip -q ${mathJaxSrc} -d dependencies/mathjax-27
+
+ mkdir -p dependencies/pandoc/${pandoc.version}
+ cp ${pandoc}/bin/pandoc dependencies/pandoc/${pandoc.version}/pandoc
+
+ cp -r ${rsconnectSrc} dependencies/rsconnect
+ ( cd dependencies && ${R}/bin/R CMD build -d --no-build-vignettes rsconnect )
+
+ cp -r "${panmirrorModules}" src/gwt/panmirror/src/editor/node_modules
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/icons/hicolor/48x48/apps $out/bin
+ ln $out/lib/rstudio/rstudio.png $out/share/icons/hicolor/48x48/apps
+
+ for f in {diagnostics,rpostback,rstudio}; do
+ ln -s $out/lib/rstudio/bin/$f $out/bin
+ done
+
+ for f in .gitignore .Rbuildignore LICENSE README; do
+ find . -name $f -delete
+ done
+ rm -r $out/lib/rstudio/{INSTALL,COPYING,NOTICE,README.md,SOURCE,VERSION}
+ rm -r $out/lib/rstudio/bin/{pandoc/pandoc,pandoc}
+ '';
+
+ qtWrapperArgs = [
+ "--suffix PATH : ${lib.makeBinPath [ gnumake ]}"
+ ];
+
+ desktopItems = [
+ (makeDesktopItem {
+ name = "${pname}";
+ exec = "rstudio %F";
+ icon = "rstudio";
+ desktopName = "RStudio";
+ genericName = "IDE";
+ comment = meta.description;
+ categories = "Development;";
+ mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
+ })
+ ];
+
+ meta = with lib; {
+ description = "Set of integrated tools for the R language";
+ homepage = "https://www.rstudio.com/";
+ license = licenses.agpl3Only;
+ maintainers = with maintainers; [ ciil ];
+ platforms = platforms.linux;
+ };
}
diff --git a/pkgs/applications/editors/rstudio/package.json b/pkgs/applications/editors/rstudio/package.json
new file mode 100644
index 000000000000..31943987a522
--- /dev/null
+++ b/pkgs/applications/editors/rstudio/package.json
@@ -0,0 +1,83 @@
+{
+ "name": "panmirror",
+ "version": "0.1.0",
+ "private": true,
+ "license": "agpl-3.0",
+ "dependencies": {
+ "@types/ace": "^0.0.43",
+ "@types/clipboard": "^2.0.1",
+ "@types/diff-match-patch": "^1.0.32",
+ "@types/js-yaml": "^3.12.3",
+ "@types/lodash.debounce": "^4.0.6",
+ "@types/lodash.uniqby": "^4.7.6",
+ "@types/orderedmap": "^1.0.0",
+ "@types/prosemirror-commands": "^1.0.3",
+ "@types/prosemirror-dev-tools": "^2.1.0",
+ "@types/prosemirror-dropcursor": "^1.0.0",
+ "@types/prosemirror-gapcursor": "^1.0.1",
+ "@types/prosemirror-history": "^1.0.1",
+ "@types/prosemirror-inputrules": "^1.0.3",
+ "@types/prosemirror-keymap": "^1.0.3",
+ "@types/prosemirror-model": "^1.7.2",
+ "@types/prosemirror-schema-list": "^1.0.1",
+ "@types/prosemirror-state": "^1.2.5",
+ "@types/prosemirror-tables": "^0.9.1",
+ "@types/prosemirror-transform": "^1.1.1",
+ "@types/react": "^16.9.32",
+ "@types/react-dom": "^16.9.6",
+ "@types/react-window": "^1.8.2",
+ "@types/zenscroll": "^4.0.0",
+ "biblatex-csl-converter": "^1.9.1",
+ "clipboard": "^2.0.6",
+ "diff-match-patch": "^1.0.4",
+ "fuse.js": "^6.0.4",
+ "js-yaml": "^3.13.1",
+ "lodash.debounce": "^4.0.8",
+ "lodash.uniqby": "^4.7.0",
+ "orderedmap": "^1.0.0",
+ "prosemirror-changeset": "^2.1.2",
+ "prosemirror-commands": "^1.1.4",
+ "prosemirror-dev-tools": "^2.1.1",
+ "prosemirror-dropcursor": "^1.3.2",
+ "prosemirror-gapcursor": "^1.1.5",
+ "prosemirror-history": "^1.1.3",
+ "prosemirror-inputrules": "^1.1.2",
+ "prosemirror-keymap": "^1.1.4",
+ "prosemirror-model": "^1.11.0",
+ "prosemirror-schema-list": "^1.1.4",
+ "prosemirror-state": "^1.3.3",
+ "prosemirror-tables": "^1.1.1",
+ "prosemirror-transform": "^1.2.8",
+ "prosemirror-utils": "^0.9.6",
+ "prosemirror-view": "^1.15.6",
+ "react": "^16.13.1",
+ "react-dom": "^16.13.1",
+ "react-window": "^1.8.5",
+ "sentence-splitter": "^3.2.0",
+ "thenby": "^1.3.3",
+ "tlite": "^0.1.9",
+ "typescript": "3.8.3",
+ "zenscroll": "^4.0.2"
+ },
+ "scripts": {
+ "format": "prettier --write \"src/**/*.ts\" \"src/**/*.tsx\"",
+ "lint": "tslint -c tslint.json 'src/**/*.{ts,tsx}'",
+ "watch": "tsc --watch --noEmit --project './tsconfig.json'",
+ "generate-symbols": "ts-node tools/generate-symbols.ts"
+ },
+ "devDependencies": {
+ "@types/node": "^14.0.4",
+ "@types/unzip": "^0.1.1",
+ "fast-xml-parser": "^3.17.1",
+ "fuse-box": "^3.7.1",
+ "prettier": "^1.18.2",
+ "terser": "^4.6.2",
+ "ts-node": "^8.10.2",
+ "tslint": "^5.20.0",
+ "tslint-config-prettier": "^1.18.0",
+ "tslint-react": "^5.0.0",
+ "typescript-tslint-plugin": "^0.5.5",
+ "uglify-js": "^3.7.4",
+ "unzip": "^0.1.11"
+ }
+}
diff --git a/pkgs/applications/editors/rstudio/r-location.patch b/pkgs/applications/editors/rstudio/r-location.patch
index 24cb6a246977..44e54b36e0c4 100644
--- a/pkgs/applications/editors/rstudio/r-location.patch
+++ b/pkgs/applications/editors/rstudio/r-location.patch
@@ -1,19 +1,23 @@
-diff -ur rstudio-1.1.216-old/src/cpp/core/CMakeLists.txt rstudio-1.1.216-new/src/cpp/core/CMakeLists.txt
---- rstudio-1.1.216-old/src/cpp/core/r_util/REnvironmentPosix.cpp 2017-04-30 03:37:26.669418665 -0400
-+++ rstudio-1.1.216-new/src/cpp/core/r_util/REnvironmentPosix.cpp 2017-04-30 03:36:33.590726185 -0400
-@@ -87,10 +87,7 @@
+diff --git a/src/cpp/core/r_util/REnvironmentPosix.cpp b/src/cpp/core/r_util/REnvironmentPosix.cpp
+index dbc9a9a1..9a526a86 100644
+--- a/src/cpp/core/r_util/REnvironmentPosix.cpp
++++ b/src/cpp/core/r_util/REnvironmentPosix.cpp
+@@ -107,12 +107,9 @@ FilePath systemDefaultRScript(std::string* pErrMsg)
{
- // define potential paths
- std::vector rScriptPaths;
-- rScriptPaths.push_back("/usr/bin/R");
-- rScriptPaths.push_back("/usr/local/bin/R");
-- rScriptPaths.push_back("/opt/local/bin/R");
-- rScriptPaths.push_back("/Library/Frameworks/R.framework/Resources/bin/R");
-+ rScriptPaths.push_back("@R@/bin/R");
- return scanForRScript(rScriptPaths, pErrMsg);
- }
+ // check fallback paths
+ std::vector rScriptPaths = {
+- "/usr/bin/R",
+- "/usr/local/bin/R",
+- "/opt/local/bin/R",
++ "@R@/bin/R"
+ #ifdef __APPLE__
+- "/opt/homebrew/bin/R",
+- "/Library/Frameworks/R.framework/Resources/bin/R",
++ "@R@/bin/R",
+ #endif
+ };
-@@ -226,8 +223,7 @@
+@@ -225,8 +222,7 @@ FilePath systemDefaultRScript(std::string* pErrMsg)
// scan in standard locations as a fallback
std::string scanErrMsg;
std::vector rScriptPaths;
@@ -21,5 +25,6 @@ diff -ur rstudio-1.1.216-old/src/cpp/core/CMakeLists.txt rstudio-1.1.216-new/src
- rScriptPaths.push_back("/usr/bin/R");
+ rScriptPaths.push_back("@R@/bin/R");
FilePath scriptPath = scanForRScript(rScriptPaths, &scanErrMsg);
- if (scriptPath.empty())
+ if (scriptPath.isEmpty())
{
+
diff --git a/pkgs/applications/editors/rstudio/yarn.lock b/pkgs/applications/editors/rstudio/yarn.lock
new file mode 100644
index 000000000000..d1717012db47
--- /dev/null
+++ b/pkgs/applications/editors/rstudio/yarn.lock
@@ -0,0 +1,3835 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
+ integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
+ dependencies:
+ "@babel/highlight" "^7.8.3"
+
+"@babel/helper-module-imports@^7.0.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498"
+ integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+"@babel/highlight@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
+ integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+ dependencies:
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^4.0.0"
+
+"@babel/runtime@^7.0.0":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f"
+ integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308"
+ integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==
+ dependencies:
+ regenerator-runtime "^0.13.2"
+
+"@babel/types@^7.8.3":
+ version "7.8.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01"
+ integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
+"@emotion/babel-utils@^0.6.4":
+ version "0.6.10"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz#83dbf3dfa933fae9fc566e54fbb45f14674c6ccc"
+ integrity sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==
+ dependencies:
+ "@emotion/hash" "^0.6.6"
+ "@emotion/memoize" "^0.6.6"
+ "@emotion/serialize" "^0.9.1"
+ convert-source-map "^1.5.1"
+ find-root "^1.1.0"
+ source-map "^0.7.2"
+
+"@emotion/hash@^0.6.2", "@emotion/hash@^0.6.6":
+ version "0.6.6"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.6.tgz#62266c5f0eac6941fece302abad69f2ee7e25e44"
+ integrity sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==
+
+"@emotion/is-prop-valid@^0.6.1":
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz#68ad02831da41213a2089d2cab4e8ac8b30cbd85"
+ integrity sha512-IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==
+ dependencies:
+ "@emotion/memoize" "^0.6.6"
+
+"@emotion/memoize@^0.6.1", "@emotion/memoize@^0.6.6":
+ version "0.6.6"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.6.tgz#004b98298d04c7ca3b4f50ca2035d4f60d2eed1b"
+ integrity sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==
+
+"@emotion/serialize@^0.9.1":
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.9.1.tgz#a494982a6920730dba6303eb018220a2b629c145"
+ integrity sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==
+ dependencies:
+ "@emotion/hash" "^0.6.6"
+ "@emotion/memoize" "^0.6.6"
+ "@emotion/unitless" "^0.6.7"
+ "@emotion/utils" "^0.8.2"
+
+"@emotion/stylis@^0.7.0":
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.7.1.tgz#50f63225e712d99e2b2b39c19c70fff023793ca5"
+ integrity sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==
+
+"@emotion/unitless@^0.6.2", "@emotion/unitless@^0.6.7":
+ version "0.6.7"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.7.tgz#53e9f1892f725b194d5e6a1684a7b394df592397"
+ integrity sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==
+
+"@emotion/utils@^0.8.2":
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.2.tgz#576ff7fb1230185b619a75d258cbc98f0867a8dc"
+ integrity sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==
+
+"@textlint/ast-node-types@^4.2.5":
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz#f6596c45c32c85dc06915c3077bb7686033efd32"
+ integrity sha512-Grq+vJuNH7HCa278eFeiqJvowrD+onMCoG2ctLyoN+fXYIQGIr1/8fo8AcIg+VM16Kga+N6Y1UWNOWPd8j1nFg==
+
+"@types/ace@^0.0.43":
+ version "0.0.43"
+ resolved "https://registry.yarnpkg.com/@types/ace/-/ace-0.0.43.tgz#9f0916174b6060dabbccd36ba4868ea769a1c633"
+ integrity sha512-eQdX8AQ7CfSHym07MZMBQ8FKUj9AZ2Wcc26W5Ct8J4KOMjFY6SFUaf2YA8YHBut0Fwl//2kZ+0GLZNp+NQNRIA==
+
+"@types/clipboard@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@types/clipboard/-/clipboard-2.0.1.tgz#75a74086c293d75b12bc93ff13bc7797fef05a40"
+ integrity sha512-gJJX9Jjdt3bIAePQRRjYWG20dIhAgEqonguyHxXuqALxsoDsDLimihqrSg8fXgVTJ4KZCzkfglKtwsh/8dLfbA==
+
+"@types/diff-match-patch@^1.0.32":
+ version "1.0.32"
+ resolved "https://registry.yarnpkg.com/@types/diff-match-patch/-/diff-match-patch-1.0.32.tgz#d9c3b8c914aa8229485351db4865328337a3d09f"
+ integrity sha512-bPYT5ECFiblzsVzyURaNhljBH2Gh1t9LowgUwciMrNAhFewLkHT2H0Mto07Y4/3KCOGZHRQll3CTtQZ0X11D/A==
+
+"@types/js-yaml@^3.12.3":
+ version "3.12.3"
+ resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.3.tgz#abf383c5b639d0aa8b8c4a420d6a85f703357d6c"
+ integrity sha512-otRe77JNNWzoVGLKw8TCspKswRoQToys4tuL6XYVBFxjgeM0RUrx7m3jkaTdxILxeGry3zM8mGYkGXMeQ02guA==
+
+"@types/lodash.debounce@^4.0.6":
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60"
+ integrity sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==
+ dependencies:
+ "@types/lodash" "*"
+
+"@types/lodash.uniqby@^4.7.6":
+ version "4.7.6"
+ resolved "https://registry.yarnpkg.com/@types/lodash.uniqby/-/lodash.uniqby-4.7.6.tgz#672827a701403f07904fe37f0721ae92abfa80e8"
+ integrity sha512-9wBhrm1y6asW50Joj6tsySCNUgzK2tCqL7vtKIej0E9RyeBFdcte7fxUosmFuMoOU0eHqOMK76kCCrK99jxHgg==
+ dependencies:
+ "@types/lodash" "*"
+
+"@types/lodash@*":
+ version "4.14.154"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.154.tgz#069e3c703fdb264e67be9e03b20a640bc0198ecc"
+ integrity sha512-VoDZIJmg3P8vPEnTldLvgA+q7RkIbVkbYX4k0cAVFzGAOQwUehVgRHgIr2/wepwivDst/rVRqaiBSjCXRnoWwQ==
+
+"@types/node@*", "@types/node@^14.0.4":
+ version "14.0.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.4.tgz#43a63fc5edce226bed106b31b875165256271107"
+ integrity sha512-k3NqigXWRzQZVBDS5D1U70A5E8Qk4Kh+Ha/x4M8Bt9pF0X05eggfnC9+63Usc9Q928hRUIpIhTQaXsZwZBl4Ew==
+
+"@types/orderedmap@*", "@types/orderedmap@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@types/orderedmap/-/orderedmap-1.0.0.tgz#807455a192bba52cbbb4517044bc82bdbfa8c596"
+ integrity sha512-dxKo80TqYx3YtBipHwA/SdFmMMyLCnP+5mkEqN0eMjcTBzHkiiX0ES118DsjDBjvD+zeSsSU9jULTZ+frog+Gw==
+
+"@types/parse-json@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/prop-types@*":
+ version "15.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
+
+"@types/prosemirror-commands@*", "@types/prosemirror-commands@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.3.tgz#e9fa5653cffd1c75c260594cf3ec5244c9004dbf"
+ integrity sha512-AjFCJqBvAhQ4gOzXPgUcnEZwu4jd7se7ani3dYAv8p4L+cWEPD6Pshrpp5uJDI5/pzvNXLWQ/4c2Qk4h9IML1w==
+ dependencies:
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-state" "*"
+ "@types/prosemirror-view" "*"
+
+"@types/prosemirror-dev-tools@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.0.tgz#91e2ef4f36129f5155f924296e306de187e86bdb"
+ integrity sha512-OhnSaC4yrrEMLPRUkEWcHAIPVqgKlLkE4kISqL3cHeAYxASouSPvPMLqhBIbWkGwaozy43DjjVC1OXkxTo+y5Q==
+ dependencies:
+ "@types/prosemirror-state" "*"
+ "@types/prosemirror-view" "*"
+
+"@types/prosemirror-dropcursor@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.0.tgz#2df872bc6431a9f06bc1a4a0eac7c2dc527e7f12"
+ integrity sha512-S2ndHt94M64avSqjBcgIblaF3YeC3RfcmpY9/WIdfqU7aoJxuOh4RJk5emdmQPHZT1wbczMHFmFSsRqgErK0EQ==
+ dependencies:
+ "@types/prosemirror-state" "*"
+
+"@types/prosemirror-gapcursor@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.1.tgz#56a6274ef39f62c339adcc64305294b800211a5e"
+ integrity sha512-ruA7FK9NJv+bn5s55SZYFf9SwaN3wk/MkBvqRmhIqIHvowTTa7nzIGWbUdWZMga1DDTk+GrwdcQaEHunAFjFsQ==
+ dependencies:
+ "@types/prosemirror-state" "*"
+
+"@types/prosemirror-history@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.1.tgz#b8d7595f73788b63fc9f2b57a763ba8375abfe87"
+ integrity sha512-BYyPJlWDo3VEnWS5X2DCHXrrAKEjdbCe1DUjGL6R/8hmwMFe3iMJGYdBkOXU1FfkTpw7Z+PlwY/pMyeelVydmg==
+ dependencies:
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-state" "*"
+
+"@types/prosemirror-inputrules@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.3.tgz#3f8f07921f692b6c7e4781fa426aee3e76b9018c"
+ integrity sha512-cxMkCcu/di8//68jWc/NrRpvpCbizgq9vqv4rCRsAiuSiJ8L5hf4aFlCBUYCffuQnrY98uOfJ8YAUY3dbtaF9A==
+ dependencies:
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-state" "*"
+
+"@types/prosemirror-keymap@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.3.tgz#09cc469a69222a4c8a3d415d02eeb459bb74269c"
+ integrity sha512-iCYUtt0u8y6qeDZVsidEWJGbw2Kas+jtHD1QY374W/N2jASYp+8auucFLXe0UvoOy9jiWcGcqcecec1R+vkzgw==
+ dependencies:
+ "@types/prosemirror-commands" "*"
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-state" "*"
+ "@types/prosemirror-view" "*"
+
+"@types/prosemirror-model@*", "@types/prosemirror-model@^1.7.2":
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.7.2.tgz#9c7aff2fd62f0f56eb76e2e0eb27bf6996e6c28a"
+ integrity sha512-2l+yXvidg3AUHN07mO4Jd8Q84fo6ksFsy7LHUurLYrZ74uTahBp2fzcO49AKZMzww2EulXJ40Kl/OFaQ/7A1fw==
+ dependencies:
+ "@types/orderedmap" "*"
+
+"@types/prosemirror-schema-list@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz#7f53e3c0326b1359755f3971b8c448d98b722f21"
+ integrity sha512-+iUYq+pj2wVHSThj0MjNDzkkGwq8aDQ6j0UJK8a0cNCL8v44Ftcx1noGPtBIEUJgitH960VnfBNoTWfQoQZfRA==
+ dependencies:
+ "@types/orderedmap" "*"
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-state" "*"
+
+"@types/prosemirror-state@*":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.3.tgz#7f5f871acf7b8c22e1862ff0068f9bf7e9682c0e"
+ integrity sha512-6m433Hubix9bx+JgcLW7zzyiZuzwjq5mBdSMYY4Yi5c5ZpV2RiVmg7Cy6f9Thtts8vuztilw+PczJAgDm1Frfw==
+ dependencies:
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-transform" "*"
+ "@types/prosemirror-view" "*"
+
+"@types/prosemirror-state@^1.2.5":
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.5.tgz#a91304e9aab6e71f868e23b3a1ae514a75033f8f"
+ integrity sha512-a5DxAifiF6vmdSJ5jsDMkpykUgUJUy+T5Q5hCjFOKJ4cfd3m3q1lsFKr7Bc4r91Qb7rfqyiKCMDnASS8LIHrKw==
+ dependencies:
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-transform" "*"
+ "@types/prosemirror-view" "*"
+
+"@types/prosemirror-tables@^0.9.1":
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-tables/-/prosemirror-tables-0.9.1.tgz#d2203330f0fa1161c04152bf02c39e152082d408"
+ integrity sha512-zoY1qcAC6kG4UjnaQQXuoyYQdDJMQmY9uzRKdyUppP8rWRR5/kXBHOd84CD9ZvrYUBo3uDmS20qQnc3knr2j9A==
+ dependencies:
+ prosemirror-tables "*"
+
+"@types/prosemirror-transform@*", "@types/prosemirror-transform@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.1.1.tgz#5a0de16e8e0123b4c3d9559235e19f39cee85e5c"
+ integrity sha512-yYCYSoiRH+Wcbl8GJc0PFCzeyMzNQ1vL2xrHHSXZuNcIlH75VoiKrZFeZ6BS9cl8mYXjZrlmdBe8YOxYvyKM6A==
+ dependencies:
+ "@types/prosemirror-model" "*"
+
+"@types/prosemirror-view@*":
+ version "1.11.2"
+ resolved "https://registry.yarnpkg.com/@types/prosemirror-view/-/prosemirror-view-1.11.2.tgz#58af5dcb7de20b7de874de99147552d5627209a1"
+ integrity sha512-EKcQmR4KdkFZU13wS5pWrkSojRCPGqz/l/uzpZFfW5cgdr7fQsftf2/ttvIjpk1a94ISifEY4UZwflVJ+uL4Rg==
+ dependencies:
+ "@types/prosemirror-model" "*"
+ "@types/prosemirror-state" "*"
+ "@types/prosemirror-transform" "*"
+
+"@types/react-dom@^16.9.6":
+ version "16.9.6"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.6.tgz#9e7f83d90566521cc2083be2277c6712dcaf754c"
+ integrity sha512-S6ihtlPMDotrlCJE9ST1fRmYrQNNwfgL61UB4I1W7M6kPulUKx9fXAleW5zpdIjUQ4fTaaog8uERezjsGUj9HQ==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-window@^1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.2.tgz#a5a6b2762ce73ffaab7911ee1397cf645f2459fe"
+ integrity sha512-gP1xam68Wc4ZTAee++zx6pTdDAH08rAkQrWm4B4F/y6hhmlT9Mgx2q8lTCXnrPHXsr15XjRN9+K2DLKcz44qEQ==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@^16.9.32":
+ version "16.9.32"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz#f6368625b224604148d1ddf5920e4fefbd98d383"
+ integrity sha512-fmejdp0CTH00mOJmxUPPbWCEBWPvRIL4m8r0qD+BSDUqmutPyGQCHifzMpMzdvZwROdEdL78IuZItntFWgPXHQ==
+ dependencies:
+ "@types/prop-types" "*"
+ csstype "^2.2.0"
+
+"@types/unzip@^0.1.1":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@types/unzip/-/unzip-0.1.1.tgz#96e80dc5e2917a769c8be01aa49c4fe660e7bab3"
+ integrity sha512-skD6Um7Pk2l7y+tVOKSgOA9vXViyhk/qJYmr17Ek4Uw3Zgo/DWPScphTPztPbApTIngyYSJnkEW87xrHzRYaew==
+ dependencies:
+ "@types/node" "*"
+
+"@types/zenscroll@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@types/zenscroll/-/zenscroll-4.0.0.tgz#9acc7df6c87cc9e064f5a6230df499835dee1972"
+ integrity sha512-n9np/qsr3HBH3VBVfviHhQPmGP1+D01+VI/40QFq/7LyJqDoIlcaaABu/qPAVats/oNuUJ/dhrjrOjVaqos+4A==
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+accepts@~1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+ dependencies:
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
+
+acorn-jsx@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e"
+ integrity sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==
+ dependencies:
+ acorn "^5.0.3"
+
+acorn@^5.0.3, acorn@^5.7.3:
+ version "5.7.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
+ integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+
+ajax-request@^1.2.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/ajax-request/-/ajax-request-1.2.3.tgz#99fcbec1d6d2792f85fa949535332bd14f5f3790"
+ integrity sha1-mfy+wdbSeS+F+pSVNTMr0U9fN5A=
+ dependencies:
+ file-system "^2.1.1"
+ utils-extend "^1.0.7"
+
+ajv@^6.5.5:
+ version "6.12.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7"
+ integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-escapes@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+ integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21"
+ integrity sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=
+
+anymatch@^1.3.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
+ integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
+ dependencies:
+ micromatch "^2.1.5"
+ normalize-path "^2.0.0"
+
+app-root-path@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-1.4.0.tgz#6335d865c9640d0fad99004e5a79232238e92dfa"
+ integrity sha1-YzXYZclkDQ+tmQBOWnkjIjjpLfo=
+
+app-root-path@^2.0.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a"
+ integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==
+
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+arr-diff@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
+ dependencies:
+ arr-flatten "^1.0.1"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
+
+array-unique@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+ integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+async-each@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+ integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+atob@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+
+aws4@^1.8.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
+ integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
+
+babel-plugin-emotion@^9.2.11:
+ version "9.2.11"
+ resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz#319c005a9ee1d15bb447f59fe504c35fd5807728"
+ integrity sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@emotion/babel-utils" "^0.6.4"
+ "@emotion/hash" "^0.6.2"
+ "@emotion/memoize" "^0.6.1"
+ "@emotion/stylis" "^0.7.0"
+ babel-plugin-macros "^2.0.0"
+ babel-plugin-syntax-jsx "^6.18.0"
+ convert-source-map "^1.5.0"
+ find-root "^1.1.0"
+ mkdirp "^0.5.1"
+ source-map "^0.5.7"
+ touch "^2.0.1"
+
+babel-plugin-macros@^2.0.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+ integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ cosmiconfig "^6.0.0"
+ resolve "^1.12.0"
+
+babel-plugin-syntax-jsx@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
+ integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
+
+babel-runtime@^6.6.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+
+base16@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70"
+ integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=
+
+base64-img@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/base64-img/-/base64-img-1.0.4.tgz#3e22d55d6c74a24553d840d2b1bc12a7db078d35"
+ integrity sha1-PiLVXWx0okVT2EDSsbwSp9sHjTU=
+ dependencies:
+ ajax-request "^1.2.0"
+ file-system "^2.1.0"
+
+base64-js@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
+ integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
+ dependencies:
+ tweetnacl "^0.14.3"
+
+biblatex-csl-converter@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/biblatex-csl-converter/-/biblatex-csl-converter-1.9.1.tgz#50aacfef172997f1c98d72837ffdd3b19c62f8c4"
+ integrity sha512-M7HkWas8NbiFoNdS/lZOfup5A83Scw4iWFoPn9r84zh9DzaG/gHU86qH1QHMgUc2dSaquuIBQZRHC9wCs7k92g==
+
+binary-extensions@^1.0.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+ integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+
+"binary@>= 0.3.0 < 1":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
+ integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=
+ dependencies:
+ buffers "~0.1.1"
+ chainsaw "~0.1.0"
+
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
+body-parser@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+ integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+ dependencies:
+ bytes "3.1.0"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "~1.1.2"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ on-finished "~2.3.0"
+ qs "6.7.0"
+ raw-body "2.4.0"
+ type-is "~1.6.17"
+
+boundary@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/boundary/-/boundary-1.0.1.tgz#4d67dc2602c0cc16dd9bce7ebf87e948290f5812"
+ integrity sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI=
+
+bowser@^2.0.0-beta.3:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9"
+ integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^1.8.2:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
+ dependencies:
+ expand-range "^1.8.1"
+ preserve "^0.2.0"
+ repeat-element "^1.1.2"
+
+braces@^2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+buffers@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
+ integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=
+
+builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
+
+bytes@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+
+chain-able@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/chain-able/-/chain-able-1.0.1.tgz#b48ac9bdc18f2192ec730abc66609f90aab5605f"
+ integrity sha1-tIrJvcGPIZLscwq8ZmCfkKq1YF8=
+
+chain-able@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chain-able/-/chain-able-3.0.0.tgz#dcffe8b04f3da210941a23843bc1332bb288ca9f"
+ integrity sha512-26MoELhta86n7gCsE2T1hGRyncZvPjFXTkB/DEp4+i/EJVSxXQNwXMDZZb2+SWcbPuow18wQtztaW7GXOel9DA==
+
+chainsaw@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
+ integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=
+ dependencies:
+ traverse ">=0.3.0 <0.4"
+
+chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chardet@^0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+ integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=
+
+chokidar@^1.6.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
+ integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
+ dependencies:
+ anymatch "^1.3.0"
+ async-each "^1.0.0"
+ glob-parent "^2.0.0"
+ inherits "^2.0.1"
+ is-binary-path "^1.0.0"
+ is-glob "^2.0.0"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.0.0"
+ optionalDependencies:
+ fsevents "^1.0.0"
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+clean-css@^4.1.9:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
+ integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
+ dependencies:
+ source-map "~0.6.0"
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+
+clipboard@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
+ integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
+ dependencies:
+ good-listener "^1.2.2"
+ select "^1.1.2"
+ tiny-emitter "^2.0.0"
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@^2.12.1, commander@^2.20.0, commander@~2.20.3:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+component-emitter@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+concat-stream@^1.4.7:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+concat-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1"
+ integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.0.2"
+ typedarray "^0.0.6"
+
+content-disposition@0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+ integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+ dependencies:
+ safe-buffer "5.1.2"
+
+content-type@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+convert-source-map@^1.5.0, convert-source-map@^1.5.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
+
+cookie@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+ integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+core-js@^2.4.0:
+ version "2.6.11"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
+ integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cosmiconfig@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+ integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.1.0"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.7.2"
+
+create-emotion-styled@^9.2.8:
+ version "9.2.8"
+ resolved "https://registry.yarnpkg.com/create-emotion-styled/-/create-emotion-styled-9.2.8.tgz#c0050e768ba439609bec108600467adf2de67cc3"
+ integrity sha512-2LrNM5MREWzI5hZK+LyiBHglwE18WE3AEbBQgpHQ1+zmyLSm/dJsUZBeFAwuIMb+TjNZP0KsMZlV776ufOtFdg==
+ dependencies:
+ "@emotion/is-prop-valid" "^0.6.1"
+
+create-emotion@^9.2.12:
+ version "9.2.12"
+ resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.12.tgz#0fc8e7f92c4f8bb924b0fef6781f66b1d07cb26f"
+ integrity sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==
+ dependencies:
+ "@emotion/hash" "^0.6.2"
+ "@emotion/memoize" "^0.6.1"
+ "@emotion/stylis" "^0.7.0"
+ "@emotion/unitless" "^0.6.2"
+ csstype "^2.5.2"
+ stylis "^3.5.0"
+ stylis-rule-sheet "^0.0.10"
+
+create-react-context@^0.1.5:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.1.6.tgz#0f425931d907741127acc6e31acb4f9015dd9fdc"
+ integrity sha512-eCnYYEUEc5i32LHwpE/W7NlddOB9oHwsPaWtWzYtflNkkwa3IfindIcoXdVWs12zCbwaMCavKNu84EXogVIWHw==
+
+csstype@^2.2.0:
+ version "2.6.10"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b"
+ integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==
+
+csstype@^2.5.2:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098"
+ integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+ dependencies:
+ assert-plus "^1.0.0"
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
+define-properties@^1.1.2, define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+delegate@^3.1.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
+ integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+destroy@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+
+diff-match-patch@^1.0.0, diff-match-patch@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1"
+ integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==
+
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+
+emotion@^9.2.5:
+ version "9.2.12"
+ resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.2.12.tgz#53925aaa005614e65c6e43db8243c843574d1ea9"
+ integrity sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==
+ dependencies:
+ babel-plugin-emotion "^9.2.11"
+ create-emotion "^9.2.12"
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
+ version "1.17.6"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
+ integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
+ dependencies:
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.2.0"
+ is-regex "^1.1.0"
+ object-inspect "^1.7.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.0"
+ string.prototype.trimend "^1.0.1"
+ string.prototype.trimstart "^1.0.1"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+es6-object-assign@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
+ integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+escodegen@^1.8.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
+ integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+esprima@^4.0.0, esprima@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+estraverse@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+exec-sh@^0.2.0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36"
+ integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==
+ dependencies:
+ merge "^1.2.0"
+
+expand-brackets@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
+ dependencies:
+ is-posix-bracket "^0.1.0"
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+expand-range@^1.8.1:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
+ dependencies:
+ fill-range "^2.1.0"
+
+express@^4.14.0:
+ version "4.17.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+ integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
+ dependencies:
+ accepts "~1.3.7"
+ array-flatten "1.1.1"
+ body-parser "1.19.0"
+ content-disposition "0.5.3"
+ content-type "~1.0.4"
+ cookie "0.4.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "~1.1.2"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "~1.1.2"
+ fresh "0.5.2"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.5"
+ qs "6.7.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.1.2"
+ send "0.17.1"
+ serve-static "1.14.1"
+ setprototypeof "1.1.1"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+external-editor@^2.0.4:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
+ integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
+ dependencies:
+ chardet "^0.4.0"
+ iconv-lite "^0.4.17"
+ tmp "^0.0.33"
+
+extglob@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
+ dependencies:
+ is-extglob "^1.0.0"
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+
+extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+
+fast-deep-equal@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
+ integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fast-xml-parser@^3.17.1:
+ version "3.17.1"
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.17.1.tgz#579fa64346cc891ce240d378268c6216e74aab10"
+ integrity sha512-jZ0EVn1iBuZtx/sbQnfvhSaaUltz+0+yfR+6QRyzrlt5yMiU+8ZfGj9i3/hoXJxm+aFri7dycBWbncox7frCAQ==
+
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+file-match@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/file-match/-/file-match-1.0.2.tgz#c9cad265d2c8adf3a81475b0df475859069faef7"
+ integrity sha1-ycrSZdLIrfOoFHWw30dYWQafrvc=
+ dependencies:
+ utils-extend "^1.0.6"
+
+file-system@^2.1.0, file-system@^2.1.1:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/file-system/-/file-system-2.2.2.tgz#7d65833e3a2347dcd956a813c677153ed3edd987"
+ integrity sha1-fWWDPjojR9zZVqgTxncVPtPt2Yc=
+ dependencies:
+ file-match "^1.0.1"
+ utils-extend "^1.0.4"
+
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+ integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
+
+fill-range@^2.1.0:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
+ integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
+ dependencies:
+ is-number "^2.1.0"
+ isobject "^2.0.0"
+ randomatic "^3.0.0"
+ repeat-element "^1.1.2"
+ repeat-string "^1.5.2"
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
+ unpipe "~1.0.0"
+
+find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
+fliplog@^0.3.13:
+ version "0.3.13"
+ resolved "https://registry.yarnpkg.com/fliplog/-/fliplog-0.3.13.tgz#dd0d786e821822aae272e0ddc84012596a96154c"
+ integrity sha512-R504CdX+mdhMYpmyrdiQ9PW6ncAyZnxyeA85fS1/P/Y9qmbMiQsqt6QzsYhq5kbqMb84PibVOcS1oz98GJl6EQ==
+ dependencies:
+ chain-able "^1.0.1"
+
+for-in@^1.0.1, for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+for-own@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
+ dependencies:
+ for-in "^1.0.1"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
+forwarded@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+ integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+ dependencies:
+ map-cache "^0.2.2"
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+fs-extra@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@^1.0.0:
+ version "1.2.11"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3"
+ integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==
+ dependencies:
+ bindings "^1.5.0"
+ nan "^2.12.1"
+
+"fstream@>= 0.1.30 < 1":
+ version "0.1.31"
+ resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988"
+ integrity sha1-czfwWPu7vvqMn1YaKMqwhJICyYg=
+ dependencies:
+ graceful-fs "~3.0.2"
+ inherits "~2.0.0"
+ mkdirp "0.5"
+ rimraf "2"
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+fuse-box@^3.7.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/fuse-box/-/fuse-box-3.7.1.tgz#d32879ceee4c8bcec9bbd8fcfe5b29e7142371cd"
+ integrity sha512-aM7t9bUcRpNNQu9M+YjXXzx9JSJQVPWeY+8iTyv7OhvJNWHrqqEWPzbn9OfcyFa2AfPwAUyC/uzWexBbjtTvsA==
+ dependencies:
+ acorn "^5.7.3"
+ acorn-jsx "^4.0.1"
+ ansi "^0.3.1"
+ app-root-path "^2.0.1"
+ base64-img "^1.0.3"
+ base64-js "^1.2.0"
+ bowser "^2.0.0-beta.3"
+ chokidar "^1.6.1"
+ clean-css "^4.1.9"
+ escodegen "^1.8.1"
+ express "^4.14.0"
+ fliplog "^0.3.13"
+ fs-extra "^7.0.0"
+ fuse-concat-with-sourcemaps "^1.0.5"
+ getopts "^2.1.1"
+ glob "^7.1.1"
+ ieee754 "^1.1.8"
+ inquirer "^3.0.6"
+ lego-api "^1.0.7"
+ mustache "^2.3.0"
+ postcss "^6.0.1"
+ pretty-time "^0.2.0"
+ prettysize "0.0.3"
+ realm-utils "^1.0.9"
+ regexpu-core "^4.1.3"
+ request "^2.79.0"
+ shorthash "0.0.2"
+ source-map "^0.7.1"
+ sourcemap-blender "1.0.5"
+ stream-browserify "^2.0.1"
+ tslib "^1.8.0"
+ watch "^1.0.1"
+ ws "^1.1.1"
+
+fuse-concat-with-sourcemaps@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/fuse-concat-with-sourcemaps/-/fuse-concat-with-sourcemaps-1.0.5.tgz#9c6a521f675cff5cdbb48db1ca9c181ae49a7b97"
+ integrity sha512-tKsRJIxn9tU3IH8JHMwFhGbObqkDKXhNKOvcM+QyflAlYb2EgOvIQe8D6WB/cocA3puldHatsp9SN5SKryasrw==
+ dependencies:
+ source-map "^0.6.1"
+
+fuse.js@^6.0.4:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.0.4.tgz#9f5af976f836247ad5d2c338090d6ce13cf9a4d2"
+ integrity sha512-XAeQaT+DV8dxqohN911+Qzkb4iMzTzae04mdb9/XSQbMjbsFasQxe0+UwM+3UWP+8vO7svz1Rj0KuQw6xJ45Ww==
+
+get-caller-file@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+getopts@^2.1.1:
+ version "2.2.5"
+ resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
+ integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
+ dependencies:
+ assert-plus "^1.0.0"
+
+glob-base@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
+ dependencies:
+ glob-parent "^2.0.0"
+ is-glob "^2.0.0"
+
+glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
+ dependencies:
+ is-glob "^2.0.0"
+
+glob@^7.1.1, glob@^7.1.3:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+good-listener@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
+ integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
+ dependencies:
+ delegate "^3.1.2"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
+ integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+
+graceful-fs@~3.0.2:
+ version "3.0.12"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef"
+ integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==
+ dependencies:
+ natives "^1.1.3"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
+
+har-validator@~5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
+ integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
+ dependencies:
+ ajv "^6.5.5"
+ har-schema "^2.0.0"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-symbols@^1.0.0, has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+html@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz#a544fa9ea5492bfb3a2cca8210a10be7b5af1f61"
+ integrity sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E=
+ dependencies:
+ concat-stream "^1.4.7"
+
+http-errors@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+ integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http-errors@~1.7.2:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+ integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+iconv-lite@0.4.24, iconv-lite@^0.4.17:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ie-array-find-polyfill@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ie-array-find-polyfill/-/ie-array-find-polyfill-1.1.0.tgz#5078e533f026831da22bd7476513d9460d65a142"
+ integrity sha1-UHjlM/Amgx2iK9dHZRPZRg1loUI=
+
+ieee754@^1.1.8:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
+ integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
+
+import-fresh@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
+ integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+inquirer@^3.0.6:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
+ integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-binary-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
+ dependencies:
+ binary-extensions "^1.0.0"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-callable@^1.1.4, is-callable@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
+ integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-date-object@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-dotfile@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+ integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
+
+is-equal-shallow@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
+ dependencies:
+ is-primitive "^2.0.0"
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+ integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
+ dependencies:
+ is-extglob "^1.0.0"
+
+is-number@^2.0.2, is-number@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+ integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-posix-bracket@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+ integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
+
+is-primitive@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+ integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
+
+is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+
+is-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff"
+ integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==
+ dependencies:
+ has-symbols "^1.0.1"
+
+is-symbol@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+ dependencies:
+ has-symbols "^1.0.1"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+
+isarray@1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+
+jsondiffpatch@^0.3.11:
+ version "0.3.11"
+ resolved "https://registry.yarnpkg.com/jsondiffpatch/-/jsondiffpatch-0.3.11.tgz#43f9443a0d081b5f79d413fe20f302079e493201"
+ integrity sha512-Xi3Iygdt/BGhml6bdUFhgDki1TgOsp3hG3iiH3KtzP+CahtGcdPfKRLlnZbSw+3b1umZkhmKrqXUgUcKenyhtA==
+ dependencies:
+ chalk "^2.3.0"
+ diff-match-patch "^1.0.0"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+lego-api@^1.0.7:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/lego-api/-/lego-api-1.0.8.tgz#5e26be726c5e11d540f89e7c6b1abf8c5834bd01"
+ integrity sha512-pZD0mf32+RL1bUMJztRcXiNBB1gE8gd/h4MDLWdZp7vaMZyjPiYK/zNpNNGoJvmoa7D/wf9dll+5z7pDObdLFg==
+ dependencies:
+ chain-able "^3.0.0"
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
+lodash._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+ integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
+
+lodash.curry@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170"
+ integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA=
+
+lodash.debounce@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-3.1.1.tgz#812211c378a94cc29d5aa4e3346cf0bfce3a7df5"
+ integrity sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=
+ dependencies:
+ lodash._getnative "^3.0.0"
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.flow@^3.3.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a"
+ integrity sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=
+
+lodash.uniqby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
+ integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=
+
+lodash@^4.17.13, lodash@^4.3.0:
+ version "4.17.15"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+ integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+
+loose-envify@^1.1.0, loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+make-error@^1.1.1:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+ dependencies:
+ object-visit "^1.0.0"
+
+"match-stream@>= 0.0.2 < 1":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf"
+ integrity sha1-mesFAJOzTf+t5CG5rAtBCpz6F88=
+ dependencies:
+ buffers "~0.1.1"
+ readable-stream "~1.0.0"
+
+math-random@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
+ integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
+
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+
+"memoize-one@>=3.1.1 <6":
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
+ integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
+
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+
+merge@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
+ integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
+
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+
+micromatch@^2.1.5:
+ version "2.3.11"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
+ dependencies:
+ arr-diff "^2.0.0"
+ array-unique "^0.2.1"
+ braces "^1.8.2"
+ expand-brackets "^0.1.4"
+ extglob "^0.3.1"
+ filename-regex "^2.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.1"
+ kind-of "^3.0.2"
+ normalize-path "^2.0.1"
+ object.omit "^2.0.0"
+ parse-glob "^3.0.4"
+ regex-cache "^0.4.2"
+
+micromatch@^3.1.10:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+mime-db@1.43.0:
+ version "1.43.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
+ integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
+
+mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.26"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
+ integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
+ dependencies:
+ mime-db "1.43.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
+
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+
+minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp@0.5:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
+mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+ dependencies:
+ minimist "0.0.8"
+
+mock-require@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz#ccd544d9eae81dd576b3f219f69ec867318a1946"
+ integrity sha512-lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==
+ dependencies:
+ get-caller-file "^1.0.2"
+ normalize-path "^2.1.1"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+
+mustache@^2.3.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
+ integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==
+
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+
+nan@^2.12.1:
+ version "2.14.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
+ integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+nanoseconds@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/nanoseconds/-/nanoseconds-0.1.0.tgz#69ec39fcd00e77ab3a72de0a43342824cd79233a"
+ integrity sha1-aew5/NAOd6s6ct4KQzQoJM15Izo=
+
+natives@^1.1.3:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb"
+ integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==
+
+negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+ integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+
+nopt@~1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
+ integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
+ dependencies:
+ abbrev "1"
+
+normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
+object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-inspect@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
+ integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
+
+object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+ dependencies:
+ isobject "^3.0.0"
+
+object.assign@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
+object.omit@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
+ dependencies:
+ for-own "^0.1.4"
+ is-extendable "^0.1.1"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ dependencies:
+ isobject "^3.0.1"
+
+object.values@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
+ integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+
+on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+ dependencies:
+ ee-first "1.1.1"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+ dependencies:
+ mimic-fn "^1.0.0"
+
+optionator@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+options@>=0.0.5:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
+ integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
+
+orderedmap@^1.0.0, orderedmap@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz#c618e77611b3b21d0fe3edc92586265e0059c789"
+ integrity sha512-3Ux8um0zXbVacKUkcytc0u3HgC0b0bBLT+I60r2J/En72cI0nZffqrA7Xtf2Hqs27j1g82llR5Mhbd0Z1XW4AQ==
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+
+"over@>= 0.0.5 < 1":
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708"
+ integrity sha1-8phS5w/X4l82DgE6jsRMgq7bVwg=
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-glob@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
+ dependencies:
+ glob-base "^0.3.0"
+ is-dotfile "^1.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.0"
+
+parse-json@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
+ integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+ lines-and-columns "^1.1.6"
+
+parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-parse@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+postcss@^6.0.1:
+ version "6.0.23"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+ dependencies:
+ chalk "^2.4.1"
+ source-map "^0.6.1"
+ supports-color "^5.4.0"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+ integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
+
+prettier@^1.18.2:
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+ integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
+
+pretty-time@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-0.2.0.tgz#7a3bdec4049c620cd7c42b7f342b74d56e73d74e"
+ integrity sha1-ejvexAScYgzXxCt/NCt01W5z104=
+ dependencies:
+ is-number "^2.0.2"
+ nanoseconds "^0.1.0"
+
+prettysize@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/prettysize/-/prettysize-0.0.3.tgz#14afff6a645e591a4ddf1c72919c23b4146181a1"
+ integrity sha1-FK//amReWRpN3xxykZwjtBRhgaE=
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+prop-types@^15.5.8, prop-types@^15.6.2:
+ version "15.7.2"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.8.1"
+
+prosemirror-changeset@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.1.2.tgz#91dee900eb4618b21ed0c38c8d41dc7539303864"
+ integrity sha512-/eeAM2XeOFmtiPsFVfVkM3Iq4xfNlFuDB6MlC8Hqch/ibq3YlH3YxDi8fqg78fT8fkrfvN6zRu9EE0HkSmH8PA==
+ dependencies:
+ prosemirror-transform "^1.0.0"
+
+prosemirror-commands@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.4.tgz#991563e67623acab4f8c510fad1570f8b4693780"
+ integrity sha512-kj4Qi+8h3EpJtZuuEDwZ9h2/QNGWDsIX/CzjmClxi9GhxWyBUMVUvIFk0mgdqHyX20lLeGmOpc0TLA5aPzgpWg==
+ dependencies:
+ prosemirror-model "^1.0.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-dev-tools@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.1.tgz#0c4304b05b437608b3666b72fdb4b21e24fa29fc"
+ integrity sha512-d9MG4PF82meg5Ru64ox6WCKPkQNsiZEaG5xR5a+l88RJ0VRButMZq5JzPh28vUlTBq+TXnpdTJRlPQIgTOtpqg==
+ dependencies:
+ emotion "^9.2.5"
+ es6-object-assign "^1.1.0"
+ html "^1.0.0"
+ ie-array-find-polyfill "^1.1.0"
+ jsondiffpatch "^0.3.11"
+ prop-types "^15.6.2"
+ prosemirror-model ">=1.0.0"
+ prosemirror-state ">=1.0.0"
+ react-dock "^0.2.4"
+ react-emotion "^9.2.5"
+ react-json-tree "^0.11.0"
+ unstated "^2.1.1"
+
+prosemirror-dropcursor@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.2.tgz#28738c4ed7102e814d7a8a26d70018523fc7cd6d"
+ integrity sha512-4c94OUGyobGnwcQI70OXyMhE/9T4aTgjU+CHxkd5c7D+jH/J0mKM/lk+jneFVKt7+E4/M0D9HzRPifu8U28Thw==
+ dependencies:
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.1.0"
+ prosemirror-view "^1.1.0"
+
+prosemirror-gapcursor@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz#0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246"
+ integrity sha512-SjbUZq5pgsBDuV3hu8GqgIpZR5eZvGLM+gPQTqjVVYSMUCfKW3EGXTEYaLHEl1bGduwqNC95O3bZflgtAb4L6w==
+ dependencies:
+ prosemirror-keymap "^1.0.0"
+ prosemirror-model "^1.0.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-view "^1.0.0"
+
+prosemirror-history@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz#4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489"
+ integrity sha512-zGDotijea+vnfnyyUGyiy1wfOQhf0B/b6zYcCouBV8yo6JmrE9X23M5q7Nf/nATywEZbgRLG70R4DmfSTC+gfg==
+ dependencies:
+ prosemirror-state "^1.2.2"
+ prosemirror-transform "^1.0.0"
+ rope-sequence "^1.3.0"
+
+prosemirror-inputrules@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz#487e46c763e1212a4577397aba7706139084f012"
+ integrity sha512-Ja5Z3BWestlHYGvtSGqyvxMeB8QEuBjlHM8YnKtLGUXMDp965qdDV4goV8lJb17kIWHk7e7JNj6Catuoa3302g==
+ dependencies:
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.3.tgz#be22d6108df2521608e9216a87b1a810f0ed361e"
+ integrity sha512-PRA4NzkUMzV/NFf5pyQ6tmlIHiW/qjQ1kGWUlV2rF/dvlOxtpGpTEjIMhWgLuMf+HiDEFnUEP7uhYXu+t+491g==
+ dependencies:
+ prosemirror-state "^1.0.0"
+ w3c-keyname "^2.2.0"
+
+prosemirror-keymap@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz#8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d"
+ integrity sha512-Al8cVUOnDFL4gcI5IDlG6xbZ0aOD/i3B17VT+1JbHWDguCgt/lBHVTHUBcKvvbSg6+q/W4Nj1Fu6bwZSca3xjg==
+ dependencies:
+ prosemirror-state "^1.0.0"
+ w3c-keyname "^2.2.0"
+
+prosemirror-model@>=1.0.0, prosemirror-model@^1.0.0, prosemirror-model@^1.1.0, prosemirror-model@^1.8.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.9.1.tgz#8c08cf556f593c5f015548d2c1a6825661df087f"
+ integrity sha512-Qblh8pm1c7Ll64sYLauwwzjimo/tFg1zW3Q3IWhKRhvfOEgRKqa6dC5pRrAa+XHOIjBFEYrqbi52J5bqA2dV8Q==
+ dependencies:
+ orderedmap "^1.1.0"
+
+prosemirror-model@^1.11.0:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.11.0.tgz#dc36cdb3ad6442b9f6325c7d89170c624f9dc520"
+ integrity sha512-GqoAz/mIYjdv8gVYJ8mWFKpHoTxn/lXq4tXJ6bTVxs+rem2LzMYXrNVXfucGtfsgqsJlRIgng/ByG9j7Q8XDrg==
+ dependencies:
+ orderedmap "^1.1.0"
+
+prosemirror-schema-list@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz#471f9caf2d2bed93641d2e490434c0d2d4330df1"
+ integrity sha512-pNTuZflacFOBlxrTcWSdWhjoB8BaucwfJVp/gJNxztOwaN3wQiC65axclXyplf6TKgXD/EkWfS/QAov3/Znadw==
+ dependencies:
+ prosemirror-model "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.2.tgz#1b910b0dc01c1f00926bb9ba1589f7b7ac0d658b"
+ integrity sha512-t/JqE3aR0SV9QrzFVkAXsQwsgrQBNs/BDbcFH20RssW0xauqNNdjTXxy/J/kM7F+0zYi6+BRmz7cMMQQFU3mwQ==
+ dependencies:
+ prosemirror-model "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-state@^1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.3.tgz#b2862866b14dec2b3ae1ab18229f2bd337651a2c"
+ integrity sha512-PLXh2VJsIgvlgSTH6I2Yg6vk1CzPDp21DFreVpQtDMY2S6WaMmrQgDTLRcsrD8X38v8Yc873H7+ogdGzyIPn+w==
+ dependencies:
+ prosemirror-model "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-tables@*:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.0.0.tgz#ec3d0b11e638c6a92dd14ae816d0a2efd1719b70"
+ integrity sha512-zFw5Us4G5Vdq0yIj8GiqZOGA6ud5UKpMKElux9O0HrfmhkuGa1jf1PCpz2R5pmIQJv+tIM24H1mox/ODBAX37Q==
+ dependencies:
+ prosemirror-keymap "^1.1.2"
+ prosemirror-model "^1.8.1"
+ prosemirror-state "^1.3.1"
+ prosemirror-transform "^1.2.1"
+ prosemirror-view "^1.13.3"
+
+prosemirror-tables@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz#ad66300cc49500455cf1243bb129c9e7d883321e"
+ integrity sha512-LmCz4jrlqQZRsYRDzCRYf/pQ5CUcSOyqZlAj5kv67ZWBH1SVLP2U9WJEvQfimWgeRlIz0y0PQVqO1arRm1+woA==
+ dependencies:
+ prosemirror-keymap "^1.1.2"
+ prosemirror-model "^1.8.1"
+ prosemirror-state "^1.3.1"
+ prosemirror-transform "^1.2.1"
+ prosemirror-view "^1.13.3"
+
+prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.3.tgz#239d17591af24d39ef3f1999daa09e1f1c76b06a"
+ integrity sha512-PUfayeskQfuUBXktvL6207ZWRwHBFNPNPiek4fR+LgCPnBofuEb2+L0FfbNtrAwffHVs6M3DaFvJB1W2VQdV0A==
+ dependencies:
+ prosemirror-model "^1.0.0"
+
+prosemirror-transform@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.8.tgz#4b86544fa43637fe381549fb7b019f4fb71fe65c"
+ integrity sha512-hKqceqv9ZmMQXNQkhFjr0KFGPvkhygaWND+uIM0GxRpALrKfxP97SsgHTBs3OpJhDmh5N+mB4D/CksB291Eavg==
+ dependencies:
+ prosemirror-model "^1.0.0"
+
+prosemirror-utils@^0.9.6:
+ version "0.9.6"
+ resolved "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.9.6.tgz#3d97bd85897e3b535555867dc95a51399116a973"
+ integrity sha512-UC+j9hQQ1POYfMc5p7UFxBTptRiGPR7Kkmbl3jVvU8VgQbkI89tR/GK+3QYC8n+VvBZrtAoCrJItNhWSxX3slA==
+
+prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3:
+ version "1.14.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.14.2.tgz#23eb89f6101e9671b5e0c19d82ee0ad9de5608de"
+ integrity sha512-9yPVH6OLyaEraHjWHbSk2DB0R/1TsEE6AA1LI+vmCypXXA+zTzNrktUFzBhSJHehXDoEJcQfnl1Wdp5GPSh2+g==
+ dependencies:
+ prosemirror-model "^1.1.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.1.0"
+
+prosemirror-view@^1.15.6:
+ version "1.15.6"
+ resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.15.6.tgz#446bf7662235300c5f47362af2db805c6df3ad24"
+ integrity sha512-9FBFB+rK5pvvzHsHOacy0T/Jf+OxZSzY8tSlQiur3SZwAVaNVQm+fl23V/6gU2dHBnreGxjYx9jK+F3XPsPCGw==
+ dependencies:
+ prosemirror-model "^1.1.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.1.0"
+
+proxy-addr@~2.0.5:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
+ integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
+ dependencies:
+ forwarded "~0.1.2"
+ ipaddr.js "1.9.1"
+
+psl@^1.1.28:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c"
+ integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==
+
+"pullstream@>= 0.4.1 < 1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314"
+ integrity sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ=
+ dependencies:
+ over ">= 0.0.5 < 1"
+ readable-stream "~1.0.31"
+ setimmediate ">= 1.0.2 < 2"
+ slice-stream ">= 1.0.0 < 2"
+
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+pure-color@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e"
+ integrity sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=
+
+qs@6.7.0:
+ version "6.7.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+ integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+
+randomatic@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
+ integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
+ dependencies:
+ is-number "^4.0.0"
+ kind-of "^6.0.0"
+ math-random "^1.0.1"
+
+range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+ integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+react-base16-styling@^0.5.1:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.5.3.tgz#3858f24e9c4dd8cbd3f702f3f74d581ca2917269"
+ integrity sha1-OFjyTpxN2MvT9wLz901YHKKRcmk=
+ dependencies:
+ base16 "^1.0.0"
+ lodash.curry "^4.0.1"
+ lodash.flow "^3.3.0"
+ pure-color "^1.2.0"
+
+react-dock@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/react-dock/-/react-dock-0.2.4.tgz#e727dc7550b3b73116635dcb9c0e04d0b7afe17c"
+ integrity sha1-5yfcdVCztzEWY13LnA4E0Lev4Xw=
+ dependencies:
+ lodash.debounce "^3.1.1"
+ prop-types "^15.5.8"
+
+react-dom@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
+ integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ prop-types "^15.6.2"
+ scheduler "^0.19.1"
+
+react-emotion@^9.2.5:
+ version "9.2.12"
+ resolved "https://registry.yarnpkg.com/react-emotion/-/react-emotion-9.2.12.tgz#74d1494f89e22d0b9442e92a33ca052461955c83"
+ integrity sha512-qt7XbxnEKX5sZ73rERJ92JMbEOoyOwG3BuCRFRkXrsJhEe+rFBRTljRw7yOLHZUCQC4GBObZhjXIduQ8S0ZpYw==
+ dependencies:
+ babel-plugin-emotion "^9.2.11"
+ create-emotion-styled "^9.2.8"
+
+react-is@^16.8.1:
+ version "16.13.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527"
+ integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==
+
+react-json-tree@^0.11.0:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.11.2.tgz#af70199fcbc265699ade2aec492465c51608f95e"
+ integrity sha512-aYhUPj1y5jR3ZQ+G3N7aL8FbTyO03iLwnVvvEikLcNFqNTyabdljo9xDftZndUBFyyyL0aK3qGO9+8EilILHUw==
+ dependencies:
+ babel-runtime "^6.6.1"
+ prop-types "^15.5.8"
+ react-base16-styling "^0.5.1"
+
+react-window@^1.8.5:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz#a56b39307e79979721021f5d06a67742ecca52d1"
+ integrity sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==
+ dependencies:
+ "@babel/runtime" "^7.0.0"
+ memoize-one ">=3.1.1 <6"
+
+react@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
+ integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ prop-types "^15.6.2"
+
+readable-stream@^2.0.2, readable-stream@^2.2.2:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readable-stream@^3.0.2:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readable-stream@~1.0.0, readable-stream@~1.0.31:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+readdirp@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ readable-stream "^2.0.2"
+
+realm-utils@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/realm-utils/-/realm-utils-1.0.9.tgz#5c76a5ff39e4816af2c133a161f4221d6628eff4"
+ integrity sha1-XHal/znkgWrywTOhYfQiHWYo7/Q=
+ dependencies:
+ app-root-path "^1.3.0"
+ mkdirp "^0.5.1"
+
+regenerate-unicode-properties@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
+ integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
+ dependencies:
+ regenerate "^1.4.0"
+
+regenerate@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
+ integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
+regenerator-runtime@^0.13.2:
+ version "0.13.3"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
+ integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
+
+regenerator-runtime@^0.13.4:
+ version "0.13.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
+ integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
+
+regex-cache@^0.4.2:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
+ dependencies:
+ is-equal-shallow "^0.1.3"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+regexpu-core@^4.1.3:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
+ integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.1.0"
+ regjsgen "^0.5.0"
+ regjsparser "^0.6.0"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.1.0"
+
+regjsgen@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
+ integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
+
+regjsparser@^0.6.0:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz#74192c5805d35e9f5ebe3c1fb5b40d40a8a38460"
+ integrity sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==
+ dependencies:
+ jsesc "~0.5.0"
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+repeat-element@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
+
+repeat-string@^1.5.2, repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+request@^2.79.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.3"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.5.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
+resolve@^1.12.0, resolve@^1.3.2:
+ version "1.15.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
+ integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
+ dependencies:
+ path-parse "^1.0.6"
+
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+rimraf@2:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+rope-sequence@^1.3.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz#a19e02d72991ca71feb6b5f8a91154e48e3c098b"
+ integrity sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg==
+
+run-async@^2.2.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8"
+ integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==
+ dependencies:
+ is-promise "^2.1.0"
+
+rx-lite-aggregates@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
+ integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
+ dependencies:
+ rx-lite "*"
+
+rx-lite@*, rx-lite@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+ integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
+
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.2:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
+ integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+
+safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+ dependencies:
+ ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+scheduler@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
+select@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+ integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
+
+semver@^5.3.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+send@0.17.1:
+ version "0.17.1"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+ integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "~1.7.2"
+ mime "1.6.0"
+ ms "2.1.1"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
+sentence-splitter@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/sentence-splitter/-/sentence-splitter-3.2.0.tgz#fb2cd2f61f40006643ba83d9acf4609233c1c68c"
+ integrity sha512-lKX2tZ1rsA9Tu0gW8vRmMDmIEJoZ1d7cKpzcbFZdUrSpCR6gy/7OPPh7jjT/6Oc6Z79ToUmC2l8tyTEGanVmiA==
+ dependencies:
+ "@textlint/ast-node-types" "^4.2.5"
+ concat-stream "^2.0.0"
+ object.values "^1.1.0"
+ structured-source "^3.0.2"
+
+serve-static@1.14.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+ integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.17.1"
+
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+"setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
+setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+ integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+
+shorthash@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/shorthash/-/shorthash-0.0.2.tgz#59b268eecbde59038b30da202bcfbddeb2c4a4eb"
+ integrity sha1-WbJo7sveWQOLMNogK8+93rLEpOs=
+
+signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+
+"slice-stream@>= 1.0.0 < 2":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0"
+ integrity sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA=
+ dependencies:
+ readable-stream "~1.0.31"
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+source-map-resolve@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+ dependencies:
+ atob "^2.1.2"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-support@^0.5.17:
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-support@~0.5.12:
+ version "0.5.16"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
+ integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
+
+source-map@^0.5.6, source-map@^0.5.7:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+source-map@^0.7.1, source-map@^0.7.2, source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+sourcemap-blender@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sourcemap-blender/-/sourcemap-blender-1.0.5.tgz#d361f3d12381c4e477178113878fdf984a91bdbc"
+ integrity sha512-GPhjCmDtJ8YY6zt1L6kP6WtBg6WrdWt5hw2Wmgt9rwC3yiwLo9vEuabh/YYSZ5KmFV20hVkGdkTwpXtT2E65TA==
+ dependencies:
+ source-map "^0.7.3"
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+ dependencies:
+ extend-shallow "^3.0.0"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+sshpk@^1.7.0:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+ integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+string-width@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string.prototype.trimend@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+ integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+string.prototype.trimstart@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+ integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+ dependencies:
+ ansi-regex "^3.0.0"
+
+structured-source@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz#dd802425e0f53dc4a6e7aca3752901a1ccda7af5"
+ integrity sha1-3YAkJeD1PcSm56yjdSkBoczaevU=
+ dependencies:
+ boundary "^1.0.1"
+
+stylis-rule-sheet@^0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
+ integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
+
+stylis@^3.5.0:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
+ integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+
+supports-color@^5.3.0, supports-color@^5.4.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+terser@^4.6.2:
+ version "4.6.4"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.4.tgz#40a0b37afbe5b57e494536815efa68326840fc00"
+ integrity sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.6.1"
+ source-map-support "~0.5.12"
+
+thenby@^1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/thenby/-/thenby-1.3.3.tgz#016c3427772a284bbfef982d978f7574fd15ee9d"
+ integrity sha512-vCzp0TxrQ+2bfRJoWNhMwk6RNfboOUN2S+nbEfhJfj7RwJHD6PlgtXH/hXiSmv6UJs35IQDtVqiI45J+cAgLqg==
+
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+tiny-emitter@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
+ integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
+
+tlite@^0.1.9:
+ version "0.1.9"
+ resolved "https://registry.yarnpkg.com/tlite/-/tlite-0.1.9.tgz#e886e4a305b7522242e2453b7ca4fb84f2d9de0f"
+ integrity sha512-5QOBAvDxZZwW1i+2YXMgF6/PuV/KhA0LyE9PyVi8Ywr3bfIPziZcQD+RpdJaQurCU8zIGtBo/XuPCEHdvyeFuQ==
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+ integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
+touch@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-2.0.2.tgz#ca0b2a3ae3211246a61b16ba9e6cbf1596287164"
+ integrity sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==
+ dependencies:
+ nopt "~1.0.10"
+
+tough-cookie@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+ dependencies:
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
+"traverse@>=0.3.0 <0.4":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
+ integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=
+
+ts-node@^8.10.2:
+ version "8.10.2"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
+ integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
+ dependencies:
+ arg "^4.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ source-map-support "^0.5.17"
+ yn "3.1.1"
+
+tslib@^1.8.0, tslib@^1.8.1:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
+ integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
+
+tslint-config-prettier@^1.18.0:
+ version "1.18.0"
+ resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37"
+ integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==
+
+tslint-react@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/tslint-react/-/tslint-react-5.0.0.tgz#d0ae644e8163bdd3e134012e9353094904e8dd44"
+ integrity sha512-/IbcSmoBPlFic8kQaRfQ4knTY4mivwo5LVzvozvX6Dyu2ynEnrh1dIcR2ujjyp/IodXqY/H5GbxFxSMo/Kf2Hg==
+ dependencies:
+ tsutils "^3.17.1"
+
+tslint@^5.20.0:
+ version "5.20.1"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d"
+ integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ builtin-modules "^1.1.1"
+ chalk "^2.3.0"
+ commander "^2.12.1"
+ diff "^4.0.1"
+ glob "^7.1.1"
+ js-yaml "^3.13.1"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ resolve "^1.3.2"
+ semver "^5.3.0"
+ tslib "^1.8.0"
+ tsutils "^2.29.0"
+
+tsutils@^2.29.0:
+ version "2.29.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
+ integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
+ dependencies:
+ tslib "^1.8.1"
+
+tsutils@^3.17.1:
+ version "3.17.1"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
+ integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
+ dependencies:
+ tslib "^1.8.1"
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type-is@~1.6.17, type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
+typescript-tslint-plugin@^0.5.5:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/typescript-tslint-plugin/-/typescript-tslint-plugin-0.5.5.tgz#673875c43640251f1ab3d63745d7d49726ff961c"
+ integrity sha512-tR5igNQP+6FhxaPJYRlUBVsEl0n5cSuXRbg7L1y80mL4B1jUHb8uiIcbQBJ9zWyypJEdFYFUccpXxvMwZR8+AA==
+ dependencies:
+ minimatch "^3.0.4"
+ mock-require "^3.0.3"
+ vscode-languageserver "^5.2.1"
+
+typescript@3.8.3:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
+ integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
+
+uglify-js@^3.7.4:
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805"
+ integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==
+ dependencies:
+ commander "~2.20.3"
+ source-map "~0.6.1"
+
+ultron@1.0.x:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
+ integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
+
+unicode-canonical-property-names-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+ integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
+
+unicode-match-property-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+ integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^1.0.4"
+ unicode-property-aliases-ecmascript "^1.0.4"
+
+unicode-match-property-value-ecmascript@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
+ integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+
+unicode-property-aliases-ecmascript@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
+ integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
+
+union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+unstated@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/unstated/-/unstated-2.1.1.tgz#36b124dfb2e7a12d39d0bb9c46dfb6e51276e3a2"
+ integrity sha512-fORlTWMZxq7NuMJDxyIrrYIZKN7wEWYQ9SiaJfIRcSpsowr6Ph/JIfK2tgtXLW614JfPG/t5q9eEIhXRCf55xg==
+ dependencies:
+ create-react-context "^0.1.5"
+
+unzip@^0.1.11:
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0"
+ integrity sha1-iXScY7BY19kNYZ+GuYqhU107l/A=
+ dependencies:
+ binary ">= 0.3.0 < 1"
+ fstream ">= 0.1.30 < 1"
+ match-stream ">= 0.0.2 < 1"
+ pullstream ">= 0.4.1 < 1"
+ readable-stream "~1.0.31"
+ setimmediate ">= 1.0.1 < 2"
+
+uri-js@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+ dependencies:
+ punycode "^2.1.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+utils-extend@^1.0.4, utils-extend@^1.0.6, utils-extend@^1.0.7:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/utils-extend/-/utils-extend-1.0.8.tgz#ccfd7b64540f8e90ee21eec57769d0651cab8a5f"
+ integrity sha1-zP17ZFQPjpDuIe7Fd2nQZRyril8=
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
+uuid@^3.3.2:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+vscode-jsonrpc@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9"
+ integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg==
+
+vscode-languageserver-protocol@3.14.1:
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f"
+ integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g==
+ dependencies:
+ vscode-jsonrpc "^4.0.0"
+ vscode-languageserver-types "3.14.0"
+
+vscode-languageserver-types@3.14.0:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743"
+ integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==
+
+vscode-languageserver@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz#0d2feddd33f92aadf5da32450df498d52f6f14eb"
+ integrity sha512-GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A==
+ dependencies:
+ vscode-languageserver-protocol "3.14.1"
+ vscode-uri "^1.0.6"
+
+vscode-uri@^1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59"
+ integrity sha512-obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ==
+
+w3c-keyname@^2.2.0:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.2.tgz#7ea63170454bb19f1a3c6b628fc3dc8889276e91"
+ integrity sha512-8Vs/aVwcy0IJACaPm4tyzh1fzehZE70bGSjEl3dDms5UXtWnaBElrSHC8lDDeak0Gk5jxKOFstL64/65o7Ge2A==
+
+watch@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz#340a717bde765726fa0aa07d721e0147a551df0c"
+ integrity sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=
+ dependencies:
+ exec-sh "^0.2.0"
+ minimist "^1.2.0"
+
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+ws@^1.1.1:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
+ integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
+ dependencies:
+ options ">=0.0.5"
+ ultron "1.0.x"
+
+yaml@^1.7.2:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2"
+ integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==
+ dependencies:
+ "@babel/runtime" "^7.6.3"
+
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
+zenscroll@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/zenscroll/-/zenscroll-4.0.2.tgz#e8d5774d1c0738a47bcfa8729f3712e2deddeb25"
+ integrity sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU=
diff --git a/pkgs/applications/editors/rstudio/yarndeps.nix b/pkgs/applications/editors/rstudio/yarndeps.nix
new file mode 100644
index 000000000000..be4480a67c66
--- /dev/null
+++ b/pkgs/applications/editors/rstudio/yarndeps.nix
@@ -0,0 +1,4373 @@
+{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "_babel_code_frame___code_frame_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz";
+ sha1 = "33e25903d7481181534e12ec0a25f16b6fcf419e";
+ };
+ }
+ {
+ name = "_babel_helper_module_imports___helper_module_imports_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_imports___helper_module_imports_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
+ sha1 = "7fe39589b39c016331b6b8c3f441e8f0b1419498";
+ };
+ }
+ {
+ name = "_babel_highlight___highlight_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz";
+ sha1 = "28f173d04223eaaa59bc1d439a3836e6d1265797";
+ };
+ }
+ {
+ name = "_babel_runtime___runtime_7.9.6.tgz";
+ path = fetchurl {
+ name = "_babel_runtime___runtime_7.9.6.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz";
+ sha1 = "a9102eb5cadedf3f31d08a9ecf294af7827ea29f";
+ };
+ }
+ {
+ name = "_babel_runtime___runtime_7.8.4.tgz";
+ path = fetchurl {
+ name = "_babel_runtime___runtime_7.8.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz";
+ sha1 = "d79f5a2040f7caa24d53e563aad49cbc05581308";
+ };
+ }
+ {
+ name = "_babel_types___types_7.8.6.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.8.6.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz";
+ sha1 = "629ecc33c2557fcde7126e58053127afdb3e6d01";
+ };
+ }
+ {
+ name = "_emotion_babel_utils___babel_utils_0.6.10.tgz";
+ path = fetchurl {
+ name = "_emotion_babel_utils___babel_utils_0.6.10.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz";
+ sha1 = "83dbf3dfa933fae9fc566e54fbb45f14674c6ccc";
+ };
+ }
+ {
+ name = "_emotion_hash___hash_0.6.6.tgz";
+ path = fetchurl {
+ name = "_emotion_hash___hash_0.6.6.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.6.tgz";
+ sha1 = "62266c5f0eac6941fece302abad69f2ee7e25e44";
+ };
+ }
+ {
+ name = "_emotion_is_prop_valid___is_prop_valid_0.6.8.tgz";
+ path = fetchurl {
+ name = "_emotion_is_prop_valid___is_prop_valid_0.6.8.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz";
+ sha1 = "68ad02831da41213a2089d2cab4e8ac8b30cbd85";
+ };
+ }
+ {
+ name = "_emotion_memoize___memoize_0.6.6.tgz";
+ path = fetchurl {
+ name = "_emotion_memoize___memoize_0.6.6.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.6.tgz";
+ sha1 = "004b98298d04c7ca3b4f50ca2035d4f60d2eed1b";
+ };
+ }
+ {
+ name = "_emotion_serialize___serialize_0.9.1.tgz";
+ path = fetchurl {
+ name = "_emotion_serialize___serialize_0.9.1.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.9.1.tgz";
+ sha1 = "a494982a6920730dba6303eb018220a2b629c145";
+ };
+ }
+ {
+ name = "_emotion_stylis___stylis_0.7.1.tgz";
+ path = fetchurl {
+ name = "_emotion_stylis___stylis_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.7.1.tgz";
+ sha1 = "50f63225e712d99e2b2b39c19c70fff023793ca5";
+ };
+ }
+ {
+ name = "_emotion_unitless___unitless_0.6.7.tgz";
+ path = fetchurl {
+ name = "_emotion_unitless___unitless_0.6.7.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.7.tgz";
+ sha1 = "53e9f1892f725b194d5e6a1684a7b394df592397";
+ };
+ }
+ {
+ name = "_emotion_utils___utils_0.8.2.tgz";
+ path = fetchurl {
+ name = "_emotion_utils___utils_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.2.tgz";
+ sha1 = "576ff7fb1230185b619a75d258cbc98f0867a8dc";
+ };
+ }
+ {
+ name = "_textlint_ast_node_types___ast_node_types_4.3.4.tgz";
+ path = fetchurl {
+ name = "_textlint_ast_node_types___ast_node_types_4.3.4.tgz";
+ url = "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz";
+ sha1 = "f6596c45c32c85dc06915c3077bb7686033efd32";
+ };
+ }
+ {
+ name = "_types_ace___ace_0.0.43.tgz";
+ path = fetchurl {
+ name = "_types_ace___ace_0.0.43.tgz";
+ url = "https://registry.yarnpkg.com/@types/ace/-/ace-0.0.43.tgz";
+ sha1 = "9f0916174b6060dabbccd36ba4868ea769a1c633";
+ };
+ }
+ {
+ name = "_types_clipboard___clipboard_2.0.1.tgz";
+ path = fetchurl {
+ name = "_types_clipboard___clipboard_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/clipboard/-/clipboard-2.0.1.tgz";
+ sha1 = "75a74086c293d75b12bc93ff13bc7797fef05a40";
+ };
+ }
+ {
+ name = "_types_diff_match_patch___diff_match_patch_1.0.32.tgz";
+ path = fetchurl {
+ name = "_types_diff_match_patch___diff_match_patch_1.0.32.tgz";
+ url = "https://registry.yarnpkg.com/@types/diff-match-patch/-/diff-match-patch-1.0.32.tgz";
+ sha1 = "d9c3b8c914aa8229485351db4865328337a3d09f";
+ };
+ }
+ {
+ name = "_types_js_yaml___js_yaml_3.12.3.tgz";
+ path = fetchurl {
+ name = "_types_js_yaml___js_yaml_3.12.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.3.tgz";
+ sha1 = "abf383c5b639d0aa8b8c4a420d6a85f703357d6c";
+ };
+ }
+ {
+ name = "_types_lodash.debounce___lodash.debounce_4.0.6.tgz";
+ path = fetchurl {
+ name = "_types_lodash.debounce___lodash.debounce_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz";
+ sha1 = "c5a2326cd3efc46566c47e4c0aa248dc0ee57d60";
+ };
+ }
+ {
+ name = "_types_lodash.uniqby___lodash.uniqby_4.7.6.tgz";
+ path = fetchurl {
+ name = "_types_lodash.uniqby___lodash.uniqby_4.7.6.tgz";
+ url = "https://registry.yarnpkg.com/@types/lodash.uniqby/-/lodash.uniqby-4.7.6.tgz";
+ sha1 = "672827a701403f07904fe37f0721ae92abfa80e8";
+ };
+ }
+ {
+ name = "_types_lodash___lodash_4.14.154.tgz";
+ path = fetchurl {
+ name = "_types_lodash___lodash_4.14.154.tgz";
+ url = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.154.tgz";
+ sha1 = "069e3c703fdb264e67be9e03b20a640bc0198ecc";
+ };
+ }
+ {
+ name = "_types_node___node_14.0.4.tgz";
+ path = fetchurl {
+ name = "_types_node___node_14.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-14.0.4.tgz";
+ sha1 = "43a63fc5edce226bed106b31b875165256271107";
+ };
+ }
+ {
+ name = "_types_orderedmap___orderedmap_1.0.0.tgz";
+ path = fetchurl {
+ name = "_types_orderedmap___orderedmap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/orderedmap/-/orderedmap-1.0.0.tgz";
+ sha1 = "807455a192bba52cbbb4517044bc82bdbfa8c596";
+ };
+ }
+ {
+ name = "_types_parse_json___parse_json_4.0.0.tgz";
+ path = fetchurl {
+ name = "_types_parse_json___parse_json_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
+ };
+ }
+ {
+ name = "_types_prop_types___prop_types_15.7.3.tgz";
+ path = fetchurl {
+ name = "_types_prop_types___prop_types_15.7.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz";
+ sha1 = "2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7";
+ };
+ }
+ {
+ name = "_types_prosemirror_commands___prosemirror_commands_1.0.3.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_commands___prosemirror_commands_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.3.tgz";
+ sha1 = "e9fa5653cffd1c75c260594cf3ec5244c9004dbf";
+ };
+ }
+ {
+ name = "_types_prosemirror_dev_tools___prosemirror_dev_tools_2.1.0.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_dev_tools___prosemirror_dev_tools_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.0.tgz";
+ sha1 = "91e2ef4f36129f5155f924296e306de187e86bdb";
+ };
+ }
+ {
+ name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.0.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.0.tgz";
+ sha1 = "2df872bc6431a9f06bc1a4a0eac7c2dc527e7f12";
+ };
+ }
+ {
+ name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.1.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.1.tgz";
+ sha1 = "56a6274ef39f62c339adcc64305294b800211a5e";
+ };
+ }
+ {
+ name = "_types_prosemirror_history___prosemirror_history_1.0.1.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_history___prosemirror_history_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.1.tgz";
+ sha1 = "b8d7595f73788b63fc9f2b57a763ba8375abfe87";
+ };
+ }
+ {
+ name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.3.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.3.tgz";
+ sha1 = "3f8f07921f692b6c7e4781fa426aee3e76b9018c";
+ };
+ }
+ {
+ name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.3.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.3.tgz";
+ sha1 = "09cc469a69222a4c8a3d415d02eeb459bb74269c";
+ };
+ }
+ {
+ name = "_types_prosemirror_model___prosemirror_model_1.7.2.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_model___prosemirror_model_1.7.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.7.2.tgz";
+ sha1 = "9c7aff2fd62f0f56eb76e2e0eb27bf6996e6c28a";
+ };
+ }
+ {
+ name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz";
+ sha1 = "7f53e3c0326b1359755f3971b8c448d98b722f21";
+ };
+ }
+ {
+ name = "_types_prosemirror_state___prosemirror_state_1.2.3.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_state___prosemirror_state_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.3.tgz";
+ sha1 = "7f5f871acf7b8c22e1862ff0068f9bf7e9682c0e";
+ };
+ }
+ {
+ name = "_types_prosemirror_state___prosemirror_state_1.2.5.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_state___prosemirror_state_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.5.tgz";
+ sha1 = "a91304e9aab6e71f868e23b3a1ae514a75033f8f";
+ };
+ }
+ {
+ name = "_types_prosemirror_tables___prosemirror_tables_0.9.1.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_tables___prosemirror_tables_0.9.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-tables/-/prosemirror-tables-0.9.1.tgz";
+ sha1 = "d2203330f0fa1161c04152bf02c39e152082d408";
+ };
+ }
+ {
+ name = "_types_prosemirror_transform___prosemirror_transform_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_transform___prosemirror_transform_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.1.1.tgz";
+ sha1 = "5a0de16e8e0123b4c3d9559235e19f39cee85e5c";
+ };
+ }
+ {
+ name = "_types_prosemirror_view___prosemirror_view_1.11.2.tgz";
+ path = fetchurl {
+ name = "_types_prosemirror_view___prosemirror_view_1.11.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/prosemirror-view/-/prosemirror-view-1.11.2.tgz";
+ sha1 = "58af5dcb7de20b7de874de99147552d5627209a1";
+ };
+ }
+ {
+ name = "_types_react_dom___react_dom_16.9.6.tgz";
+ path = fetchurl {
+ name = "_types_react_dom___react_dom_16.9.6.tgz";
+ url = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.6.tgz";
+ sha1 = "9e7f83d90566521cc2083be2277c6712dcaf754c";
+ };
+ }
+ {
+ name = "_types_react_window___react_window_1.8.2.tgz";
+ path = fetchurl {
+ name = "_types_react_window___react_window_1.8.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.2.tgz";
+ sha1 = "a5a6b2762ce73ffaab7911ee1397cf645f2459fe";
+ };
+ }
+ {
+ name = "_types_react___react_16.9.32.tgz";
+ path = fetchurl {
+ name = "_types_react___react_16.9.32.tgz";
+ url = "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz";
+ sha1 = "f6368625b224604148d1ddf5920e4fefbd98d383";
+ };
+ }
+ {
+ name = "_types_unzip___unzip_0.1.1.tgz";
+ path = fetchurl {
+ name = "_types_unzip___unzip_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/unzip/-/unzip-0.1.1.tgz";
+ sha1 = "96e80dc5e2917a769c8be01aa49c4fe660e7bab3";
+ };
+ }
+ {
+ name = "_types_zenscroll___zenscroll_4.0.0.tgz";
+ path = fetchurl {
+ name = "_types_zenscroll___zenscroll_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/zenscroll/-/zenscroll-4.0.0.tgz";
+ sha1 = "9acc7df6c87cc9e064f5a6230df499835dee1972";
+ };
+ }
+ {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+ sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+ };
+ }
+ {
+ name = "accepts___accepts_1.3.7.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.7.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
+ sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+ };
+ }
+ {
+ name = "acorn_jsx___acorn_jsx_4.1.1.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz";
+ sha1 = "e8e41e48ea2fe0c896740610ab6a4ffd8add225e";
+ };
+ }
+ {
+ name = "acorn___acorn_5.7.3.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_5.7.3.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
+ sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+ };
+ }
+ {
+ name = "ajax_request___ajax_request_1.2.3.tgz";
+ path = fetchurl {
+ name = "ajax_request___ajax_request_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/ajax-request/-/ajax-request-1.2.3.tgz";
+ sha1 = "99fcbec1d6d2792f85fa949535332bd14f5f3790";
+ };
+ }
+ {
+ name = "ajv___ajv_6.12.0.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.12.0.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz";
+ sha1 = "06d60b96d87b8454a5adaba86e7854da629db4b7";
+ };
+ }
+ {
+ name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+ sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+ {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+ };
+ }
+ {
+ name = "ansi___ansi_0.3.1.tgz";
+ path = fetchurl {
+ name = "ansi___ansi_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz";
+ sha1 = "0c42d4fb17160d5a9af1e484bace1c66922c1b21";
+ };
+ }
+ {
+ name = "anymatch___anymatch_1.3.2.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz";
+ sha1 = "553dcb8f91e3c889845dfdba34c77721b90b9d7a";
+ };
+ }
+ {
+ name = "app_root_path___app_root_path_1.4.0.tgz";
+ path = fetchurl {
+ name = "app_root_path___app_root_path_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/app-root-path/-/app-root-path-1.4.0.tgz";
+ sha1 = "6335d865c9640d0fad99004e5a79232238e92dfa";
+ };
+ }
+ {
+ name = "app_root_path___app_root_path_2.2.1.tgz";
+ path = fetchurl {
+ name = "app_root_path___app_root_path_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz";
+ sha1 = "d0df4a682ee408273583d43f6f79e9892624bc9a";
+ };
+ }
+ {
+ name = "arg___arg_4.1.3.tgz";
+ path = fetchurl {
+ name = "arg___arg_4.1.3.tgz";
+ url = "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz";
+ sha1 = "269fc7ad5b8e42cb63c896d5666017261c144089";
+ };
+ }
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+ {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz";
+ sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf";
+ };
+ }
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+ {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ }
+ {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz";
+ sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53";
+ };
+ }
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+ {
+ name = "async_each___async_each_1.0.3.tgz";
+ path = fetchurl {
+ name = "async_each___async_each_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
+ sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
+ };
+ }
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+ {
+ name = "atob___atob_2.1.2.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+ sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+ };
+ }
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+ {
+ name = "aws4___aws4_1.9.1.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz";
+ sha1 = "7e33d8f7d449b3f673cd72deb9abdc552dbe528e";
+ };
+ }
+ {
+ name = "babel_plugin_emotion___babel_plugin_emotion_9.2.11.tgz";
+ path = fetchurl {
+ name = "babel_plugin_emotion___babel_plugin_emotion_9.2.11.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz";
+ sha1 = "319c005a9ee1d15bb447f59fe504c35fd5807728";
+ };
+ }
+ {
+ name = "babel_plugin_macros___babel_plugin_macros_2.8.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_macros___babel_plugin_macros_2.8.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz";
+ sha1 = "0f958a7cc6556b1e65344465d99111a1e5e10138";
+ };
+ }
+ {
+ name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz";
+ sha1 = "0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946";
+ };
+ }
+ {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
+ sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+ };
+ }
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+ {
+ name = "base16___base16_1.0.0.tgz";
+ path = fetchurl {
+ name = "base16___base16_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz";
+ sha1 = "e297f60d7ec1014a7a971a39ebc8a98c0b681e70";
+ };
+ }
+ {
+ name = "base64_img___base64_img_1.0.4.tgz";
+ path = fetchurl {
+ name = "base64_img___base64_img_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/base64-img/-/base64-img-1.0.4.tgz";
+ sha1 = "3e22d55d6c74a24553d840d2b1bc12a7db078d35";
+ };
+ }
+ {
+ name = "base64_js___base64_js_1.3.1.tgz";
+ path = fetchurl {
+ name = "base64_js___base64_js_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
+ sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+ };
+ }
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+ {
+ name = "biblatex_csl_converter___biblatex_csl_converter_1.9.1.tgz";
+ path = fetchurl {
+ name = "biblatex_csl_converter___biblatex_csl_converter_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/biblatex-csl-converter/-/biblatex-csl-converter-1.9.1.tgz";
+ sha1 = "50aacfef172997f1c98d72837ffdd3b19c62f8c4";
+ };
+ }
+ {
+ name = "binary_extensions___binary_extensions_1.13.1.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_1.13.1.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz";
+ sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65";
+ };
+ }
+ {
+ name = "binary___binary_0.3.0.tgz";
+ path = fetchurl {
+ name = "binary___binary_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz";
+ sha1 = "9f60553bc5ce8c3386f3b553cff47462adecaa79";
+ };
+ }
+ {
+ name = "bindings___bindings_1.5.0.tgz";
+ path = fetchurl {
+ name = "bindings___bindings_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
+ sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
+ };
+ }
+ {
+ name = "body_parser___body_parser_1.19.0.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.19.0.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
+ sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
+ };
+ }
+ {
+ name = "boundary___boundary_1.0.1.tgz";
+ path = fetchurl {
+ name = "boundary___boundary_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/boundary/-/boundary-1.0.1.tgz";
+ sha1 = "4d67dc2602c0cc16dd9bce7ebf87e948290f5812";
+ };
+ }
+ {
+ name = "bowser___bowser_2.9.0.tgz";
+ path = fetchurl {
+ name = "bowser___bowser_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz";
+ sha1 = "3bed854233b419b9a7422d9ee3e85504373821c9";
+ };
+ }
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+ {
+ name = "braces___braces_1.8.5.tgz";
+ path = fetchurl {
+ name = "braces___braces_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz";
+ sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7";
+ };
+ }
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+ {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+ };
+ }
+ {
+ name = "buffers___buffers_0.1.1.tgz";
+ path = fetchurl {
+ name = "buffers___buffers_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz";
+ sha1 = "b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb";
+ };
+ }
+ {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ path = fetchurl {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
+ sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+ };
+ }
+ {
+ name = "bytes___bytes_3.1.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
+ sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
+ };
+ }
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+ {
+ name = "callsites___callsites_3.1.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
+ sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+ };
+ }
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+ {
+ name = "chain_able___chain_able_1.0.1.tgz";
+ path = fetchurl {
+ name = "chain_able___chain_able_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/chain-able/-/chain-able-1.0.1.tgz";
+ sha1 = "b48ac9bdc18f2192ec730abc66609f90aab5605f";
+ };
+ }
+ {
+ name = "chain_able___chain_able_3.0.0.tgz";
+ path = fetchurl {
+ name = "chain_able___chain_able_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/chain-able/-/chain-able-3.0.0.tgz";
+ sha1 = "dcffe8b04f3da210941a23843bc1332bb288ca9f";
+ };
+ }
+ {
+ name = "chainsaw___chainsaw_0.1.0.tgz";
+ path = fetchurl {
+ name = "chainsaw___chainsaw_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz";
+ sha1 = "5eab50b28afe58074d0d58291388828b5e5fbc98";
+ };
+ }
+ {
+ name = "chalk___chalk_2.4.2.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.2.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+ sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+ };
+ }
+ {
+ name = "chardet___chardet_0.4.2.tgz";
+ path = fetchurl {
+ name = "chardet___chardet_0.4.2.tgz";
+ url = "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz";
+ sha1 = "b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2";
+ };
+ }
+ {
+ name = "chokidar___chokidar_1.7.0.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz";
+ sha1 = "798e689778151c8076b4b360e5edd28cda2bb468";
+ };
+ }
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+ {
+ name = "clean_css___clean_css_4.2.3.tgz";
+ path = fetchurl {
+ name = "clean_css___clean_css_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz";
+ sha1 = "507b5de7d97b48ee53d84adb0160ff6216380f78";
+ };
+ }
+ {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ }
+ {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ path = fetchurl {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
+ sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+ };
+ }
+ {
+ name = "clipboard___clipboard_2.0.6.tgz";
+ path = fetchurl {
+ name = "clipboard___clipboard_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz";
+ sha1 = "52921296eec0fdf77ead1749421b21c968647376";
+ };
+ }
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+ {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+ sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+ };
+ }
+ {
+ name = "color_name___color_name_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ }
+ {
+ name = "combined_stream___combined_stream_1.0.8.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+ };
+ }
+ {
+ name = "commander___commander_2.20.3.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.20.3.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+ sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+ };
+ }
+ {
+ name = "component_emitter___component_emitter_1.3.0.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
+ sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
+ };
+ }
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+ {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+ };
+ }
+ {
+ name = "concat_stream___concat_stream_2.0.0.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz";
+ sha1 = "414cf5af790a48c60ab9be4527d56d5e41133cb1";
+ };
+ }
+ {
+ name = "content_disposition___content_disposition_0.5.3.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
+ };
+ }
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+ {
+ name = "convert_source_map___convert_source_map_1.7.0.tgz";
+ path = fetchurl {
+ name = "convert_source_map___convert_source_map_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
+ sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
+ };
+ }
+ {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ path = fetchurl {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ }
+ {
+ name = "cookie___cookie_0.4.0.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
+ sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
+ };
+ }
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+ {
+ name = "core_js___core_js_2.6.11.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.6.11.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz";
+ sha1 = "38831469f9922bded8ee21c9dc46985e0399308c";
+ };
+ }
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+ {
+ name = "cosmiconfig___cosmiconfig_6.0.0.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz";
+ sha1 = "da4fee853c52f6b1e6935f41c1a2fc50bd4a9982";
+ };
+ }
+ {
+ name = "create_emotion_styled___create_emotion_styled_9.2.8.tgz";
+ path = fetchurl {
+ name = "create_emotion_styled___create_emotion_styled_9.2.8.tgz";
+ url = "https://registry.yarnpkg.com/create-emotion-styled/-/create-emotion-styled-9.2.8.tgz";
+ sha1 = "c0050e768ba439609bec108600467adf2de67cc3";
+ };
+ }
+ {
+ name = "create_emotion___create_emotion_9.2.12.tgz";
+ path = fetchurl {
+ name = "create_emotion___create_emotion_9.2.12.tgz";
+ url = "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.12.tgz";
+ sha1 = "0fc8e7f92c4f8bb924b0fef6781f66b1d07cb26f";
+ };
+ }
+ {
+ name = "create_react_context___create_react_context_0.1.6.tgz";
+ path = fetchurl {
+ name = "create_react_context___create_react_context_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.1.6.tgz";
+ sha1 = "0f425931d907741127acc6e31acb4f9015dd9fdc";
+ };
+ }
+ {
+ name = "csstype___csstype_2.6.10.tgz";
+ path = fetchurl {
+ name = "csstype___csstype_2.6.10.tgz";
+ url = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz";
+ sha1 = "e63af50e66d7c266edb6b32909cfd0aabe03928b";
+ };
+ }
+ {
+ name = "csstype___csstype_2.6.9.tgz";
+ path = fetchurl {
+ name = "csstype___csstype_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz";
+ sha1 = "05141d0cd557a56b8891394c1911c40c8a98d098";
+ };
+ }
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+ {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ }
+ {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ path = fetchurl {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+ sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+ };
+ }
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+ {
+ name = "delegate___delegate_3.2.0.tgz";
+ path = fetchurl {
+ name = "delegate___delegate_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz";
+ sha1 = "b66b71c3158522e8ab5744f720d8ca0c2af59166";
+ };
+ }
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+ {
+ name = "destroy___destroy_1.0.4.tgz";
+ path = fetchurl {
+ name = "destroy___destroy_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ }
+ {
+ name = "diff_match_patch___diff_match_patch_1.0.4.tgz";
+ path = fetchurl {
+ name = "diff_match_patch___diff_match_patch_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz";
+ sha1 = "6ac4b55237463761c4daf0dc603eb869124744b1";
+ };
+ }
+ {
+ name = "diff___diff_4.0.2.tgz";
+ path = fetchurl {
+ name = "diff___diff_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz";
+ sha1 = "60f3aecb89d5fae520c11aa19efc2bb982aade7d";
+ };
+ }
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+ {
+ name = "emotion___emotion_9.2.12.tgz";
+ path = fetchurl {
+ name = "emotion___emotion_9.2.12.tgz";
+ url = "https://registry.yarnpkg.com/emotion/-/emotion-9.2.12.tgz";
+ sha1 = "53925aaa005614e65c6e43db8243c843574d1ea9";
+ };
+ }
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+ {
+ name = "es_abstract___es_abstract_1.17.6.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.17.6.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
+ sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+ };
+ }
+ {
+ name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+ sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
+ };
+ }
+ {
+ name = "es6_object_assign___es6_object_assign_1.1.0.tgz";
+ path = fetchurl {
+ name = "es6_object_assign___es6_object_assign_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz";
+ sha1 = "c2c3582656247c39ea107cb1e6652b6f9f24523c";
+ };
+ }
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+ {
+ name = "escodegen___escodegen_1.14.1.tgz";
+ path = fetchurl {
+ name = "escodegen___escodegen_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz";
+ sha1 = "ba01d0c8278b5e95a9a45350142026659027a457";
+ };
+ }
+ {
+ name = "esprima___esprima_4.0.1.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+ sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+ };
+ }
+ {
+ name = "estraverse___estraverse_4.3.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+ sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+ };
+ }
+ {
+ name = "esutils___esutils_2.0.3.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+ sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+ };
+ }
+ {
+ name = "etag___etag_1.8.1.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ }
+ {
+ name = "exec_sh___exec_sh_0.2.2.tgz";
+ path = fetchurl {
+ name = "exec_sh___exec_sh_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz";
+ sha1 = "2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36";
+ };
+ }
+ {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz";
+ sha1 = "df07284e342a807cd733ac5af72411e581d1177b";
+ };
+ }
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+ {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ path = fetchurl {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz";
+ sha1 = "a299effd335fe2721ebae8e257ec79644fc85337";
+ };
+ }
+ {
+ name = "express___express_4.17.1.tgz";
+ path = fetchurl {
+ name = "express___express_4.17.1.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
+ sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
+ };
+ }
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+ {
+ name = "external_editor___external_editor_2.2.0.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz";
+ sha1 = "045511cfd8d133f3846673d1047c154e214ad3d5";
+ };
+ }
+ {
+ name = "extglob___extglob_0.3.2.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz";
+ sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1";
+ };
+ }
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+ {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+ sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+ };
+ }
+ {
+ name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
+ sha1 = "545145077c501491e33b15ec408c294376e94ae4";
+ };
+ }
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+ sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
+ };
+ }
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+ {
+ name = "fast_xml_parser___fast_xml_parser_3.17.1.tgz";
+ path = fetchurl {
+ name = "fast_xml_parser___fast_xml_parser_3.17.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.17.1.tgz";
+ sha1 = "579fa64346cc891ce240d378268c6216e74aab10";
+ };
+ }
+ {
+ name = "figures___figures_2.0.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+ sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ };
+ }
+ {
+ name = "file_match___file_match_1.0.2.tgz";
+ path = fetchurl {
+ name = "file_match___file_match_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/file-match/-/file-match-1.0.2.tgz";
+ sha1 = "c9cad265d2c8adf3a81475b0df475859069faef7";
+ };
+ }
+ {
+ name = "file_system___file_system_2.2.2.tgz";
+ path = fetchurl {
+ name = "file_system___file_system_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/file-system/-/file-system-2.2.2.tgz";
+ sha1 = "7d65833e3a2347dcd956a813c677153ed3edd987";
+ };
+ }
+ {
+ name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
+ path = fetchurl {
+ name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+ sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
+ };
+ }
+ {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ path = fetchurl {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz";
+ sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26";
+ };
+ }
+ {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz";
+ sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565";
+ };
+ }
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+ {
+ name = "finalhandler___finalhandler_1.1.2.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
+ };
+ }
+ {
+ name = "find_root___find_root_1.1.0.tgz";
+ path = fetchurl {
+ name = "find_root___find_root_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz";
+ sha1 = "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4";
+ };
+ }
+ {
+ name = "fliplog___fliplog_0.3.13.tgz";
+ path = fetchurl {
+ name = "fliplog___fliplog_0.3.13.tgz";
+ url = "https://registry.yarnpkg.com/fliplog/-/fliplog-0.3.13.tgz";
+ sha1 = "dd0d786e821822aae272e0ddc84012596a96154c";
+ };
+ }
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+ {
+ name = "for_own___for_own_0.1.5.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz";
+ sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce";
+ };
+ }
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+ {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ path = fetchurl {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ }
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+ {
+ name = "fresh___fresh_0.5.2.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ }
+ {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
+ sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
+ };
+ }
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+ {
+ name = "fsevents___fsevents_1.2.11.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz";
+ sha1 = "67bf57f4758f02ede88fb2a1712fef4d15358be3";
+ };
+ }
+ {
+ name = "fstream___fstream_0.1.31.tgz";
+ path = fetchurl {
+ name = "fstream___fstream_0.1.31.tgz";
+ url = "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz";
+ sha1 = "7337f058fbbbbefa8c9f561a28cab0849202c988";
+ };
+ }
+ {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ path = fetchurl {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+ sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+ };
+ }
+ {
+ name = "fuse_box___fuse_box_3.7.1.tgz";
+ path = fetchurl {
+ name = "fuse_box___fuse_box_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/fuse-box/-/fuse-box-3.7.1.tgz";
+ sha1 = "d32879ceee4c8bcec9bbd8fcfe5b29e7142371cd";
+ };
+ }
+ {
+ name = "fuse_concat_with_sourcemaps___fuse_concat_with_sourcemaps_1.0.5.tgz";
+ path = fetchurl {
+ name = "fuse_concat_with_sourcemaps___fuse_concat_with_sourcemaps_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/fuse-concat-with-sourcemaps/-/fuse-concat-with-sourcemaps-1.0.5.tgz";
+ sha1 = "9c6a521f675cff5cdbb48db1ca9c181ae49a7b97";
+ };
+ }
+ {
+ name = "fuse.js___fuse.js_6.0.4.tgz";
+ path = fetchurl {
+ name = "fuse.js___fuse.js_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.0.4.tgz";
+ sha1 = "9f5af976f836247ad5d2c338090d6ce13cf9a4d2";
+ };
+ }
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+ {
+ name = "getopts___getopts_2.2.5.tgz";
+ path = fetchurl {
+ name = "getopts___getopts_2.2.5.tgz";
+ url = "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz";
+ sha1 = "67a0fe471cacb9c687d817cab6450b96dde8313b";
+ };
+ }
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+ {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ path = fetchurl {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz";
+ sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4";
+ };
+ }
+ {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz";
+ sha1 = "81383d72db054fcccf5336daa902f182f6edbb28";
+ };
+ }
+ {
+ name = "glob___glob_7.1.6.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.6.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+ sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+ };
+ }
+ {
+ name = "good_listener___good_listener_1.2.2.tgz";
+ path = fetchurl {
+ name = "good_listener___good_listener_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz";
+ sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.3.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
+ sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_3.0.12.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_3.0.12.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz";
+ sha1 = "0034947ce9ed695ec8ab0b854bc919e82b1ffaef";
+ };
+ }
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+ {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+ sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+ };
+ }
+ {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ }
+ {
+ name = "has_symbols___has_symbols_1.0.1.tgz";
+ path = fetchurl {
+ name = "has_symbols___has_symbols_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
+ sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+ };
+ }
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+ {
+ name = "has___has_1.0.3.tgz";
+ path = fetchurl {
+ name = "has___has_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+ sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+ };
+ }
+ {
+ name = "html___html_1.0.0.tgz";
+ path = fetchurl {
+ name = "html___html_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz";
+ sha1 = "a544fa9ea5492bfb3a2cca8210a10be7b5af1f61";
+ };
+ }
+ {
+ name = "http_errors___http_errors_1.7.2.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.7.2.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
+ sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
+ };
+ }
+ {
+ name = "http_errors___http_errors_1.7.3.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz";
+ sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06";
+ };
+ }
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+ {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+ };
+ }
+ {
+ name = "ie_array_find_polyfill___ie_array_find_polyfill_1.1.0.tgz";
+ path = fetchurl {
+ name = "ie_array_find_polyfill___ie_array_find_polyfill_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ie-array-find-polyfill/-/ie-array-find-polyfill-1.1.0.tgz";
+ sha1 = "5078e533f026831da22bd7476513d9460d65a142";
+ };
+ }
+ {
+ name = "ieee754___ieee754_1.1.13.tgz";
+ path = fetchurl {
+ name = "ieee754___ieee754_1.1.13.tgz";
+ url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
+ sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
+ };
+ }
+ {
+ name = "import_fresh___import_fresh_3.2.1.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
+ sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+ };
+ }
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.4.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+ sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+ {
+ name = "inquirer___inquirer_3.3.0.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz";
+ sha1 = "9dd2f2ad765dcab1ff0443b491442a20ba227dc9";
+ };
+ }
+ {
+ name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+ sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
+ };
+ }
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+ {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ }
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+ {
+ name = "is_callable___is_callable_1.2.0.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
+ sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
+ };
+ }
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+ {
+ name = "is_date_object___is_date_object_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_date_object___is_date_object_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz";
+ sha1 = "bda736f2cd8fd06d32844e7743bfa7494c3bfd7e";
+ };
+ }
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+ {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz";
+ sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1";
+ };
+ }
+ {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ path = fetchurl {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz";
+ sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534";
+ };
+ }
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+ {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz";
+ sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
+ };
+ }
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+ {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz";
+ sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863";
+ };
+ }
+ {
+ name = "is_number___is_number_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz";
+ sha1 = "01fcbbb393463a548f2f466cce16dece49db908f";
+ };
+ }
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+ {
+ name = "is_number___is_number_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz";
+ sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff";
+ };
+ }
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+ {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz";
+ sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4";
+ };
+ }
+ {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz";
+ sha1 = "207bab91638499c07b2adf240a41a87210034575";
+ };
+ }
+ {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
+ sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+ };
+ }
+ {
+ name = "is_regex___is_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
+ sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
+ };
+ }
+ {
+ name = "is_symbol___is_symbol_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_symbol___is_symbol_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz";
+ sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937";
+ };
+ }
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+ {
+ name = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+ {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+ };
+ }
+ {
+ name = "js_yaml___js_yaml_3.13.1.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.13.1.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+ };
+ }
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+ {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ }
+ {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ path = fetchurl {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+ };
+ }
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+ {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+ {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+ {
+ name = "jsondiffpatch___jsondiffpatch_0.3.11.tgz";
+ path = fetchurl {
+ name = "jsondiffpatch___jsondiffpatch_0.3.11.tgz";
+ url = "https://registry.yarnpkg.com/jsondiffpatch/-/jsondiffpatch-0.3.11.tgz";
+ sha1 = "43f9443a0d081b5f79d413fe20f302079e493201";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ }
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+ {
+ name = "kind_of___kind_of_6.0.3.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.3.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
+ sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
+ };
+ }
+ {
+ name = "lego_api___lego_api_1.0.8.tgz";
+ path = fetchurl {
+ name = "lego_api___lego_api_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/lego-api/-/lego-api-1.0.8.tgz";
+ sha1 = "5e26be726c5e11d540f89e7c6b1abf8c5834bd01";
+ };
+ }
+ {
+ name = "levn___levn_0.3.0.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ }
+ {
+ name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
+ path = fetchurl {
+ name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+ sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+ };
+ }
+ {
+ name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
+ path = fetchurl {
+ name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz";
+ sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5";
+ };
+ }
+ {
+ name = "lodash.curry___lodash.curry_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.curry___lodash.curry_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz";
+ sha1 = "248e36072ede906501d75966200a86dab8b23170";
+ };
+ }
+ {
+ name = "lodash.debounce___lodash.debounce_3.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.debounce___lodash.debounce_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-3.1.1.tgz";
+ sha1 = "812211c378a94cc29d5aa4e3346cf0bfce3a7df5";
+ };
+ }
+ {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ path = fetchurl {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+ sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+ };
+ }
+ {
+ name = "lodash.flow___lodash.flow_3.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.flow___lodash.flow_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz";
+ sha1 = "87bf40292b8cf83e4e8ce1a3ae4209e20071675a";
+ };
+ }
+ {
+ name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
+ sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
+ };
+ }
+ {
+ name = "lodash___lodash_4.17.15.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.15.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+ sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+ };
+ }
+ {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ path = fetchurl {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+ };
+ }
+ {
+ name = "make_error___make_error_1.3.6.tgz";
+ path = fetchurl {
+ name = "make_error___make_error_1.3.6.tgz";
+ url = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz";
+ sha1 = "2eb2e37ea9b67c4891f684a1394799af484cf7a2";
+ };
+ }
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+ {
+ name = "match_stream___match_stream_0.0.2.tgz";
+ path = fetchurl {
+ name = "match_stream___match_stream_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz";
+ sha1 = "99eb050093b34dffade421b9ac0b410a9cfa17cf";
+ };
+ }
+ {
+ name = "math_random___math_random_1.0.4.tgz";
+ path = fetchurl {
+ name = "math_random___math_random_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz";
+ sha1 = "5dd6943c938548267016d4e34f057583080c514c";
+ };
+ }
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+ {
+ name = "memoize_one___memoize_one_5.1.1.tgz";
+ path = fetchurl {
+ name = "memoize_one___memoize_one_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz";
+ sha1 = "047b6e3199b508eaec03504de71229b8eb1d75c0";
+ };
+ }
+ {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ }
+ {
+ name = "merge___merge_1.2.1.tgz";
+ path = fetchurl {
+ name = "merge___merge_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz";
+ sha1 = "38bebf80c3220a8a487b6fcfb3941bb11720c145";
+ };
+ }
+ {
+ name = "methods___methods_1.1.2.tgz";
+ path = fetchurl {
+ name = "methods___methods_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ }
+ {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz";
+ sha1 = "86677c97d1720b363431d04d0d15293bd38c1565";
+ };
+ }
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+ {
+ name = "mime_db___mime_db_1.43.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.43.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz";
+ sha1 = "0a12e0502650e473d735535050e7c8f4eb4fae58";
+ };
+ }
+ {
+ name = "mime_types___mime_types_2.1.26.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.26.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz";
+ sha1 = "9c921fc09b7e149a65dfdc0da4d20997200b0a06";
+ };
+ }
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+ {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha1 = "820c86a39334640e99516928bd03fca88057d022";
+ };
+ }
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.5.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+ sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+ };
+ }
+ {
+ name = "mixin_deep___mixin_deep_1.3.2.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
+ sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
+ };
+ }
+ {
+ name = "mkdirp___mkdirp_0.5.5.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.5.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+ sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+ };
+ }
+ {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+ {
+ name = "mock_require___mock_require_3.0.3.tgz";
+ path = fetchurl {
+ name = "mock_require___mock_require_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz";
+ sha1 = "ccd544d9eae81dd576b3f219f69ec867318a1946";
+ };
+ }
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+ {
+ name = "ms___ms_2.1.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+ sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+ };
+ }
+ {
+ name = "mustache___mustache_2.3.2.tgz";
+ path = fetchurl {
+ name = "mustache___mustache_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz";
+ sha1 = "a6d4d9c3f91d13359ab889a812954f9230a3d0c5";
+ };
+ }
+ {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+ sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+ };
+ }
+ {
+ name = "nan___nan_2.14.0.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.14.0.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz";
+ sha1 = "7818f722027b2459a86f0295d434d1fc2336c52c";
+ };
+ }
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+ {
+ name = "nanoseconds___nanoseconds_0.1.0.tgz";
+ path = fetchurl {
+ name = "nanoseconds___nanoseconds_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/nanoseconds/-/nanoseconds-0.1.0.tgz";
+ sha1 = "69ec39fcd00e77ab3a72de0a43342824cd79233a";
+ };
+ }
+ {
+ name = "natives___natives_1.1.6.tgz";
+ path = fetchurl {
+ name = "natives___natives_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz";
+ sha1 = "a603b4a498ab77173612b9ea1acdec4d980f00bb";
+ };
+ }
+ {
+ name = "negotiator___negotiator_0.6.2.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
+ sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
+ };
+ }
+ {
+ name = "nopt___nopt_1.0.10.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
+ sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+ };
+ }
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+ {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+ {
+ name = "object_inspect___object_inspect_1.8.0.tgz";
+ path = fetchurl {
+ name = "object_inspect___object_inspect_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz";
+ sha1 = "df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0";
+ };
+ }
+ {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+ sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+ };
+ }
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+ {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
+ sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+ };
+ }
+ {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ path = fetchurl {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz";
+ sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa";
+ };
+ }
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+ {
+ name = "object.values___object.values_1.1.1.tgz";
+ path = fetchurl {
+ name = "object.values___object.values_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
+ sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+ };
+ }
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+ {
+ name = "onetime___onetime_2.0.1.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ }
+ {
+ name = "optionator___optionator_0.8.3.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.3.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
+ sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+ };
+ }
+ {
+ name = "options___options_0.0.6.tgz";
+ path = fetchurl {
+ name = "options___options_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
+ sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+ };
+ }
+ {
+ name = "orderedmap___orderedmap_1.1.1.tgz";
+ path = fetchurl {
+ name = "orderedmap___orderedmap_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz";
+ sha1 = "c618e77611b3b21d0fe3edc92586265e0059c789";
+ };
+ }
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+ {
+ name = "over___over_0.0.5.tgz";
+ path = fetchurl {
+ name = "over___over_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz";
+ sha1 = "f29852e70fd7e25f360e013a8ec44c82aedb5708";
+ };
+ }
+ {
+ name = "parent_module___parent_module_1.0.1.tgz";
+ path = fetchurl {
+ name = "parent_module___parent_module_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+ sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+ };
+ }
+ {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ path = fetchurl {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz";
+ sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c";
+ };
+ }
+ {
+ name = "parse_json___parse_json_5.0.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz";
+ sha1 = "73e5114c986d143efa3712d4ea24db9a4266f60f";
+ };
+ }
+ {
+ name = "parseurl___parseurl_1.3.3.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
+ sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
+ };
+ }
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+ {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ path = fetchurl {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+ sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+ };
+ }
+ {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ }
+ {
+ name = "path_type___path_type_4.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
+ sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
+ };
+ }
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+ {
+ name = "postcss___postcss_6.0.23.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_6.0.23.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz";
+ sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324";
+ };
+ }
+ {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ }
+ {
+ name = "preserve___preserve_0.2.0.tgz";
+ path = fetchurl {
+ name = "preserve___preserve_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz";
+ sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b";
+ };
+ }
+ {
+ name = "prettier___prettier_1.19.1.tgz";
+ path = fetchurl {
+ name = "prettier___prettier_1.19.1.tgz";
+ url = "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz";
+ sha1 = "f7d7f5ff8a9cd872a7be4ca142095956a60797cb";
+ };
+ }
+ {
+ name = "pretty_time___pretty_time_0.2.0.tgz";
+ path = fetchurl {
+ name = "pretty_time___pretty_time_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty-time/-/pretty-time-0.2.0.tgz";
+ sha1 = "7a3bdec4049c620cd7c42b7f342b74d56e73d74e";
+ };
+ }
+ {
+ name = "prettysize___prettysize_0.0.3.tgz";
+ path = fetchurl {
+ name = "prettysize___prettysize_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/prettysize/-/prettysize-0.0.3.tgz";
+ sha1 = "14afff6a645e591a4ddf1c72919c23b4146181a1";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+ };
+ }
+ {
+ name = "prop_types___prop_types_15.7.2.tgz";
+ path = fetchurl {
+ name = "prop_types___prop_types_15.7.2.tgz";
+ url = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+ sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+ };
+ }
+ {
+ name = "prosemirror_changeset___prosemirror_changeset_2.1.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_changeset___prosemirror_changeset_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.1.2.tgz";
+ sha1 = "91dee900eb4618b21ed0c38c8d41dc7539303864";
+ };
+ }
+ {
+ name = "prosemirror_commands___prosemirror_commands_1.1.4.tgz";
+ path = fetchurl {
+ name = "prosemirror_commands___prosemirror_commands_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.4.tgz";
+ sha1 = "991563e67623acab4f8c510fad1570f8b4693780";
+ };
+ }
+ {
+ name = "prosemirror_dev_tools___prosemirror_dev_tools_2.1.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_dev_tools___prosemirror_dev_tools_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.1.tgz";
+ sha1 = "0c4304b05b437608b3666b72fdb4b21e24fa29fc";
+ };
+ }
+ {
+ name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.2.tgz";
+ sha1 = "28738c4ed7102e814d7a8a26d70018523fc7cd6d";
+ };
+ }
+ {
+ name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
+ path = fetchurl {
+ name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz";
+ sha1 = "0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246";
+ };
+ }
+ {
+ name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz";
+ sha1 = "4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489";
+ };
+ }
+ {
+ name = "prosemirror_inputrules___prosemirror_inputrules_1.1.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_inputrules___prosemirror_inputrules_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz";
+ sha1 = "487e46c763e1212a4577397aba7706139084f012";
+ };
+ }
+ {
+ name = "prosemirror_keymap___prosemirror_keymap_1.1.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_keymap___prosemirror_keymap_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.3.tgz";
+ sha1 = "be22d6108df2521608e9216a87b1a810f0ed361e";
+ };
+ }
+ {
+ name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
+ path = fetchurl {
+ name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz";
+ sha1 = "8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d";
+ };
+ }
+ {
+ name = "prosemirror_model___prosemirror_model_1.9.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_model___prosemirror_model_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.9.1.tgz";
+ sha1 = "8c08cf556f593c5f015548d2c1a6825661df087f";
+ };
+ }
+ {
+ name = "prosemirror_model___prosemirror_model_1.11.0.tgz";
+ path = fetchurl {
+ name = "prosemirror_model___prosemirror_model_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.11.0.tgz";
+ sha1 = "dc36cdb3ad6442b9f6325c7d89170c624f9dc520";
+ };
+ }
+ {
+ name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
+ path = fetchurl {
+ name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz";
+ sha1 = "471f9caf2d2bed93641d2e490434c0d2d4330df1";
+ };
+ }
+ {
+ name = "prosemirror_state___prosemirror_state_1.3.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_state___prosemirror_state_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.2.tgz";
+ sha1 = "1b910b0dc01c1f00926bb9ba1589f7b7ac0d658b";
+ };
+ }
+ {
+ name = "prosemirror_state___prosemirror_state_1.3.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_state___prosemirror_state_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.3.tgz";
+ sha1 = "b2862866b14dec2b3ae1ab18229f2bd337651a2c";
+ };
+ }
+ {
+ name = "prosemirror_tables___prosemirror_tables_1.0.0.tgz";
+ path = fetchurl {
+ name = "prosemirror_tables___prosemirror_tables_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.0.0.tgz";
+ sha1 = "ec3d0b11e638c6a92dd14ae816d0a2efd1719b70";
+ };
+ }
+ {
+ name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz";
+ sha1 = "ad66300cc49500455cf1243bb129c9e7d883321e";
+ };
+ }
+ {
+ name = "prosemirror_transform___prosemirror_transform_1.2.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_transform___prosemirror_transform_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.3.tgz";
+ sha1 = "239d17591af24d39ef3f1999daa09e1f1c76b06a";
+ };
+ }
+ {
+ name = "prosemirror_transform___prosemirror_transform_1.2.8.tgz";
+ path = fetchurl {
+ name = "prosemirror_transform___prosemirror_transform_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.8.tgz";
+ sha1 = "4b86544fa43637fe381549fb7b019f4fb71fe65c";
+ };
+ }
+ {
+ name = "prosemirror_utils___prosemirror_utils_0.9.6.tgz";
+ path = fetchurl {
+ name = "prosemirror_utils___prosemirror_utils_0.9.6.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.9.6.tgz";
+ sha1 = "3d97bd85897e3b535555867dc95a51399116a973";
+ };
+ }
+ {
+ name = "prosemirror_view___prosemirror_view_1.14.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_view___prosemirror_view_1.14.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.14.2.tgz";
+ sha1 = "23eb89f6101e9671b5e0c19d82ee0ad9de5608de";
+ };
+ }
+ {
+ name = "prosemirror_view___prosemirror_view_1.15.6.tgz";
+ path = fetchurl {
+ name = "prosemirror_view___prosemirror_view_1.15.6.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.15.6.tgz";
+ sha1 = "446bf7662235300c5f47362af2db805c6df3ad24";
+ };
+ }
+ {
+ name = "proxy_addr___proxy_addr_2.0.6.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz";
+ sha1 = "fdc2336505447d3f2f2c638ed272caf614bbb2bf";
+ };
+ }
+ {
+ name = "psl___psl_1.7.0.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz";
+ sha1 = "f1c4c47a8ef97167dea5d6bbf4816d736e884a3c";
+ };
+ }
+ {
+ name = "pullstream___pullstream_0.4.1.tgz";
+ path = fetchurl {
+ name = "pullstream___pullstream_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz";
+ sha1 = "d6fb3bf5aed697e831150eb1002c25a3f8ae1314";
+ };
+ }
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+ {
+ name = "pure_color___pure_color_1.3.0.tgz";
+ path = fetchurl {
+ name = "pure_color___pure_color_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz";
+ sha1 = "1fe064fb0ac851f0de61320a8bf796836422f33e";
+ };
+ }
+ {
+ name = "qs___qs_6.7.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.7.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
+ sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
+ };
+ }
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+ {
+ name = "randomatic___randomatic_3.1.1.tgz";
+ path = fetchurl {
+ name = "randomatic___randomatic_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz";
+ sha1 = "b776efc59375984e36c537b2f51a1f0aff0da1ed";
+ };
+ }
+ {
+ name = "range_parser___range_parser_1.2.1.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
+ sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
+ };
+ }
+ {
+ name = "raw_body___raw_body_2.4.0.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
+ sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
+ };
+ }
+ {
+ name = "react_base16_styling___react_base16_styling_0.5.3.tgz";
+ path = fetchurl {
+ name = "react_base16_styling___react_base16_styling_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.5.3.tgz";
+ sha1 = "3858f24e9c4dd8cbd3f702f3f74d581ca2917269";
+ };
+ }
+ {
+ name = "react_dock___react_dock_0.2.4.tgz";
+ path = fetchurl {
+ name = "react_dock___react_dock_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/react-dock/-/react-dock-0.2.4.tgz";
+ sha1 = "e727dc7550b3b73116635dcb9c0e04d0b7afe17c";
+ };
+ }
+ {
+ name = "react_dom___react_dom_16.13.1.tgz";
+ path = fetchurl {
+ name = "react_dom___react_dom_16.13.1.tgz";
+ url = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz";
+ sha1 = "c1bd37331a0486c078ee54c4740720993b2e0e7f";
+ };
+ }
+ {
+ name = "react_emotion___react_emotion_9.2.12.tgz";
+ path = fetchurl {
+ name = "react_emotion___react_emotion_9.2.12.tgz";
+ url = "https://registry.yarnpkg.com/react-emotion/-/react-emotion-9.2.12.tgz";
+ sha1 = "74d1494f89e22d0b9442e92a33ca052461955c83";
+ };
+ }
+ {
+ name = "react_is___react_is_16.13.0.tgz";
+ path = fetchurl {
+ name = "react_is___react_is_16.13.0.tgz";
+ url = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz";
+ sha1 = "0f37c3613c34fe6b37cd7f763a0d6293ab15c527";
+ };
+ }
+ {
+ name = "react_json_tree___react_json_tree_0.11.2.tgz";
+ path = fetchurl {
+ name = "react_json_tree___react_json_tree_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.11.2.tgz";
+ sha1 = "af70199fcbc265699ade2aec492465c51608f95e";
+ };
+ }
+ {
+ name = "react_window___react_window_1.8.5.tgz";
+ path = fetchurl {
+ name = "react_window___react_window_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz";
+ sha1 = "a56b39307e79979721021f5d06a67742ecca52d1";
+ };
+ }
+ {
+ name = "react___react_16.13.1.tgz";
+ path = fetchurl {
+ name = "react___react_16.13.1.tgz";
+ url = "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz";
+ sha1 = "2e818822f1a9743122c063d6410d85c1e3afe48e";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.3.7.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.7.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_3.6.0.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+ sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
+ sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+ };
+ }
+ {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+ sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+ };
+ }
+ {
+ name = "realm_utils___realm_utils_1.0.9.tgz";
+ path = fetchurl {
+ name = "realm_utils___realm_utils_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/realm-utils/-/realm-utils-1.0.9.tgz";
+ sha1 = "5c76a5ff39e4816af2c133a161f4221d6628eff4";
+ };
+ }
+ {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
+ path = fetchurl {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz";
+ sha1 = "ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e";
+ };
+ }
+ {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ path = fetchurl {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
+ sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+ };
+ }
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+ sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
+ };
+ }
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz";
+ sha1 = "7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5";
+ };
+ }
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+ sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+ };
+ }
+ {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ path = fetchurl {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz";
+ sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd";
+ };
+ }
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+ {
+ name = "regexpu_core___regexpu_core_4.6.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz";
+ sha1 = "2037c18b327cfce8a6fea2a4ec441f2432afb8b6";
+ };
+ }
+ {
+ name = "regjsgen___regjsgen_0.5.1.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz";
+ sha1 = "48f0bf1a5ea205196929c0d9798b42d1ed98443c";
+ };
+ }
+ {
+ name = "regjsparser___regjsparser_0.6.3.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.6.3.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz";
+ sha1 = "74192c5805d35e9f5ebe3c1fb5b40d40a8a38460";
+ };
+ }
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+ {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+ };
+ }
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+ {
+ name = "request___request_2.88.2.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.2.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
+ sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_4.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+ sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+ };
+ }
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+ {
+ name = "resolve___resolve_1.15.1.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.15.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz";
+ sha1 = "27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8";
+ };
+ }
+ {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ }
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+ {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+ sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+ };
+ }
+ {
+ name = "rope_sequence___rope_sequence_1.3.2.tgz";
+ path = fetchurl {
+ name = "rope_sequence___rope_sequence_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz";
+ sha1 = "a19e02d72991ca71feb6b5f8a91154e48e3c098b";
+ };
+ }
+ {
+ name = "run_async___run_async_2.4.0.tgz";
+ path = fetchurl {
+ name = "run_async___run_async_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz";
+ sha1 = "e59054a5b86876cfae07f431d18cbaddc594f1e8";
+ };
+ }
+ {
+ name = "rx_lite_aggregates___rx_lite_aggregates_4.0.8.tgz";
+ path = fetchurl {
+ name = "rx_lite_aggregates___rx_lite_aggregates_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz";
+ sha1 = "753b87a89a11c95467c4ac1626c4efc4e05c67be";
+ };
+ }
+ {
+ name = "rx_lite___rx_lite_4.0.8.tgz";
+ path = fetchurl {
+ name = "rx_lite___rx_lite_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz";
+ sha1 = "0b1e11af8bc44836f04a6407e92da42467b79444";
+ };
+ }
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+ {
+ name = "safe_buffer___safe_buffer_5.2.0.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
+ sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
+ };
+ }
+ {
+ name = "safe_buffer___safe_buffer_5.2.1.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+ sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
+ };
+ }
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+ {
+ name = "scheduler___scheduler_0.19.1.tgz";
+ path = fetchurl {
+ name = "scheduler___scheduler_0.19.1.tgz";
+ url = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz";
+ sha1 = "4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196";
+ };
+ }
+ {
+ name = "select___select_1.1.2.tgz";
+ path = fetchurl {
+ name = "select___select_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz";
+ sha1 = "0e7350acdec80b1108528786ec1d4418d11b396d";
+ };
+ }
+ {
+ name = "semver___semver_5.7.1.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.7.1.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+ sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+ };
+ }
+ {
+ name = "send___send_0.17.1.tgz";
+ path = fetchurl {
+ name = "send___send_0.17.1.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
+ sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
+ };
+ }
+ {
+ name = "sentence_splitter___sentence_splitter_3.2.0.tgz";
+ path = fetchurl {
+ name = "sentence_splitter___sentence_splitter_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/sentence-splitter/-/sentence-splitter-3.2.0.tgz";
+ sha1 = "fb2cd2f61f40006643ba83d9acf4609233c1c68c";
+ };
+ }
+ {
+ name = "serve_static___serve_static_1.14.1.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
+ sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
+ };
+ }
+ {
+ name = "set_value___set_value_2.0.1.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
+ sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
+ };
+ }
+ {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ path = fetchurl {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
+ sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+ };
+ }
+ {
+ name = "setprototypeof___setprototypeof_1.1.1.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+ };
+ }
+ {
+ name = "shorthash___shorthash_0.0.2.tgz";
+ path = fetchurl {
+ name = "shorthash___shorthash_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/shorthash/-/shorthash-0.0.2.tgz";
+ sha1 = "59b268eecbde59038b30da202bcfbddeb2c4a4eb";
+ };
+ }
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+ {
+ name = "slice_stream___slice_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "slice_stream___slice_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz";
+ sha1 = "5b33bd66f013b1a7f86460b03d463dec39ad3ea0";
+ };
+ }
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+ sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
+ };
+ }
+ {
+ name = "source_map_support___source_map_support_0.5.19.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.19.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+ sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+ };
+ }
+ {
+ name = "source_map_support___source_map_support_0.5.16.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.16.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
+ sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
+ };
+ }
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+ {
+ name = "source_map___source_map_0.7.3.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.7.3.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
+ sha1 = "5302f8169031735226544092e64981f751750383";
+ };
+ }
+ {
+ name = "sourcemap_blender___sourcemap_blender_1.0.5.tgz";
+ path = fetchurl {
+ name = "sourcemap_blender___sourcemap_blender_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/sourcemap-blender/-/sourcemap-blender-1.0.5.tgz";
+ sha1 = "d361f3d12381c4e477178113878fdf984a91bdbc";
+ };
+ }
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+ {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
+ sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
+ };
+ }
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+ {
+ name = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+ {
+ name = "stream_browserify___stream_browserify_2.0.2.tgz";
+ path = fetchurl {
+ name = "stream_browserify___stream_browserify_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz";
+ sha1 = "87521d38a44aa7ee91ce1cd2a47df0cb49dd660b";
+ };
+ }
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+ {
+ name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+ sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+ };
+ }
+ {
+ name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+ sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_1.3.0.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
+ sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+ {
+ name = "structured_source___structured_source_3.0.2.tgz";
+ path = fetchurl {
+ name = "structured_source___structured_source_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz";
+ sha1 = "dd802425e0f53dc4a6e7aca3752901a1ccda7af5";
+ };
+ }
+ {
+ name = "stylis_rule_sheet___stylis_rule_sheet_0.0.10.tgz";
+ path = fetchurl {
+ name = "stylis_rule_sheet___stylis_rule_sheet_0.0.10.tgz";
+ url = "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz";
+ sha1 = "44e64a2b076643f4b52e5ff71efc04d8c3c4a430";
+ };
+ }
+ {
+ name = "stylis___stylis_3.5.4.tgz";
+ path = fetchurl {
+ name = "stylis___stylis_3.5.4.tgz";
+ url = "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz";
+ sha1 = "f665f25f5e299cf3d64654ab949a57c768b73fbe";
+ };
+ }
+ {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+ sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+ };
+ }
+ {
+ name = "terser___terser_4.6.4.tgz";
+ path = fetchurl {
+ name = "terser___terser_4.6.4.tgz";
+ url = "https://registry.yarnpkg.com/terser/-/terser-4.6.4.tgz";
+ sha1 = "40a0b37afbe5b57e494536815efa68326840fc00";
+ };
+ }
+ {
+ name = "thenby___thenby_1.3.3.tgz";
+ path = fetchurl {
+ name = "thenby___thenby_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/thenby/-/thenby-1.3.3.tgz";
+ sha1 = "016c3427772a284bbfef982d978f7574fd15ee9d";
+ };
+ }
+ {
+ name = "through___through_2.3.8.tgz";
+ path = fetchurl {
+ name = "through___through_2.3.8.tgz";
+ url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ }
+ {
+ name = "tiny_emitter___tiny_emitter_2.1.0.tgz";
+ path = fetchurl {
+ name = "tiny_emitter___tiny_emitter_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz";
+ sha1 = "1d1a56edfc51c43e863cbb5382a72330e3555423";
+ };
+ }
+ {
+ name = "tlite___tlite_0.1.9.tgz";
+ path = fetchurl {
+ name = "tlite___tlite_0.1.9.tgz";
+ url = "https://registry.yarnpkg.com/tlite/-/tlite-0.1.9.tgz";
+ sha1 = "e886e4a305b7522242e2453b7ca4fb84f2d9de0f";
+ };
+ }
+ {
+ name = "tmp___tmp_0.0.33.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.0.33.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+ sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+ };
+ }
+ {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ }
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+ {
+ name = "toidentifier___toidentifier_1.0.0.tgz";
+ path = fetchurl {
+ name = "toidentifier___toidentifier_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
+ };
+ }
+ {
+ name = "touch___touch_2.0.2.tgz";
+ path = fetchurl {
+ name = "touch___touch_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/touch/-/touch-2.0.2.tgz";
+ sha1 = "ca0b2a3ae3211246a61b16ba9e6cbf1596287164";
+ };
+ }
+ {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
+ };
+ }
+ {
+ name = "traverse___traverse_0.3.9.tgz";
+ path = fetchurl {
+ name = "traverse___traverse_0.3.9.tgz";
+ url = "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz";
+ sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
+ };
+ }
+ {
+ name = "ts_node___ts_node_8.10.2.tgz";
+ path = fetchurl {
+ name = "ts_node___ts_node_8.10.2.tgz";
+ url = "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz";
+ sha1 = "eee03764633b1234ddd37f8db9ec10b75ec7fb8d";
+ };
+ }
+ {
+ name = "tslib___tslib_1.11.1.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.11.1.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz";
+ sha1 = "eb15d128827fbee2841549e171f45ed338ac7e35";
+ };
+ }
+ {
+ name = "tslint_config_prettier___tslint_config_prettier_1.18.0.tgz";
+ path = fetchurl {
+ name = "tslint_config_prettier___tslint_config_prettier_1.18.0.tgz";
+ url = "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz";
+ sha1 = "75f140bde947d35d8f0d238e0ebf809d64592c37";
+ };
+ }
+ {
+ name = "tslint_react___tslint_react_5.0.0.tgz";
+ path = fetchurl {
+ name = "tslint_react___tslint_react_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tslint-react/-/tslint-react-5.0.0.tgz";
+ sha1 = "d0ae644e8163bdd3e134012e9353094904e8dd44";
+ };
+ }
+ {
+ name = "tslint___tslint_5.20.1.tgz";
+ path = fetchurl {
+ name = "tslint___tslint_5.20.1.tgz";
+ url = "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz";
+ sha1 = "e401e8aeda0152bc44dd07e614034f3f80c67b7d";
+ };
+ }
+ {
+ name = "tsutils___tsutils_2.29.0.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_2.29.0.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
+ sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+ };
+ }
+ {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
+ sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+ };
+ }
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+ {
+ name = "type_check___type_check_0.3.2.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ }
+ {
+ name = "type_is___type_is_1.6.18.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.18.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
+ sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
+ };
+ }
+ {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ path = fetchurl {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ }
+ {
+ name = "typescript_tslint_plugin___typescript_tslint_plugin_0.5.5.tgz";
+ path = fetchurl {
+ name = "typescript_tslint_plugin___typescript_tslint_plugin_0.5.5.tgz";
+ url = "https://registry.yarnpkg.com/typescript-tslint-plugin/-/typescript-tslint-plugin-0.5.5.tgz";
+ sha1 = "673875c43640251f1ab3d63745d7d49726ff961c";
+ };
+ }
+ {
+ name = "typescript___typescript_3.8.3.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.8.3.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz";
+ sha1 = "409eb8544ea0335711205869ec458ab109ee1061";
+ };
+ }
+ {
+ name = "uglify_js___uglify_js_3.8.0.tgz";
+ path = fetchurl {
+ name = "uglify_js___uglify_js_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz";
+ sha1 = "f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805";
+ };
+ }
+ {
+ name = "ultron___ultron_1.0.2.tgz";
+ path = fetchurl {
+ name = "ultron___ultron_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz";
+ sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+ };
+ }
+ {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+ sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
+ };
+ }
+ {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+ sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
+ };
+ }
+ {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz";
+ sha1 = "5b4b426e08d13a80365e0d657ac7a6c1ec46a277";
+ };
+ }
+ {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.5.tgz";
+ path = fetchurl {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz";
+ sha1 = "a9cc6cc7ce63a0a3023fc99e341b94431d405a57";
+ };
+ }
+ {
+ name = "union_value___union_value_1.0.1.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
+ sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
+ };
+ }
+ {
+ name = "universalify___universalify_0.1.2.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+ sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+ };
+ }
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+ {
+ name = "unstated___unstated_2.1.1.tgz";
+ path = fetchurl {
+ name = "unstated___unstated_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unstated/-/unstated-2.1.1.tgz";
+ sha1 = "36b124dfb2e7a12d39d0bb9c46dfb6e51276e3a2";
+ };
+ }
+ {
+ name = "unzip___unzip_0.1.11.tgz";
+ path = fetchurl {
+ name = "unzip___unzip_0.1.11.tgz";
+ url = "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz";
+ sha1 = "89749c63b058d7d90d619f86b98aa1535d3b97f0";
+ };
+ }
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+ {
+ name = "utils_extend___utils_extend_1.0.8.tgz";
+ path = fetchurl {
+ name = "utils_extend___utils_extend_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/utils-extend/-/utils-extend-1.0.8.tgz";
+ sha1 = "ccfd7b64540f8e90ee21eec57769d0651cab8a5f";
+ };
+ }
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+ {
+ name = "uuid___uuid_3.4.0.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
+ sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
+ };
+ }
+ {
+ name = "vary___vary_1.1.2.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ }
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+ {
+ name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
+ path = fetchurl {
+ name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz";
+ sha1 = "a7bf74ef3254d0a0c272fab15c82128e378b3be9";
+ };
+ }
+ {
+ name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz";
+ sha1 = "b8aab6afae2849c84a8983d39a1cf742417afe2f";
+ };
+ }
+ {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz";
+ sha1 = "d3b5952246d30e5241592b6dde8280e03942e743";
+ };
+ }
+ {
+ name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz";
+ sha1 = "0d2feddd33f92aadf5da32450df498d52f6f14eb";
+ };
+ }
+ {
+ name = "vscode_uri___vscode_uri_1.0.8.tgz";
+ path = fetchurl {
+ name = "vscode_uri___vscode_uri_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz";
+ sha1 = "9769aaececae4026fb6e22359cb38946580ded59";
+ };
+ }
+ {
+ name = "w3c_keyname___w3c_keyname_2.2.2.tgz";
+ path = fetchurl {
+ name = "w3c_keyname___w3c_keyname_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.2.tgz";
+ sha1 = "7ea63170454bb19f1a3c6b628fc3dc8889276e91";
+ };
+ }
+ {
+ name = "watch___watch_1.0.2.tgz";
+ path = fetchurl {
+ name = "watch___watch_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz";
+ sha1 = "340a717bde765726fa0aa07d721e0147a551df0c";
+ };
+ }
+ {
+ name = "word_wrap___word_wrap_1.2.3.tgz";
+ path = fetchurl {
+ name = "word_wrap___word_wrap_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
+ sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+ };
+ }
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+ {
+ name = "ws___ws_1.1.5.tgz";
+ path = fetchurl {
+ name = "ws___ws_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz";
+ sha1 = "cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51";
+ };
+ }
+ {
+ name = "yaml___yaml_1.7.2.tgz";
+ path = fetchurl {
+ name = "yaml___yaml_1.7.2.tgz";
+ url = "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz";
+ sha1 = "f26aabf738590ab61efaca502358e48dc9f348b2";
+ };
+ }
+ {
+ name = "yn___yn_3.1.1.tgz";
+ path = fetchurl {
+ name = "yn___yn_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz";
+ sha1 = "1e87401a09d767c1d5eab26a6e4c185182d2eb50";
+ };
+ }
+ {
+ name = "zenscroll___zenscroll_4.0.2.tgz";
+ path = fetchurl {
+ name = "zenscroll___zenscroll_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/zenscroll/-/zenscroll-4.0.2.tgz";
+ sha1 = "e8d5774d1c0738a47bcfa8729f3712e2deddeb25";
+ };
+ }
+ ];
+}
diff --git a/pkgs/applications/editors/sublime/2/default.nix b/pkgs/applications/editors/sublime/2/default.nix
index 7102d6951390..7f14bf8ae14b 100644
--- a/pkgs/applications/editors/sublime/2/default.nix
+++ b/pkgs/applications/editors/sublime/2/default.nix
@@ -1,26 +1,28 @@
{ fetchurl, lib, stdenv, glib, xorg, cairo, gtk2, makeDesktopItem }:
let
- libPath = lib.makeLibraryPath [glib xorg.libX11 gtk2 cairo];
+ libPath = lib.makeLibraryPath [ glib xorg.libX11 gtk2 cairo ];
in
stdenv.mkDerivation rec {
- name = "sublimetext-2.0.2";
+ pname = "sublimetext";
+ version = "2.0.2";
+
src =
if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
- name = "sublimetext-2.0.2.tar.bz2";
+ name = "sublimetext-${version}.tar.bz2";
urls = [
- "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
- "https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2"
+ "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20${version}.tar.bz2"
+ "https://download.sublimetext.com/Sublime%20Text%20${version}.tar.bz2"
];
sha256 = "026g5mppk28lzzzn9ibykcqkrd5msfmg0sc0z8w8jd7v3h28wcq7";
}
else
fetchurl {
- name = "sublimetext-2.0.2.tar.bz2";
+ name = "sublimetext-${version}.tar.bz2";
urls = [
- "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
- "https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2"
+ "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20${version}.tar.bz2"
+ "https://download.sublimetext.com/Sublime%20Text%20${version}%20x64.tar.bz2"
];
sha256 = "115b71nbv9mv8cz6bkjwpbdf2ywnjc1zy2d3080f6ck4sqqfvfh1";
};
diff --git a/pkgs/applications/editors/sublime/4/packages.nix b/pkgs/applications/editors/sublime/4/packages.nix
index bbef0d8a4056..3c098be58998 100644
--- a/pkgs/applications/editors/sublime/4/packages.nix
+++ b/pkgs/applications/editors/sublime/4/packages.nix
@@ -5,9 +5,9 @@ let
in
{
sublime4 = common {
- buildVersion = "4113";
- x64sha256 = "13679mnmigy1sgj355zs4si6gnx42rgjl4rn5d6gqgj5qq7zj3lh";
- aarch64sha256 = "0hg6g3cichma1x82963m7xwazmpdvv5zmz8rpwxs337zq7j3dmb3";
+ buildVersion = "4121";
+ x64sha256 = "CE/PeUV8Mg1Z2h8OWMhaemOVa95B1k2wHsht8lVPxeY=";
+ aarch64sha256 = "eveEW0Aq6pim0lnQ6BfISRaBgogeofgLmOVylSVojwg=";
} {};
sublime4-dev = common {
diff --git a/pkgs/applications/editors/supertux-editor/default.nix b/pkgs/applications/editors/supertux-editor/default.nix
index ec713d99371b..6888cebec2d0 100644
--- a/pkgs/applications/editors/supertux-editor/default.nix
+++ b/pkgs/applications/editors/supertux-editor/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, mono, gtk-sharp-2_0, pkg-config, makeWrapper, gnome2, gtk2 }:
stdenv.mkDerivation {
- version = "git-2014-08-20";
+ version = "unstable-2014-08-20";
pname = "supertux-editor";
src = fetchFromGitHub {
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ pkg-config makeWrapper ];
- buildInputs = [mono gtk-sharp-2_0 gnome2.libglade gtk2 ];
+ buildInputs = [ mono gtk-sharp-2_0 gnome2.libglade gtk2 ];
installPhase = ''
mkdir -p $out/bin $out/lib/supertux-editor
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index a51056130806..6b1b34e11cf0 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "texstudio";
- version = "3.1.2";
+ version = "4.0.2";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
- sha256 = "0h5g1sirsy1f2xlq85c1ik1s52gycfipy9yx0flgaw8m4wmhz26v";
+ sha256 = "sha256-SCrWoIZan8mFwQoXaXvM0Ujdhcic3FbmfgKZSFXFBGE=";
};
nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/pkgs/applications/editors/thiefmd/default.nix b/pkgs/applications/editors/thiefmd/default.nix
new file mode 100644
index 000000000000..81222ff82f10
--- /dev/null
+++ b/pkgs/applications/editors/thiefmd/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchFromGitHub, wrapGAppsHook, cmake, desktop-file-utils, glib
+, meson, ninja, pkg-config, vala, clutter, discount, gtk3, gtksourceview4, gtkspell3
+, libarchive, libgee, libhandy, libsecret, link-grammar, webkitgtk }:
+
+stdenv.mkDerivation rec {
+ pname = "thiefmd";
+ version = "0.2.4";
+
+ src = fetchFromGitHub {
+ owner = "kmwallio";
+ repo = "ThiefMD";
+ rev = "v${version}-easypdf";
+ sha256 = "sha256-YN17o6GtpulxhXs+XYZLY36g9S8ggR6URNLrjs5PEoI=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ cmake desktop-file-utils glib meson wrapGAppsHook
+ ninja pkg-config vala
+ ];
+
+ buildInputs = [
+ clutter discount gtk3 gtksourceview4 gtkspell3
+ libarchive libgee libhandy libsecret link-grammar
+ webkitgtk
+ ];
+
+ dontUseCmakeConfigure = true;
+
+ postInstall = ''
+ mv $out/share/applications/com.github.kmwallio.thiefmd.desktop \
+ $out/share/applications/thiefmd.desktop
+ substituteInPlace $out/share/applications/thiefmd.desktop \
+ --replace 'Exec=com.github.kmwallio.' Exec=$out/bin/
+
+ makeWrapper $out/bin/com.github.kmwallio.thiefmd \
+ $out/bin/thiefmd \
+ --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/"
+ '';
+
+ meta = with lib; {
+ description = "Markdown & Fountain editor that helps with organization and management";
+ homepage = "https://thiefmd.com";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ wolfangaukang ];
+ };
+}
diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix
index fb5cb4b8e4c1..20d25bb616ff 100644
--- a/pkgs/applications/editors/thonny/default.nix
+++ b/pkgs/applications/editors/thonny/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3 }:
+{ lib, fetchFromGitHub, python3, makeDesktopItem, copyDesktopItems }:
with python3.pkgs;
@@ -13,6 +13,17 @@ buildPythonApplication rec {
sha256 = "13l8blq7y6p7a235x2lfiqml1bd4ba2brm3vfvs8wasjh3fvm9g5";
};
+ nativeBuildInputs = [ copyDesktopItems ];
+
+ desktopItems = [ (makeDesktopItem {
+ name = "Thonny";
+ exec = "thonny";
+ icon = "thonny";
+ desktopName = "Thonny";
+ comment = "Python IDE for beginners";
+ categories = "Development;IDE";
+ }) ];
+
propagatedBuildInputs = with python3.pkgs; [
jedi
pyserial
@@ -34,6 +45,10 @@ buildPythonApplication rec {
--prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath ${python3.pkgs.jedi})
'';
+ postInstall = ''
+ install -Dm644 ./packaging/icons/thonny-48x48.png $out/share/icons/hicolor/48x48/apps/thonny.png
+ '';
+
# Tests need a DISPLAY
doCheck = false;
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index 49836b94d81b..8924b669c4a8 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -81,25 +81,25 @@ let
installPhase = ''
runHook preInstall
'' + (if stdenv.isDarwin then ''
- mkdir -p "$out/Applications/${longName}.app" $out/bin
+ mkdir -p "$out/Applications/${longName}.app" "$out/bin"
cp -r ./* "$out/Applications/${longName}.app"
- ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/${sourceExecutableName}" $out/bin/${executableName}
+ ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/${sourceExecutableName}" "$out/bin/${executableName}"
'' else ''
- mkdir -p $out/lib/vscode $out/bin
- cp -r ./* $out/lib/vscode
+ mkdir -p "$out/lib/vscode" "$out/bin"
+ cp -r ./* "$out/lib/vscode"
- ln -s $out/lib/vscode/bin/${sourceExecutableName} $out/bin/${executableName}
+ ln -s "$out/lib/vscode/bin/${sourceExecutableName}" "$out/bin/${executableName}"
- mkdir -p $out/share/applications
- ln -s $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop
- ln -s $urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop $out/share/applications/${executableName}-url-handler.desktop
+ mkdir -p "$out/share/applications"
+ ln -s "$desktopItem/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
+ ln -s "$urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop" "$out/share/applications/${executableName}-url-handler.desktop"
- mkdir -p $out/share/pixmaps
- cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
+ mkdir -p "$out/share/pixmaps"
+ cp "$out/lib/vscode/resources/app/resources/linux/code.png" "$out/share/pixmaps/code.png"
# Override the previously determined VSCODE_PATH with the one we know to be correct
- sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName}
- grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName} # check if sed succeeded
+ sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" "$out/bin/${executableName}"
+ grep -q "VSCODE_PATH='$out/lib/vscode'" "$out/bin/${executableName}" # check if sed succeeded
'') + ''
runHook postInstall
'';
@@ -112,7 +112,8 @@ let
'';
# See https://github.com/NixOS/nixpkgs/issues/49643#issuecomment-873853897
- postPatch = ''
+ # linux only because of https://github.com/NixOS/nixpkgs/issues/138729
+ postPatch = lib.optionalString stdenv.isLinux ''
# this is a fix for "save as root" functionality
packed="resources/app/node_modules.asar"
unpacked="resources/app/node_modules"
@@ -161,9 +162,9 @@ let
# restore desktop item icons
extraInstallCommands = ''
- mkdir -p $out/share/applications
+ mkdir -p "$out/share/applications"
for item in ${unwrapped}/share/applications/*.desktop; do
- ln -s $item $out/share/applications/
+ ln -s "$item" "$out/share/applications/"
done
'';
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 028bd77809f9..0c2776778b53 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "10iai5k0hvyvishp4gbamvsn9ff8dfm6kvql08h3plr8zrvmaian";
- x86_64-darwin = "1cspla4cxw0l5cg44qywv3jgwyk2g7sx5lk1s4xhbrqz76knzcr7";
- aarch64-linux = "1dc4gfaxlrsd637d8w2c5h4l8c96phv14pmkhmyc1jp1a0q6d5ja";
- aarch64-darwin = "06d8ng6k62mh1qhba0c6nj2lag4vi7i50d2sx3nk8r2v8azwyrmk";
- armv7l-linux = "030c8az831n73w35xfbjpympwvfprf1h4lxy8j5sysm4fbpzi03m";
+ x86_64-linux = "0dwpczbxqy3rsqprdiakmqv6s3jzcg2wqxnf1znarx2qffb4ii9x";
+ x86_64-darwin = "0si76v80r0vhl76gbdwbykk6acifhifz8sb8wiyiiywkinlxs19w";
+ aarch64-linux = "0nwgdvvsblh2r72ys2ng5b084wizkdjd00mm73506mgbs8pzcky4";
+ aarch64-darwin = "0qivq4077g5a4gwkskvvzxaa60w1gpgl67pmdyqn81rina04rdqs";
+ armv7l-linux = "0myf96s1vdpllnw0vz0rpmyv2pfirv3p8pqgxxnpw860s2c26f2f";
}.${system};
in
callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.60.1";
+ version = "1.62.2";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index fb2417389652..11623945c726 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "03z6wpzbvf046sl1mjvvcshy5czvr4bq2f3ajlr8bj39y9df93h9";
- x86_64-darwin = "0cs5ikf5dxkg9qkyaq75h0rypil80sk6zmbb0s63191gj6l569yl";
- aarch64-linux = "05ivgn72v05yy3a9qly4qx0qpyjd2r3ygdw978zc8z09694g5x3i";
- armv7l-linux = "044izh9ap5s50k796zjcfk0p997b7sfryshp4gaxh3yf5qs0w7l9";
+ x86_64-linux = "19r4883qa73b23xw0fz21bnp9vcvsbn1q77n6pcm1achwpxscrg6";
+ x86_64-darwin = "0gv4208vcr75wyp6vji1cg6644f5yfwgkgkiav37218v1wjzb4r0";
+ aarch64-linux = "00jzjapyj96bqqq6pz4mdlihwa5g1izkqcp4lqml7hqvmcqrjyrs";
+ armv7l-linux = "0daji52lfbgz0by11idai55ip0m859s35vbyvgv655s21aakrs50";
}.${system};
sourceRoot = {
@@ -31,7 +31,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.60.1";
+ version = "1.62.2";
pname = "vscodium";
executableName = "codium";
diff --git a/pkgs/applications/editors/your-editor/default.nix b/pkgs/applications/editors/your-editor/default.nix
new file mode 100644
index 000000000000..dd3bde160c37
--- /dev/null
+++ b/pkgs/applications/editors/your-editor/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "your-editor";
+ version = "1206";
+
+ src = fetchFromGitHub {
+ owner = "kammerdienerb";
+ repo = "yed";
+ rev = "6cdd99fe1359899b26d8967bd376fd5caa5451eb";
+ sha256 = "0XECSolW/xPXd1v3sv9HbJMWuHGnwCOwmHoPNCUsE+w=";
+ };
+
+ installPhase = ''
+ runHook preInstall
+ patchShebangs install.sh
+ ./install.sh -p $out
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Your-editor (yed) is a small and simple terminal editor core that is meant to be extended through a powerful plugin architecture";
+ homepage = "https://your-editor.org/";
+ license = with licenses; [ mit ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ uniquepointer ];
+ mainProgram = "yed";
+ };
+}
diff --git a/pkgs/applications/finance/odoo/default.nix b/pkgs/applications/finance/odoo/default.nix
new file mode 100644
index 000000000000..69acb43af861
--- /dev/null
+++ b/pkgs/applications/finance/odoo/default.nix
@@ -0,0 +1,97 @@
+{ stdenv
+, lib
+, fetchurl
+, python3
+, python3Packages
+, nodePackages
+, wkhtmltopdf
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "odoo";
+
+ major = "15";
+ minor = "0";
+ patch = "20211029";
+
+ version = "${major}.${minor}.${patch}";
+
+ # latest release is at https://github.com/odoo/docker/blob/master/15.0/Dockerfile
+ src = fetchurl {
+ url = "https://nightly.odoo.com/${major}.${minor}/nightly/src/odoo_${version}.tar.gz";
+ name = "${pname}-${version}";
+ sha256 = "sha256-/E+bLBbiz7fRyTwP+0AMpqbuRkOpE4B4P6kREIB4m1Q=";
+ };
+
+ nativeBuildInputs = [
+ setuptools
+ wheel
+ mock
+ ];
+
+ buildInputs = [
+ wkhtmltopdf
+ nodePackages.rtlcss
+ ];
+
+ # needs some investigation
+ doCheck = false;
+
+ makeWrapperArgs = [ "--prefix" "PATH" ":" "${lib.makeBinPath [ wkhtmltopdf nodePackages.rtlcss ]}" ];
+
+ propagatedBuildInputs = [
+ Babel
+ chardet
+ decorator
+ docutils
+ ebaysdk
+ freezegun
+ gevent
+ greenlet
+ html2text
+ idna
+ jinja2
+ libsass
+ lxml
+ markupsafe
+ num2words
+ ofxparse
+ passlib
+ pillow
+ polib
+ psutil
+ psycopg2
+ pydot
+ pyopenssl
+ pypdf2
+ pyserial
+ python-dateutil
+ ldap
+ python-stdnum
+ pytz
+ pyusb
+ qrcode
+ reportlab
+ requests
+ vobject
+ werkzeug1
+ xlrd
+ XlsxWriter
+ xlwt
+ zeep
+ ];
+
+ unpackPhase = ''
+ tar xfz $src
+ cd odoo*
+ '';
+
+ meta = with lib; {
+ description = "Open Source ERP and CRM";
+ homepage = "https://www.odoo.com/";
+ license = licenses.lgpl3Only;
+ maintainers = [ maintainers.mkg20001 ];
+ };
+}
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index 21b4cfa94b13..d186d36efcf8 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -76,9 +76,6 @@ mkDerivation rec {
postInstall = with stdenv; lib.optionalString isDarwin ''
mkdir -p $out/Applications
mv $out/Mapper.app $out/Applications
- # Fixes "This application failed to start because it could not find or load the Qt
- # platform plugin "cocoa"."
- wrapQtApp $out/Applications/Mapper.app/Contents/MacOS/Mapper
mkdir -p $out/bin
ln -s $out/Applications/Mapper.app/Contents/MacOS/Mapper $out/bin/mapper
'';
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index bdd8ace1e3d5..70b5ffcc707c 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -1,9 +1,42 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos
-, xlibsWrapper, sqlite, gsl, qwt, fcgi, python3Packages, libspatialindex
-, libspatialite, postgresql, txt2tags, openssl, libzip, hdf5, netcdf, exiv2
-, protobuf, qtbase, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport
-, qtxmlpatterns, withGrass ? true, grass, withWebKit ? true, qtwebkit }:
-with lib;
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, ninja
+, flex
+, bison
+, proj
+, geos
+, xlibsWrapper
+, sqlite
+, gsl
+, qwt
+, fcgi
+, python3Packages
+, libspatialindex
+, libspatialite
+, postgresql
+, txt2tags
+, openssl
+, libzip
+, hdf5
+, netcdf
+, exiv2
+, protobuf
+, qtbase
+, qtsensors
+, qca-qt5
+, qtkeychain
+, qscintilla
+, qtserialport
+, qtxmlpatterns
+, withGrass ? true
+, grass
+, withWebKit ? true
+, qtwebkit
+}:
+
let
pythonBuildInputs = with python3Packages; [
qscintilla-qt5
@@ -25,8 +58,7 @@ let
];
in mkDerivation rec {
version = "3.16.10";
- pname = "qgis";
- name = "${pname}-unwrapped-${version}";
+ pname = "qgis-unwrapped";
src = fetchFromGitHub {
owner = "qgis";
@@ -35,6 +67,13 @@ in mkDerivation rec {
sha256 = "sha256-/lsfyTDlkZNIVHg5qgZW7qfOyTC2+1r3ZbsnQmEdy30=";
};
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/qgis/QGIS/commit/fc1ac8bef8dcc3194857ecd32519aca4867b4fa1.patch";
+ sha256 = "106smg3drx8c7yxzfhd1c7xrq757l5cfxx8lklihyvr4a7wc9gpy";
+ })
+ ];
+
passthru = {
inherit pythonBuildInputs;
inherit python3Packages;
diff --git a/pkgs/applications/gis/qmapshack/default.nix b/pkgs/applications/gis/qmapshack/default.nix
index d0d39e299aa2..dd440dfffdac 100644
--- a/pkgs/applications/gis/qmapshack/default.nix
+++ b/pkgs/applications/gis/qmapshack/default.nix
@@ -1,5 +1,5 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake
-, qtscript, qtwebengine, gdal, proj, routino, quazip }:
+{ mkDerivation, lib, fetchFromGitHub, cmake, substituteAll
+, qtscript, qttranslations, qtwebengine, gdal, proj, routino, quazip }:
mkDerivation rec {
pname = "qmapshack";
@@ -12,6 +12,14 @@ mkDerivation rec {
sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx";
};
+ patches = [
+ # See https://github.com/NixOS/nixpkgs/issues/86054
+ (substituteAll {
+ src = ./fix-qttranslations-path.patch;
+ inherit qttranslations;
+ })
+ ];
+
nativeBuildInputs = [ cmake ];
buildInputs = [ qtscript qtwebengine gdal proj routino quazip ];
diff --git a/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch b/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
new file mode 100644
index 000000000000..f91f4228d2ce
--- /dev/null
+++ b/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
@@ -0,0 +1,74 @@
+diff --git i/src/qmapshack/setup/CAppSetupLinux.cpp w/src/qmapshack/setup/CAppSetupLinux.cpp
+index 63ea06c0..3a03b816 100644
+--- i/src/qmapshack/setup/CAppSetupLinux.cpp
++++ w/src/qmapshack/setup/CAppSetupLinux.cpp
+@@ -30,7 +30,7 @@ void CAppSetupLinux::initQMapShack()
+ prepareGdal("", "");
+
+ // setup translators
+- QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++ QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+ QString translationPath = QCoreApplication::applicationDirPath();
+ translationPath.replace(QRegExp("bin$"), "share/qmapshack/translations");
+ prepareTranslator(resourceDir, "qt_");
+diff --git i/src/qmapshack/setup/CAppSetupMac.cpp w/src/qmapshack/setup/CAppSetupMac.cpp
+index ad9b21e9..9dca8a1e 100644
+--- i/src/qmapshack/setup/CAppSetupMac.cpp
++++ w/src/qmapshack/setup/CAppSetupMac.cpp
+@@ -63,7 +63,7 @@ void CAppSetupMac::initQMapShack()
+
+ // setup translators
+ QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+- prepareTranslator(translationPath, "qt_");
++ prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+ prepareTranslator(translationPath, "qmapshack_");
+
+ // load and apply style sheet
+diff --git i/src/qmaptool/setup/CAppSetupLinux.cpp w/src/qmaptool/setup/CAppSetupLinux.cpp
+index dea1c4f3..8da95574 100644
+--- i/src/qmaptool/setup/CAppSetupLinux.cpp
++++ w/src/qmaptool/setup/CAppSetupLinux.cpp
+@@ -29,7 +29,7 @@ void CAppSetupLinux::initQMapTool()
+ prepareGdal("", "");
+
+ // setup translators
+- QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++ QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+ QString translationPath = QCoreApplication::applicationDirPath();
+ translationPath.replace(QRegExp("bin$"), "share/qmaptool/translations");
+ prepareTranslator(resourceDir, "qt_");
+diff --git i/src/qmaptool/setup/CAppSetupMac.cpp w/src/qmaptool/setup/CAppSetupMac.cpp
+index 02b27e07..fae27748 100644
+--- i/src/qmaptool/setup/CAppSetupMac.cpp
++++ w/src/qmaptool/setup/CAppSetupMac.cpp
+@@ -64,7 +64,7 @@ void CAppSetupMac::initQMapTool()
+
+ // setup translators
+ QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+- prepareTranslator(translationPath, "qt_");
++ prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+ prepareTranslator(translationPath, "qmaptool_");
+
+ migrateDirContent(defaultCachePath());
+diff --git i/src/qmt_rgb2pct/main.cpp w/src/qmt_rgb2pct/main.cpp
+index 21267d03..d539cec8 100644
+--- i/src/qmt_rgb2pct/main.cpp
++++ w/src/qmt_rgb2pct/main.cpp
+@@ -50,7 +50,7 @@ static void prepareTranslator(QString translationPath, QString translationPrefix
+ static void loadTranslations()
+ {
+ #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(Q_OS_CYGWIN)
+- QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++ QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+ QString translationPath = QCoreApplication::applicationDirPath();
+ translationPath.replace(QRegExp("bin$"), "share/" APP_STR "/translations");
+ prepareTranslator(resourceDir, "qt_");
+@@ -61,7 +61,7 @@ static void loadTranslations()
+ // os x
+ static QString relTranslationDir = "Resources/translations"; // app
+ QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+- prepareTranslator(translationPath, "qt_");
++ prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+ prepareTranslator(translationPath, APP_STR "_");
+ #endif
+
diff --git a/pkgs/applications/graphics/ImageMagick/6.x.nix b/pkgs/applications/graphics/ImageMagick/6.x.nix
index 7cb4018f38f4..4c06eb7962bc 100644
--- a/pkgs/applications/graphics/ImageMagick/6.x.nix
+++ b/pkgs/applications/graphics/ImageMagick/6.x.nix
@@ -16,13 +16,13 @@ in
stdenv.mkDerivation rec {
pname = "imagemagick";
- version = "6.9.12-19";
+ version = "6.9.12-26";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick6";
rev = version;
- sha256 = "sha256-8KofT9aNd8SXL0YBQ0RUOTccVxQNacvJL1uYPZiSPkY=";
+ sha256 = "sha256-oNorY/93jk1v5BS1T3wqctXuzV4o8JlyZtHnsNYmO4U=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 316110633891..a07cf38c0eba 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
-, lcms2, openexr, libpng, liblqr1, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
+, lcms2, openexr, libjxl, libpng, liblqr1, libraw, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
, ApplicationServices
, Foundation
, testVersion, imagemagick
@@ -18,13 +18,13 @@ in
stdenv.mkDerivation rec {
pname = "imagemagick";
- version = "7.1.0-4";
+ version = "7.1.0-13";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
- sha256 = "sha256-CvrSeoKaTigR+4egelwLRr2++CQ5OWUePwX9e1/G1GM=";
+ sha256 = "sha256-W/XqgYOlSailHQdNBYsvf2P9go9sblWayDLrQQlekro=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -37,6 +37,9 @@ stdenv.mkDerivation rec {
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
++ lib.optional (librsvg != null) "--with-rsvg"
++ lib.optional (liblqr1 != null) "--with-lqr"
+ # libjxl is broken on aarch64 (see meta.broken in libjxl) for now,
+ # let's disable it for now to unbreak the imagemagick build.
+ ++ lib.optional (libjxl != null && !stdenv.isAarch64) "--with-jxl"
++ lib.optionals (ghostscript != null)
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
"--with-gslib"
@@ -49,8 +52,12 @@ stdenv.mkDerivation rec {
buildInputs =
[ zlib fontconfig freetype ghostscript
- liblqr1 libpng libtiff libxml2 libheif djvulibre
+ liblqr1 libpng libraw libtiff libxml2 libheif djvulibre
]
+ # libjxl is broken on aarch64 (see meta.broken in libjxl) for now,
+ # let's disable it for now to unbreak the imagemagick build.
+ ++ lib.optionals (!stdenv.isAarch64)
+ [ libjxl ]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ openexr librsvg openjpeg ]
++ lib.optionals stdenv.isDarwin [
diff --git a/pkgs/applications/graphics/akira/default.nix b/pkgs/applications/graphics/akira/default.nix
index 430c582dd793..efa153df155d 100644
--- a/pkgs/applications/graphics/akira/default.nix
+++ b/pkgs/applications/graphics/akira/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ Br1ght0ne neonfuz ] ++ teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "com.github.akiraux.akira";
};
}
diff --git a/pkgs/applications/graphics/autopanosiftc/default.nix b/pkgs/applications/graphics/autopanosiftc/default.nix
index 129e3e547691..20874dd55e76 100644
--- a/pkgs/applications/graphics/autopanosiftc/default.nix
+++ b/pkgs/applications/graphics/autopanosiftc/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, cmake, libpng, libtiff, libjpeg, panotools, libxml2 }:
+{ lib, stdenv, fetchurl, cmake, libpng, libtiff, libjpeg, panotools, libxml2 }:
-stdenv.mkDerivation {
- name = "autopano-sift-C-2.5.1";
+stdenv.mkDerivation rec {
+ pname = "autopano-sift-C";
+ version = "2.5.1";
src = fetchurl {
- url = "mirror://sourceforge/hugin/autopano-sift-C-2.5.1.tar.gz";
+ url = "mirror://sourceforge/hugin/autopano-sift-C-${version}.tar.gz";
sha256 = "0dqk8ff82gmy4v5ns5nr9gpzkc1p7c2y8c8fkid102r47wsjk44s";
};
diff --git a/pkgs/applications/graphics/autotrace/autofig.nix b/pkgs/applications/graphics/autotrace/autofig.nix
index 0f53965786b9..9555dd4c02ed 100644
--- a/pkgs/applications/graphics/autotrace/autofig.nix
+++ b/pkgs/applications/graphics/autotrace/autofig.nix
@@ -1,7 +1,8 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
- name = "autofig-0.1";
+ pname = "autofig";
+ version = "0.1";
src = fetchurl {
url = "http://autotrace.sourceforge.net/tools/autofig.tar.gz";
diff --git a/pkgs/applications/graphics/blockbench-electron/default.nix b/pkgs/applications/graphics/blockbench-electron/default.nix
index 174733a4fdc1..a9c258ce925d 100644
--- a/pkgs/applications/graphics/blockbench-electron/default.nix
+++ b/pkgs/applications/graphics/blockbench-electron/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
description = "A boxy 3D model editor powered by Electron";
homepage = "https://blockbench.net/";
license = licenses.gpl3Only;
- maintainers = [ maintainers.ronthecookie ];
+ maintainers = [ maintainers.ckie ];
platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/graphics/ciano/default.nix b/pkgs/applications/graphics/ciano/default.nix
new file mode 100644
index 000000000000..dcaabed6b19c
--- /dev/null
+++ b/pkgs/applications/graphics/ciano/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, desktop-file-utils
+, ffmpeg
+, gobject-introspection
+, granite
+, gtk
+, imagemagick
+, libgee
+, libhandy
+, libsecret
+, libsoup
+, meson
+, ninja
+, pkg-config
+, python
+, vala
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ciano";
+ version = "0.2.4";
+
+ src = fetchFromGitHub {
+ owner = "robertsanseries";
+ repo = pname;
+ rev = version;
+ hash = "sha256-nubm6vBWwsHrrmvFAL/cIzYPxg9B1EhnpC79IJMNuFY=";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ pkg-config
+ python
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ ffmpeg
+ imagemagick
+ granite
+ gtk
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ dontWrapGApps = true;
+
+ postFixup = let
+ binPath = lib.makeBinPath [
+ ffmpeg
+ imagemagick
+ ];
+ in
+ ''
+ wrapProgram $out/bin/com.github.robertsanseries.ciano \
+ --prefix PATH : ${binPath} "''${gappsWrapperArgs[@]}"
+ ln -s $out/bin/com.github.robertsanseries.ciano $out/bin/ciano
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/robertsanseries/ciano";
+ description = "A multimedia file converter focused on simplicity";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/graphics/cloudcompare/default.nix b/pkgs/applications/graphics/cloudcompare/default.nix
index 9fbe390f5d83..cd3f026dfa09 100644
--- a/pkgs/applications/graphics/cloudcompare/default.nix
+++ b/pkgs/applications/graphics/cloudcompare/default.nix
@@ -1,7 +1,6 @@
{ lib
, mkDerivation
, fetchFromGitHub
-, fetchpatch
, cmake
, dxflib
, eigen
@@ -10,6 +9,7 @@
, LASzip
, libLAS
, pdal
+, pcl
, qtbase
, qtsvg
, qttools
@@ -19,30 +19,21 @@
mkDerivation rec {
pname = "cloudcompare";
- version = "2.11.2"; # Remove below patch with the next version bump.
+ # Released version(v2.11.3) doesn't work with packaged PCL.
+ version = "unstable-2021-10-14";
src = fetchFromGitHub {
owner = "CloudCompare";
repo = "CloudCompare";
- rev = "v${version}";
- sha256 = "0sb2h08iaf6zrf54sg6ql6wm63q5vq0kpd3gffdm26z8w6j6wv3s";
+ rev = "1f65ba63756e23291ae91ff52d04da468ade8249";
+ sha256 = "x1bDjFjXIl3r+yo1soWvRB+4KGP50/WBoGlrH013JQo=";
# As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules):
# * libE57Format
# * PoissonRecon
- # In a future version it will also contain
# * CCCoreLib
fetchSubmodules = true;
};
- patches = [
- # TODO: Remove with next CloudCompare release (see https://github.com/CloudCompare/CloudCompare/pull/1478)
- (fetchpatch {
- name = "CloudCompare-fix-for-PDAL-2.3.0.patch";
- url = "https://github.com/CloudCompare/CloudCompare/commit/f3038dcdeb0491c4a653c2ee6fb017326eb676a3.patch";
- sha256 = "0ca5ry987mcgsdawz5yd4xhbsdb5k44qws30srxymzx2djvamwli";
- })
- ];
-
nativeBuildInputs = [
cmake
eigen # header-only
@@ -55,6 +46,7 @@ mkDerivation rec {
LASzip
libLAS
pdal
+ pcl
qtbase
qtsvg
qttools
@@ -63,15 +55,14 @@ mkDerivation rec {
];
cmakeFlags = [
- # TODO: This will become -DCCCORELIB_USE_TBB=ON in a future version, see
- # https://github.com/CloudCompare/CloudCompare/commit/f5a0c9fd788da26450f3fa488b2cf0e4a08d255f
- "-DCOMPILE_CC_CORE_LIB_WITH_TBB=ON"
+ "-DCCCORELIB_USE_TBB=ON"
"-DOPTION_USE_DXF_LIB=ON"
"-DOPTION_USE_GDAL=ON"
"-DOPTION_USE_SHAPE_LIB=ON"
"-DPLUGIN_GL_QEDL=ON"
"-DPLUGIN_GL_QSSAO=ON"
+
"-DPLUGIN_IO_QADDITIONAL=ON"
"-DPLUGIN_IO_QCORE=ON"
"-DPLUGIN_IO_QCSV_MATRIX=ON"
@@ -80,6 +71,8 @@ mkDerivation rec {
"-DPLUGIN_IO_QPDAL=ON" # required for .las/.laz support
"-DPLUGIN_IO_QPHOTOSCAN=ON"
"-DPLUGIN_IO_QRDB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+
+ "-DPLUGIN_STANDARD_QPCL=ON" # Adds PCD import and export support
];
meta = with lib; {
diff --git a/pkgs/applications/graphics/comical/default.nix b/pkgs/applications/graphics/comical/default.nix
index 5c6ec804e62c..36da9d26410e 100644
--- a/pkgs/applications/graphics/comical/default.nix
+++ b/pkgs/applications/graphics/comical/default.nix
@@ -1,13 +1,16 @@
-{lib, stdenv, fetchurl, wxGTK, util-linux, zlib }:
+{ lib, stdenv, fetchurl, wxGTK, util-linux, zlib }:
stdenv.mkDerivation rec {
- name = "comical-0.8";
+ pname = "comical";
+ version = "0.8";
+
src = fetchurl {
- url = "mirror://sourceforge/comical/${name}.tar.gz";
+ url = "mirror://sourceforge/comical/comical-${version}.tar.gz";
sha256 = "0b6527cc06b25a937041f1eb248d0fd881cf055362097036b939817f785ab85e";
};
+
buildInputs = [ wxGTK util-linux zlib ];
- preBuild="makeFlags=\"prefix=$out\"";
+ makeFlags = [ "prefix=${placeholder "out"}" ];
patches = [ ./wxgtk-2.8.patch ];
@@ -17,7 +20,7 @@ stdenv.mkDerivation rec {
description = "Viewer of CBR and CBZ files, often used to store scanned comics";
homepage = "http://comical.sourceforge.net/";
license = lib.licenses.gpl2Plus;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix
index a2b4e949499b..9c25b2784b40 100644
--- a/pkgs/applications/graphics/drawing/default.nix
+++ b/pkgs/applications/graphics/drawing/default.nix
@@ -17,7 +17,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "drawing";
- version = "0.8.0";
+ version = "0.8.3";
format = "other";
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "maoschanz";
repo = pname;
rev = version;
- sha256 = "03cx6acb0ph7b3difshjfddi8ld79wp8d12bdp7dp1q1820j5mz0";
+ sha256 = "sha256-qDLJ+Mw4z66ro9/zoEIzDJpA+jJLYw0WgsP7mA+56XM=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/drawpile/default.nix b/pkgs/applications/graphics/drawpile/default.nix
index fb5308921d4e..09d51db254ba 100644
--- a/pkgs/applications/graphics/drawpile/default.nix
+++ b/pkgs/applications/graphics/drawpile/default.nix
@@ -68,13 +68,13 @@ let
in mkDerivation rec {
pname = "drawpile";
- version = "2.1.19";
+ version = "2.1.20";
src = fetchFromGitHub {
owner = "drawpile";
repo = "drawpile";
rev = version;
- sha256 = "sha256-MNmzcqTHfMms6q3ZilrChE5WoGzGxnAOkB0a75udA1I=";
+ sha256 = "sha256-HjGsaa2BYRNxaQP9e8Z7BkVlIKByC/ta92boGbYHRWQ=";
};
nativeBuildInputs = [ extra-cmake-modules ];
diff --git a/pkgs/applications/graphics/epick/default.nix b/pkgs/applications/graphics/epick/default.nix
new file mode 100644
index 000000000000..f70f072aeaf7
--- /dev/null
+++ b/pkgs/applications/graphics/epick/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+, python3
+, libGL
+, libX11
+, libXcursor
+, libXi
+, libXrandr
+, libxcb
+, libxkbcommon
+, AppKit
+, IOKit
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "epick";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "vv9k";
+ repo = pname;
+ rev = version;
+ sha256 = "0l7m45bqx62nrwi0r4pdwxcq37s7h3nnawk9nq2zpvl9wcgnx3gc";
+ };
+
+ cargoSha256 = "sha256-LERV3+zwt5oVfyueGfxM7HsOha4cuWTkPyvPQwHSZqo=";
+
+ nativeBuildInputs = lib.optional stdenv.isLinux python3;
+
+ buildInputs = lib.optionals stdenv.isLinux [
+ libGL
+ libX11
+ libXcursor
+ libXi
+ libXrandr
+ libxcb
+ libxkbcommon
+ ] ++ lib.optionals stdenv.isDarwin [
+ AppKit
+ IOKit
+ ];
+
+ postFixup = lib.optionalString stdenv.isLinux ''
+ patchelf --set-rpath ${lib.makeLibraryPath buildInputs} $out/bin/epick
+ '';
+
+ meta = with lib; {
+ description = "Simple color picker that lets the user create harmonic palettes with ease";
+ homepage = "https://github.com/vv9k/epick";
+ changelog = "https://github.com/vv9k/epick/blob/${version}/CHANGELOG.md";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ figsoda ];
+ };
+}
diff --git a/pkgs/applications/graphics/exrdisplay/default.nix b/pkgs/applications/graphics/exrdisplay/default.nix
index c31c1407da7e..2bb480a54f4d 100644
--- a/pkgs/applications/graphics/exrdisplay/default.nix
+++ b/pkgs/applications/graphics/exrdisplay/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, fltk, openexr, libGLU, libGL, ctl }:
-stdenv.mkDerivation {
- name ="openexr_viewers-2.2.1";
+stdenv.mkDerivation rec {
+ pname = "openexr_viewers";
+ version = "2.2.1";
src = fetchurl {
- url = "mirror://savannah/openexr/openexr_viewers-2.2.1.tar.gz";
+ url = "mirror://savannah/openexr/openexr_viewers-${version}.tar.gz";
sha256 = "1ixx2wbjp4rvsf7h3bkja010gl1ihjrcjzy7h20jnn47ikg12vj8";
};
diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix
index f2d2e267595c..5f13136d0c8c 100644
--- a/pkgs/applications/graphics/fbida/default.nix
+++ b/pkgs/applications/graphics/fbida/default.nix
@@ -1,25 +1,69 @@
-{ lib, stdenv, fetchurl, libjpeg, libexif, giflib, libtiff, libpng, libwebp, libdrm
-, pkg-config, freetype, fontconfig, which, imagemagick, curl, sane-backends, libXpm
-, epoxy, poppler, mesa, lirc }:
+{ lib
+, stdenv
+, fetchurl
+, libjpeg
+, libexif
+, giflib
+, libtiff
+, libpng
+, libwebp
+, libdrm
+, pkg-config
+, freetype
+, fontconfig
+, which
+, imagemagick
+, curl
+, sane-backends
+, libXpm
+, epoxy
+, poppler
+, mesa
+, lirc
+}:
stdenv.mkDerivation rec {
- name = "fbida-2.14";
+ pname = "fbida";
+ version = "2.14";
src = fetchurl {
- url = "http://dl.bytesex.org/releases/fbida/${name}.tar.gz";
+ url = "http://dl.bytesex.org/releases/fbida/fbida-${version}.tar.gz";
sha256 = "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm";
};
+ patches = [
+ # Upstream patch to fix build on -fno-common toolchains.
+ (fetchurl {
+ name = "no-common.patch";
+ url = "https://git.kraxel.org/cgit/fbida/patch/?id=1bb8a8aa29845378903f3c690e17c0867c820da2";
+ sha256 = "0n5vqbp8wd87q60zfwdf22jirggzngypc02ha34gsj1rd6pvwahi";
+ })
+ ];
+
nativeBuildInputs = [ pkg-config which ];
buildInputs = [
- libexif libjpeg libpng giflib freetype fontconfig libtiff libwebp
- imagemagick curl sane-backends libdrm libXpm epoxy poppler lirc
+ libexif
+ libjpeg
+ libpng
+ giflib
+ freetype
+ fontconfig
+ libtiff
+ libwebp
+ imagemagick
+ curl
+ sane-backends
+ libdrm
+ libXpm
+ epoxy
+ poppler
+ lirc
mesa
];
makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" "JPEG_VER=62" ];
- patchPhase = ''
+ postPatch = ''
sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile
sed -e 's@$(HAVE_LINUX_FB_H)@yes@' -i GNUmakefile
'';
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index cd7b6e95d03d..c279ccf3df64 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -7,11 +7,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "feh";
- version = "3.7.1";
+ version = "3.7.2";
src = fetchurl {
url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
- sha256 = "sha256-V6scph9XyWWVh4Bp9VDTb1GFMPiPoxt0zDnNc5+SWLY=";
+ sha256 = "sha256-hHGP0nIM9UDSRXaElP4OtOWY9Es54jJrrow2ioKcglg=";
};
outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/applications/graphics/fondo/default.nix b/pkgs/applications/graphics/fondo/default.nix
index abcb77f9f8b2..c8d6fc6030d6 100644
--- a/pkgs/applications/graphics/fondo/default.nix
+++ b/pkgs/applications/graphics/fondo/default.nix
@@ -58,15 +58,16 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru.updateScript = nix-update-script {
+ attrPath = pname;
+ };
+
meta = with lib; {
homepage = "https://github.com/calo001/fondo";
description = "Find the most beautiful wallpapers for your desktop";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ AndersonTorres ] ++ teams.pantheon.members;
platforms = platforms.linux;
- };
-
- passthru.updateScript = nix-update-script {
- attrPath = pname;
+ mainProgram = "com.github.calo001.fondo";
};
}
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index ed2434fa5d07..8f5404cf3ae9 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -62,6 +62,7 @@ mkDerivation rec {
ninja
pkg-config
pyside2-tools
+ gfortran
wrapQtAppsHook
];
@@ -70,7 +71,6 @@ mkDerivation rec {
boost
coin3d
eigen
- gfortran
gts
hdf5
libGLU
diff --git a/pkgs/applications/graphics/freepv/default.nix b/pkgs/applications/graphics/freepv/default.nix
index bf990c4d0ef8..d11798a9b290 100644
--- a/pkgs/applications/graphics/freepv/default.nix
+++ b/pkgs/applications/graphics/freepv/default.nix
@@ -1,11 +1,24 @@
-{ lib, stdenv, fetchurl, libjpeg, libGLU, libGL, freeglut, zlib, cmake, libX11, libxml2, libpng,
- libXxf86vm }:
+{ lib
+, stdenv
+, fetchurl
+, libjpeg
+, libGLU
+, libGL
+, freeglut
+, zlib
+, cmake
+, libX11
+, libxml2
+, libpng
+, libXxf86vm
+}:
-stdenv.mkDerivation {
- name = "freepv-0.3.0";
+stdenv.mkDerivation rec {
+ pname = "freepv";
+ version = "0.3.0";
src = fetchurl {
- url = "mirror://sourceforge/freepv/freepv-0.3.0.tar.gz";
+ url = "mirror://sourceforge/freepv/freepv-${version}.tar.gz";
sha256 = "1w19abqjn64w47m35alg7bcdl1p97nf11zn64cp4p0dydihmhv56";
};
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index 08d3f122aab5..86550b873719 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -53,13 +53,13 @@ let
python = python2.withPackages (pp: [ pp.pygtk ]);
in stdenv.mkDerivation rec {
pname = "gimp";
- version = "2.10.24";
+ version = "2.10.28";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
- sha256 = "17lq6ns5qhspd171zqh76yf98xnn5n0hcl7hbhbx63cc6ribf6xx";
+ sha256 = "T03CLP8atfAm/qoqtV4Fd1s6EeGYGGtHvat5y/oHiCY=";
};
patches = [
diff --git a/pkgs/applications/graphics/gocr/default.nix b/pkgs/applications/graphics/gocr/default.nix
index 3c87e62e3d66..21ba4c662c22 100644
--- a/pkgs/applications/graphics/gocr/default.nix
+++ b/pkgs/applications/graphics/gocr/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, tk }:
stdenv.mkDerivation rec {
- name = "gocr-0.52";
+ pname = "gocr";
+ version = "0.52";
src = fetchurl {
- url = "https://www-e.uni-magdeburg.de/jschulen/ocr/${name}.tar.gz";
+ url = "https://www-e.uni-magdeburg.de/jschulen/ocr/gocr-${version}.tar.gz";
sha256 = "11l6gds1lrm8lwrrsxnm5fjlwz8q1xbh896cprrl4psz21in946z";
};
diff --git a/pkgs/applications/graphics/gpicview/default.nix b/pkgs/applications/graphics/gpicview/default.nix
index b661ba562f9d..edafa5612a2d 100644
--- a/pkgs/applications/graphics/gpicview/default.nix
+++ b/pkgs/applications/graphics/gpicview/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, fetchpatch }:
-stdenv.mkDerivation {
- name = "gpicview-0.2.4";
+stdenv.mkDerivation rec {
+ pname = "gpicview";
+ version = "0.2.4";
src = fetchurl {
- url = "mirror://sourceforge/lxde/gpicview-0.2.4.tar.gz";
+ url = "mirror://sourceforge/lxde/gpicview-${version}.tar.gz";
sha256 = "1svcy1c8bgk0pl12yhyv16h2fl52x5vzzcv57z6qdcv5czgvgglr";
};
@@ -15,15 +16,16 @@ stdenv.mkDerivation {
})
];
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ intltool gtk2 ];
+
meta = with lib; {
description = "A simple and fast image viewer for X";
- homepage = "http://lxde.sourceforge.net/gpicview/";
+ homepage = "http://lxde.sourceforge.net/gpicview/";
repositories.git = "git://lxde.git.sourceforge.net/gitroot/lxde/gpicview";
- license = licenses.gpl2;
+ license = licenses.gpl2;
maintainers = with maintainers; [ lovek323 ];
- platforms = platforms.unix;
+ platforms = platforms.unix;
};
-
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ intltool gtk2 ];
}
diff --git a/pkgs/applications/graphics/gqview/default.nix b/pkgs/applications/graphics/gqview/default.nix
index 39f7a42b3b3b..427429404a09 100644
--- a/pkgs/applications/graphics/gqview/default.nix
+++ b/pkgs/applications/graphics/gqview/default.nix
@@ -1,20 +1,17 @@
-{lib, stdenv, fetchurl, pkg-config, gtk2, libpng}:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, libpng }:
-assert pkg-config != null && gtk2 != null && libpng != null;
-# Note that we cannot just copy gtk's png attribute, since gtk might
-# not be linked against png.
-# !!! assert libpng == gtk2.libpng;
-
-stdenv.mkDerivation {
- name = "gqview-2.1.5";
+stdenv.mkDerivation rec {
+ pname = "gqview";
+ version = "2.1.5";
src = fetchurl {
- url = "mirror://sourceforge/gqview/gqview-2.1.5.tar.gz";
+ url = "mirror://sourceforge/gqview/gqview-${version}.tar.gz";
sha256 = "0ilm5s7ps9kg4f5hzgjhg0xhn6zg0v9i7jnd67zrx9h7wsaa9zhj";
};
nativeBuildInputs = [ pkg-config ];
- buildInputs = [ gtk2 libpng];
+
+ buildInputs = [ gtk2 libpng ];
hardeningDisable = [ "format" ];
@@ -25,5 +22,6 @@ stdenv.mkDerivation {
homepage = "http://gqview.sourceforge.net";
license = licenses.gpl2;
platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix
index 13752bfc05db..268e59d910b5 100644
--- a/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
description = "Swiss army knife of image processing";
license = lib.licenses.mit;
platforms = lib.platforms.all;
+ mainProgram = "gm";
};
}
diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix
index b279bb0e70cc..4f76af0afb4f 100644
--- a/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with lib;
perlPackages.buildPerlPackage rec {
pname = "gscan2pdf";
- version = "2.12.1";
+ version = "2.12.3";
src = fetchurl {
url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
- sha256 = "0x20wpqqw6534rn73660zdfy4c3jpg2n31py566k0x2nd6g0mhg5";
+ sha256 = "tdXTcoI7DnrBsXtXR0r07hz0lDcAjZJad+o4wwxHcOk=";
};
nativeBuildInputs = [ wrapGAppsHook ];
@@ -111,6 +111,8 @@ perlPackages.buildPerlPackage rec {
# # Looks like you failed 1 test of 1.
# t/169_import_scan.t ........................... Dubious, test returned 1 (wstat 256, 0x100)
rm t/169_import_scan.t
+ # t/1604_import_multipage_DjVu.t ................ Dubious, test returned 255 (wstat 65280, 0xff00)
+ rm t/1604_import_multipage_DjVu.t
# Disable a test which passes but reports an incorrect status
# t/0601_Dialog_Scan.t .......................... All 14 subtests passed
diff --git a/pkgs/applications/graphics/gthumb/default.nix b/pkgs/applications/graphics/gthumb/default.nix
index 50e1babda2ac..d412c6fded87 100644
--- a/pkgs/applications/graphics/gthumb/default.nix
+++ b/pkgs/applications/graphics/gthumb/default.nix
@@ -33,11 +33,11 @@
stdenv.mkDerivation rec {
pname = "gthumb";
- version = "3.11.4";
+ version = "3.12.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-3ZsPiUXX34Ev/a3OyMO94dyXZyMy4AVt5Cp/ELZLIGw=";
+ sha256 = "sha256-Pe/8AwOE5ktXNhxDfHm0ga4Uie9EyHroVugbsQ2OOD8=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix
index a83070e5e6b6..ec2ac709f868 100644
--- a/pkgs/applications/graphics/hugin/default.nix
+++ b/pkgs/applications/graphics/hugin/default.nix
@@ -1,14 +1,46 @@
-{ lib, stdenv, cmake, fetchurl, gnumake, makeWrapper, pkg-config, fetchpatch
-, autopanosiftc, boost, cairo, enblend-enfuse, exiv2, fftw, flann, gettext
-, glew, ilmbase, lcms2, lensfun, libjpeg, libpng, libtiff, libX11, libXi
-, libXmu, libGLU, libGL, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
+{ lib
+, stdenv
+, cmake
+, fetchurl
+, gnumake
+, makeWrapper
+, pkg-config
+, fetchpatch
+, autopanosiftc
+, boost
+, cairo
+, enblend-enfuse
+, exiv2
+, fftw
+, flann
+, gettext
+, glew
+, ilmbase
+, lcms2
+, lensfun
+, libjpeg
+, libpng
+, libtiff
+, libX11
+, libXi
+, libXmu
+, libGLU
+, libGL
+, openexr
+, panotools
+, perlPackages
+, sqlite
+, vigra
+, wxGTK
+, zlib
}:
stdenv.mkDerivation rec {
- name = "hugin-2019.0.0";
+ pname = "hugin";
+ version = "2019.0.0";
src = fetchurl {
- url = "mirror://sourceforge/hugin/${name}.tar.bz2";
+ url = "mirror://sourceforge/hugin/hugin-${version}.tar.bz2";
sha256 = "1l925qslp98gg7yzmgps10h6dq0nb60wbfk345anlxsv0g2ifizr";
};
@@ -21,9 +53,30 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- boost cairo exiv2 fftw flann gettext glew ilmbase lcms2 lensfun libjpeg
- libpng libtiff libX11 libXi libXmu libGLU libGL openexr panotools sqlite vigra
- wxGTK zlib
+ boost
+ cairo
+ exiv2
+ fftw
+ flann
+ gettext
+ glew
+ ilmbase
+ lcms2
+ lensfun
+ libjpeg
+ libpng
+ libtiff
+ libX11
+ libXi
+ libXmu
+ libGLU
+ libGL
+ openexr
+ panotools
+ sqlite
+ vigra
+ wxGTK
+ zlib
];
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index b429f5fb65bb..f5ea3f6f1af4 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
- version = "454";
+ version = "461";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "v${version}";
- sha256 = "sha256-AX72fOiwp/CLaaGxBBKlcRskwayHCeUC2/FGUoXp3lU=";
+ sha256 = "sha256-fVqMSzQ4VhiRh6gDFApln1jioIDs80ceyV+ClNRhjKA=";
};
nativeBuildInputs = [
@@ -71,6 +71,7 @@ python3Packages.buildPythonPackage rec {
-e TestClientThreading \
-e TestDialogs \
-e TestFunctions \
+ -e TestHydrusNetwork \
-e TestHydrusNATPunch \
-e TestHydrusSerialisable \
-e TestHydrusServer \
diff --git a/pkgs/applications/graphics/ideogram/default.nix b/pkgs/applications/graphics/ideogram/default.nix
index f9b123ddb40b..bc608c6735ff 100644
--- a/pkgs/applications/graphics/ideogram/default.nix
+++ b/pkgs/applications/graphics/ideogram/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
maintainers = teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "com.github.cassidyjames.ideogram";
};
}
diff --git a/pkgs/applications/graphics/image-roll/default.nix b/pkgs/applications/graphics/image-roll/default.nix
new file mode 100644
index 000000000000..eb5761fbd554
--- /dev/null
+++ b/pkgs/applications/graphics/image-roll/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, glib
+, pkg-config
+, wrapGAppsHook
+, gtk3
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "image-roll";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ owner = "weclaw1";
+ repo = pname;
+ rev = version;
+ sha256 = "007jzmrn4cnqbi6fy5lxanbwa4pc72fbcv9irk3pfd0wspp05s8j";
+ };
+
+ cargoSha256 = "sha256-dRRBfdGTXtoNbp7OWqOdNECXHCpj0ipkCOvcdekW+G4=";
+
+ nativeBuildInputs = [ glib pkg-config wrapGAppsHook ];
+
+ buildInputs = [ gtk3 ];
+
+ meta = with lib; {
+ description = "Simple and fast GTK image viewer with basic image manipulation tools";
+ homepage = "https://github.com/weclaw1/image-roll";
+ license = licenses.mit;
+ maintainers = with maintainers; [ figsoda ];
+ };
+}
diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/applications/graphics/imgbrd-grabber/default.nix
index c0115d95ac80..e9f415f722dc 100644
--- a/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/pkgs/applications/graphics/imgbrd-grabber/default.nix
@@ -6,6 +6,7 @@
, qttools
, qtscript
, qtdeclarative
+, qtnetworkauth
, qtbase
, autogen
, automake
@@ -17,15 +18,16 @@
, rsync
, typescript
}:
+
stdenv.mkDerivation rec {
pname = "imgbrd-grabber";
+ version = "7.5.1";
- version = "7.3.2";
src = fetchFromGitHub {
owner = "Bionus";
repo = "imgbrd-grabber";
rev = "v${version}";
- sha256 = "053rwvcr88fcba0447a6r115cgnqsm9rl066z8d5jacqnhdij58k";
+ sha256 = "sha256-40JCdtRhAQpz2lBGmYh2MgA9rRzHmOZx7lWW0IbfjP4=";
fetchSubmodules = true;
};
@@ -41,6 +43,7 @@ stdenv.mkDerivation rec {
qtbase
qtdeclarative
qttools
+ qtnetworkauth
nodejs
cmake
wrapQtAppsHook
@@ -67,6 +70,8 @@ stdenv.mkDerivation rec {
# link the catch2 sources from nixpkgs
ln -sf ${catch2.src} tests/src/vendor/catch
+
+ sed "s|strict\": true|strict\": false|g" -i ./sites/tsconfig.json
'';
postInstall = ''
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index c65dfa1b6c08..338731661190 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ stdenv
+, lib
, boehmgc
, boost
, cairo
@@ -52,11 +53,11 @@ let
in
stdenv.mkDerivation rec {
pname = "inkscape";
- version = "1.1";
+ version = "1.1.1";
src = fetchurl {
url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.xz";
- sha256 = "sha256-cebozj/fcC9Z28SidmZeuYLreCKwKbvb7O0t9DAXleY=";
+ sha256 = "sha256-rsoLnTO1sc+pqnBDO97mqMPQIP+vwubwyaYO7Xp5eK8=";
};
# Inkscape hits the ARGMAX when linking on macOS. It appears to be
diff --git a/pkgs/applications/graphics/inkscape/extensions/applytransforms/default.nix b/pkgs/applications/graphics/inkscape/extensions/applytransforms/default.nix
index 131daffffb9d..f1bac3dd76c4 100644
--- a/pkgs/applications/graphics/inkscape/extensions/applytransforms/default.nix
+++ b/pkgs/applications/graphics/inkscape/extensions/applytransforms/default.nix
@@ -6,7 +6,7 @@
stdenv.mkDerivation {
pname = "inkscape-applytransforms";
- version = "0.0.0+unstable=2021-05-11";
+ version = "0.pre+unstable=2021-05-11";
src = fetchFromGitHub {
owner = "Klowner";
diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix
index 72c79d7dc501..c454ed0422d1 100644
--- a/pkgs/applications/graphics/ipe/default.nix
+++ b/pkgs/applications/graphics/ipe/default.nix
@@ -1,7 +1,9 @@
{ lib
, mkDerivation
+, makeDesktopItem
, fetchurl
, pkg-config
+, copyDesktopItems
, cairo
, freetype
, ghostscript
@@ -26,7 +28,7 @@ mkDerivation rec {
sourceRoot = "${pname}-${version}/src";
- nativeBuildInputs = [ pkg-config ];
+ nativeBuildInputs = [ pkg-config copyDesktopItems ];
buildInputs = [
cairo
@@ -42,19 +44,39 @@ mkDerivation rec {
zlib
];
- IPEPREFIX=placeholder "out";
- URWFONTDIR="${texlive}/texmf-dist/fonts/type1/urw/";
+ IPEPREFIX = placeholder "out";
+ URWFONTDIR = "${texlive}/texmf-dist/fonts/type1/urw/";
LUA_PACKAGE = "lua";
- qtWrapperArgs = [ "--prefix PATH : ${texlive}/bin" ];
+ qtWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ texlive ]}" ];
enableParallelBuilding = true;
- # TODO: make .desktop entry
+ desktopItems = [
+ (makeDesktopItem {
+ name = pname;
+ desktopName = "Ipe";
+ genericName = "Drawing editor";
+ comment = "A drawing editor for creating figures in PDF format";
+ exec = "ipe";
+ icon = "ipe";
+ mimeType = "text/xml;application/pdf";
+ categories = "Graphics;Qt;";
+ extraDesktopEntries = {
+ StartupWMClass = "ipe";
+ StartupNotify = "true";
+ };
+ })
+ ];
+
+ postInstall = ''
+ mkdir -p $out/share/icons/hicolor/128x128/apps
+ ln -s $out/share/ipe/${version}/icons/icon_128x128.png $out/share/icons/hicolor/128x128/apps/ipe.png
+ '';
meta = with lib; {
description = "An editor for drawing figures";
- homepage = "http://ipe.otfried.org"; # https not available
+ homepage = "http://ipe.otfried.org"; # https not available
license = licenses.gpl3Plus;
longDescription = ''
Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
diff --git a/pkgs/applications/graphics/krita/beta.nix b/pkgs/applications/graphics/krita/beta.nix
new file mode 100644
index 000000000000..7733c1248fc2
--- /dev/null
+++ b/pkgs/applications/graphics/krita/beta.nix
@@ -0,0 +1,7 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+ version = "5.0.0-beta2";
+ kde-channel = "unstable";
+ sha256 = "0hwh6k40f4kmwg14dy0vvm0m8cx8n0q67lrrc620da9mign3hjs7";
+})
diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix
index 3a86d1d4cc73..7e0a8915c408 100644
--- a/pkgs/applications/graphics/krita/default.nix
+++ b/pkgs/applications/graphics/krita/default.nix
@@ -1,53 +1,7 @@
-{ mkDerivation, lib, stdenv, makeWrapper, fetchurl, cmake, extra-cmake-modules
-, karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons
-, kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
-, kio, kcrash, breeze-icons
-, boost, libraw, fftw, eigen, exiv2, libheif, lcms2, gsl, openexr, giflib
-, openjpeg, opencolorio_1, vc, poppler, curl, ilmbase
-, qtmultimedia, qtx11extras, quazip
-, python3Packages
-}:
+{ callPackage, ... } @ args:
-mkDerivation rec {
- pname = "krita";
- version = "4.4.7";
-
- src = fetchurl {
- url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
- sha256 = "sha256-I6fFxPRCcRU5dyFXZPvGvTb9MuGikrvTaGCXpp4LRRk=";
- };
-
- nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip_4 makeWrapper ];
-
- buildInputs = [
- karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
- ki18n kitemmodels kitemviews kwindowsystem kio kcrash breeze-icons
- boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib
- openjpeg opencolorio_1 poppler curl ilmbase
- qtmultimedia qtx11extras quazip
- python3Packages.pyqt5
- ] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
-
- NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]
- ++ lib.optional stdenv.cc.isGNU "-Wno-deprecated-copy";
-
- cmakeFlags = [
- "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
- "-DPYQT_SIP_DIR_OVERRIDE=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
- "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
- ];
-
- postInstall = ''
- for i in $out/bin/*; do
- wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
- done
- '';
-
- meta = with lib; {
- description = "A free and open source painting application";
- homepage = "https://krita.org/";
- maintainers = with maintainers; [ abbradar ];
- platforms = platforms.linux;
- license = licenses.gpl3Only;
- };
-}
+callPackage ./generic.nix (args // {
+ version = "4.4.8";
+ kde-channel = "stable";
+ sha256 = "1y0d8gnxfdg5nfwk8dgx8fc2bwskvnys049napb1a9fr25bqmimw";
+})
diff --git a/pkgs/applications/graphics/krita/generic.nix b/pkgs/applications/graphics/krita/generic.nix
new file mode 100644
index 000000000000..efaf341b1f64
--- /dev/null
+++ b/pkgs/applications/graphics/krita/generic.nix
@@ -0,0 +1,59 @@
+{ mkDerivation, lib, stdenv, makeWrapper, fetchurl, cmake, extra-cmake-modules
+, karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons
+, kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
+, kio, kcrash, breeze-icons
+, boost, libraw, fftw, eigen, exiv2, libheif, lcms2, gsl, openexr, giflib
+, openjpeg, opencolorio_1, vc, poppler, curl, ilmbase
+, qtmultimedia, qtx11extras, quazip
+, python3Packages
+
+, version
+, kde-channel
+, sha256
+
+, callPackage
+}:
+
+mkDerivation rec {
+ pname = "krita";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://download.kde.org/${kde-channel}/${pname}/${version}/${pname}-${version}.tar.gz";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip_4 makeWrapper ];
+
+ buildInputs = [
+ karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
+ ki18n kitemmodels kitemviews kwindowsystem kio kcrash breeze-icons
+ boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib
+ openjpeg opencolorio_1 poppler curl ilmbase
+ qtmultimedia qtx11extras quazip
+ python3Packages.pyqt5
+ ] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
+
+ NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]
+ ++ lib.optional stdenv.cc.isGNU "-Wno-deprecated-copy";
+
+ cmakeFlags = [
+ "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
+ "-DPYQT_SIP_DIR_OVERRIDE=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
+ "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+ ];
+
+ postInstall = ''
+ for i in $out/bin/*; do
+ wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
+ done
+ '';
+
+ meta = with lib; {
+ description = "A free and open source painting application";
+ homepage = "https://krita.org/";
+ maintainers = with maintainers; [ abbradar ];
+ platforms = platforms.linux;
+ license = licenses.gpl3Only;
+ };
+}
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index c5d09f61277b..cc6c4f42e640 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
stdenv.mkDerivation rec {
pname = "lightburn";
- version = "1.0.01";
+ version = "1.0.02";
nativeBuildInputs = [
p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
- sha256 = "sha256-UnTZcZjR8edHGflThkiu6OeWJU9x/bH/Ml/CRwWYgFU=";
+ sha256 = "sha256-JaKThw6ubutpOCsO1pVAPVxhhUTKpfYRHjBSu02nlN4=";
};
buildInputs = [
diff --git a/pkgs/applications/graphics/mandelbulber/default.nix b/pkgs/applications/graphics/mandelbulber/default.nix
index 9ac853c896e8..a113136c248a 100644
--- a/pkgs/applications/graphics/mandelbulber/default.nix
+++ b/pkgs/applications/graphics/mandelbulber/default.nix
@@ -19,13 +19,13 @@ assert withOpenCL -> ocl-icd != null;
mkDerivation rec {
pname = "mandelbulber";
- version = "2.24";
+ version = "2.26";
src = fetchFromGitHub {
owner = "buddhi1980";
repo = "mandelbulber2";
rev = version;
- sha256 = "sha256-JgpYGzD2FsqcCWnOKBiVCxUKqLfT4S++uUBZekhGWmA=";
+ sha256 = "sha256-RKpg7LBsrBFOlFozoDcALwGeZ9whPiCpFMZF5ljsp7Q=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/minidjvu/default.nix b/pkgs/applications/graphics/minidjvu/default.nix
index 40b28dd8566a..f0693cc6121f 100644
--- a/pkgs/applications/graphics/minidjvu/default.nix
+++ b/pkgs/applications/graphics/minidjvu/default.nix
@@ -1,9 +1,11 @@
-{lib, stdenv, fetchurl, libtiff, gettext }:
+{ lib, stdenv, fetchurl, libtiff, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "minidjvu";
+ version = "0.8";
-stdenv.mkDerivation {
- name = "minidjvu-0.8";
src = fetchurl {
- url = "mirror://sourceforge/minidjvu/minidjvu-0.8.tar.gz";
+ url = "mirror://sourceforge/minidjvu/minidjvu-${version}.tar.gz";
sha256 = "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79";
};
@@ -11,7 +13,7 @@ stdenv.mkDerivation {
sed -i s,/usr/bin/gzip,gzip, Makefile.in
'';
- buildInputs = [ libtiff gettext];
+ buildInputs = [ libtiff gettext ];
preInstall = ''
mkdir -p $out/lib
diff --git a/pkgs/applications/graphics/monado/default.nix b/pkgs/applications/graphics/monado/default.nix
index fe5f99de121f..219613ad0ce5 100644
--- a/pkgs/applications/graphics/monado/default.nix
+++ b/pkgs/applications/graphics/monado/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitLab
+, fetchpatch
, writeText
, cmake
, doxygen
@@ -54,6 +55,15 @@ stdenv.mkDerivation rec {
sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc";
};
+ patches = [
+ # https://github.com/NixOS/nixpkgs/issues/137245
+ # Fix warning after Vulkan 1.2.174 VK_NULL_HANDLE change
+ (fetchpatch {
+ url = "https://gitlab.freedesktop.org/monado/monado/-/commit/c47775a95d8e139a2f234063793eb6726f830510.patch";
+ sha256 = "093ymvi9ifpk4vyjcwhhci9cnscxwbv5f80xdbppcqa0j92nmkmp";
+ })
+ ];
+
nativeBuildInputs = [
cmake
doxygen
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index c7be99469b05..be079b6bdb20 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -65,8 +65,6 @@ mkDerivation rec {
mv $out/bin/*.app $out/Applications
rmdir $out/bin || true
- wrapQtApp "$out"/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD
-
mv --target-directory=$out/Applications/OpenSCAD.app/Contents/Resources \
$out/share/openscad/{examples,color-schemes,locale,libraries,fonts,templates}
diff --git a/pkgs/applications/graphics/photivo/default.nix b/pkgs/applications/graphics/photivo/default.nix
index 4acb50e200fd..338f716e9bbd 100644
--- a/pkgs/applications/graphics/photivo/default.nix
+++ b/pkgs/applications/graphics/photivo/default.nix
@@ -1,8 +1,22 @@
-{ lib, stdenv, fetchhg, fetchpatch, cmake, qt4, fftw, graphicsmagick_q16,
- lcms2, lensfun, pkg-config, libjpeg, exiv2, liblqr1 }:
+{ lib
+, stdenv
+, fetchhg
+, fetchpatch
+, cmake
+, qt4
+, fftw
+, graphicsmagick_q16
+, lcms2
+, lensfun
+, pkg-config
+, libjpeg
+, exiv2
+, liblqr1
+}:
stdenv.mkDerivation {
- name = "photivo-2014-01-25";
+ pname = "photivo";
+ version = "2014-01-25";
src = fetchhg {
url = "http://code.google.com/p/photivo/";
diff --git a/pkgs/applications/graphics/photoflow/default.nix b/pkgs/applications/graphics/photoflow/default.nix
index 79a171d6fc3f..46e5ce420a78 100644
--- a/pkgs/applications/graphics/photoflow/default.nix
+++ b/pkgs/applications/graphics/photoflow/default.nix
@@ -86,5 +86,9 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
# sse3 is not supported on aarch64
badPlatforms = [ "aarch64-linux" ];
+ # added 2021-09-30
+ # upstream seems pretty dead
+ #/build/source/src/operations/denoise.cc:30:10: fatal error: vips/cimg_funcs.h: No such file or directory
+ broken = true;
};
}
diff --git a/pkgs/applications/graphics/pinta/default.nix b/pkgs/applications/graphics/pinta/default.nix
index 2635b2d3d886..66804fc3110b 100644
--- a/pkgs/applications/graphics/pinta/default.nix
+++ b/pkgs/applications/graphics/pinta/default.nix
@@ -1,14 +1,18 @@
-{ lib, fetchFromGitHub, buildDotnetPackage, dotnetPackages, gtksharp,
- gettext }:
+{ lib
+, fetchFromGitHub
+, buildDotnetPackage
+, dotnetPackages
+, gtksharp
+, gettext
+}:
let
mono-addins = dotnetPackages.MonoAddins;
in
buildDotnetPackage rec {
- name = "pinta-1.6";
-
baseName = "Pinta";
version = "1.6";
+
outputFiles = [ "bin/*" ];
buildInputs = [ gtksharp mono-addins gettext ];
xBuildFiles = [ "Pinta.sln" ];
@@ -37,23 +41,25 @@ buildDotnetPackage rec {
"Mono\\.Addins\\.Setup"
];
- stripVersion = name: file: let
+ stripVersion = name: file:
+ let
match = '' gimp != null;
-
stdenv.mkDerivation rec {
- name = "xsane-0.999";
+ pname = "xsane";
+ version = "0.999";
src = fetchurl {
- url = "http://www.xsane.org/download/${name}.tar.gz";
+ url = "http://www.xsane.org/download/xsane-${version}.tar.gz";
sha256 = "0jrb918sfb9jw3vmrz0z7np4q55hgsqqffpixs0ir5nwcwzd50jp";
};
@@ -19,15 +27,15 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ pkg-config ];
- buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 ]
- ++ (if libusb-compat-0_1 != null then [libusb-compat-0_1] else [])
+
+ buildInputs = [ libpng libusb-compat-0_1 sane-backends sane-frontends libX11 gtk2 ]
++ lib.optional gimpSupport gimp;
- meta = {
+ meta = with lib; {
homepage = "http://www.sane-project.org/";
description = "Graphical scanning frontend for sane";
- license = lib.licenses.gpl2Plus;
- maintainers = with lib.maintainers; [peti];
- platforms = with lib.platforms; linux;
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/graphics/scantailor/default.nix b/pkgs/applications/graphics/scantailor/default.nix
index 898cc3336a55..a0e52ab5d303 100644
--- a/pkgs/applications/graphics/scantailor/default.nix
+++ b/pkgs/applications/graphics/scantailor/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
+{ lib, stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
-stdenv.mkDerivation {
- name = "scantailor-0.9.12.1";
+stdenv.mkDerivation rec {
+ pname = "scantailor";
+ version = "0.9.12.1";
src = fetchurl {
- url = "https://github.com/scantailor/scantailor/archive/RELEASE_0_9_12_1.tar.gz";
+ url = "https://github.com/scantailor/scantailor/archive/RELEASE_${lib.replaceStrings ["."] ["_"] version}.tar.gz";
sha256 = "1pjx3a6hs16az6rki59bchy3biy7jndjx8r125q01aq7lbf5npgg";
};
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 78b30ad44e03..56d41d3dd503 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -41,11 +41,11 @@
stdenv.mkDerivation rec {
pname = "shotwell";
- version = "0.31.3";
+ version = "0.30.14";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1wkahbnnfxmi1jc5zmm3h761nrnkdks8lk0rj38bfkwg90h6zqwd";
+ sha256 = "sha256-McLkgzkI02GcssNnWgXw2lnCuqduKLkFOF/VbADBKJU=";
};
nativeBuildInputs = [
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
- versionPolicy = "none";
+ versionPolicy = "odd-unstable";
};
};
diff --git a/pkgs/applications/graphics/shutter/default.nix b/pkgs/applications/graphics/shutter/default.nix
index c7e55be9f041..a6430f4889b9 100644
--- a/pkgs/applications/graphics/shutter/default.nix
+++ b/pkgs/applications/graphics/shutter/default.nix
@@ -10,6 +10,7 @@
, procps
, libwnck
, libappindicator-gtk3
+, xdg-utils
}:
let
@@ -64,13 +65,13 @@ let
in
stdenv.mkDerivation rec {
pname = "shutter";
- version = "0.99";
+ version = "0.99.2";
src = fetchFromGitHub {
owner = "shutter-project";
repo = "shutter";
rev = "v${version}";
- sha256 = "sha256-n5M+Ggk8ulJQMWjAW+/fC8fbqiBGzsx6IXlYxvf8utA=";
+ sha256 = "sha256-o95skSr6rszh0wsHQTpu1GjqCDmde7aygIP+i4XQW9A=";
};
nativeBuildInputs = [ wrapGAppsHook ];
@@ -81,6 +82,7 @@ stdenv.mkDerivation rec {
librsvg
libwnck
libappindicator-gtk3
+ hicolor-icon-theme
] ++ perlModules;
makeFlags = [
@@ -94,9 +96,7 @@ stdenv.mkDerivation rec {
preFixup = ''
gappsWrapperArgs+=(
--set PERL5LIB ${perlPackages.makePerlPath perlModules} \
- --prefix PATH : ${lib.makeBinPath [ imagemagick ] } \
- --suffix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
- --set GDK_PIXBUF_MODULE_FILE $GDK_PIXBUF_MODULE_FILE
+ --prefix PATH : ${lib.makeBinPath [ imagemagick xdg-utils ] }
)
'';
diff --git a/pkgs/applications/graphics/smartdeblur/default.nix b/pkgs/applications/graphics/smartdeblur/default.nix
index 6a835fb3c71a..c82e22ae0ca8 100644
--- a/pkgs/applications/graphics/smartdeblur/default.nix
+++ b/pkgs/applications/graphics/smartdeblur/default.nix
@@ -1,15 +1,14 @@
-{ fetchurl, lib, stdenv, cmake, qt4, fftw }:
+{ lib, stdenv, fetchFromGitHub, cmake, qt4, fftw }:
-let
- rev = "9895036d26";
-in
stdenv.mkDerivation rec {
- name = "smartdeblur-git-${rev}";
+ pname = "smartdeblur";
+ version = "unstable-2013-01-09";
- src = fetchurl {
- url = "https://github.com/Y-Vladimir/SmartDeblur/tarball/${rev}";
- name = "${name}.tar.gz";
- sha256 = "126x9x1zhqdarjz9in0p1qhmqg3jwz7frizadjvx723g2ppi33s4";
+ src = fetchFromGitHub {
+ owner = "Y-Vladimir";
+ repo = "SmartDeblur";
+ rev = "9895036d26cbb823a9ade28cdcb26fd0ac37258e";
+ sha256 = "sha256-+EbqEpOG1fj2OKmlz8NRF/CGfT2OYGwY5/lwJHCHaMw=";
};
preConfigure = ''
@@ -21,11 +20,11 @@ stdenv.mkDerivation rec {
cmakeFlags = [ "-DUSE_SYSTEM_FFTW=ON" ];
- meta = {
+ meta = with lib; {
homepage = "https://github.com/Y-Vladimir/SmartDeblur";
description = "Tool for restoring blurry and defocused images";
- license = lib.licenses.gpl3;
- maintainers = with lib.maintainers; [ ];
- platforms = with lib.platforms; linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/graphics/weylus/default.nix b/pkgs/applications/graphics/weylus/default.nix
new file mode 100644
index 000000000000..f2cdfa2990e9
--- /dev/null
+++ b/pkgs/applications/graphics/weylus/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, dbus
+, stdenv
+, gst_all_1
+, xorg
+, libdrm
+, libva
+, fetchzip
+, copyDesktopItems
+, fontconfig
+, libpng
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "weylus";
+ version = "0.11.4";
+
+ src = fetchzip {
+ url = "https://github.com/H-M-H/Weylus/releases/download/v${version}/linux.zip";
+ sha256 = "sha256-EW3TdI4F4d4X/BeSqI05QtS77ym1U5jdswFfNtSFyFk=";
+ stripRoot = false;
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 ./weylus $out/bin/weylus
+ copyDesktopItems ./weylus.desktop
+
+ runHook postInstall
+ '';
+
+ buildInputs = [
+ libpng
+ dbus
+ libdrm
+ fontconfig
+ libva
+ gst_all_1.gst-plugins-base
+ # autoPatchelfHook complains if these are missing, even on wayland
+ xorg.libXft
+ xorg.libXinerama
+ xorg.libXcursor
+ xorg.libXrandr
+ xorg.libXcomposite
+ xorg.libXtst
+ ];
+
+ nativeBuildInputs = [ copyDesktopItems autoPatchelfHook ];
+
+ meta = with lib; {
+ description = "Use your tablet as graphic tablet/touch screen on your computer";
+ homepage = "https://github.com/H-M-H/Weylus";
+ license = with licenses; [ agpl3Only ];
+ maintainers = with maintainers; [ legendofmiracles ];
+ };
+}
diff --git a/pkgs/applications/graphics/wings/default.nix b/pkgs/applications/graphics/wings/default.nix
index ef8d4b5096e6..53f658590739 100644
--- a/pkgs/applications/graphics/wings/default.nix
+++ b/pkgs/applications/graphics/wings/default.nix
@@ -1,9 +1,11 @@
{ fetchurl, lib, stdenv, erlang, cl, libGL, libGLU, runtimeShell }:
stdenv.mkDerivation rec {
- name = "wings-2.2.4";
+ pname = "wings";
+ version = "2.2.4";
+
src = fetchurl {
- url = "mirror://sourceforge/wings/${name}.tar.bz2";
+ url = "mirror://sourceforge/wings/wings-${version}.tar.bz2";
sha256 = "1xcmifs4vq2810pqqvsjsm8z3lz24ys4c05xkh82nyppip2s89a3";
};
@@ -24,13 +26,13 @@ stdenv.mkDerivation rec {
# I did not test the *cl* part. I added the -pa just by imitation.
installPhase = ''
- mkdir -p $out/bin $out/lib/${name}/ebin
- cp ebin/* $out/lib/${name}/ebin
- cp -R textures shaders plugins $out/lib/$name
+ mkdir -p $out/bin $out/lib/wings-${version}/ebin
+ cp ebin/* $out/lib/wings-${version}/ebin
+ cp -R textures shaders plugins $out/lib/wings-${version}
cat << EOF > $out/bin/wings
#!${runtimeShell}
${erlang}/bin/erl \
- -pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
+ -pa $out/lib/wings-${version}/ebin -run wings_start start_halt "$@"
EOF
chmod +x $out/bin/wings
'';
@@ -39,7 +41,7 @@ stdenv.mkDerivation rec {
homepage = "http://www.wings3d.com/";
description = "Subdivision modeler inspired by Nendo and Mirai from Izware";
license = lib.licenses.tcltk;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/pkgs/applications/kde/akregator.nix b/pkgs/applications/kde/akregator.nix
index 5cacfe0c04f0..9cb23ad35ac5 100644
--- a/pkgs/applications/kde/akregator.nix
+++ b/pkgs/applications/kde/akregator.nix
@@ -12,6 +12,8 @@
mkDerivation {
pname = "akregator";
meta = {
+ homepage = "https://apps.kde.org/akregator/";
+ description = "KDE feed reader";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index ef27380a3308..508f7e79f55e 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -30,6 +30,7 @@ mkDerivation {
qtWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath extraTools) ];
meta = with lib; {
+ homepage = "https://apps.kde.org/ark/";
description = "Graphical file compression/decompression utility";
license = with licenses; [ gpl2 lgpl3 ] ++ optional unfreeEnableUnrar unfree;
maintainers = [ maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 686007588410..9bfe71e196e0 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -4,8 +4,8 @@
READ THIS FIRST
-This module is for official packages in the KDE Applications Bundle. All
-available packages are listed in `./srcs.nix`, although some are not yet
+This module is for official packages in the KDE Gear. All available
+packages are listed in `./srcs.nix`, although some are not yet
packaged in Nixpkgs (see below).
IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE.
@@ -174,6 +174,7 @@ let
ksquares = callPackage ./ksquares.nix {};
kqtquickcharts = callPackage ./kqtquickcharts.nix {};
kpkpass = callPackage ./kpkpass.nix {};
+ kpublictransport = callPackage ./kpublictransport.nix {};
kreversi = callPackage ./kreversi.nix {};
krdc = callPackage ./krdc.nix {};
krfb = callPackage ./krfb.nix {};
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 83f698b8977c..92d256f47709 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -11,6 +11,8 @@
mkDerivation {
pname = "dolphin";
meta = {
+ homepage = "https://apps.kde.org/dolphin/";
+ description = "KDE file manager";
license = with lib.licenses; [ gpl2 fdl12 ];
maintainers = [ lib.maintainers.ttuegel ];
broken = lib.versionOlder qtbase.version "5.14";
diff --git a/pkgs/applications/kde/dragon.nix b/pkgs/applications/kde/dragon.nix
index 0483d535c9a6..4fb5583a8ff9 100644
--- a/pkgs/applications/kde/dragon.nix
+++ b/pkgs/applications/kde/dragon.nix
@@ -10,6 +10,7 @@
mkDerivation {
pname = "dragon";
meta = {
+ homepage = "https://apps.kde.org/dragonplayer/";
license = with lib.licenses; [ gpl2 fdl12 ];
description = "A simple media player for KDE";
maintainers = [ lib.maintainers.jonathanreeve ];
diff --git a/pkgs/applications/kde/elisa.nix b/pkgs/applications/kde/elisa.nix
index 6252e53078f3..cdcca2cc9bb2 100644
--- a/pkgs/applications/kde/elisa.nix
+++ b/pkgs/applications/kde/elisa.nix
@@ -40,6 +40,7 @@ mkDerivation rec {
];
meta = with lib; {
+ homepage = "https://apps.kde.org/elisa/";
description = "A simple media player for KDE";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index 73da15cc3c05..f4eb1b85965d 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/21.08.0/src -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.3/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index 95a89b01b8cd..64592ab99443 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -7,6 +7,8 @@
mkDerivation {
pname = "filelight";
meta = {
+ description = "Disk usage statistics";
+ homepage = "https://apps.kde.org/filelight/";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ fridh vcunat ];
broken = lib.versionOlder qtbase.version "5.13";
diff --git a/pkgs/applications/kde/gwenview.nix b/pkgs/applications/kde/gwenview.nix
index 5fe126c04e63..27d676303f9b 100644
--- a/pkgs/applications/kde/gwenview.nix
+++ b/pkgs/applications/kde/gwenview.nix
@@ -9,6 +9,8 @@
mkDerivation {
pname = "gwenview";
meta = {
+ homepage = "https://apps.kde.org/gwenview/";
+ description = "KDE image viewer";
license = with lib.licenses; [ gpl2 fdl12 ];
maintainers = [ lib.maintainers.ttuegel ];
};
diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix
index eed3a4fac12a..728260120a5e 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "k3b";
meta = with lib; {
+ homepage = "https://apps.kde.org/k3b/";
+ description = "Disk burning application";
license = with licenses; [ gpl2Plus ];
maintainers = with maintainers; [ sander phreedom ];
platforms = platforms.linux;
diff --git a/pkgs/applications/kde/kaddressbook.nix b/pkgs/applications/kde/kaddressbook.nix
index 2672d815fb0a..7a2a319c655a 100644
--- a/pkgs/applications/kde/kaddressbook.nix
+++ b/pkgs/applications/kde/kaddressbook.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "kaddressbook";
meta = {
+ homepage = "https://apps.kde.org/kaddressbook/";
+ description = "KDE contact manager";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/kalarm.nix b/pkgs/applications/kde/kalarm.nix
index 8239cdf08643..869a0f6ac670 100644
--- a/pkgs/applications/kde/kalarm.nix
+++ b/pkgs/applications/kde/kalarm.nix
@@ -19,6 +19,8 @@
mkDerivation {
pname = "kalarm";
meta = {
+ homepage = "https://apps.kde.org/kalarm/";
+ description = "Personal alarm scheduler";
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.rittelle ];
};
diff --git a/pkgs/applications/kde/kamoso.nix b/pkgs/applications/kde/kamoso.nix
index 3e5eb53858f1..9baa06275a78 100644
--- a/pkgs/applications/kde/kamoso.nix
+++ b/pkgs/applications/kde/kamoso.nix
@@ -37,5 +37,9 @@ mkDerivation {
"--prefix GST_PLUGIN_PATH : ${lib.makeSearchPath "lib/gstreamer-1.0" gst}"
];
- meta.license = with lib.licenses; [ lgpl21Only gpl3Only ];
+ meta = {
+ homepage = "https://apps.kde.org/kamoso/";
+ description = "A simple and friendly program to use your camera";
+ license = with lib.licenses; [ lgpl21Only gpl3Only ];
+ };
}
diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix
index 1cc16496d121..713d7dbe830c 100644
--- a/pkgs/applications/kde/kate.nix
+++ b/pkgs/applications/kde/kate.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "kate";
meta = {
+ homepage = "https://apps.kde.org/kate/";
+ description = "Advanced text editor";
license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
maintainers = [ lib.maintainers.ttuegel ];
};
diff --git a/pkgs/applications/kde/kbreakout.nix b/pkgs/applications/kde/kbreakout.nix
index cf60ada3c00d..b29c83914c6e 100644
--- a/pkgs/applications/kde/kbreakout.nix
+++ b/pkgs/applications/kde/kbreakout.nix
@@ -11,7 +11,11 @@
mkDerivation {
pname = "kbreakout";
- meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+ meta = {
+ homepage = "KBreakOut";
+ description = "Breakout-like game";
+ license = with lib.licenses; [ lgpl21 gpl3 ];
+ };
outputs = [ "out" "dev" ];
nativeBuildInputs = [
cmake extra-cmake-modules
diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix
index 5988885c4718..61ff38f31684 100644
--- a/pkgs/applications/kde/kcachegrind.nix
+++ b/pkgs/applications/kde/kcachegrind.nix
@@ -8,6 +8,8 @@
mkDerivation {
pname = "kcachegrind";
meta = {
+ homepage = "https://apps.kde.org/kcachegrind/";
+ description = "Profiler frontend";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ orivej ];
};
diff --git a/pkgs/applications/kde/kcalc.nix b/pkgs/applications/kde/kcalc.nix
index b24046df5f5f..20ae678dc011 100644
--- a/pkgs/applications/kde/kcalc.nix
+++ b/pkgs/applications/kde/kcalc.nix
@@ -8,6 +8,8 @@
mkDerivation {
pname = "kcalc";
meta = {
+ homepage = "https://apps.kde.org/kcalc/";
+ description = "Scientific calculator";
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.fridh ];
};
diff --git a/pkgs/applications/kde/kcharselect.nix b/pkgs/applications/kde/kcharselect.nix
index d35ee5ee670c..0bc76b420874 100644
--- a/pkgs/applications/kde/kcharselect.nix
+++ b/pkgs/applications/kde/kcharselect.nix
@@ -7,6 +7,7 @@
mkDerivation {
pname = "kcharselect";
meta = {
+ homepage = "https://apps.kde.org/kcharselect/";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.schmittlauch ];
description = "A tool to select special characters from all installed fonts and copy them into the clipboard";
diff --git a/pkgs/applications/kde/kcolorchooser.nix b/pkgs/applications/kde/kcolorchooser.nix
index 87ab22715615..26601bb37e3c 100644
--- a/pkgs/applications/kde/kcolorchooser.nix
+++ b/pkgs/applications/kde/kcolorchooser.nix
@@ -7,6 +7,8 @@
mkDerivation {
pname = "kcolorchooser";
meta = {
+ homepage = "https://apps.kde.org/kcolorchooser/";
+ description = "Color chooser";
license = with lib.licenses; [ mit ];
maintainers = [ lib.maintainers.ttuegel ];
};
diff --git a/pkgs/applications/kde/kdebugsettings.nix b/pkgs/applications/kde/kdebugsettings.nix
index 7f24ec8e2fc0..e73f6f13ce9f 100644
--- a/pkgs/applications/kde/kdebugsettings.nix
+++ b/pkgs/applications/kde/kdebugsettings.nix
@@ -9,6 +9,8 @@
mkDerivation {
pname = "kdebugsettings";
meta = {
+ homepage = "https://apps.kde.org/kdebugsettings/";
+ description = "KDE debug settings";
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.rittelle ];
broken = lib.versionOlder qtbase.version "5.13";
diff --git a/pkgs/applications/kde/kdenlive/default.nix b/pkgs/applications/kde/kdenlive/default.nix
index 8ec2d2a81b04..885b1c1d8cc4 100644
--- a/pkgs/applications/kde/kdenlive/default.nix
+++ b/pkgs/applications/kde/kdenlive/default.nix
@@ -101,6 +101,8 @@ mkDerivation {
'';
meta = {
+ homepage = "https://apps.kde.org/kdenlive/";
+ description = "Video editor";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ turion ];
};
diff --git a/pkgs/applications/kde/kdialog.nix b/pkgs/applications/kde/kdialog.nix
index 192bfda4c27b..015c86bc7d12 100644
--- a/pkgs/applications/kde/kdialog.nix
+++ b/pkgs/applications/kde/kdialog.nix
@@ -8,6 +8,8 @@ mkDerivation {
pname = "kdialog";
meta = {
+ homepage = "https://apps.kde.org/kdialog/";
+ description = "Display dialog boxes from shell scripts";
license = with lib.licenses; [ gpl2 fdl12 ];
maintainers = with lib.maintainers; [ peterhoeg ];
};
diff --git a/pkgs/applications/kde/kfind.nix b/pkgs/applications/kde/kfind.nix
index fa0ef1c92203..2c96b17dea19 100644
--- a/pkgs/applications/kde/kfind.nix
+++ b/pkgs/applications/kde/kfind.nix
@@ -7,6 +7,8 @@
mkDerivation {
pname = "kfind";
meta = {
+ homepage = "https://apps.kde.org/kfind/";
+ description = "Find files/folders";
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.iblech ];
};
diff --git a/pkgs/applications/kde/kgeography.nix b/pkgs/applications/kde/kgeography.nix
index 7a5d5516b5ef..b832ffcfa2cf 100644
--- a/pkgs/applications/kde/kgeography.nix
+++ b/pkgs/applications/kde/kgeography.nix
@@ -7,6 +7,8 @@
mkDerivation {
pname = "kgeography";
meta = {
+ homepage = "https://apps.kde.org/kgeography/";
+ description = "Geography trainer";
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.globin ];
};
diff --git a/pkgs/applications/kde/kget.nix b/pkgs/applications/kde/kget.nix
index b03246eacd59..2f59e3aaf963 100644
--- a/pkgs/applications/kde/kget.nix
+++ b/pkgs/applications/kde/kget.nix
@@ -16,6 +16,8 @@ mkDerivation {
];
meta = with lib; {
+ homepage = "https://apps.kde.org/kget/";
+ description = "Download manager";
license = with licenses; [ gpl2 ];
maintainers = with maintainers; [ peterhoeg ];
};
diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix
index 32ba95231cdb..1590887575b7 100644
--- a/pkgs/applications/kde/kgpg.nix
+++ b/pkgs/applications/kde/kgpg.nix
@@ -18,6 +18,8 @@ mkDerivation {
wrapProgram "$out/bin/kgpg" --prefix PATH : "${lib.makeBinPath [ gnupg ]}"
'';
meta = {
+ homepage = "https://apps.kde.org/kgpg/";
+ description = "Encryption tool";
license = [ lib.licenses.gpl2 ];
maintainers = [ lib.maintainers.ttuegel ];
};
diff --git a/pkgs/applications/kde/khelpcenter.nix b/pkgs/applications/kde/khelpcenter.nix
index 0270118fc55f..6f331dcf77c7 100644
--- a/pkgs/applications/kde/khelpcenter.nix
+++ b/pkgs/applications/kde/khelpcenter.nix
@@ -1,8 +1,7 @@
-{
- mkDerivation,
- extra-cmake-modules, kdoctools,
- grantlee, kcmutils, kconfig, kcoreaddons, kdbusaddons, ki18n,
- kinit, khtml, kservice, xapian
+{ lib, mkDerivation
+, extra-cmake-modules, kdoctools
+, grantlee, kcmutils, kconfig, kcoreaddons, kdbusaddons, ki18n
+, kinit, khtml, kservice, xapian
}:
mkDerivation {
@@ -12,4 +11,9 @@ mkDerivation {
grantlee kcmutils kconfig kcoreaddons kdbusaddons khtml
ki18n kinit kservice xapian
];
+ meta = with lib; {
+ homepage = "https://apps.kde.org/help/";
+ description = "Help center";
+ license = licenses.gpl2Plus;
+ };
}
diff --git a/pkgs/applications/kde/kig.nix b/pkgs/applications/kde/kig.nix
index 1ca57d91c197..d04cc76fc22a 100644
--- a/pkgs/applications/kde/kig.nix
+++ b/pkgs/applications/kde/kig.nix
@@ -8,6 +8,8 @@
mkDerivation {
pname = "kig";
meta = {
+ homepage = "https://apps.kde.org/kig/";
+ description = "Interactive geometry";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ raskin ];
};
@@ -16,4 +18,3 @@ mkDerivation {
boost karchive kcrash kiconthemes kparts ktexteditor qtsvg qtxmlpatterns
];
}
-
diff --git a/pkgs/applications/kde/kleopatra.nix b/pkgs/applications/kde/kleopatra.nix
index f1f8ae9b375b..a640802fed31 100644
--- a/pkgs/applications/kde/kleopatra.nix
+++ b/pkgs/applications/kde/kleopatra.nix
@@ -8,6 +8,8 @@
mkDerivation {
pname = "kleopatra";
meta = {
+ homepage = "https://apps.kde.org/kleopatra/";
+ description = "Certificate manager and unified crypto GUI";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/kmahjongg.nix b/pkgs/applications/kde/kmahjongg.nix
index 285cf8adff52..a0c277ec0917 100644
--- a/pkgs/applications/kde/kmahjongg.nix
+++ b/pkgs/applications/kde/kmahjongg.nix
@@ -13,6 +13,8 @@ mkDerivation {
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ kdeclarative libkmahjongg knewstuff libkdegames ];
meta = {
+ description = "Mahjongg solitaire";
+ homepage = "https://apps.kde.org/kmahjongg/";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ ];
};
diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix
index 1a33eb2fe203..341d54a6388a 100644
--- a/pkgs/applications/kde/kmail.nix
+++ b/pkgs/applications/kde/kmail.nix
@@ -53,6 +53,8 @@
mkDerivation {
pname = "kmail";
meta = {
+ homepage = "https://apps.kde.org/kmail2/";
+ description = "Mail client";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/kmix.nix b/pkgs/applications/kde/kmix.nix
index a34f5a22d069..2f85454eb67e 100644
--- a/pkgs/applications/kde/kmix.nix
+++ b/pkgs/applications/kde/kmix.nix
@@ -8,6 +8,8 @@
mkDerivation {
pname = "kmix";
meta = {
+ homepage = "https://apps.kde.org/kmix/";
+ description = "Sound mixer";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = [ lib.maintainers.rongcuid ];
};
diff --git a/pkgs/applications/kde/kmplot.nix b/pkgs/applications/kde/kmplot.nix
index 04ccb809c79b..a6784982580f 100644
--- a/pkgs/applications/kde/kmplot.nix
+++ b/pkgs/applications/kde/kmplot.nix
@@ -5,6 +5,8 @@
mkDerivation {
pname = "kmplot";
meta = {
+ homepage = "https://apps.kde.org/kmplot/";
+ description = "Mathematical function plotter";
license = with lib.licenses; [ gpl2Plus fdl12 ];
maintainers = [ lib.maintainers.orivej ];
};
diff --git a/pkgs/applications/kde/knotes.nix b/pkgs/applications/kde/knotes.nix
index 1907a8fe910b..a465b82041a0 100644
--- a/pkgs/applications/kde/knotes.nix
+++ b/pkgs/applications/kde/knotes.nix
@@ -1,14 +1,13 @@
-{
- mkDerivation,
- extra-cmake-modules, kdoctools,
- kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
- kdbusaddons, kdnssd, kglobalaccel, kiconthemes, kitemmodels,
- kitemviews, kcmutils, knewstuff, knotifications, knotifyconfig,
- kparts, ktextwidgets, kwidgetsaddons, kwindowsystem,
- grantlee, grantleetheme, qtx11extras,
- akonadi, akonadi-notes, akonadi-search, kcalutils,
- kontactinterface, libkdepim, kmime, pimcommon, kpimtextedit,
- kcalendarcore
+{ lib, mkDerivation
+, extra-cmake-modules, kdoctools
+, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash
+, kdbusaddons, kdnssd, kglobalaccel, kiconthemes, kitemmodels
+, kitemviews, kcmutils, knewstuff, knotifications, knotifyconfig
+, kparts, ktextwidgets, kwidgetsaddons, kwindowsystem
+, grantlee, grantleetheme, qtx11extras
+, akonadi, akonadi-notes, akonadi-search, kcalutils
+, kontactinterface, libkdepim, kmime, pimcommon, kpimtextedit
+, kcalendarcore
}:
mkDerivation {
@@ -25,4 +24,9 @@ mkDerivation {
akonadi-search
kcalendarcore
];
+ meta = with lib; {
+ homepage = "https://apps.kde.org/knotes/";
+ description = "Popup notes";
+ license = licenses.gpl2Plus;
+ };
}
diff --git a/pkgs/applications/kde/kolf.nix b/pkgs/applications/kde/kolf.nix
index 2f1189855be9..5bcb9fb11000 100644
--- a/pkgs/applications/kde/kolf.nix
+++ b/pkgs/applications/kde/kolf.nix
@@ -10,6 +10,8 @@ mkDerivation {
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ libkdegames kio ktextwidgets ];
meta = {
+ homepage = "https://apps.kde.org/kolf/";
+ description = "Miniature golf";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ peterhoeg ];
};
diff --git a/pkgs/applications/kde/kolourpaint.nix b/pkgs/applications/kde/kolourpaint.nix
index cd703c49eeec..b02c91e8641f 100644
--- a/pkgs/applications/kde/kolourpaint.nix
+++ b/pkgs/applications/kde/kolourpaint.nix
@@ -17,6 +17,8 @@ mkDerivation {
kguiaddons kio ktextwidgets kwidgetsaddons kxmlgui libkexiv2
];
meta = {
+ homepage = "https://apps.kde.org/kolourpaint/";
+ description = "Paint program";
maintainers = [ lib.maintainers.fridh ];
license = with lib.licenses; [ gpl2 ];
};
diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix
index d4d49c6a9426..eace8660c2eb 100644
--- a/pkgs/applications/kde/kompare.nix
+++ b/pkgs/applications/kde/kompare.nix
@@ -7,7 +7,11 @@
mkDerivation {
pname = "kompare";
- meta = { license = with lib.licenses; [ gpl2 ]; };
+ meta = {
+ homepage = "https://apps.kde.org/kompare/";
+ description = "Diff/patch frontend";
+ license = with lib.licenses; [ gpl2 ];
+ };
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2
diff --git a/pkgs/applications/kde/konqueror.nix b/pkgs/applications/kde/konqueror.nix
index 781368a108ff..cf4002a8f673 100644
--- a/pkgs/applications/kde/konqueror.nix
+++ b/pkgs/applications/kde/konqueror.nix
@@ -22,6 +22,8 @@ mkDerivation {
'';
meta = {
+ homepage = "https://apps.kde.org/konqueror/";
+ description = "Web browser, file manager and viewer";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ ];
broken = lib.versionOlder qtbase.version "5.13";
diff --git a/pkgs/applications/kde/konquest.nix b/pkgs/applications/kde/konquest.nix
index 5957df47956f..7c4ac20f4a51 100644
--- a/pkgs/applications/kde/konquest.nix
+++ b/pkgs/applications/kde/konquest.nix
@@ -22,6 +22,8 @@ mkDerivation {
qtquickcontrols
];
meta = {
+ homepage = "https://apps.kde.org/konquest/";
+ description = "Galactic strategy game";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ lheckemann ];
};
diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix
index 18750d1f1605..098001ef4c23 100644
--- a/pkgs/applications/kde/konsole.nix
+++ b/pkgs/applications/kde/konsole.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "konsole";
meta = {
+ homepage = "https://apps.kde.org/konsole/";
+ description = "KDE terminal emulator";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = with lib.maintainers; [ ttuegel turion ];
};
diff --git a/pkgs/applications/kde/kontact.nix b/pkgs/applications/kde/kontact.nix
index 801c6845e409..dbdc5ba474b1 100644
--- a/pkgs/applications/kde/kontact.nix
+++ b/pkgs/applications/kde/kontact.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "kontact";
meta = {
+ homepage = "https://apps.kde.org/kontact/";
+ description = "Personal information manager";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/korganizer.nix b/pkgs/applications/kde/korganizer.nix
index 0f6689bb7585..3eafd80cacf6 100644
--- a/pkgs/applications/kde/korganizer.nix
+++ b/pkgs/applications/kde/korganizer.nix
@@ -13,6 +13,8 @@
mkDerivation {
pname = "korganizer";
meta = {
+ homepage = "https://apps.kde.org/korganizer/";
+ description = "Personal organizer";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/kpublictransport.nix b/pkgs/applications/kde/kpublictransport.nix
new file mode 100644
index 000000000000..fbfd3fcc8a46
--- /dev/null
+++ b/pkgs/applications/kde/kpublictransport.nix
@@ -0,0 +1,13 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+}:
+
+mkDerivation {
+ pname = "kpublictransport";
+ meta = with lib; {
+ license = [ licenses.cc0 ];
+ maintainers = [ maintainers.samueldr ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/applications/kde/krdc.nix b/pkgs/applications/kde/krdc.nix
index b0e79b0ff896..8049c6d11b49 100644
--- a/pkgs/applications/kde/krdc.nix
+++ b/pkgs/applications/kde/krdc.nix
@@ -18,6 +18,7 @@ mkDerivation {
'';
meta = with lib; {
homepage = "http://www.kde.org";
+ description = "Remote desktop client";
license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix
index 905c72b3675e..15835bc61071 100644
--- a/pkgs/applications/kde/krfb.nix
+++ b/pkgs/applications/kde/krfb.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "krfb";
meta = {
+ homepage = "https://apps.kde.org/krfb/";
+ description = "Desktop sharing (VNC)";
license = with lib.licenses; [ gpl2 fdl12 ];
maintainers = with lib.maintainers; [ jerith666 ];
};
diff --git a/pkgs/applications/kde/kruler.nix b/pkgs/applications/kde/kruler.nix
index 460675e8cb15..918c0c55b625 100644
--- a/pkgs/applications/kde/kruler.nix
+++ b/pkgs/applications/kde/kruler.nix
@@ -7,6 +7,8 @@
mkDerivation {
pname = "kruler";
meta = {
+ homepage = "https://apps.kde.org/kruler/";
+ description = "Screen ruler";
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.vandenoever ];
};
diff --git a/pkgs/applications/kde/kspaceduel.nix b/pkgs/applications/kde/kspaceduel.nix
index 49ef76151eab..bf174546f2f6 100644
--- a/pkgs/applications/kde/kspaceduel.nix
+++ b/pkgs/applications/kde/kspaceduel.nix
@@ -11,7 +11,11 @@
mkDerivation {
pname = "kspaceduel";
- meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+ meta = {
+ homepage = "https://apps.kde.org/kspaceduel/";
+ description = "Space arcade game";
+ license = with lib.licenses; [ lgpl21 gpl3 ];
+ };
outputs = [ "out" "dev" ];
nativeBuildInputs = [
cmake extra-cmake-modules
diff --git a/pkgs/applications/kde/ksudoku.nix b/pkgs/applications/kde/ksudoku.nix
index bf59c6e94c38..1cfb3884ff59 100644
--- a/pkgs/applications/kde/ksudoku.nix
+++ b/pkgs/applications/kde/ksudoku.nix
@@ -12,6 +12,8 @@ mkDerivation {
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ libGLU kdeclarative libkdegames ];
meta = {
+ homepage = "https://apps.kde.org/ksudoku/";
+ description = "Suduko game";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ ];
};
diff --git a/pkgs/applications/kde/ksystemlog.nix b/pkgs/applications/kde/ksystemlog.nix
index 08f7ffb7e05c..1b78c16b49dd 100644
--- a/pkgs/applications/kde/ksystemlog.nix
+++ b/pkgs/applications/kde/ksystemlog.nix
@@ -11,6 +11,8 @@ mkDerivation {
propagatedBuildInputs = [ karchive kconfig kio ];
meta = with lib; {
+ homepage = "https://apps.kde.org/ksystemlog/";
+ description = "System log viewer";
license = with licenses; [ gpl2 ];
maintainers = with maintainers; [ peterhoeg ];
};
diff --git a/pkgs/applications/kde/ktouch.nix b/pkgs/applications/kde/ktouch.nix
index 9d31d4ec62b0..df727c43a166 100644
--- a/pkgs/applications/kde/ktouch.nix
+++ b/pkgs/applications/kde/ktouch.nix
@@ -7,22 +7,22 @@
, xorg
}:
+mkDerivation {
+ pname = "ktouch";
+ meta = {
+ homepage = "https://apps.kde.org/ktouch/";
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.schmittlauch ];
+ description = "A touch typing tutor from the KDE software collection";
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools qtdeclarative ];
+ buildInputs = [
+ kconfig kconfigwidgets kcoreaddons kdeclarative ki18n
+ kitemviews kcmutils kio knewstuff ktexteditor kwidgetsaddons
+ kwindowsystem kxmlgui qtscript qtdeclarative kqtquickcharts
+ qtx11extras qtgraphicaleffects qtxmlpatterns qtquickcontrols2
+ xorg.libxkbfile xorg.libxcb
+ ];
- mkDerivation {
- pname = "ktouch";
- meta = {
- license = lib.licenses.gpl2;
- maintainers = [ lib.maintainers.schmittlauch ];
- description = "A touch typing tutor from the KDE software collection";
- };
- nativeBuildInputs = [ extra-cmake-modules kdoctools qtdeclarative ];
- buildInputs = [
- kconfig kconfigwidgets kcoreaddons kdeclarative ki18n
- kitemviews kcmutils kio knewstuff ktexteditor kwidgetsaddons
- kwindowsystem kxmlgui qtscript qtdeclarative kqtquickcharts
- qtx11extras qtgraphicaleffects qtxmlpatterns qtquickcontrols2
- xorg.libxkbfile xorg.libxcb
- ];
-
- enableParallelBuilding = true;
+ enableParallelBuilding = true;
}
diff --git a/pkgs/applications/kde/kwalletmanager.nix b/pkgs/applications/kde/kwalletmanager.nix
index 7f227f6d9e67..8d56adc41326 100644
--- a/pkgs/applications/kde/kwalletmanager.nix
+++ b/pkgs/applications/kde/kwalletmanager.nix
@@ -14,6 +14,9 @@
mkDerivation {
pname = "kwalletmanager";
meta = {
+ homepage = "https://apps.kde.org/kwalletmanager5/";
+
+ description = "KDE wallet management tool";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ fridh ];
};
diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix
index 525289bdc3b7..7fe3aa529fa2 100644
--- a/pkgs/applications/kde/marble.nix
+++ b/pkgs/applications/kde/marble.nix
@@ -7,7 +7,11 @@
mkDerivation {
pname = "marble";
- meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+ meta = {
+ homepage = "https://apps.kde.org/marble/";
+ description = "Virtual globe";
+ license = with lib.licenses; [ lgpl21 gpl3 ];
+ };
outputs = [ "out" "dev" ];
nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
propagatedBuildInputs = [
diff --git a/pkgs/applications/kde/minuet.nix b/pkgs/applications/kde/minuet.nix
index cc7be0bf79a6..50a6a6f282ec 100644
--- a/pkgs/applications/kde/minuet.nix
+++ b/pkgs/applications/kde/minuet.nix
@@ -8,6 +8,8 @@
mkDerivation {
pname = "minuet";
meta = with lib; {
+ homepage = "https://apps.kde.org/minuet/";
+ description = "Music Education Software";
license = with licenses; [ lgpl21 gpl3 ];
maintainers = with maintainers; [ peterhoeg HaoZeke ];
broken = lib.versionOlder qtbase.version "5.14";
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index 12537eba270a..9962500d907f 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -29,6 +29,7 @@ mkDerivation {
meta = with lib; {
homepage = "http://www.kde.org";
+ description = "KDE document viewer";
license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
maintainers = with maintainers; [ ttuegel turion ];
platforms = lib.platforms.linux;
diff --git a/pkgs/applications/kde/picmi.nix b/pkgs/applications/kde/picmi.nix
index 25734e318ab4..4358eb5ffac5 100644
--- a/pkgs/applications/kde/picmi.nix
+++ b/pkgs/applications/kde/picmi.nix
@@ -6,6 +6,7 @@
mkDerivation {
pname = "picmi";
meta = with lib; {
+ homepage = "https://apps.kde.org/picmi/";
description = "Nonogram game";
longDescription = ''The goal is to reveal the hidden pattern in the board by coloring or
leaving blank the cells in a grid according to numbers given at the side of the grid.
diff --git a/pkgs/applications/kde/pim-data-exporter.nix b/pkgs/applications/kde/pim-data-exporter.nix
index 746bb2aec2ad..f13e1f667957 100644
--- a/pkgs/applications/kde/pim-data-exporter.nix
+++ b/pkgs/applications/kde/pim-data-exporter.nix
@@ -10,6 +10,8 @@
mkDerivation {
pname = "pim-data-exporter";
meta = {
+ homepage = "https://apps.kde.org/pimdataexporter/";
+ description = "Saves and restores all data from PIM apps";
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index 587877ad7a72..39e9f344c3ee 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -20,6 +20,8 @@ mkDerivation {
'';
propagatedUserEnvPkgs = [ kipi-plugins libkipi ];
meta = with lib; {
+ homepage = "https://apps.kde.org/spectacle/";
+ description = "Screenshot capture utility";
maintainers = with maintainers; [ ttuegel ];
broken = versionOlder qtbase.version "5.15";
};
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 7ef67e7b0362..73032655fc43 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1811 +4,1811 @@
{
akonadi = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-21.08.0.tar.xz";
- sha256 = "0qjg8q11ir3dnhxgd068pniy4rwl8p2g0wwaf4cyzz4qw4kp8sbs";
- name = "akonadi-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-21.08.3.tar.xz";
+ sha256 = "1yqlgzni7kj0n7k2wvi65wfz4il75j7qvmrdjw3a0ld6115j2vqs";
+ name = "akonadi-21.08.3.tar.xz";
};
};
akonadi-calendar = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-calendar-21.08.0.tar.xz";
- sha256 = "0f3psag09vc7k29z6p091qpb4b8464k6mjc5qf3mcnrfy2s6viw6";
- name = "akonadi-calendar-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-calendar-21.08.3.tar.xz";
+ sha256 = "17pl7viz89zn43iyp6hk9q2dix1mzfxmxf08jk5wcciphabyj2sc";
+ name = "akonadi-calendar-21.08.3.tar.xz";
};
};
akonadi-calendar-tools = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-calendar-tools-21.08.0.tar.xz";
- sha256 = "1pzs9bdh7lm7kqyrg6qhjj70rkdycfy4ys35ibrgwjv7r6zdgvfx";
- name = "akonadi-calendar-tools-21.08.0.tar.xz";
- };
- };
- akonadiconsole = {
- version = "21.08.0";
- src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadiconsole-21.08.0.tar.xz";
- sha256 = "0sq03jrv9i86qw7217s77hfz6105dc7s51fzdhxw15zzv07qd1hb";
- name = "akonadiconsole-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-calendar-tools-21.08.3.tar.xz";
+ sha256 = "0wc3yfb8riijmmwqbny7vpfav24w8id4s2ysbcljrvypv420ii2g";
+ name = "akonadi-calendar-tools-21.08.3.tar.xz";
};
};
akonadi-contacts = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-contacts-21.08.0.tar.xz";
- sha256 = "0ay0fsb5rrv88w4azlcvmrhsdf4hx6nw8ahz0ik54j8x7ciabyq1";
- name = "akonadi-contacts-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-contacts-21.08.3.tar.xz";
+ sha256 = "1i5mwjf8vp40mmdfkafhhbcmvdd2sihd6aa4z1wnhnbg59cjvp8i";
+ name = "akonadi-contacts-21.08.3.tar.xz";
};
};
akonadi-import-wizard = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-import-wizard-21.08.0.tar.xz";
- sha256 = "1pcnasgl6f8z4hwgp5nnk4c5hvw210f0b89zjw7v18il2s09vr58";
- name = "akonadi-import-wizard-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-import-wizard-21.08.3.tar.xz";
+ sha256 = "1splq2fgifk4mh00j4dd1lmgyc4bvz8sbsw0fznmafg76k1fvama";
+ name = "akonadi-import-wizard-21.08.3.tar.xz";
};
};
akonadi-mime = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-mime-21.08.0.tar.xz";
- sha256 = "08c1gn28p3lna8kh33s7ckj37yk5fz26d5n9msrr5497xlf3zyik";
- name = "akonadi-mime-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-mime-21.08.3.tar.xz";
+ sha256 = "19dbgl9940wwsiyhysh1lm5ks9xb6a5m53p9qmdr5siid9karq64";
+ name = "akonadi-mime-21.08.3.tar.xz";
};
};
akonadi-notes = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-notes-21.08.0.tar.xz";
- sha256 = "14d18h3jx761d3zh4m90fmw9fgn4yk22dvgif8ibm3xz8rwjc2v9";
- name = "akonadi-notes-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-notes-21.08.3.tar.xz";
+ sha256 = "0g1kdhj4qjl29x70dl4fl30f4r67s6ldpmqrf0xnj7zwz008r0fn";
+ name = "akonadi-notes-21.08.3.tar.xz";
};
};
akonadi-search = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akonadi-search-21.08.0.tar.xz";
- sha256 = "0sknzn0ks8az27a212mdfymrlybscl5irars3axb3f7r7lg4iw9s";
- name = "akonadi-search-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadi-search-21.08.3.tar.xz";
+ sha256 = "1fvfd1410zy9dbcjl21463wj91s5vly00l53ixaizylnjbj67lm0";
+ name = "akonadi-search-21.08.3.tar.xz";
+ };
+ };
+ akonadiconsole = {
+ version = "21.08.3";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/21.08.3/src/akonadiconsole-21.08.3.tar.xz";
+ sha256 = "1id1l6ifc1b8qsx16badhww33idk7c8qnn4lh3bg6mg1whmvy4k2";
+ name = "akonadiconsole-21.08.3.tar.xz";
};
};
akregator = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/akregator-21.08.0.tar.xz";
- sha256 = "067dmvnssgcs5410xwnpr38lcxvqms4h70vxnqwzivj2yidymybd";
- name = "akregator-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/akregator-21.08.3.tar.xz";
+ sha256 = "1jb2vd43pn7i1b7ylhm74q0jkk3hwbjxh6nc2hqpl9c0ic20arf2";
+ name = "akregator-21.08.3.tar.xz";
};
};
analitza = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/analitza-21.08.0.tar.xz";
- sha256 = "1nrja7d5kpn1jywld737rx298ykvypb66mi1rxamscr59x2msq4l";
- name = "analitza-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/analitza-21.08.3.tar.xz";
+ sha256 = "04g1l9q80j5rigz0667js35zjm3as0dpfkjhcm997bna1yb0d92z";
+ name = "analitza-21.08.3.tar.xz";
};
};
ark = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ark-21.08.0.tar.xz";
- sha256 = "08pm60963fp77wklv3as2c4mg3qrhm7k8hdy7fqdq7l2y64syzfx";
- name = "ark-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ark-21.08.3.tar.xz";
+ sha256 = "1wrxv8csj1irrwcddkjgbcivpxi2v3nj06lvayzr32b29i85h637";
+ name = "ark-21.08.3.tar.xz";
};
};
artikulate = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/artikulate-21.08.0.tar.xz";
- sha256 = "0w7f8yrfx57bg765iflpb3wjclncrpbfk0q0kych1pvynbxxam03";
- name = "artikulate-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/artikulate-21.08.3.tar.xz";
+ sha256 = "14g5wcw1bxxmbc9vvy07zbk2ma2cj1zbb5fdcwdf4ybaal9r43jq";
+ name = "artikulate-21.08.3.tar.xz";
};
};
audiocd-kio = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/audiocd-kio-21.08.0.tar.xz";
- sha256 = "12yp1k2z1sp785g5zzhq0v72qpc5gkw0cl7bbm9xn36jy4phi99s";
- name = "audiocd-kio-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/audiocd-kio-21.08.3.tar.xz";
+ sha256 = "0fp29igj87pff8jya230j67vcz9pv7g27g4dv2pl3r6gm2kv8c9i";
+ name = "audiocd-kio-21.08.3.tar.xz";
};
};
baloo-widgets = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/baloo-widgets-21.08.0.tar.xz";
- sha256 = "0hf7lrr502xk5154k7889yxxqdnz6k6v70pkwz1s9qq0d58xrwcy";
- name = "baloo-widgets-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/baloo-widgets-21.08.3.tar.xz";
+ sha256 = "1pjlw22ivqhpd6bf50d8s9jaq6h2k0l2szwnh841qq7bwwkp9kcb";
+ name = "baloo-widgets-21.08.3.tar.xz";
};
};
blinken = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/blinken-21.08.0.tar.xz";
- sha256 = "0i4qs4bbk3kpi0hg98mbrdrndj687gdnyxnx3riay0vs9myqsa25";
- name = "blinken-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/blinken-21.08.3.tar.xz";
+ sha256 = "03s3pv61jhkx3lm5rik25fglhda9l4w43blpwh78rbdk3c3s3ijg";
+ name = "blinken-21.08.3.tar.xz";
};
};
bomber = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/bomber-21.08.0.tar.xz";
- sha256 = "1rkyxzdcjvzf6m6idjjx4xhqrj7j7cybnjmzyy9i81jnraql58gg";
- name = "bomber-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/bomber-21.08.3.tar.xz";
+ sha256 = "0h5iwpmpw8xnqh6xcm4zqqcp1ia5wir0ghwsbcgrz9ka59dfdh4z";
+ name = "bomber-21.08.3.tar.xz";
};
};
bovo = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/bovo-21.08.0.tar.xz";
- sha256 = "09gqf0cw23ia10sbqa4szlycihdjmiccvf024vgz8yyy8hi9n2hr";
- name = "bovo-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/bovo-21.08.3.tar.xz";
+ sha256 = "0p5pi6rnnmikhg72gagld67r022bq3nsrhls0gglx14zfj6pgln3";
+ name = "bovo-21.08.3.tar.xz";
};
};
calendarsupport = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/calendarsupport-21.08.0.tar.xz";
- sha256 = "18dy6dhv0z8acvzr47q93rn027pm6dy5r49gagq975jkjw77wncp";
- name = "calendarsupport-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/calendarsupport-21.08.3.tar.xz";
+ sha256 = "1kial8x8sw0039n2s3nl9i0wadf8xda1bv2g9kws0kp29k58lyfy";
+ name = "calendarsupport-21.08.3.tar.xz";
};
};
cantor = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/cantor-21.08.0.tar.xz";
- sha256 = "0q7l3x5m0s3j9qlhjjvflzfi613638yzi38kcp1ldas1sw48jh7i";
- name = "cantor-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/cantor-21.08.3.tar.xz";
+ sha256 = "1l3z0aikrfjdpcfq6apmwla9k7dqymvysi275kpx0dqi5sfgi9lb";
+ name = "cantor-21.08.3.tar.xz";
};
};
cervisia = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/cervisia-21.08.0.tar.xz";
- sha256 = "108wm6r0h2lz29z7g47m0vhg0rmsqrlwgx0is6ymbbaf7kdy8ynm";
- name = "cervisia-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/cervisia-21.08.3.tar.xz";
+ sha256 = "0a7g3g849vf0c0222944iwqhymnxcn9qj0v85m2b0bfxgdf0fgk7";
+ name = "cervisia-21.08.3.tar.xz";
};
};
dolphin = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/dolphin-21.08.0.tar.xz";
- sha256 = "18b751bmq1mlq8zw6wkk2jw8qqn8n2n84vb9ga4jl6bi2gjdqrjn";
- name = "dolphin-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/dolphin-21.08.3.tar.xz";
+ sha256 = "19yrgfliqabmymrh3sx2i5129rcc14nxb86f21wd616b3pcby5rv";
+ name = "dolphin-21.08.3.tar.xz";
};
};
dolphin-plugins = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/dolphin-plugins-21.08.0.tar.xz";
- sha256 = "1d10sbxpgz5fvw7ym8804qkqmrv1w4css5sn96xhd7kb7n23jbh8";
- name = "dolphin-plugins-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/dolphin-plugins-21.08.3.tar.xz";
+ sha256 = "098i2zydzi95i860pk6p0g0wx1bryyxanawhcis5d5h3xra66s0p";
+ name = "dolphin-plugins-21.08.3.tar.xz";
};
};
dragon = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/dragon-21.08.0.tar.xz";
- sha256 = "0d6kradbq010gmknzi4xf7x7b3cl2lmadhdngijmqw0k66g0gi6m";
- name = "dragon-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/dragon-21.08.3.tar.xz";
+ sha256 = "0zfh5kmw2mvnwpcbh9i6xzzdigkglr6y0y7acw2dw6bi2cqx5cc7";
+ name = "dragon-21.08.3.tar.xz";
};
};
elisa = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/elisa-21.08.0.tar.xz";
- sha256 = "14zlwx97ia7hlzylc0anj57gd2b300hclpjwhzr512sis704cyym";
- name = "elisa-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/elisa-21.08.3.tar.xz";
+ sha256 = "0w3sk52ghkka305hagld5ia6z6czavbqgc0abqdz442bgnk1f1vb";
+ name = "elisa-21.08.3.tar.xz";
};
};
eventviews = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/eventviews-21.08.0.tar.xz";
- sha256 = "06ryds5yc5rb3smdhyc1w94idg0apadfjrv65z7ikh85rw82h62s";
- name = "eventviews-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/eventviews-21.08.3.tar.xz";
+ sha256 = "08bcw79iag71yiaf7ck27b2ja4pg18ah04rxa1c6g5fr9x6kkk46";
+ name = "eventviews-21.08.3.tar.xz";
};
};
ffmpegthumbs = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ffmpegthumbs-21.08.0.tar.xz";
- sha256 = "0cbinfvfxibpigcv2pwa95yiyd0nll7qrhcb7gcaa21vsq6ggf5m";
- name = "ffmpegthumbs-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ffmpegthumbs-21.08.3.tar.xz";
+ sha256 = "10l9592f2l63rfak3f0knvzapsaa8nyx3dl82n724359qj43m530";
+ name = "ffmpegthumbs-21.08.3.tar.xz";
};
};
filelight = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/filelight-21.08.0.tar.xz";
- sha256 = "1x287k36grk3hn7gl7n7sc89a0ibcciz93bym0znl241fd2ncl3q";
- name = "filelight-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/filelight-21.08.3.tar.xz";
+ sha256 = "0j5106x93ljkcxk90cs1yvd9dw3pnr007cd4plsw5z7kgmch3zww";
+ name = "filelight-21.08.3.tar.xz";
};
};
granatier = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/granatier-21.08.0.tar.xz";
- sha256 = "119nfjcmi6fw47700cj4lxczgmc1dv3nxg2mjvzmp9gbr0cfmybb";
- name = "granatier-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/granatier-21.08.3.tar.xz";
+ sha256 = "1igia7fxll361np76763nw915d90f5hklgqii9iyld8si99amy4y";
+ name = "granatier-21.08.3.tar.xz";
};
};
grantlee-editor = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/grantlee-editor-21.08.0.tar.xz";
- sha256 = "1jf3bzbg9k4xxhq1r22s5r31f5876gihwgipfdpmk7r7hckz2dzr";
- name = "grantlee-editor-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/grantlee-editor-21.08.3.tar.xz";
+ sha256 = "04yry04cdysh4a1y6nznxmfw2pww956xan0dnf77yjzssri9p2fq";
+ name = "grantlee-editor-21.08.3.tar.xz";
};
};
grantleetheme = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/grantleetheme-21.08.0.tar.xz";
- sha256 = "14sl4wnas4xcx0dpdp6bqi0fk6ylmm6k0cwiyhxp3n2mam1v9ia5";
- name = "grantleetheme-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/grantleetheme-21.08.3.tar.xz";
+ sha256 = "11c72jp9ywpmsc3d92cj2c9xvwmqbilsfddmlxlwnpnp2rf8q933";
+ name = "grantleetheme-21.08.3.tar.xz";
};
};
gwenview = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/gwenview-21.08.0.tar.xz";
- sha256 = "06bgq01zw5vybp78x543fv0j7yaz75wds0f7s1sbddrjyn8ifqwd";
- name = "gwenview-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/gwenview-21.08.3.tar.xz";
+ sha256 = "06hg20sygi6xfbifgi1d6s5zba5qqpm949xa7gyxi1vsq0kbvrq4";
+ name = "gwenview-21.08.3.tar.xz";
};
};
incidenceeditor = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/incidenceeditor-21.08.0.tar.xz";
- sha256 = "0z1kbwmrwr430ayawcgc9vjnag11gjj3ydbgybs8x0y64cj5v7c0";
- name = "incidenceeditor-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/incidenceeditor-21.08.3.tar.xz";
+ sha256 = "0p45x5qkzbfklxk22kzp9zlvl8ggdjgniq889q8hzb1s89ia1cck";
+ name = "incidenceeditor-21.08.3.tar.xz";
};
};
itinerary = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/itinerary-21.08.0.tar.xz";
- sha256 = "1zcf6wz263an6lanl0q81f676zzbnznrrx8lsadbxacm7dvz47a8";
- name = "itinerary-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/itinerary-21.08.3.tar.xz";
+ sha256 = "0w7kb4wvy1sfhlkikvq1ajckizf7k2bzy2wcjdz5is69rrd5cab5";
+ name = "itinerary-21.08.3.tar.xz";
};
};
juk = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/juk-21.08.0.tar.xz";
- sha256 = "13q9agy9sc7r3cpfc1ip0697jys5v665ih745l2kv6b7sm77w0f5";
- name = "juk-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/juk-21.08.3.tar.xz";
+ sha256 = "19g1dpvrssip8vysds3j4wa599ivapznz10p0p1254gkjyxdxdm3";
+ name = "juk-21.08.3.tar.xz";
};
};
k3b = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/k3b-21.08.0.tar.xz";
- sha256 = "0289g6dk03k7qab8wrj19kv4gz4b9d25ni9kii48ny5169whnk40";
- name = "k3b-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/k3b-21.08.3.tar.xz";
+ sha256 = "1k5xn33sggx3a7lns8y64sa3schqvg476q81rig9mylh68x8rr5y";
+ name = "k3b-21.08.3.tar.xz";
};
};
kaccounts-integration = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kaccounts-integration-21.08.0.tar.xz";
- sha256 = "0kq3pi3lr4bwz0dv8nzdrf8q0dl9mqyj697x2dcmlhydg6vkcyp6";
- name = "kaccounts-integration-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kaccounts-integration-21.08.3.tar.xz";
+ sha256 = "0hyaygrsdp6s96s4wa9z5l1w5w5hxwbw432zs6a2fkgq5dpa3wn4";
+ name = "kaccounts-integration-21.08.3.tar.xz";
};
};
kaccounts-providers = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kaccounts-providers-21.08.0.tar.xz";
- sha256 = "0xflvms3y02z52yh9grl4304g8m302k7qw07mlcvfvsma44db1mg";
- name = "kaccounts-providers-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kaccounts-providers-21.08.3.tar.xz";
+ sha256 = "0chajl87w3gp1a8l7h6bxf93js6jxdkx90ir82glgh45p5qhdhcr";
+ name = "kaccounts-providers-21.08.3.tar.xz";
};
};
kaddressbook = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kaddressbook-21.08.0.tar.xz";
- sha256 = "1yhilvq14cx1g6wa21zccm9cfjm7nkfwg297b3iaympwnjb9bny2";
- name = "kaddressbook-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kaddressbook-21.08.3.tar.xz";
+ sha256 = "1c16pcbjd5w04xbkjalvf697nqi751f4g8ldaing3k2rmdvhsqwg";
+ name = "kaddressbook-21.08.3.tar.xz";
};
};
kajongg = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kajongg-21.08.0.tar.xz";
- sha256 = "12l3ls1v4ldmmdmrky7d4ihymyr75jvm89zrz7mi44nkh5p1s7c2";
- name = "kajongg-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kajongg-21.08.3.tar.xz";
+ sha256 = "15i5vdcwm7a5amrxxbi0f4c3ls7ly1ccg88hff2wc960wwc6nvqb";
+ name = "kajongg-21.08.3.tar.xz";
};
};
kalarm = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kalarm-21.08.0.tar.xz";
- sha256 = "1mmjj3dyza9xq8c5aqivhryvd1vj4z74zw8nmdfscwnzb72gn9xh";
- name = "kalarm-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kalarm-21.08.3.tar.xz";
+ sha256 = "0zcmaf4x9jvpyri1kirnm2rij3886z9k1vx6wxxxmx6sbllpb669";
+ name = "kalarm-21.08.3.tar.xz";
};
};
kalarmcal = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kalarmcal-21.08.0.tar.xz";
- sha256 = "1v4aqgs2387jnjj5lf7jb03if1p2clxk433jrsyzi2zici7qcd07";
- name = "kalarmcal-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kalarmcal-21.08.3.tar.xz";
+ sha256 = "03zmw8pxhfmrm7xl5h2k42xyqwn4cllhrp43sv7pjbym9ya41wyk";
+ name = "kalarmcal-21.08.3.tar.xz";
};
};
kalgebra = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kalgebra-21.08.0.tar.xz";
- sha256 = "0dl1yjh572mcnr71p2ivm2g5w785nq2frqskpydnng1bglrjcf4w";
- name = "kalgebra-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kalgebra-21.08.3.tar.xz";
+ sha256 = "0w2n3nyds9069c4cj1ap2b14w8nw5dc3yb62j5y6yj9qz9ip7cdk";
+ name = "kalgebra-21.08.3.tar.xz";
};
};
kalzium = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kalzium-21.08.0.tar.xz";
- sha256 = "130xcqa5kmwg369s22bp9nvzdz3gb553n5awj5rg5gm1fs1xkwnr";
- name = "kalzium-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kalzium-21.08.3.tar.xz";
+ sha256 = "0x7dn0f2bwzplzxal2wvnc3qh2qs522626ksp6ajgf16jwf7d4kl";
+ name = "kalzium-21.08.3.tar.xz";
};
};
kamera = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kamera-21.08.0.tar.xz";
- sha256 = "1zwwc1kaky7cnb4xmwh05w6n3yhqwz2blc1x7s427ismfxsjvsys";
- name = "kamera-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kamera-21.08.3.tar.xz";
+ sha256 = "1yv87rmb8k6yh5150915fsnh8rdj1d4k8zpc8k54hxa9gjw5wqm7";
+ name = "kamera-21.08.3.tar.xz";
};
};
kamoso = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kamoso-21.08.0.tar.xz";
- sha256 = "00l655hx15h1axxad4bk3v5smfv7zvg45w08hign6n30wb3jhz7f";
- name = "kamoso-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kamoso-21.08.3.tar.xz";
+ sha256 = "1k2kis36a6dlsnh85qc01yd6qnz8kwrv4hvzpkpqvvp3m4ik17wx";
+ name = "kamoso-21.08.3.tar.xz";
};
};
kanagram = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kanagram-21.08.0.tar.xz";
- sha256 = "1ak7r1rsq1bxb9696a50dim5kicy4pi8rg199pwh0f7gy0b14wiz";
- name = "kanagram-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kanagram-21.08.3.tar.xz";
+ sha256 = "1rxirjrw6dj23awv6gbypv0jlwfdh4baz86l32rx8pnmd9icg7s3";
+ name = "kanagram-21.08.3.tar.xz";
};
};
kapman = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kapman-21.08.0.tar.xz";
- sha256 = "11r4q66ii48g5mr9sa2c0ilas5441sdxlrd0053psksl3f0j8lv5";
- name = "kapman-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kapman-21.08.3.tar.xz";
+ sha256 = "0v8ay2s868l7dxasq0rhy065rp9sfb4fzldcqs46lxy7jmk3ws93";
+ name = "kapman-21.08.3.tar.xz";
};
};
kapptemplate = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kapptemplate-21.08.0.tar.xz";
- sha256 = "09pi0s09jiqmmp0gv017m18w0y8y06gqcp60j6gawlcsl4kppykx";
- name = "kapptemplate-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kapptemplate-21.08.3.tar.xz";
+ sha256 = "02dp4qwrv3gylri936c82imh4lv1a3vfzlphmwadyhiy7j9ic5fa";
+ name = "kapptemplate-21.08.3.tar.xz";
};
};
kate = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kate-21.08.0.tar.xz";
- sha256 = "1s37smn2pk3lglwm8xh0fmq81jd7j6w10pmxb32lm734igdjw9s9";
- name = "kate-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kate-21.08.3.tar.xz";
+ sha256 = "1gdz0wxkh34a2zi9vks9qw70g7dvkbvrbp6y68rjg7720sdb0gp2";
+ name = "kate-21.08.3.tar.xz";
};
};
katomic = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/katomic-21.08.0.tar.xz";
- sha256 = "0z5w4zibczkdr8qv45l094lq1xh398rmhhdbs5k7pglj8pkywyww";
- name = "katomic-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/katomic-21.08.3.tar.xz";
+ sha256 = "1sgrpqbv4zz22qijm00lzv1cv4rwjh7bbf4gz9xmnfmhyw0n88i1";
+ name = "katomic-21.08.3.tar.xz";
};
};
kbackup = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kbackup-21.08.0.tar.xz";
- sha256 = "1x8l0fw6p6ynsgp7fyzb1klmm2g78fyd06zn5b7jizm4wb7y47m0";
- name = "kbackup-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kbackup-21.08.3.tar.xz";
+ sha256 = "1cjb2invbc60i2lahn01kd28q3wb6s35grwglgmx2cgqqkmgl42s";
+ name = "kbackup-21.08.3.tar.xz";
};
};
kblackbox = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kblackbox-21.08.0.tar.xz";
- sha256 = "0qrhc8zp6pggk103p19kkijz206l99dkdw5whrqa5awl9vi2661y";
- name = "kblackbox-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kblackbox-21.08.3.tar.xz";
+ sha256 = "1i4c5v5w42akf4b44sqrl9x4rhqgyjljr7k5i440ahch9qkf93pj";
+ name = "kblackbox-21.08.3.tar.xz";
};
};
kblocks = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kblocks-21.08.0.tar.xz";
- sha256 = "1if3s2dgfd083ql5sgcijccxbdnab5gn6pqcdc8swwgpvvs98f08";
- name = "kblocks-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kblocks-21.08.3.tar.xz";
+ sha256 = "0326fxv1nvh37h8xhvv5x4fy3l4gbrzmwsgcwslma1hakys9dhrs";
+ name = "kblocks-21.08.3.tar.xz";
};
};
kbounce = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kbounce-21.08.0.tar.xz";
- sha256 = "0b8242kf0z9b6bi2k07rvyhyh2r5pqpykxn8gchrklg1a39i2748";
- name = "kbounce-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kbounce-21.08.3.tar.xz";
+ sha256 = "00d9m7c564qrifpaldvjk6ahclrjk1aawhypjj9sls2sisx2mip4";
+ name = "kbounce-21.08.3.tar.xz";
};
};
kbreakout = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kbreakout-21.08.0.tar.xz";
- sha256 = "1ps8jdyjv5l7iifps0h8v9mfssqrq2wzk9l6ic5l2lri4i941svn";
- name = "kbreakout-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kbreakout-21.08.3.tar.xz";
+ sha256 = "1h3s4cr4bxi24j55anks946h7iba2wda5kbglsyfqw1ifrsq13vz";
+ name = "kbreakout-21.08.3.tar.xz";
};
};
kbruch = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kbruch-21.08.0.tar.xz";
- sha256 = "08mafsyr0d2qrpv213rssz9h9qk58miyvlmjbk9p4ryf81qhcbxs";
- name = "kbruch-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kbruch-21.08.3.tar.xz";
+ sha256 = "15bfqxz4j5f5ix55fsk780p7ddrzqzmk55gmbjy796sgh8b71wcr";
+ name = "kbruch-21.08.3.tar.xz";
};
};
kcachegrind = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kcachegrind-21.08.0.tar.xz";
- sha256 = "1br5f54ym1b2ra20lk2giqijir9q35al0vwm8m7fa7z9s9z002bx";
- name = "kcachegrind-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kcachegrind-21.08.3.tar.xz";
+ sha256 = "188m15y7sj17jyr9963gblgkknhgf32331kvzz4cwqzk14b9krr2";
+ name = "kcachegrind-21.08.3.tar.xz";
};
};
kcalc = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kcalc-21.08.0.tar.xz";
- sha256 = "14f3p10sg41az5qiccdmdavqi62m9i7ijv27hibi6z162ly15nh3";
- name = "kcalc-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kcalc-21.08.3.tar.xz";
+ sha256 = "1d7716law49cwmis4w9ij1xmi4g2wrv4mnc78xcms8kmgba5gs7v";
+ name = "kcalc-21.08.3.tar.xz";
};
};
kcalutils = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kcalutils-21.08.0.tar.xz";
- sha256 = "1yg8vdlcl79f42k2j100ikm8r1bhrrwmqdrzin7qnvsqyx8dhw1i";
- name = "kcalutils-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kcalutils-21.08.3.tar.xz";
+ sha256 = "0l209pyi866mf1pr4rkq7g3pgjvyss5sqhpy9vb2b2w66w3f66ri";
+ name = "kcalutils-21.08.3.tar.xz";
};
};
kcharselect = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kcharselect-21.08.0.tar.xz";
- sha256 = "16z657is57yrag7ydc2cxzsb438kl7bxdnbn68qq2x14n011fzah";
- name = "kcharselect-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kcharselect-21.08.3.tar.xz";
+ sha256 = "0fk06whwi4h43sw3adcs4b2s9ycwjamzrwr23m33c31mlpcb3i8z";
+ name = "kcharselect-21.08.3.tar.xz";
};
};
kcolorchooser = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kcolorchooser-21.08.0.tar.xz";
- sha256 = "1lpskfa6nfw6ymbw8rqqi6gr1f4grdsgmxh2s5w4r2n9i9limb17";
- name = "kcolorchooser-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kcolorchooser-21.08.3.tar.xz";
+ sha256 = "07fvl4rfzhgz4kh9dhqkq6kf4913jv9cw9abfdb7k3pbr0r26qgz";
+ name = "kcolorchooser-21.08.3.tar.xz";
};
};
kcron = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kcron-21.08.0.tar.xz";
- sha256 = "1972l12291mzrcdndr5385qh8sx2alsxjfqpsk9lj1gkcqh13yyk";
- name = "kcron-21.08.0.tar.xz";
- };
- };
- kdebugsettings = {
- version = "21.08.0";
- src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdebugsettings-21.08.0.tar.xz";
- sha256 = "0a1wp3hnxvzpa6mhf0p6yj144sv3pvhl1dffck9avaz543zrxy36";
- name = "kdebugsettings-21.08.0.tar.xz";
- };
- };
- kdeconnect-kde = {
- version = "21.08.0";
- src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdeconnect-kde-21.08.0.tar.xz";
- sha256 = "1qmic0016ybldsfagbqj3yrvfhja3zhygkq6pgnkb1zq3bfk22ls";
- name = "kdeconnect-kde-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kcron-21.08.3.tar.xz";
+ sha256 = "1374agj9qc5ifm0yckq8m94gq7sjd42n4wwb59p756736asan8k5";
+ name = "kcron-21.08.3.tar.xz";
};
};
kde-dev-scripts = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kde-dev-scripts-21.08.0.tar.xz";
- sha256 = "1v8h3fp8lv6d0qdwbwwwcz9ncj5r8b3l3dbc56r9x07i1pkxxmrr";
- name = "kde-dev-scripts-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kde-dev-scripts-21.08.3.tar.xz";
+ sha256 = "152n6iir4xzx1a5d5bi4lb42rgl222pi6jz0hfkchk7swfgpvdfs";
+ name = "kde-dev-scripts-21.08.3.tar.xz";
};
};
kde-dev-utils = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kde-dev-utils-21.08.0.tar.xz";
- sha256 = "17ccgwifx7sq3dzhicclaxa9xlnxc4qic37kf5f391y99d7kj9cm";
- name = "kde-dev-utils-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kde-dev-utils-21.08.3.tar.xz";
+ sha256 = "1xs4fybbqlxji2py06hxabsisfb3bkvbfb3vy9lyj2k5vnnmpkf8";
+ name = "kde-dev-utils-21.08.3.tar.xz";
+ };
+ };
+ kdebugsettings = {
+ version = "21.08.3";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/21.08.3/src/kdebugsettings-21.08.3.tar.xz";
+ sha256 = "1d47igv0xg1hlxzyfg10h5g7s79yq44d3ixpr82risyrslbwvll4";
+ name = "kdebugsettings-21.08.3.tar.xz";
+ };
+ };
+ kdeconnect-kde = {
+ version = "21.08.3";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/21.08.3/src/kdeconnect-kde-21.08.3.tar.xz";
+ sha256 = "1gfsbg6rwqv3cpfxcayn3q9i99mnhjz666p9x9ih205idlrn6iij";
+ name = "kdeconnect-kde-21.08.3.tar.xz";
};
};
kdeedu-data = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdeedu-data-21.08.0.tar.xz";
- sha256 = "1szkqcn64z4qrfrbfwnlzp4prv84nl361dnr6m0nr72nk0421w4g";
- name = "kdeedu-data-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdeedu-data-21.08.3.tar.xz";
+ sha256 = "15qqcl6gws6ddyv373dfql3wj2fryvr5b6d66q4l1xwc1mg6wnqs";
+ name = "kdeedu-data-21.08.3.tar.xz";
};
};
kdegraphics-mobipocket = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdegraphics-mobipocket-21.08.0.tar.xz";
- sha256 = "0lg92zz122b0ia3qyg7c00ymqlh9pvpja9fyjqa0rvqy1ampb848";
- name = "kdegraphics-mobipocket-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdegraphics-mobipocket-21.08.3.tar.xz";
+ sha256 = "1bli0ld2mymgppjsjjvkyk7ldpz787p30d7lf6lpafrf64di2bhm";
+ name = "kdegraphics-mobipocket-21.08.3.tar.xz";
};
};
kdegraphics-thumbnailers = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdegraphics-thumbnailers-21.08.0.tar.xz";
- sha256 = "1asgh1zag5pv56zhbgjax6pba5vpywhxsd3lmpa2fd6yqvrnqflw";
- name = "kdegraphics-thumbnailers-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdegraphics-thumbnailers-21.08.3.tar.xz";
+ sha256 = "1hbjmkjymb3pi1lz43bl5clgdyy6kr928q7fniwiwmak3k1xrng5";
+ name = "kdegraphics-thumbnailers-21.08.3.tar.xz";
};
};
kdenetwork-filesharing = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdenetwork-filesharing-21.08.0.tar.xz";
- sha256 = "1pnn27cfkn209vp6mapfv8p2lbbyjrkha41qfza5cgbsmnbw8vag";
- name = "kdenetwork-filesharing-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdenetwork-filesharing-21.08.3.tar.xz";
+ sha256 = "19c3my0i9xb3salf7sk870nhv797wkk83dyrczw672skwl8xcnd9";
+ name = "kdenetwork-filesharing-21.08.3.tar.xz";
};
};
kdenlive = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdenlive-21.08.0.tar.xz";
- sha256 = "08nfjslkm0xdfkq15nma9c6rajgi2d1qf6sb5wscnr5bvqkxyhg4";
- name = "kdenlive-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdenlive-21.08.3.tar.xz";
+ sha256 = "00ss9i9gw112vc3bjayp193qnfd3dq47bij9mv429azl20ff0y0c";
+ name = "kdenlive-21.08.3.tar.xz";
};
};
kdepim-addons = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdepim-addons-21.08.0.tar.xz";
- sha256 = "0fbf11zxn6zf6g9l1m3faiprbkppvi4ha1q8v6khxq92nkidq962";
- name = "kdepim-addons-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdepim-addons-21.08.3.tar.xz";
+ sha256 = "1ham9yzmj89lp3zwxwpyh0qy7fxrlhgmhphn9crrkx9gsy77ddsf";
+ name = "kdepim-addons-21.08.3.tar.xz";
};
};
kdepim-runtime = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdepim-runtime-21.08.0.tar.xz";
- sha256 = "1nzc8av8yai8pjbjwz0kx6jm9kl847ddx6v913xx4y58y9w2d3xs";
- name = "kdepim-runtime-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdepim-runtime-21.08.3.tar.xz";
+ sha256 = "1d2208pwalc6mjfnn4gfq2f2fqgxp9w3g8igx6r6l9qsgybh1msx";
+ name = "kdepim-runtime-21.08.3.tar.xz";
};
};
kdesdk-kioslaves = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdesdk-kioslaves-21.08.0.tar.xz";
- sha256 = "08vvkcyzlaq4l4v8rwlxxpdqdmxv5ylkrf10cbg8bjkgrwqyalrc";
- name = "kdesdk-kioslaves-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdesdk-kioslaves-21.08.3.tar.xz";
+ sha256 = "0frw2zxwckmqmffxn5gszdxz61zc0k8xpbhbiyfxsqprh3ck4a2y";
+ name = "kdesdk-kioslaves-21.08.3.tar.xz";
};
};
kdesdk-thumbnailers = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdesdk-thumbnailers-21.08.0.tar.xz";
- sha256 = "0n5nmixnw92mkx8vwzyixgvnjk941q6p43i6j5h272j3w98p10lg";
- name = "kdesdk-thumbnailers-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdesdk-thumbnailers-21.08.3.tar.xz";
+ sha256 = "06s7i85g5gpknxlrq59i5w8czpaz5wl1b8kfx9flzx0x6ibm5s9q";
+ name = "kdesdk-thumbnailers-21.08.3.tar.xz";
};
};
kdf = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdf-21.08.0.tar.xz";
- sha256 = "0s3a4chj1hx3s4nw56ddcl8nvk1rannj14zzfq31r2yg3pahy1hm";
- name = "kdf-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdf-21.08.3.tar.xz";
+ sha256 = "061xclwkhmc9m8f113hlb46dwk5zvqlmgahz13yfbvyrpj810a7k";
+ name = "kdf-21.08.3.tar.xz";
};
};
kdialog = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdialog-21.08.0.tar.xz";
- sha256 = "1pki0hdwxrjlcfzyvhk2ag77050zg7wkhcpj7qzxr91l3ga3rbyl";
- name = "kdialog-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdialog-21.08.3.tar.xz";
+ sha256 = "1ibqz8s8p90rxy843f1wn3jnyzrm54srhfpr4ix48amf86afj2gp";
+ name = "kdialog-21.08.3.tar.xz";
};
};
kdiamond = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kdiamond-21.08.0.tar.xz";
- sha256 = "054kjwscdw8ap2123lrrhpaw2mvd1ly1cwf22zjz41k4hq533kmm";
- name = "kdiamond-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kdiamond-21.08.3.tar.xz";
+ sha256 = "1vkflwvi1wa2kd6hq647g9skxg6c7jdk9hakzfphlq2jw6daml94";
+ name = "kdiamond-21.08.3.tar.xz";
};
};
keditbookmarks = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/keditbookmarks-21.08.0.tar.xz";
- sha256 = "1z0n0d0wgvr4v97lkvkx7lkj3d1ncp2vi7chvvq9ja0kxyd67r8f";
- name = "keditbookmarks-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/keditbookmarks-21.08.3.tar.xz";
+ sha256 = "0v9grm385zyxpsqjp287cz8lvrvfzkk7b4blvdr1hi66sng7nr2n";
+ name = "keditbookmarks-21.08.3.tar.xz";
};
};
kfind = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kfind-21.08.0.tar.xz";
- sha256 = "0qa462fsfdzk1m8jasm5zcyhx2851r42gi5jkki35gnny84ic2lg";
- name = "kfind-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kfind-21.08.3.tar.xz";
+ sha256 = "04qdxqa8gfipjm5akplxrjbnlaky2djkx8nkvcqzqfhvw5i9rxqp";
+ name = "kfind-21.08.3.tar.xz";
};
};
kfloppy = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kfloppy-21.08.0.tar.xz";
- sha256 = "03kgypngvalzzraf58g7l266naal0v7781lyh9ibi78frf6j7qw3";
- name = "kfloppy-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kfloppy-21.08.3.tar.xz";
+ sha256 = "14l53a0mrzhnfrhalr71fv0j0ksz6c1zqj8j33nayhqz386yrccx";
+ name = "kfloppy-21.08.3.tar.xz";
};
};
kfourinline = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kfourinline-21.08.0.tar.xz";
- sha256 = "1g663kkjhpfi0f6q23rmfqgwi976i46fs8qr4nqw55v7l09qrkwq";
- name = "kfourinline-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kfourinline-21.08.3.tar.xz";
+ sha256 = "0w2zdl0yfhwdwbnlqd4l9pdx7q9mr0xq7kw49h9wiajy1zmh8vls";
+ name = "kfourinline-21.08.3.tar.xz";
};
};
kgeography = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kgeography-21.08.0.tar.xz";
- sha256 = "01y0phdfymn8k14riiy15f58b0148rl2jidxnbl9if1jpn90dkai";
- name = "kgeography-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kgeography-21.08.3.tar.xz";
+ sha256 = "03wchz3bd4vlijywp9r2xilmhw4gc3ka54ilf2w60baazslhlnr3";
+ name = "kgeography-21.08.3.tar.xz";
};
};
kget = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kget-21.08.0.tar.xz";
- sha256 = "0k406isgg3lgnbl4c6l9wqgwjiv0hp5pg07na94vm03j0qg015q5";
- name = "kget-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kget-21.08.3.tar.xz";
+ sha256 = "0zpzh7bf65kz469viff794zdwc54aq84ndafx6g07nhqs3jhnmjp";
+ name = "kget-21.08.3.tar.xz";
};
};
kgoldrunner = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kgoldrunner-21.08.0.tar.xz";
- sha256 = "1d2z76xv3v7sg9bad6gwc5p9dbb00ljkhd9jq8bn3lrqiya5vn1l";
- name = "kgoldrunner-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kgoldrunner-21.08.3.tar.xz";
+ sha256 = "0c566c83a7kdc4kvzn37q4kdmr373hfrjgmq7mvn9bji5gcaqzch";
+ name = "kgoldrunner-21.08.3.tar.xz";
};
};
kgpg = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kgpg-21.08.0.tar.xz";
- sha256 = "0hkhnf1n72w4ccnh3mrvzg22nfv6vpjkh8i9a5496yrzkch862g8";
- name = "kgpg-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kgpg-21.08.3.tar.xz";
+ sha256 = "0q8da9mzqxg0xmclcpgjh8c744l1sm180ga6hxbasan47wwq67as";
+ name = "kgpg-21.08.3.tar.xz";
};
};
khangman = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/khangman-21.08.0.tar.xz";
- sha256 = "03bazg4bd23q90pi8z5gab91j4md7ya9ahvyla5523r671pcfwhh";
- name = "khangman-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/khangman-21.08.3.tar.xz";
+ sha256 = "1iq4njq0fa7all8zm2q585i1grmv2nfb5qnpr8xpyn13np39q8sr";
+ name = "khangman-21.08.3.tar.xz";
};
};
khelpcenter = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/khelpcenter-21.08.0.tar.xz";
- sha256 = "15if3awpx514prhsaznvw7acxy4zihgf36pxjgd1rzsg6f0gcj5i";
- name = "khelpcenter-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/khelpcenter-21.08.3.tar.xz";
+ sha256 = "1pn5822yxqw62hynkf05a33gzs9xvrwwrxam024g6gs0y0v5nsfp";
+ name = "khelpcenter-21.08.3.tar.xz";
};
};
kidentitymanagement = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kidentitymanagement-21.08.0.tar.xz";
- sha256 = "1jqn973dccdynqinyi698wkm92nqvhyy8z6nihh82rcfzkj16xcf";
- name = "kidentitymanagement-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kidentitymanagement-21.08.3.tar.xz";
+ sha256 = "00fhw2c7jmv0xqyd1jlrlkahszw163a7cbljn83msws8m5mrnlcb";
+ name = "kidentitymanagement-21.08.3.tar.xz";
};
};
kig = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kig-21.08.0.tar.xz";
- sha256 = "1m2wx1cpv5821438hlzhpis88r8dspsrh8snr1a1sgnmpgpjjla9";
- name = "kig-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kig-21.08.3.tar.xz";
+ sha256 = "1l4zap7lm1pigyldbqy20jaqysid0r4a6y71qalxk3f565jsqfx5";
+ name = "kig-21.08.3.tar.xz";
};
};
kigo = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kigo-21.08.0.tar.xz";
- sha256 = "1kym2bl0xh8mih13ykxw3g6xkl1lyh7vpyvyn2zprgnqjhs4699v";
- name = "kigo-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kigo-21.08.3.tar.xz";
+ sha256 = "1cdrmlwpzbkz1mi2f72z9dh1pvkdkjn885zqqybhqbqicn3w3qch";
+ name = "kigo-21.08.3.tar.xz";
};
};
killbots = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/killbots-21.08.0.tar.xz";
- sha256 = "0agqd8ww6l5i1absv6wxzraavdjlwvdp831xk18vr7gfdqq5rqzw";
- name = "killbots-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/killbots-21.08.3.tar.xz";
+ sha256 = "1mwa46r7yvxhavprc6yjh773gjhz5ks0znsvpzambn6hk23r11p8";
+ name = "killbots-21.08.3.tar.xz";
};
};
kimagemapeditor = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kimagemapeditor-21.08.0.tar.xz";
- sha256 = "0lpzf2wcn6ifbh3jin7z55bryb2gzq1yki2yl6v5fgabq0kg0pb9";
- name = "kimagemapeditor-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kimagemapeditor-21.08.3.tar.xz";
+ sha256 = "0vzy028cgq0ai4f9rgkc32w09yz5836y280nck2wxk2dajjc5k6x";
+ name = "kimagemapeditor-21.08.3.tar.xz";
};
};
kimap = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kimap-21.08.0.tar.xz";
- sha256 = "0qyixdxy0d56a9r8gw2asm4230bcmwmj88wlhcgzd6n5q198xh49";
- name = "kimap-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kimap-21.08.3.tar.xz";
+ sha256 = "11xwkgxm0ghbpcy6bmvkw1hlsfkdrlyyfbblv5m4s881ky7h4aim";
+ name = "kimap-21.08.3.tar.xz";
};
};
kio-extras = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kio-extras-21.08.0.tar.xz";
- sha256 = "0va8ankd2hp1c5c0fdmhnx6p8rhar6xicdalck6z8gw8q94dg4xx";
- name = "kio-extras-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kio-extras-21.08.3.tar.xz";
+ sha256 = "0lx0b9q68mfb96jfwsf0awcx9wn47nmnqqnk57wrbx8zx880q0j2";
+ name = "kio-extras-21.08.3.tar.xz";
};
};
kio-gdrive = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kio-gdrive-21.08.0.tar.xz";
- sha256 = "1akjmd9l4ydvrjh4r2rxrhfzngvbv487wmdgq2fvy9y926vzvvlz";
- name = "kio-gdrive-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kio-gdrive-21.08.3.tar.xz";
+ sha256 = "1h781cksqq5qana80rlc0x3cfz5prl1g3il4282vf2yqihl3zgrd";
+ name = "kio-gdrive-21.08.3.tar.xz";
};
};
kipi-plugins = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kipi-plugins-21.08.0.tar.xz";
- sha256 = "0xfn0sx9xxl2fasj89iyyhqn6b7czkmrqxssmahi67dfnazqdnvg";
- name = "kipi-plugins-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kipi-plugins-21.08.3.tar.xz";
+ sha256 = "1vscmljcadz11m4jsbkkx5f8ywbyvmfxnw1g7x5ks8d8hqsrcgd0";
+ name = "kipi-plugins-21.08.3.tar.xz";
};
};
kirigami-gallery = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kirigami-gallery-21.08.0.tar.xz";
- sha256 = "1q64blarbm82pwpch9r16my3zidvifmbzx2hj1wm6nan57k56xs8";
- name = "kirigami-gallery-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kirigami-gallery-21.08.3.tar.xz";
+ sha256 = "0d2psfq5q7zjmd4k1jz0fgwi3gnhi78jn10hrwvc7f8fb6pw4rzc";
+ name = "kirigami-gallery-21.08.3.tar.xz";
};
};
kiriki = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kiriki-21.08.0.tar.xz";
- sha256 = "0cvhc14syhzkgf7k04m1wpb9l8lrph2lk0mb47xyj2qlw4vyn31a";
- name = "kiriki-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kiriki-21.08.3.tar.xz";
+ sha256 = "19qvbxc0dpjq0vb5kh3qsrkv1793bz5ii958a4yqfmmc8xb26v2x";
+ name = "kiriki-21.08.3.tar.xz";
};
};
kiten = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kiten-21.08.0.tar.xz";
- sha256 = "1n961yhiiw6vsfqnfb9k1w8rdfdcrzawimvk4z6990bli6caj432";
- name = "kiten-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kiten-21.08.3.tar.xz";
+ sha256 = "0ly44w9y4ha5nw6lqpm5gavxc3ywqc4wh04nl7wpg0m2rm624mci";
+ name = "kiten-21.08.3.tar.xz";
};
};
kitinerary = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kitinerary-21.08.0.tar.xz";
- sha256 = "0hd28l6a2p3q6rrdn80l46fznswwy645krfcfpyasaf917710kkm";
- name = "kitinerary-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kitinerary-21.08.3.tar.xz";
+ sha256 = "066rq42g5l1rmzf5c7xg21p35ln60ir92d0sp2wg9s5li0l0azbf";
+ name = "kitinerary-21.08.3.tar.xz";
};
};
kjumpingcube = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kjumpingcube-21.08.0.tar.xz";
- sha256 = "0wvfn1a2wa6bwpsgk3b4i6jfza106f4j0mpqvqcck2bdyjpcqrc6";
- name = "kjumpingcube-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kjumpingcube-21.08.3.tar.xz";
+ sha256 = "0iya370m6n9g6m6rzfkdsb9ypwdd0ksfddiy2g0yvjf1xdxr7im9";
+ name = "kjumpingcube-21.08.3.tar.xz";
};
};
kldap = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kldap-21.08.0.tar.xz";
- sha256 = "0ng64lrcp0av31i2rp0jpag4kvikfmmxap4z1wzb21br3wr6zfcr";
- name = "kldap-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kldap-21.08.3.tar.xz";
+ sha256 = "1jb1k5xpicsmazc6c57z203w75h8klja7jp7p8934nvj9dgqqcd1";
+ name = "kldap-21.08.3.tar.xz";
};
};
kleopatra = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kleopatra-21.08.0.tar.xz";
- sha256 = "0l83x3cpfi9b1pbf00fbbynk5g9ffryasmapxdr1qqsavk2wlybr";
- name = "kleopatra-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kleopatra-21.08.3.tar.xz";
+ sha256 = "1gpn0kpxrw4jn214k5swg2frkfgp9clr99n45z3mzjdccl8zfsbi";
+ name = "kleopatra-21.08.3.tar.xz";
};
};
klettres = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/klettres-21.08.0.tar.xz";
- sha256 = "16fc71s9nksd47xhphqw4zdw8inb47m5zn5m6xpmvvf98bs42ia1";
- name = "klettres-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/klettres-21.08.3.tar.xz";
+ sha256 = "0w4fynbvnvlizz0qjkn2qcnn3xs1b0jjfmy9a01wff93a4nw2cj8";
+ name = "klettres-21.08.3.tar.xz";
};
};
klickety = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/klickety-21.08.0.tar.xz";
- sha256 = "172ajlmnw6hwg8lr7kdiixd43iv2ldg5bwnh1jaddrpn29zfdj9g";
- name = "klickety-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/klickety-21.08.3.tar.xz";
+ sha256 = "00dl0c6si302mprdwdngxa4361qmr27ii5kvk38vrdlq0cynzgzv";
+ name = "klickety-21.08.3.tar.xz";
};
};
klines = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/klines-21.08.0.tar.xz";
- sha256 = "0f4281cynn1zacfpq5i6n5vwps9d1k7i6mqpzwx8jrxmwka39r1y";
- name = "klines-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/klines-21.08.3.tar.xz";
+ sha256 = "0n3mdnwlyl0q09bz7dkb3796ki3l181085rb2r1k2mjnjwmn8zya";
+ name = "klines-21.08.3.tar.xz";
};
};
kmag = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmag-21.08.0.tar.xz";
- sha256 = "148frh2qq1yxixcpr0s8kvcviz8qh7vjvyp2w0v30m9lr01asm0s";
- name = "kmag-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmag-21.08.3.tar.xz";
+ sha256 = "09jvp1hhdam31qwljzpflcnm1mczsai6xlxlks6q0qi2n52cxkhb";
+ name = "kmag-21.08.3.tar.xz";
};
};
kmahjongg = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmahjongg-21.08.0.tar.xz";
- sha256 = "04mr9i0dwy1rypr22wlv3lcg73zz1yy373pb1vv914b3spps9pip";
- name = "kmahjongg-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmahjongg-21.08.3.tar.xz";
+ sha256 = "0afjg3svj1sg47xrz3fgvgkd74lvl71sy26br7jjyxjbq1ag9sin";
+ name = "kmahjongg-21.08.3.tar.xz";
};
};
kmail = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmail-21.08.0.tar.xz";
- sha256 = "1jnlgl5hdw4dx36wd5642x484dka1094d9xq0wn7iqpzlyh8d519";
- name = "kmail-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmail-21.08.3.tar.xz";
+ sha256 = "02kina7xn10f963xb7jgzrf15z6akzgl8ba4c9a7yb46ra4w2707";
+ name = "kmail-21.08.3.tar.xz";
};
};
kmail-account-wizard = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmail-account-wizard-21.08.0.tar.xz";
- sha256 = "14sxx25xijp9r53001kywbbaidsni1sslk4mi1pi71rwi4mvmm2w";
- name = "kmail-account-wizard-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmail-account-wizard-21.08.3.tar.xz";
+ sha256 = "1wfzbkipdhmbsj1q5c79ssij1sz57mapg1kkypw10p0nlriklz89";
+ name = "kmail-account-wizard-21.08.3.tar.xz";
};
};
kmailtransport = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmailtransport-21.08.0.tar.xz";
- sha256 = "1xijhf37djscjm86r3m1f64w97q24plpv06h55mqq4pgxkm6v0a9";
- name = "kmailtransport-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmailtransport-21.08.3.tar.xz";
+ sha256 = "0xn4imfb4085wx5czxb3yiigslwfxwdi2dmgv7ng01wbphpg0chw";
+ name = "kmailtransport-21.08.3.tar.xz";
};
};
kmbox = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmbox-21.08.0.tar.xz";
- sha256 = "1xa4g2cj5chmmhsw6larbmwr0k0n07mj7953w1qm5wi1jfr2ivca";
- name = "kmbox-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmbox-21.08.3.tar.xz";
+ sha256 = "19dkc5l5h5x4h5nq924clc06vz5abll2ki70pc6r9py33rfjs11j";
+ name = "kmbox-21.08.3.tar.xz";
};
};
kmime = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmime-21.08.0.tar.xz";
- sha256 = "19g9l5bl6gm4rx133nlsv6p4kpa1pifk24rqx7f2rv5j7by8jmxh";
- name = "kmime-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmime-21.08.3.tar.xz";
+ sha256 = "1bmgnsslhfzyix85c5p3mym6r9f2sjw5ajd5kzw9yxzyvzyc7kv6";
+ name = "kmime-21.08.3.tar.xz";
};
};
kmines = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmines-21.08.0.tar.xz";
- sha256 = "1v4hl4kqwgrdkjj1lsa5z6bvlq8xhldp2pwldzvg05c1r7lbvnw1";
- name = "kmines-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmines-21.08.3.tar.xz";
+ sha256 = "0x2ligjxam6aaxpzl1zj5circ0ssn9ycafl3ydvhk9pz9j3c9cx1";
+ name = "kmines-21.08.3.tar.xz";
};
};
kmix = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmix-21.08.0.tar.xz";
- sha256 = "1bdp2vasbw2qrsajqlpd5w1403n291w43dfms46fgw8vw5wpi5qq";
- name = "kmix-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmix-21.08.3.tar.xz";
+ sha256 = "0smfvkw8svg4fd3sf3f3l5my516jjh2n203kffkg6nr2pgscfw58";
+ name = "kmix-21.08.3.tar.xz";
};
};
kmousetool = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmousetool-21.08.0.tar.xz";
- sha256 = "1rz44gwjikckpjms4v4hsakll2dy0imrsgdvk2zsr9nr00lgbn0v";
- name = "kmousetool-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmousetool-21.08.3.tar.xz";
+ sha256 = "0fyhni1m96xh7ir7zhggszfvn7rsf5dp8l065pzvla73w7l6iqwy";
+ name = "kmousetool-21.08.3.tar.xz";
};
};
kmouth = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmouth-21.08.0.tar.xz";
- sha256 = "0i8bg49y4x9bwacmq0hk8az88r2q54bgnzxbd1rscd5nkqs21fr1";
- name = "kmouth-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmouth-21.08.3.tar.xz";
+ sha256 = "0d30r0kyq260pmbk4n9ild0zibwf1sdqwpszvi2j8y5v3gn2bg69";
+ name = "kmouth-21.08.3.tar.xz";
};
};
kmplot = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kmplot-21.08.0.tar.xz";
- sha256 = "1szskpbql3s10b64na55rnys2gz05gssvydbsiqxkwyj4igs91yv";
- name = "kmplot-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kmplot-21.08.3.tar.xz";
+ sha256 = "0az7krs0m7xly9v2aclfh4schw9hj99qmv6qmqwa1qvdhhhxd52p";
+ name = "kmplot-21.08.3.tar.xz";
};
};
knavalbattle = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/knavalbattle-21.08.0.tar.xz";
- sha256 = "1f8byp909306ksvbdjs662k7ahyf5sjg3gsv3qay0d36kzlp8274";
- name = "knavalbattle-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/knavalbattle-21.08.3.tar.xz";
+ sha256 = "0ydbkfi1n1j9fv0rjxpvh6nsjp20zwmb5ii47pv77z6a3rk5sqf4";
+ name = "knavalbattle-21.08.3.tar.xz";
};
};
knetwalk = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/knetwalk-21.08.0.tar.xz";
- sha256 = "0djdshqq35mpbdqn10acaxn3irwagh3q6zvc6sfsc2cs7nihaff2";
- name = "knetwalk-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/knetwalk-21.08.3.tar.xz";
+ sha256 = "0nplhxvqiw9ap12hxyk1z247f31jqwg59d5q75jiqi1xr1gf27n2";
+ name = "knetwalk-21.08.3.tar.xz";
};
};
knights = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/knights-21.08.0.tar.xz";
- sha256 = "1hq9vm67cgdjqmy41hk2hf6x0z4gqmrzyz8sfd1ja5j03yisjv4h";
- name = "knights-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/knights-21.08.3.tar.xz";
+ sha256 = "0ajnn8jaa1h97k89qj5c7i51c2wr3zgbsiiz9bxhhmb6gwrwjqpi";
+ name = "knights-21.08.3.tar.xz";
};
};
knotes = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/knotes-21.08.0.tar.xz";
- sha256 = "0p2jvvm2i66aib0ajlr2jynsyf7gzqhn18rxpp4mg95lqzsmvdlf";
- name = "knotes-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/knotes-21.08.3.tar.xz";
+ sha256 = "0v5kg8gi2wmz4dhwg6pmq5pd6kh91ha9hg64z21p38b3nc4z07l4";
+ name = "knotes-21.08.3.tar.xz";
};
};
kolf = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kolf-21.08.0.tar.xz";
- sha256 = "1p2sgfkrlcm125y461kdf5rf5i6x89z3i3kad375agl6wnlnkvr7";
- name = "kolf-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kolf-21.08.3.tar.xz";
+ sha256 = "1mz30vzdcsa9nhwqmcr6kxwvi9843b876kzpmqrlrxc19ixqbyq4";
+ name = "kolf-21.08.3.tar.xz";
};
};
kollision = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kollision-21.08.0.tar.xz";
- sha256 = "1vs298nigl6rnp14xrlsp50gmca77bah149k94mxqq86f0gfin7s";
- name = "kollision-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kollision-21.08.3.tar.xz";
+ sha256 = "1m46xrik0ppp6nhrsx264zzy0fdvryamcj0w5m6bm0hnyj75c4rk";
+ name = "kollision-21.08.3.tar.xz";
};
};
kolourpaint = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kolourpaint-21.08.0.tar.xz";
- sha256 = "0n6fid327m864sp8sa7ms0l559fhxj7ikp5yn6pfm86xl6ks8bfz";
- name = "kolourpaint-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kolourpaint-21.08.3.tar.xz";
+ sha256 = "11ciijpr8aa8nd3zgxrikdnx1gk1w78h1v1nhgqn399lxn3vkchi";
+ name = "kolourpaint-21.08.3.tar.xz";
};
};
kompare = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kompare-21.08.0.tar.xz";
- sha256 = "1m079gqqzfsawixsq0spi7lyg0ad9vm3mhddzbmnbg2mn250nbkb";
- name = "kompare-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kompare-21.08.3.tar.xz";
+ sha256 = "1988y00mb5wz9c6h4kchkyda4vas44bhiqd1zc4i0fkyl5wi5vp0";
+ name = "kompare-21.08.3.tar.xz";
};
};
konqueror = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/konqueror-21.08.0.tar.xz";
- sha256 = "0jlnw7j6p1svx3af95drdfrczqvikz4krq3gmmq3r62gp5bk3yyf";
- name = "konqueror-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/konqueror-21.08.3.tar.xz";
+ sha256 = "1ls9avkwcf7c9qnmxasbi933sjw9q3hnjyys5zf69v7p5hqvg0dz";
+ name = "konqueror-21.08.3.tar.xz";
};
};
konquest = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/konquest-21.08.0.tar.xz";
- sha256 = "0l128pr04qq6jdja6p0bbzc6y1233gd2h3wvbwh7hml4vxl8fsbh";
- name = "konquest-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/konquest-21.08.3.tar.xz";
+ sha256 = "0vsvzz47yn5wyl8zjnbfs1g97466l5ldxcc7mpg1q4y28fxb4jiv";
+ name = "konquest-21.08.3.tar.xz";
};
};
konsole = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/konsole-21.08.0.tar.xz";
- sha256 = "1gxy98wg2qfylqslg3ga3prk54knrik1rhzs7lsmmr73vym1dpav";
- name = "konsole-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/konsole-21.08.3.tar.xz";
+ sha256 = "1w802g95s8hrlpkilxs2mh7fsg7xq3x9vzw48766kpl9ri3ppx91";
+ name = "konsole-21.08.3.tar.xz";
};
};
kontact = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kontact-21.08.0.tar.xz";
- sha256 = "1bdvji09nimgpdlz6nk7dbr22agnsrpra7r8jz81a0cjqspcmmsi";
- name = "kontact-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kontact-21.08.3.tar.xz";
+ sha256 = "0rwi34avk98m0jjbaij895ganfcz5c8l926nr399j5qnv9r6j82l";
+ name = "kontact-21.08.3.tar.xz";
};
};
kontactinterface = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kontactinterface-21.08.0.tar.xz";
- sha256 = "1gl99624yhafwc1nw5if0a2k2v25s3rl4ak35c8af8mba54niy5z";
- name = "kontactinterface-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kontactinterface-21.08.3.tar.xz";
+ sha256 = "1284f6cndf3l4il4mw1qrqvf9jmww6nmhh6fx7asw7mfc32r5zaj";
+ name = "kontactinterface-21.08.3.tar.xz";
};
};
kontrast = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kontrast-21.08.0.tar.xz";
- sha256 = "000bmbgp43znmqxxb33ik11lri1x44jcdyzd8cxlh8frwv96hd9x";
- name = "kontrast-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kontrast-21.08.3.tar.xz";
+ sha256 = "1yy4gfckabb175apvm7fcj77nxdc2fdszz1f1zrikrss20r7dc79";
+ name = "kontrast-21.08.3.tar.xz";
};
};
konversation = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/konversation-21.08.0.tar.xz";
- sha256 = "162rdh9cz417b6zc5217gp53vwsny3i7r0s14cpvrmfl141isrg8";
- name = "konversation-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/konversation-21.08.3.tar.xz";
+ sha256 = "0wfjhp6scrq9a5llr5f9fcz2k7b5jnid8m8hrp520ai4wg4ll7zv";
+ name = "konversation-21.08.3.tar.xz";
};
};
kopeninghours = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kopeninghours-21.08.0.tar.xz";
- sha256 = "1abyq50pa8qzsvgawbas4mn64g3p8jz7cbz5fb6mzy8546sm11yv";
- name = "kopeninghours-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kopeninghours-21.08.3.tar.xz";
+ sha256 = "090rp2qpsbsyqm4nipq398c3pkr0rx46rwmr4393wffzmnbiwcb9";
+ name = "kopeninghours-21.08.3.tar.xz";
};
};
kopete = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kopete-21.08.0.tar.xz";
- sha256 = "11zngca7wyfzbv0bw1f3qw1gvi5234m2ybkh5sznhrd3w1jadqgl";
- name = "kopete-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kopete-21.08.3.tar.xz";
+ sha256 = "105zwy4k7idkdmjjx754x7acszd4yw3y3r7lrf61f44wsm9dv2wr";
+ name = "kopete-21.08.3.tar.xz";
};
};
korganizer = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/korganizer-21.08.0.tar.xz";
- sha256 = "1d5zilr1qsgfwvzc61pmbn8w8gv4a6i5i1slbdaps6wkr4bb0z7m";
- name = "korganizer-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/korganizer-21.08.3.tar.xz";
+ sha256 = "00r7abidj71yqgx4g0kd09dfnq0ilqh3kyzq47ms912gp1dkr5b9";
+ name = "korganizer-21.08.3.tar.xz";
};
};
kosmindoormap = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kosmindoormap-21.08.0.tar.xz";
- sha256 = "1lbywi76mwvljxp7n6gyhgfl4772cdfa5sphxhbf1klyvhryl797";
- name = "kosmindoormap-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kosmindoormap-21.08.3.tar.xz";
+ sha256 = "15qq6w14yxfprzzj3267z15zkalsb8y0igq772hwyz4v7f6xhydp";
+ name = "kosmindoormap-21.08.3.tar.xz";
};
};
kpat = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kpat-21.08.0.tar.xz";
- sha256 = "1wpsxz2fwjl92yl4a0npksdbhd9b3gfvh9giyr2p0gwfxrwwdq3z";
- name = "kpat-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kpat-21.08.3.tar.xz";
+ sha256 = "0s8k8q12hvciz2c38gn5w7miz0i97pqn4jrs69sm294nw7wh1xi4";
+ name = "kpat-21.08.3.tar.xz";
};
};
kpimtextedit = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kpimtextedit-21.08.0.tar.xz";
- sha256 = "1s20s5njmrbn5sa4vx74aivrphnypzd133j6n58xqbjza7zm0sgj";
- name = "kpimtextedit-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kpimtextedit-21.08.3.tar.xz";
+ sha256 = "18bjvhlvjn5a1gnzw478l15mgda4c7qba0qqk9rrbh2ryr1ksf7h";
+ name = "kpimtextedit-21.08.3.tar.xz";
};
};
kpkpass = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kpkpass-21.08.0.tar.xz";
- sha256 = "058kk3rfklfmw949wix0rv10q8094xq30vxyrglll96pxk2rj22h";
- name = "kpkpass-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kpkpass-21.08.3.tar.xz";
+ sha256 = "0l6n358gng24fqhwjmfpxfmmcw8x80di120k72zahiqplk2arcf5";
+ name = "kpkpass-21.08.3.tar.xz";
};
};
kpmcore = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kpmcore-21.08.0.tar.xz";
- sha256 = "0l9aqm07203r2q74g6pnzhgwqhccr38qn89zb80p683bqi3chdd1";
- name = "kpmcore-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kpmcore-21.08.3.tar.xz";
+ sha256 = "0y9bpw71dn9c39rjsl44az3y2bdczrj833dvwmrwaz6jbnhxl1kj";
+ name = "kpmcore-21.08.3.tar.xz";
};
};
kpublictransport = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kpublictransport-21.08.0.tar.xz";
- sha256 = "1bfyr509z27gz59ykar0png1gghbna6minl987hxyiys76pchrd2";
- name = "kpublictransport-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kpublictransport-21.08.3.tar.xz";
+ sha256 = "06jbc0qgi5dgx9jwhdnimw1k480whbqw5x75jrx9bspv5y5br16j";
+ name = "kpublictransport-21.08.3.tar.xz";
};
};
kqtquickcharts = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kqtquickcharts-21.08.0.tar.xz";
- sha256 = "1x4bxqpnmyq6cvg7j6dbk0y7nbhjkrrldw9spxa72lx914bpd6np";
- name = "kqtquickcharts-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kqtquickcharts-21.08.3.tar.xz";
+ sha256 = "0kyznsq7bjzj5c091kpgn443zvkn3qbmn2b0sppj78a7b8ica5ca";
+ name = "kqtquickcharts-21.08.3.tar.xz";
};
};
krdc = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/krdc-21.08.0.tar.xz";
- sha256 = "0ja1x3i91wiw0v8qfd6fig56bqhpbfg2hhhl1bh8bqxm77q3qq9h";
- name = "krdc-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/krdc-21.08.3.tar.xz";
+ sha256 = "0jcbbq9vd4f1kp76fanwnp6q4hq10w3z7ygrb8makpa0daa96vx4";
+ name = "krdc-21.08.3.tar.xz";
};
};
kreversi = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kreversi-21.08.0.tar.xz";
- sha256 = "1122ybggnmkhb0lx934a2dka24gbfif0dmcg5qgzsbhvmc3am0cp";
- name = "kreversi-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kreversi-21.08.3.tar.xz";
+ sha256 = "1ifcckbf9lr4pr9n2ggqjvv6xz747k9hk7m43y5ij0bixi6cq474";
+ name = "kreversi-21.08.3.tar.xz";
};
};
krfb = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/krfb-21.08.0.tar.xz";
- sha256 = "14l5h04g3k51jsphzl4yq4kd8d2s3wfh7dq4i099gw6r04divipb";
- name = "krfb-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/krfb-21.08.3.tar.xz";
+ sha256 = "17q0hpwqbwqg4xbq5lmk5g1fl5jplzpx1acyhcbx7il0j06cfcn4";
+ name = "krfb-21.08.3.tar.xz";
};
};
kross-interpreters = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kross-interpreters-21.08.0.tar.xz";
- sha256 = "1vnfd96sjb20jifh5pvnd752ycq3m8p8kl7rmwv5s9lvmdiw14s2";
- name = "kross-interpreters-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kross-interpreters-21.08.3.tar.xz";
+ sha256 = "0z9lmazpw5389sgvhsjsm1219ys3fybr7hg95nrz8a334vw39nqv";
+ name = "kross-interpreters-21.08.3.tar.xz";
};
};
kruler = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kruler-21.08.0.tar.xz";
- sha256 = "1bz7b3m46mlibf2gai6is68119w8gphal7idz4wi3rlwl2lfbmm4";
- name = "kruler-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kruler-21.08.3.tar.xz";
+ sha256 = "0rjxy4ipxxk91wlzhrw9mg5avz18l4p01in29l1ccfz278b97lqm";
+ name = "kruler-21.08.3.tar.xz";
};
};
kshisen = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kshisen-21.08.0.tar.xz";
- sha256 = "1m9fhd2hk9pi5297hj1a36m1sl8c959a3mx1fc36va7yi0m8vxly";
- name = "kshisen-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kshisen-21.08.3.tar.xz";
+ sha256 = "1fnd2qck51gxnw6ncq52rd1q08abh70azs0apjnh9qk0dyjk91wh";
+ name = "kshisen-21.08.3.tar.xz";
};
};
ksirk = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ksirk-21.08.0.tar.xz";
- sha256 = "0vqg4gz67p00p3rrrv7mw2aiy9lcahkzrhz69xki96vfzcbpxw4r";
- name = "ksirk-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ksirk-21.08.3.tar.xz";
+ sha256 = "03v8sghnipkpca3c71s3008m3psawinj90a7637r19h7gyvlyws7";
+ name = "ksirk-21.08.3.tar.xz";
};
};
ksmtp = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ksmtp-21.08.0.tar.xz";
- sha256 = "1imm692nkgxa5bhhxqvd4mc6n8ajigjbmm6crpsciwi1gm84fx0b";
- name = "ksmtp-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ksmtp-21.08.3.tar.xz";
+ sha256 = "0diz01z8gczkwy8c8gvjd583w02vma7kpngzg1ax0wx640vbjq50";
+ name = "ksmtp-21.08.3.tar.xz";
};
};
ksnakeduel = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ksnakeduel-21.08.0.tar.xz";
- sha256 = "14hp1vqw9bk3lavv02y9xxmpgv1g9cvz113900j924c5xsjkp4mi";
- name = "ksnakeduel-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ksnakeduel-21.08.3.tar.xz";
+ sha256 = "0gmcn31dg3isv5dxv01rg8w6cbfdhwsz5rpp98lrr0qx4abphva7";
+ name = "ksnakeduel-21.08.3.tar.xz";
};
};
kspaceduel = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kspaceduel-21.08.0.tar.xz";
- sha256 = "1aa2cx06x5kq3ni5ikgjvar0rmz4csi231hvhgjhsnj18ilk0bxh";
- name = "kspaceduel-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kspaceduel-21.08.3.tar.xz";
+ sha256 = "0099rc25zvbl2zg1gpmxdhnphl32bd0cxlgikyfvanigq3mx8zkd";
+ name = "kspaceduel-21.08.3.tar.xz";
};
};
ksquares = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ksquares-21.08.0.tar.xz";
- sha256 = "1715l0j79n6nrjgg0fib17yv8rhjbnivmcgs8fg4iw49c3k5s7nc";
- name = "ksquares-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ksquares-21.08.3.tar.xz";
+ sha256 = "1mgs9yapz8fm2nmv0zg2x9qfd0ijj518s43dqmss41zrjr0g3mv2";
+ name = "ksquares-21.08.3.tar.xz";
};
};
ksudoku = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ksudoku-21.08.0.tar.xz";
- sha256 = "1p878yglczah0fdmmmcys46x07r2d78fx5f54z1yd8vhaf8bxmxj";
- name = "ksudoku-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ksudoku-21.08.3.tar.xz";
+ sha256 = "09s91xvkbybhwdkf80d7kvjj2jvii938vf650fqicypki2vf0zyx";
+ name = "ksudoku-21.08.3.tar.xz";
};
};
ksystemlog = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ksystemlog-21.08.0.tar.xz";
- sha256 = "18jlwmk9aynhcnkgflky20b6mphzaxxvcicmpv58sp4q92fgwgab";
- name = "ksystemlog-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ksystemlog-21.08.3.tar.xz";
+ sha256 = "1m20nvvvfbgzd3aay7hsb5pm1bgjngc36ixqs0hrklhrcmwjq9g6";
+ name = "ksystemlog-21.08.3.tar.xz";
};
};
kteatime = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kteatime-21.08.0.tar.xz";
- sha256 = "0imm902b19g2miyhwliryjyiyygsdsilk2b3biyvjlqp037sfrr4";
- name = "kteatime-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kteatime-21.08.3.tar.xz";
+ sha256 = "175vmcbhhlan6smhagli0jpa3ik0y0wwiijigfk2srm8cyk29ymn";
+ name = "kteatime-21.08.3.tar.xz";
};
};
ktimer = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktimer-21.08.0.tar.xz";
- sha256 = "05pka16za7dbpbhsss0mcm2h6rxzd7sp7wlly2ds9azdkwqzdjkh";
- name = "ktimer-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktimer-21.08.3.tar.xz";
+ sha256 = "1nr116cxw81c2bh32l2xrzmrglk36qkzycbfcffxnm7ka4flwzbm";
+ name = "ktimer-21.08.3.tar.xz";
};
};
ktnef = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktnef-21.08.0.tar.xz";
- sha256 = "0zp03pbry6qkcanbjj5qscja9i97f7gsssmn40swnfbd45ja2z6l";
- name = "ktnef-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktnef-21.08.3.tar.xz";
+ sha256 = "0vfsy894hs3538ssbqky6nfnjzhyn8yjlmvh0mb6gg69952gcvqa";
+ name = "ktnef-21.08.3.tar.xz";
};
};
ktorrent = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktorrent-21.08.0.tar.xz";
- sha256 = "1wqf6vvl1wyw8b6xzl91pry1mzjj9lpflnp4rinr9jsxfrf88c4x";
- name = "ktorrent-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktorrent-21.08.3.tar.xz";
+ sha256 = "0y1vpfc8xsm98lrf119r5clmb6xwq2a8adb347ksyvvr4l7rdkwm";
+ name = "ktorrent-21.08.3.tar.xz";
};
};
ktouch = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktouch-21.08.0.tar.xz";
- sha256 = "0zwf5q5h9qacygp9gzyj0s2y2sd3j2y5sm2rc6z3bn4jcv03bjxf";
- name = "ktouch-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktouch-21.08.3.tar.xz";
+ sha256 = "0i0ph52k2zw6q37qam2s09msxsdxr5v8qiqwxirjab8ad7g9z0gf";
+ name = "ktouch-21.08.3.tar.xz";
};
};
ktp-accounts-kcm = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-accounts-kcm-21.08.0.tar.xz";
- sha256 = "0qs3izsffkjyafxxq7mrhcw487zrl9vvdv75gdahc8bq6hni60q9";
- name = "ktp-accounts-kcm-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-accounts-kcm-21.08.3.tar.xz";
+ sha256 = "1ymq8cnvvw62xd4va969imm2g62fw7fhbs8rw3wqrc2lal9d5l1g";
+ name = "ktp-accounts-kcm-21.08.3.tar.xz";
};
};
ktp-approver = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-approver-21.08.0.tar.xz";
- sha256 = "177hz0fwpqxg65cw5d51hzqsb5ipp3vm513zdc6ac1bxjb6pd725";
- name = "ktp-approver-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-approver-21.08.3.tar.xz";
+ sha256 = "0z9kw2gamgdz425aw6li6nvv1g0b1ffil0rmjh0b0z89bbpbc6jx";
+ name = "ktp-approver-21.08.3.tar.xz";
};
};
ktp-auth-handler = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-auth-handler-21.08.0.tar.xz";
- sha256 = "1wg4vcix56ws1mq7611h1kqcxk8dfb5fw57m9wn2q0ikzs9ymav7";
- name = "ktp-auth-handler-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-auth-handler-21.08.3.tar.xz";
+ sha256 = "1z89ycwpq46w82hylwq1sizd7a563g5a22jdc1chhhlwp9dqmdc2";
+ name = "ktp-auth-handler-21.08.3.tar.xz";
};
};
ktp-call-ui = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-call-ui-21.08.0.tar.xz";
- sha256 = "1mgbhkd9ph411h95xyajx6cqsjjf1m52frxw88agv5q6cymx2iz1";
- name = "ktp-call-ui-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-call-ui-21.08.3.tar.xz";
+ sha256 = "1nr064h0f4rqjka030xflhrmq0l8g87fwyi853plk7y0473fy6h2";
+ name = "ktp-call-ui-21.08.3.tar.xz";
};
};
ktp-common-internals = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-common-internals-21.08.0.tar.xz";
- sha256 = "16ivfv65q06gxf01zzswy77f8aqdnjm7jycz812xa07h5xqxj4az";
- name = "ktp-common-internals-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-common-internals-21.08.3.tar.xz";
+ sha256 = "0ndfdggs4j2jc93pf998r0fyj7fjnc2pz98acc1l6laq8d8aawd2";
+ name = "ktp-common-internals-21.08.3.tar.xz";
};
};
ktp-contact-list = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-contact-list-21.08.0.tar.xz";
- sha256 = "1pwql0g5bz5h59wc4nay85c74vic3yk0vc7wx8z6namjcw5sl6n8";
- name = "ktp-contact-list-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-contact-list-21.08.3.tar.xz";
+ sha256 = "0pdl3w1vj6f4nms4cs91yagfyf5ssqms0bzmcnjf53pcpyf8rhjs";
+ name = "ktp-contact-list-21.08.3.tar.xz";
};
};
ktp-contact-runner = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-contact-runner-21.08.0.tar.xz";
- sha256 = "1wv21ybzk0nvabjrbnvc6yg4mfdxw368x5zxhrffirv58lyqclxs";
- name = "ktp-contact-runner-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-contact-runner-21.08.3.tar.xz";
+ sha256 = "0zjw9f66rn5nc37q3q54qy8m09qlama949ksfrvyyh3qhsxp17pm";
+ name = "ktp-contact-runner-21.08.3.tar.xz";
};
};
ktp-desktop-applets = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-desktop-applets-21.08.0.tar.xz";
- sha256 = "1wzjxd4xndpcixlhv636m9gis1clqhf9cksapxgk6sn31mamqxia";
- name = "ktp-desktop-applets-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-desktop-applets-21.08.3.tar.xz";
+ sha256 = "1wlls0rhynfq9cfn48g31avviy067r409c5pcvasfwgzcv5hjan5";
+ name = "ktp-desktop-applets-21.08.3.tar.xz";
};
};
ktp-filetransfer-handler = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-filetransfer-handler-21.08.0.tar.xz";
- sha256 = "0zvfhwa70jiiv9xf405263h9mr2zap1fpplgyfrz5r2lsidga5r8";
- name = "ktp-filetransfer-handler-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-filetransfer-handler-21.08.3.tar.xz";
+ sha256 = "1vnwgcmn3j18spcn2dl468n2y073mk9nsc3557hid5mmg7byp8ng";
+ name = "ktp-filetransfer-handler-21.08.3.tar.xz";
};
};
ktp-kded-module = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-kded-module-21.08.0.tar.xz";
- sha256 = "17k94bwmv547xks6206x89h014r4gxkd2gj3wry3xm3g1z27w7bn";
- name = "ktp-kded-module-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-kded-module-21.08.3.tar.xz";
+ sha256 = "0mgw2w812306w04w1xgv9ngd31zj0m4v9hv3cyyk2dz1hi97g9hz";
+ name = "ktp-kded-module-21.08.3.tar.xz";
};
};
ktp-send-file = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-send-file-21.08.0.tar.xz";
- sha256 = "0hk85ydzhlqfinj3ggy5kxvs242kkwbvlh5jz0hh3bi88rdw13px";
- name = "ktp-send-file-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-send-file-21.08.3.tar.xz";
+ sha256 = "1c0yrir3z6p6ravizaqhdgjiwcj2cyzd61n4zcx2mrr4mfq7wr4l";
+ name = "ktp-send-file-21.08.3.tar.xz";
};
};
ktp-text-ui = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktp-text-ui-21.08.0.tar.xz";
- sha256 = "0zv736zrz5mkvbzgbkm9hq8sp6qnqkg58nyd76xfqq54svgcpi71";
- name = "ktp-text-ui-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktp-text-ui-21.08.3.tar.xz";
+ sha256 = "0xk9lcdp99rd1n6gg9a4ix5bdfk229y1ddf115ldjsk30ksfv0r0";
+ name = "ktp-text-ui-21.08.3.tar.xz";
};
};
ktuberling = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/ktuberling-21.08.0.tar.xz";
- sha256 = "15sjqskzni5jhvr77b794mia3v00rmzgxvzqaqbwkhy6ax1gihda";
- name = "ktuberling-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/ktuberling-21.08.3.tar.xz";
+ sha256 = "1i0ykflfr2q3043z5j5h1m093n103la8zbax7cacid109d0kca5g";
+ name = "ktuberling-21.08.3.tar.xz";
};
};
kturtle = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kturtle-21.08.0.tar.xz";
- sha256 = "07japzwhfhb5gbm8ac4acvq4k2xqhlz6sl11qjb9j9scmz77y66f";
- name = "kturtle-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kturtle-21.08.3.tar.xz";
+ sha256 = "1fw7hgx0zxsl1l9ymjhf3k3w5999ijj8vdagnyiz01y2i2hlnvhc";
+ name = "kturtle-21.08.3.tar.xz";
};
};
kubrick = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kubrick-21.08.0.tar.xz";
- sha256 = "0lk4qfg0fzfhs796csqvniinlyljd4iz9x1l884b1pz2savrfq05";
- name = "kubrick-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kubrick-21.08.3.tar.xz";
+ sha256 = "1fq2icsfbd6k4gm9w25aml2rigzami934vvkvb30222vbhs86qr4";
+ name = "kubrick-21.08.3.tar.xz";
};
};
kwalletmanager = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kwalletmanager-21.08.0.tar.xz";
- sha256 = "0qwrlm0ay04gn9k752pixykiz2dvqaxybfgahahlqf2j2l5w18kh";
- name = "kwalletmanager-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kwalletmanager-21.08.3.tar.xz";
+ sha256 = "0cbq0md317fipd4lfqvcgan1jm5n0zyilzbrkjymbnl7cy276ajq";
+ name = "kwalletmanager-21.08.3.tar.xz";
};
};
kwave = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kwave-21.08.0.tar.xz";
- sha256 = "0pi7ycxnl5dacw5qmig1v3xy69a6c0x3hdk4bpw19avx9asgfjq7";
- name = "kwave-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kwave-21.08.3.tar.xz";
+ sha256 = "08qs33mi047jcqaavglgxk3i6gq4h73aygn6gj8xpcpqhq82kjl5";
+ name = "kwave-21.08.3.tar.xz";
};
};
kwordquiz = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/kwordquiz-21.08.0.tar.xz";
- sha256 = "1ms8scxg14s4s35xcgacryfwyadvfyzsv1alkipv87x75qsbjzjm";
- name = "kwordquiz-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/kwordquiz-21.08.3.tar.xz";
+ sha256 = "066v2w8i2fvrrqb1aakscwcd6rchlm4m5pwsql0s6k59mn7wab6b";
+ name = "kwordquiz-21.08.3.tar.xz";
};
};
libgravatar = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libgravatar-21.08.0.tar.xz";
- sha256 = "10nqv5f3hanhljld8rpkxaqvr892sj1v2vfx43i52xhg6pbxdd5n";
- name = "libgravatar-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libgravatar-21.08.3.tar.xz";
+ sha256 = "0ni2lgrfpx8vx9mmm43gsn1kw4jj8j52yq4ylfam89q6mhpxcnix";
+ name = "libgravatar-21.08.3.tar.xz";
};
};
libkcddb = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkcddb-21.08.0.tar.xz";
- sha256 = "006z9m4lwgk0ick5blx00mndw5m04l6ayb9nmd7fswd4ql3qqcpv";
- name = "libkcddb-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkcddb-21.08.3.tar.xz";
+ sha256 = "00wivb6viw5w1ylcsx3m9ps7j00z7fzjh2s7nap95xnprraihcmv";
+ name = "libkcddb-21.08.3.tar.xz";
};
};
libkcompactdisc = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkcompactdisc-21.08.0.tar.xz";
- sha256 = "0fgcr6gr4di5spw9dm6yz90s16jv2zmdpgpvhxbscirn7mf1b4is";
- name = "libkcompactdisc-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkcompactdisc-21.08.3.tar.xz";
+ sha256 = "1rsmibz9mamqvhppnxwn2db6jmsipvjx2kj8ikpsp9bx8h421n2g";
+ name = "libkcompactdisc-21.08.3.tar.xz";
};
};
libkdcraw = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkdcraw-21.08.0.tar.xz";
- sha256 = "176wp24ij2kciggjnffcamgk4y6h59cwabwwxvli32i3l3ll8wlc";
- name = "libkdcraw-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkdcraw-21.08.3.tar.xz";
+ sha256 = "0gm8nfc6ayg1ipba4yvhy5nzfrpdwx6l434bg9y7yqvbm3lm1g86";
+ name = "libkdcraw-21.08.3.tar.xz";
};
};
libkdegames = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkdegames-21.08.0.tar.xz";
- sha256 = "0nbimjv8sanwn3is9d357ic8zy0dpdr3g3qsipzapzlchpigjm9b";
- name = "libkdegames-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkdegames-21.08.3.tar.xz";
+ sha256 = "0ysc5g6ap207c5yq3ryiaxmvkrh6wzqzdgccdffs0lncd24g641a";
+ name = "libkdegames-21.08.3.tar.xz";
};
};
libkdepim = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkdepim-21.08.0.tar.xz";
- sha256 = "1gxyzq7lgswfrkxsfqf5y4vwx2ji3wz7vyzkg5gpygr1an6c2sp3";
- name = "libkdepim-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkdepim-21.08.3.tar.xz";
+ sha256 = "1776fjzd88kj2crr8lcrwxmkvjsxxyll2gy21wlbmqy4h04bi130";
+ name = "libkdepim-21.08.3.tar.xz";
};
};
libkeduvocdocument = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkeduvocdocument-21.08.0.tar.xz";
- sha256 = "1nm07fdaas7jn3yfds7k22n6xl9c8wdi6bjrf8blbycj6fflciwd";
- name = "libkeduvocdocument-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkeduvocdocument-21.08.3.tar.xz";
+ sha256 = "1qyi5y5v1zp3qid58sdfpcp83rkmz2s1hsvir4f9j5ngir0czcq1";
+ name = "libkeduvocdocument-21.08.3.tar.xz";
};
};
libkexiv2 = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkexiv2-21.08.0.tar.xz";
- sha256 = "0mb5qj4n2fcwak36an4yslffvlhj6f2qfv5vdl2cid8c34ikvqll";
- name = "libkexiv2-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkexiv2-21.08.3.tar.xz";
+ sha256 = "15d8d3mzp0yhj6lm5799mfncqkxnw0cvfxcgpkz0lf9askv2cq8n";
+ name = "libkexiv2-21.08.3.tar.xz";
};
};
libkgapi = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkgapi-21.08.0.tar.xz";
- sha256 = "0f2yk75a0gr7hah32fmn35lk0illviswfhlh0nw6ignfx56q7f3r";
- name = "libkgapi-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkgapi-21.08.3.tar.xz";
+ sha256 = "101yb495k5bxq402qdvyqd0sdhzc5z3r8szymfmrlilgk35wy9rs";
+ name = "libkgapi-21.08.3.tar.xz";
};
};
libkipi = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkipi-21.08.0.tar.xz";
- sha256 = "0831x76w413azciabm6l83nrwpiivq5pjqxcl3yzhs2hq1i1wd06";
- name = "libkipi-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkipi-21.08.3.tar.xz";
+ sha256 = "12qjvd7ynab33qid2d4j06z8fbfziaxdlrpq0h3ywd2drks0ykvf";
+ name = "libkipi-21.08.3.tar.xz";
};
};
libkleo = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkleo-21.08.0.tar.xz";
- sha256 = "14i65vh0c39z0d65kgqn2apcfi5x3vxrxp2ybc4ccc4sxh033akp";
- name = "libkleo-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkleo-21.08.3.tar.xz";
+ sha256 = "0ivyqmc1hv1cljbpxr5xrzyf9z96dbaa48ak54cxxpanphpialrl";
+ name = "libkleo-21.08.3.tar.xz";
};
};
libkmahjongg = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkmahjongg-21.08.0.tar.xz";
- sha256 = "18syxfszfvq1h0l5fbgy599ak2pgp4mj4i949kyv4v6qdwwv9mhi";
- name = "libkmahjongg-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkmahjongg-21.08.3.tar.xz";
+ sha256 = "0rh61491dl90rrlmqmqjdj7vlrjhayhkk5i50zb6jfvrysq9axkc";
+ name = "libkmahjongg-21.08.3.tar.xz";
};
};
libkomparediff2 = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libkomparediff2-21.08.0.tar.xz";
- sha256 = "0b5yhhvnipbwzn2sylh45ispslrw3w68y9xnrxrjwb0ydmq5zqyb";
- name = "libkomparediff2-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libkomparediff2-21.08.3.tar.xz";
+ sha256 = "0a3980kiigc5kqkyxf4glcxvgr3f4rnc43gcx9vj9mk2qhfcsiqy";
+ name = "libkomparediff2-21.08.3.tar.xz";
};
};
libksane = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libksane-21.08.0.tar.xz";
- sha256 = "0i2vr95hi776rqljjjh14d3p5zhcbnjx0b3n94x7m4jq5k2wqpqs";
- name = "libksane-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libksane-21.08.3.tar.xz";
+ sha256 = "086zrddpammihia888nrx2p18if1fyzvhs3igkxq9q2p551vk9fy";
+ name = "libksane-21.08.3.tar.xz";
};
};
libksieve = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libksieve-21.08.0.tar.xz";
- sha256 = "0r35153l0kgmw5gvspvqlna6ramggz7p055rbpz60xz9hxfkz3d7";
- name = "libksieve-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libksieve-21.08.3.tar.xz";
+ sha256 = "1snli2yvq2n567vgi1xs6iiqgn4zp31cid17aqpxllyw8a3xa0l7";
+ name = "libksieve-21.08.3.tar.xz";
};
};
libktorrent = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/libktorrent-21.08.0.tar.xz";
- sha256 = "12x7h0wrxdcpyd4mblbv64swxlcc8vc5k4nlzmag4nzdmgrb7c3x";
- name = "libktorrent-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/libktorrent-21.08.3.tar.xz";
+ sha256 = "1zjnnxhd0mv9if61rr28h35wban7sif61dmgc3wsixp4dz1xfrm6";
+ name = "libktorrent-21.08.3.tar.xz";
};
};
lokalize = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/lokalize-21.08.0.tar.xz";
- sha256 = "0mwyvfam5ybrhd67vq6dgw74106l7p0q16xvddxa9gi0sdxb9883";
- name = "lokalize-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/lokalize-21.08.3.tar.xz";
+ sha256 = "0m084mayd9b0iwm4j5cckw22ix1mc4zcwxjfk0cdapm3g2ls1rzd";
+ name = "lokalize-21.08.3.tar.xz";
};
};
lskat = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/lskat-21.08.0.tar.xz";
- sha256 = "14ii7pcq6p0k1626x63nc49pvjb4lvc4d5sdsi47rp0ll0f03sa8";
- name = "lskat-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/lskat-21.08.3.tar.xz";
+ sha256 = "09l209fz82ibsxzg2f53lhbcsaq6zpwllpyklj2988xzn7h49cqg";
+ name = "lskat-21.08.3.tar.xz";
};
};
mailcommon = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/mailcommon-21.08.0.tar.xz";
- sha256 = "0braayvcpbyvmcxx82ic7fhmzfwf6dyanvikwcmb0p9y7bkr1vk1";
- name = "mailcommon-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/mailcommon-21.08.3.tar.xz";
+ sha256 = "0vpbp88pl462d1j9f3ww22zybrmz92zx3b5cj4gsl7gmb7ijwb19";
+ name = "mailcommon-21.08.3.tar.xz";
};
};
mailimporter = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/mailimporter-21.08.0.tar.xz";
- sha256 = "139akl53hfq3kc91qnca5f6i5vimr8djbxnw94xibpiwj22xq7rz";
- name = "mailimporter-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/mailimporter-21.08.3.tar.xz";
+ sha256 = "00vm445i5c7vjfmbfgzdj3xildqbnlzpi5i16w4c47wyg5kvpj2c";
+ name = "mailimporter-21.08.3.tar.xz";
};
};
marble = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/marble-21.08.0.tar.xz";
- sha256 = "17sn26grpph8iw2kw498krvryyxy0qp6ala55bvh6a2hyn3562zl";
- name = "marble-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/marble-21.08.3.tar.xz";
+ sha256 = "0bapnmm2x0ihms5gd12brqb2yx7g5h4c8ky70l1czd4a8d95ha0a";
+ name = "marble-21.08.3.tar.xz";
};
};
markdownpart = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/markdownpart-21.08.0.tar.xz";
- sha256 = "138pi82653mwxn18s541b95i1zj5nij08cm7zykpm7kpkr2ri167";
- name = "markdownpart-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/markdownpart-21.08.3.tar.xz";
+ sha256 = "1cqkwvs1ssg203fkaiibcmqjm2viaq3iq880cjlkx9irh0bv9q9h";
+ name = "markdownpart-21.08.3.tar.xz";
};
};
mbox-importer = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/mbox-importer-21.08.0.tar.xz";
- sha256 = "0whpz4vv27cibvb4q98dxkdrn3jpiywvbqdn5adzfmjvw9sdb4ym";
- name = "mbox-importer-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/mbox-importer-21.08.3.tar.xz";
+ sha256 = "19i5a1rax3xfkcz0hv0vqq9iavggqrliwpqsqnx6zvwjzgjrvsif";
+ name = "mbox-importer-21.08.3.tar.xz";
};
};
messagelib = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/messagelib-21.08.0.tar.xz";
- sha256 = "1l5af4bwgcgj2askfsvx11bzqsp4bl5jc84fnswxpzidrir4x8ig";
- name = "messagelib-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/messagelib-21.08.3.tar.xz";
+ sha256 = "0q9mligkkvbwb92ghv5g66rkn0vpbw2xfbgsdnn4jajjxsixipg7";
+ name = "messagelib-21.08.3.tar.xz";
};
};
minuet = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/minuet-21.08.0.tar.xz";
- sha256 = "06dk90qb2lvl01bc6d9wmjqm3xv4hqi092ljn1dh6h2711c7czca";
- name = "minuet-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/minuet-21.08.3.tar.xz";
+ sha256 = "1g2chj23dw9p2lgf094mn9cd26wnhwgslwdwzwax2a23p42j7kb8";
+ name = "minuet-21.08.3.tar.xz";
};
};
okular = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/okular-21.08.0.tar.xz";
- sha256 = "0sbaq7cqzardmdvbl8y7jqb8pi605kg8jq2daizrp2m73w8p7vfx";
- name = "okular-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/okular-21.08.3.tar.xz";
+ sha256 = "00ghh7z39904d5x5sa39adkavkhl09hzib6fpwjn14f6sz925f9r";
+ name = "okular-21.08.3.tar.xz";
};
};
palapeli = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/palapeli-21.08.0.tar.xz";
- sha256 = "11mgsyk3mg9ic76grr1x0m8qihzrs8da40qxbx2v0syy5dgn7ssw";
- name = "palapeli-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/palapeli-21.08.3.tar.xz";
+ sha256 = "084nvavgzkmrv77rsg2zf2vykfjwwsvn2i2y24jsh63hs7i5xqhb";
+ name = "palapeli-21.08.3.tar.xz";
};
};
parley = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/parley-21.08.0.tar.xz";
- sha256 = "1qn9pqvha52ha80lpqcvsi34yssvgnnyhl50is9wgk7qfnj02g9b";
- name = "parley-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/parley-21.08.3.tar.xz";
+ sha256 = "0wyv5qx4g0941kg870qb9rc9npdw39ggvndjk7ywaad9nkvdj73g";
+ name = "parley-21.08.3.tar.xz";
};
};
partitionmanager = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/partitionmanager-21.08.0.tar.xz";
- sha256 = "1r5vis8dnpyl8jvv3r22jmlfwsscnqvfdkvpabkrfw6l7l33p3cj";
- name = "partitionmanager-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/partitionmanager-21.08.3.tar.xz";
+ sha256 = "0im782ggbnkyzcczxx3mv5qi4nlqmcyhwkbf0mzh8cz56qkfvzhr";
+ name = "partitionmanager-21.08.3.tar.xz";
};
};
picmi = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/picmi-21.08.0.tar.xz";
- sha256 = "02jwsibpclp1a3nrzlkkq4qzm3y595cdf2pfd5933z8q3lk0zj85";
- name = "picmi-21.08.0.tar.xz";
- };
- };
- pimcommon = {
- version = "21.08.0";
- src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/pimcommon-21.08.0.tar.xz";
- sha256 = "12ffffv149ggpycdpk3sxh152y67dnm460d5d7sdfx8ip78xl0lv";
- name = "pimcommon-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/picmi-21.08.3.tar.xz";
+ sha256 = "0h208sy2r2jzy7a6rmla349d8lydvfvdb2vahdfxrqql0m15s07s";
+ name = "picmi-21.08.3.tar.xz";
};
};
pim-data-exporter = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/pim-data-exporter-21.08.0.tar.xz";
- sha256 = "0zdcldazg5dsi3npl63hsz8v99h8k0pvnfh9rnhf0lg0mpcl8psn";
- name = "pim-data-exporter-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/pim-data-exporter-21.08.3.tar.xz";
+ sha256 = "0l6gkwh6pxp6px50n8i0374by3n7nv0gjkb2qy0s4hsvfz8nwlwk";
+ name = "pim-data-exporter-21.08.3.tar.xz";
};
};
pim-sieve-editor = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/pim-sieve-editor-21.08.0.tar.xz";
- sha256 = "008a8wq7n68fgh63gaz64q4qsxlk11zlg9v4mmln8238zgvwif1q";
- name = "pim-sieve-editor-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/pim-sieve-editor-21.08.3.tar.xz";
+ sha256 = "1z01c0wsxzl69kr0cxfq23l56dgi0xfjak5qbpfd9p4b2kr095s7";
+ name = "pim-sieve-editor-21.08.3.tar.xz";
+ };
+ };
+ pimcommon = {
+ version = "21.08.3";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/21.08.3/src/pimcommon-21.08.3.tar.xz";
+ sha256 = "1hj49spfjwqrwh7h86kw7ydcx13rknagj54mhcn60kawz639533l";
+ name = "pimcommon-21.08.3.tar.xz";
};
};
poxml = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/poxml-21.08.0.tar.xz";
- sha256 = "0wb3nq09ki2nkcpl6nfl483cm919hx6qxd39g6d76ksa7q2q46m9";
- name = "poxml-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/poxml-21.08.3.tar.xz";
+ sha256 = "0yrn2dbdhm3ap55w401ma8z64b7pgs57lzgakzkdpcf69bww9xkw";
+ name = "poxml-21.08.3.tar.xz";
};
};
print-manager = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/print-manager-21.08.0.tar.xz";
- sha256 = "01pcrjfp40a9h466jsm3ymjqzavrzxvn74gcrvxasi68wwq8aqrf";
- name = "print-manager-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/print-manager-21.08.3.tar.xz";
+ sha256 = "0dmd1wp6c5f58fssnyc977d29gqcr6pmzplvq5pj97xq0i8fq15z";
+ name = "print-manager-21.08.3.tar.xz";
};
};
rocs = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/rocs-21.08.0.tar.xz";
- sha256 = "1jqiaxxdbv1cc75awl5gfq1kv76qmgiw872s4g5bny27ki8dlk7w";
- name = "rocs-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/rocs-21.08.3.tar.xz";
+ sha256 = "0mdn58wbv5rhljp7ai0282h5z5j7m9yly6q9s6c8vm5kaxhbwg58";
+ name = "rocs-21.08.3.tar.xz";
};
};
signon-kwallet-extension = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/signon-kwallet-extension-21.08.0.tar.xz";
- sha256 = "0wig4p13qjpmn3imjiz4l14haad8qkr4qccv1kdgkkijy2dr66dy";
- name = "signon-kwallet-extension-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/signon-kwallet-extension-21.08.3.tar.xz";
+ sha256 = "1m3wyyndlwk4snjzz45j377hz5plx01bl69y39aw1y53rsx0baln";
+ name = "signon-kwallet-extension-21.08.3.tar.xz";
};
};
skanlite = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/skanlite-21.08.0.tar.xz";
- sha256 = "1kkxxcaibxfvsaf9548vxspz6iyfhdl9xmmcdxrp85w9ymcr3mi5";
- name = "skanlite-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/skanlite-21.08.3.tar.xz";
+ sha256 = "1llvq89vdsypbak8lmhnyfr61s72c4lra1yypxmgw0hwqvwqzyjk";
+ name = "skanlite-21.08.3.tar.xz";
};
};
spectacle = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/spectacle-21.08.0.tar.xz";
- sha256 = "18rhb92m102hdkirdcigbd5ixma3s86022af1h133h3fy33xciwc";
- name = "spectacle-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/spectacle-21.08.3.tar.xz";
+ sha256 = "0l1p565y2d04fw9mz1ns11bwc9z5apkjd4llgdihz4qwq5j0ri5y";
+ name = "spectacle-21.08.3.tar.xz";
};
};
step = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/step-21.08.0.tar.xz";
- sha256 = "0dayfkfh68ldg3ivh2nki78w07rscqphq04xazvqss8j296xjzgz";
- name = "step-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/step-21.08.3.tar.xz";
+ sha256 = "1pznz6hxj1h0vcsidsyjm9zgzx4pla47yckykc3mxb9biraalhi5";
+ name = "step-21.08.3.tar.xz";
};
};
svgpart = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/svgpart-21.08.0.tar.xz";
- sha256 = "00pigyf0bicgclbb1imz2w1ksp10zzdf385kdx9zphh2h438kagf";
- name = "svgpart-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/svgpart-21.08.3.tar.xz";
+ sha256 = "1zpzmhgvxlyalq4nn446k7plz5fw2pl4r7zv7q3hjrzla1wgcqx8";
+ name = "svgpart-21.08.3.tar.xz";
};
};
sweeper = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/sweeper-21.08.0.tar.xz";
- sha256 = "1g6s7nvcxs93i8mwplwd6a42jjid73n4rywwar9z2y1293afzaci";
- name = "sweeper-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/sweeper-21.08.3.tar.xz";
+ sha256 = "0sa8dfx26m9ry3pvqryx41w51l76r8l2xh16b783ixqln7x08z5j";
+ name = "sweeper-21.08.3.tar.xz";
};
};
umbrello = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/umbrello-21.08.0.tar.xz";
- sha256 = "0nly325zb51n5l2hbc6m199vhqx3jsscbvp4bqhgplklwhd6c1c0";
- name = "umbrello-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/umbrello-21.08.3.tar.xz";
+ sha256 = "025qds7nahm6kpi94j4blk8xpv6vh2alrbgwby20vvn3h678z26x";
+ name = "umbrello-21.08.3.tar.xz";
};
};
yakuake = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/yakuake-21.08.0.tar.xz";
- sha256 = "0gm2djqjf807h657br1hz9ds5w09lszyi8iy2n3my4h78cs9lw72";
- name = "yakuake-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/yakuake-21.08.3.tar.xz";
+ sha256 = "1za4vhnr495dadrarqqanavmyn1mmzm3y8jx05cpbjyqmlm353dk";
+ name = "yakuake-21.08.3.tar.xz";
};
};
zeroconf-ioslave = {
- version = "21.08.0";
+ version = "21.08.3";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.0/src/zeroconf-ioslave-21.08.0.tar.xz";
- sha256 = "13nxmghb8h0p5qp69w095xwgdl6b7kv8c1zs1n63l0m028wa37bg";
- name = "zeroconf-ioslave-21.08.0.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.3/src/zeroconf-ioslave-21.08.3.tar.xz";
+ sha256 = "1dkig267znwyw03fq6mpdb5g1xnkhr0brnvxskjm44a4d5ipbv2g";
+ name = "zeroconf-ioslave-21.08.3.tar.xz";
};
};
}
diff --git a/pkgs/applications/logging/humioctl/default.nix b/pkgs/applications/logging/humioctl/default.nix
index b5d0578b1220..8f0fe7610873 100644
--- a/pkgs/applications/logging/humioctl/default.nix
+++ b/pkgs/applications/logging/humioctl/default.nix
@@ -1,8 +1,8 @@
{ buildGoModule, fetchFromGitHub, installShellFiles, lib }:
let
- humioCtlVersion = "0.28.6";
- sha256 = "sha256-15RRoTr+N+DsILYF1KndAwsW329w+UxHfB1VaWnkEFI=";
+ humioCtlVersion = "0.28.11";
+ sha256 = "sha256-CdGeGpOEWYn7yIWJxWpRrSPHcuult+jtqpjYaSjfBLQ=";
vendorSha256 = "sha256-fgRQ2n5tzj5s4rT65VIqh61wDwu+x/fWhpaKwyr8XWA=";
in buildGoModule {
name = "humioctl-${humioCtlVersion}";
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 0803b495b2fa..ac3922e17d4b 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -33,11 +33,11 @@
}:
stdenv.mkDerivation rec {
pname = "1password";
- version = "8.1.1";
+ version = "8.3.0";
src = fetchurl {
url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
- sha256 = "0y39sfhj9xrgprh01i9apzfkqzm6pdhjc8x59x5p5djjjvxbcwmy";
+ sha256 = "1cakv316ipwyw6s3x4a6qhl0nmg17bxhh08c969gma3svamh1grw";
};
nativeBuildInputs = [ makeWrapper ];
@@ -86,6 +86,9 @@ stdenv.mkDerivation rec {
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=/opt/1Password/${pname}' 'Exec=${pname}'
+ # Polkit file
+ install -Dm 0644 -t $out/share/polkit-1/actions com.1password.1Password.policy
+
# Icons
cp -a resources/icons $out/share
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 8f4ea3df18d0..9e9e5c28e5ef 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -2,24 +2,27 @@
stdenv.mkDerivation rec {
pname = "1password";
- version = "1.11.2";
+ version = "1.12.2";
src =
- if stdenv.isLinux then fetchzip {
- url = {
- "i686-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
- "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
- "aarch64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_arm_v${version}.zip";
- }.${stdenv.hostPlatform.system};
- sha256 = {
- "i686-linux" = "0rh5bakj9qd43cf6wj5v46a3h98kcwqyc0f1yw72wvcacvjycyjz";
- "x86_64-linux" = "00nf0cb8cxk1pvzr1wq778wvikzrlzy38r3rzkq44whdpdj50jzx";
- "aarch64-linux" = "1gv282z49bj3ln5na4wb1z5455a64cyd54fp5i96k8shaxd0apxf";
- }.${stdenv.hostPlatform.system};
- stripRoot = false;
- } else fetchurl {
- url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_apple_universal_v${version}.pkg";
- sha256 = "1pqdjr6d23j9fpwgahb0s1ni1bpjv9jajs1hapgq5kdrww2w7nhm";
- };
+ if stdenv.isLinux then
+ fetchzip
+ {
+ url = {
+ "i686-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
+ "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
+ "aarch64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_arm_v${version}.zip";
+ }.${stdenv.hostPlatform.system};
+ sha256 = {
+ "i686-linux" = "tCm/vDBASPN9FBSVRJ6BrFc7hdtZWPEAgvokJhjazPg=";
+ "x86_64-linux" = "3VkVMuTAfeEowkguJi2fd1kG7GwO1VN5GBPgNaH3Zv4=";
+ "aarch64-linux" = "vWoA/0ZfdwVniHmxC4nH1QIc6bjdb00+SwlkIWc9BPs=";
+ }.${stdenv.hostPlatform.system};
+ stripRoot = false;
+ } else
+ fetchurl {
+ url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_apple_universal_v${version}.pkg";
+ sha256 = "xG/6YZdkJxr5Py90rkIyG4mK40yFTmNSfih9jO2uF+4=";
+ };
buildInputs = lib.optionals stdenv.isDarwin [ xar cpio ];
@@ -43,11 +46,11 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
- description = "1Password command-line tool";
- homepage = "https://support.1password.com/command-line/";
+ description = "1Password command-line tool";
+ homepage = "https://support.1password.com/command-line/";
downloadPage = "https://app-updates.agilebits.com/product_history/CLI";
- maintainers = with maintainers; [ joelburget marsam ];
- license = licenses.unfree;
- platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+ maintainers = with maintainers; [ joelburget marsam ];
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
};
}
diff --git a/pkgs/applications/misc/abook/default.nix b/pkgs/applications/misc/abook/default.nix
index 62cba4a5b736..de463cfd6665 100644
--- a/pkgs/applications/misc/abook/default.nix
+++ b/pkgs/applications/misc/abook/default.nix
@@ -1,19 +1,20 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, ncurses, readline, autoreconfHook }:
stdenv.mkDerivation rec {
- name = "abook-0.6.1";
+ pname = "abook";
+ version = "0.6.1";
src = fetchurl {
- url = "http://abook.sourceforge.net/devel/${name}.tar.gz";
+ url = "http://abook.sourceforge.net/devel/abook-${version}.tar.gz";
sha256 = "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh";
};
patches = [
(fetchpatch {
- url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc5.patch?h=packages/abook";
- name = "gcc5.patch";
- sha256 = "13n3qd6yy45i5n8ppjn9hj6y63ymjrq96280683xk7f7rjavw5nn";
- })
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc5.patch?h=packages/abook";
+ name = "gcc5.patch";
+ sha256 = "13n3qd6yy45i5n8ppjn9hj6y63ymjrq96280683xk7f7rjavw5nn";
+ })
];
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index 8f1b3f5ca88f..2bce30365f08 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -1,13 +1,23 @@
-{ lib, stdenv, fetchurl, libX11, cups, zlib, libxml2, pango, atk, gtk2, glib
-, gdk-pixbuf, gdk-pixbuf-xlib }:
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, cups
+, zlib
+, libxml2
+, pango
+, atk
+, gtk2
+, glib
+, gdk-pixbuf
+, gdk-pixbuf-xlib
+}:
-assert stdenv.hostPlatform.system == "i686-linux";
-
-let version = "9.5.5"; in
-
-stdenv.mkDerivation {
- name = "adobe-reader-${version}-1";
+stdenv.mkDerivation rec {
+ pname = "adobe-reader";
+ version = "9.5.5";
+ # TODO: convert to phases
builder = ./builder.sh;
src = fetchurl {
@@ -16,11 +26,8 @@ stdenv.mkDerivation {
};
# !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
- # We should probably remove those and use the regular Nixpkgs
- # versions.
-
- libPath = lib.makeLibraryPath
- [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
+ # We should probably remove those and use the regular Nixpkgs versions.
+ libPath = lib.makeLibraryPath [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
@@ -32,5 +39,6 @@ stdenv.mkDerivation {
"Numerous unresolved vulnerabilities"
"See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
];
+ platforms = [ "i686-linux" ];
};
}
diff --git a/pkgs/applications/misc/anup/default.nix b/pkgs/applications/misc/anup/default.nix
index 9c99c84eabee..3eed2a7501c3 100644
--- a/pkgs/applications/misc/anup/default.nix
+++ b/pkgs/applications/misc/anup/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, sqlite, xdg-utils}:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, Security, sqlite, xdg-utils}:
rustPlatform.buildRustPackage rec {
pname = "anup";
@@ -14,6 +14,8 @@ rustPlatform.buildRustPackage rec {
buildInputs = [
sqlite
xdg-utils
+ ] ++ lib.optionals stdenv.isDarwin [
+ Security
];
cargoSha256 = "sha256-1TA2HDHKA3twFtlAWaC2zcRzS8TJwcbBt1OTQ3hC3qM=";
diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix
index dcd0aa498c5b..0632f2b15a00 100644
--- a/pkgs/applications/misc/anytype/default.nix
+++ b/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
let
pname = "anytype";
- version = "0.19.0";
+ version = "0.21.1";
name = "Anytype-${version}";
nameExecutable = pname;
src = fetchurl {
url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
name = "Anytype-${version}.AppImage";
- sha256 = "sha256-sqCq9/QFygFcOUNCCBReD+eEk/8gvhMsuVD3g/ZPAFg=";
+ sha256 = "sha256-5QsbB48g11TyfWCbR7Sz2AETEwdyG+bSJQNGRHrIueE=";
};
appimageContents = appimageTools.extractType2 { inherit name src; };
in
diff --git a/pkgs/applications/misc/appeditor/default.nix b/pkgs/applications/misc/appeditor/default.nix
index f8e709e423fd..0643e33885d0 100644
--- a/pkgs/applications/misc/appeditor/default.nix
+++ b/pkgs/applications/misc/appeditor/default.nix
@@ -59,5 +59,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3Plus;
+ mainProgram = "com.github.donadigo.appeditor";
};
}
diff --git a/pkgs/applications/misc/archiver/default.nix b/pkgs/applications/misc/archiver/default.nix
index cf76eda2720c..7fb0de24c114 100644
--- a/pkgs/applications/misc/archiver/default.nix
+++ b/pkgs/applications/misc/archiver/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "archiver";
- version = "3.5.0";
+ version = "3.5.1";
src = fetchFromGitHub {
owner = "mholt";
repo = pname;
rev = "v${version}";
- sha256 = "0fdkqfs87svpijccz8m11gvby8pvmznq6fs9k94vbzak0kxhw1wg";
+ sha256 = "1py186hfy4p69wghqmbsyi1r3xvw1nyl55pz8f97a5qhmwxb3mwp";
};
- vendorSha256 = "0avnskay23mpl3qkyf1h75rr7szpsxis2bj5pplhwf8q8q0212xf";
+ vendorSha256 = "1y4v95z1ga111g3kdv5wvyikwifl25f36firf1i916rxli6f6g5i";
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" "-X main.date=unknown" ];
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 9baf2d4d2f24..29a932f40d58 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -1,54 +1,72 @@
-{ config, lib, stdenv, fetchurl, pkg-config, CoreAudio
-, enableAlsa ? true, alsa-lib ? null
-, enableLibao ? true, libao ? null
-, enableLame ? config.sox.enableLame or false, lame ? null
-, enableLibmad ? true, libmad ? null
-, enableLibogg ? true, libogg ? null, libvorbis ? null
-, enableOpusfile ? true, opusfile ? null
-, enableFLAC ? true, flac ? null
-, enablePNG ? true, libpng ? null
-, enableLibsndfile ? true, libsndfile ? null
-, enableWavpack ? true, wavpack ? null
-# amrnb and amrwb are unfree, disabled by default
-, enableAMR ? false, amrnb ? null, amrwb ? null
-, enableLibpulseaudio ? true, libpulseaudio ? null
+{ config
+, lib
+, stdenv
+, fetchurl
+, pkg-config
+, CoreAudio
+, enableAlsa ? true
+, alsa-lib
+, enableLibao ? true
+, libao
+, enableLame ? config.sox.enableLame or false
+, lame
+, enableLibmad ? true
+, libmad
+, enableLibogg ? true
+, libogg
+, libvorbis
+, enableOpusfile ? true
+, opusfile
+, enableFLAC ? true
+, flac
+, enablePNG ? true
+, libpng
+, enableLibsndfile ? true
+, libsndfile
+, enableWavpack ? true
+, wavpack
+ # amrnb and amrwb are unfree, disabled by default
+, enableAMR ? false
+, amrnb
+, amrwb
+, enableLibpulseaudio ? stdenv.isLinux
+, libpulseaudio
}:
-with lib;
-
stdenv.mkDerivation rec {
- name = "sox-14.4.2";
+ pname = "sox";
+ version = "14.4.2";
src = fetchurl {
- url = "mirror://sourceforge/sox/${name}.tar.gz";
+ url = "mirror://sourceforge/sox/sox-${version}.tar.gz";
sha256 = "0v2znlxkxxcd3f48hf3dx9pq7i6fdhb62kgj7wv8xggz8f35jpxl";
};
# configure.ac uses pkg-config only to locate libopusfile
- nativeBuildInputs = optional enableOpusfile pkg-config;
+ nativeBuildInputs = lib.optional enableOpusfile pkg-config;
patches = [ ./0001-musl-rewind-pipe-workaround.patch ];
buildInputs =
- optional (enableAlsa && stdenv.isLinux) alsa-lib ++
- optional enableLibao libao ++
- optional enableLame lame ++
- optional enableLibmad libmad ++
- optionals enableLibogg [ libogg libvorbis ] ++
- optional enableOpusfile opusfile ++
- optional enableFLAC flac ++
- optional enablePNG libpng ++
- optional enableLibsndfile libsndfile ++
- optional enableWavpack wavpack ++
- optionals enableAMR [ amrnb amrwb ] ++
- optional enableLibpulseaudio libpulseaudio ++
- optional (stdenv.isDarwin) CoreAudio;
+ lib.optional (enableAlsa && stdenv.isLinux) alsa-lib
+ ++ lib.optional enableLibao libao
+ ++ lib.optional enableLame lame
+ ++ lib.optional enableLibmad libmad
+ ++ lib.optionals enableLibogg [ libogg libvorbis ]
+ ++ lib.optional enableOpusfile opusfile
+ ++ lib.optional enableFLAC flac
+ ++ lib.optional enablePNG libpng
+ ++ lib.optional enableLibsndfile libsndfile
+ ++ lib.optional enableWavpack wavpack
+ ++ lib.optionals enableAMR [ amrnb amrwb ]
+ ++ lib.optional enableLibpulseaudio libpulseaudio
+ ++ lib.optional stdenv.isDarwin CoreAudio;
- meta = {
+ meta = with lib; {
description = "Sample Rate Converter for audio";
homepage = "http://sox.sourceforge.net/";
- maintainers = [ lib.maintainers.marcweber ];
- license = if enableAMR then lib.licenses.unfree else lib.licenses.gpl2Plus;
- platforms = lib.platforms.linux ++ lib.platforms.darwin;
+ maintainers = with maintainers; [ marcweber ];
+ license = if enableAMR then licenses.unfree else licenses.gpl2Plus;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/misc/audio/wavesurfer/default.nix b/pkgs/applications/misc/audio/wavesurfer/default.nix
index 9c8a99a59347..99cdc9ade21b 100644
--- a/pkgs/applications/misc/audio/wavesurfer/default.nix
+++ b/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, snack, tcl, tk, makeWrapper }:
-stdenv.mkDerivation {
- name = "wavesurfer-1.8.5";
+stdenv.mkDerivation rec {
+ pname = "wavesurfer";
+ version = "1.8.5";
src = fetchurl {
- url = "https://www.speech.kth.se/wavesurfer/wavesurfer-1.8.5.tar.gz";
+ url = "https://www.speech.kth.se/wavesurfer/wavesurfer-${version}.tar.gz";
sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807";
};
diff --git a/pkgs/applications/misc/audio/wavrsocvt/default.nix b/pkgs/applications/misc/audio/wavrsocvt/default.nix
index 6b09a2e38d8c..10aac715b48a 100644
--- a/pkgs/applications/misc/audio/wavrsocvt/default.nix
+++ b/pkgs/applications/misc/audio/wavrsocvt/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation {
- name = "wavrsocvt-1.0.2.0";
+ pname = "wavrsocvt";
+ version = "1.0.2.0";
src = fetchurl {
url = "http://bricxcc.sourceforge.net/wavrsocvt.tgz";
@@ -10,23 +11,23 @@ stdenv.mkDerivation {
unpackPhase = ''
tar -zxf $src
- '';
+ '';
installPhase = ''
mkdir -p $out/bin
cp wavrsocvt $out/bin
- '';
+ '';
meta = with lib; {
description = "Convert .wav files into sound files for Lego NXT brick";
longDescription = ''
- wavrsocvt is a command-line utility which can be used from a
- terminal window or script to convert .wav files into sound
- files for the NXT brick (.rso files). It can also convert the
- other direction (i.e., .rso -> .wav). It can produce RSO files
- with a sample rate between 2000 and 16000 (the min/max range of
- supported sample rates in the standard NXT firmware).
- You can then upload these with e.g. nxt-python.
+ wavrsocvt is a command-line utility which can be used from a
+ terminal window or script to convert .wav files into sound
+ files for the NXT brick (.rso files). It can also convert the
+ other direction (i.e., .rso -> .wav). It can produce RSO files
+ with a sample rate between 2000 and 16000 (the min/max range of
+ supported sample rates in the standard NXT firmware).
+ You can then upload these with e.g. nxt-python.
'';
homepage = "http://bricxcc.sourceforge.net/";
license = licenses.mpl11;
diff --git a/pkgs/applications/misc/authy/default.nix b/pkgs/applications/misc/authy/default.nix
index f242794bff76..70a5075ae6b9 100644
--- a/pkgs/applications/misc/authy/default.nix
+++ b/pkgs/applications/misc/authy/default.nix
@@ -11,8 +11,8 @@ in
stdenv.mkDerivation rec {
pname = "authy";
- version = "1.8.4";
- rev = "6";
+ version = "1.9.0";
+ rev = "7";
buildInputs = [
alsa-lib
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
- sha256 = "07h4mgp229nlvw9ifiiyzph26aa61w4x4f1xya8vw580blrk1ph9";
+ sha256 = "10az47cc3lgsdi0ixmmna08nqf9xm7gsl1ph00wfwrxzsi05ygx3";
};
nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
diff --git a/pkgs/applications/misc/auto-multiple-choice/default.nix b/pkgs/applications/misc/auto-multiple-choice/default.nix
new file mode 100644
index 000000000000..5990bf91ea01
--- /dev/null
+++ b/pkgs/applications/misc/auto-multiple-choice/default.nix
@@ -0,0 +1,163 @@
+{ lib
+, stdenv
+, fetchurl
+, perlPackages
+, makeWrapper
+, wrapGAppsHook
+, cairo
+, dblatex
+, gnumake
+, gobject-introspection
+, graphicsmagick
+, gsettings-desktop-schemas
+, gtk3
+, libnotify
+, librsvg
+, libxslt
+, netpbm
+, opencv
+, pango
+, perl
+, pkg-config
+, poppler
+, auto-multiple-choice
+}:
+stdenv.mkDerivation rec {
+ pname = "auto-multiple-choice";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://download.auto-multiple-choice.net/${pname}_${version}_precomp.tar.gz";
+ sha256 = "71831122f7b43245d3289617064e0b561817c0130ee1773c1b957841b28b854c";
+ };
+ tlType = "run";
+
+ # There's only the Makefile
+ dontConfigure = true;
+
+ makeFlags = [
+ "PERLPATH=${perl}/bin/perl"
+ # We *need* to pass DESTDIR, as the Makefile ignores PREFIX.
+ "DESTDIR=$(out)"
+ # Relative paths.
+ "BINDIR=/bin"
+ "PERLDIR=/share/perl5"
+ "MODSDIR=/lib/"
+ "TEXDIR=/tex/latex/" # what texlive.combine expects
+ "TEXDOCDIR=/share/doc/texmf/" # TODO where to put this?
+ "MAN1DIR=/share/man/man1"
+ "DESKTOPDIR=/share/applications"
+ "METAINFODIR=/share/metainfo"
+ "ICONSDIR=/share/auto-multiple-choice/icons"
+ "APPICONDIR=/share/icons/hicolor"
+ "LOCALEDIR=/share/locale"
+ "MODELSDIR=/share/auto-multiple-choice/models"
+ "DOCDIR=/share/doc/auto-multiple-choice"
+ "SHARED_MIMEINFO_DIR=/share/mime/packages"
+ "LANG_GTKSOURCEVIEW_DIR=/share/gtksourceview-4/language-specs"
+ # Pretend to be redhat so `install` doesn't try to chown/chgrp.
+ "SYSTEM_TYPE=rpm"
+ ];
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/auto-multiple-choice \
+ ''${makeWrapperArgs[@]} \
+ --prefix PERL5LIB : "${with perlPackages; makePerlPath [
+ ArchiveZip
+ DBDSQLite
+ Cairo
+ CairoGObject
+ DBI
+ Glib
+ GlibObjectIntrospection
+ Gtk3
+ LocaleGettext
+ PerlMagick
+ TextCSV
+ XMLParser
+ XMLSimple
+ XMLWriter
+ ]}:"$out/share/perl5 \
+ --prefix XDG_DATA_DIRS : "$out/share" \
+ --set TEXINPUTS ":.:$out/share/texmf/tex/latex/AMC"
+ '';
+
+ nativeBuildInputs = [
+ pkg-config
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ cairo
+ cairo.dev
+ dblatex
+ gnumake
+ gobject-introspection
+ graphicsmagick
+ gsettings-desktop-schemas
+ gtk3
+ libnotify
+ librsvg
+ libxslt
+ netpbm
+ opencv
+ pango
+ poppler
+ ] ++ (with perlPackages; [
+ perl
+ ArchiveZip
+ Cairo
+ CairoGObject
+ DBDSQLite
+ DBI
+ Glib
+ GlibObjectIntrospection
+ Gtk3
+ LocaleGettext
+ PerlMagick
+ TextCSV
+ XMLParser
+ XMLSimple
+ XMLWriter
+ ]);
+
+ meta = with lib; {
+ description = "Create and manage multiple choice questionnaires with automated marking.";
+ longDescription = ''
+ Create, manage and mark multiple-choice questionnaires.
+ auto-multiple-choice features automated or manual formatting with
+ LaTeX, shuffling of questions and answers and automated marking using
+ Optical Mark Recognition.
+
+ Questionnaires can be created using either a very simple text syntax,
+ AMC-TXT, or LaTeX. In the latter case, your TeXLive installation must
+ be combined with this package. This can be done in configuration.nix
+ as follows:
+
+
+ …
+ environment.systemPackages = with pkgs; [
+ auto-multiple-choice
+ (texlive.combine {
+ inherit (pkgs.texlive) scheme-full;
+ extra =
+ {
+ pkgs = [ auto-multiple-choice ];
+ };
+ })
+ ];
+
+
+ For usage instructions, see documentation at the project's homepage.
+ '';
+ homepage = "https://www.auto-multiple-choice.net/";
+ changelog = "https://gitlab.com/jojo_boulix/auto-multiple-choice/-/blob/master/ChangeLog";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.thblt ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/misc/avizo/default.nix b/pkgs/applications/misc/avizo/default.nix
new file mode 100644
index 000000000000..407dd7040637
--- /dev/null
+++ b/pkgs/applications/misc/avizo/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub
+, meson, ninja, pkg-config, vala
+, gtk3, glib, gtk-layer-shell
+, dbus, dbus-glib, librsvg
+, gobject-introspection, gdk-pixbuf, wrapGAppsHook
+}:
+
+stdenv.mkDerivation {
+ pname = "avizo";
+ version = "unstable-2021-07-21";
+
+ src = fetchFromGitHub {
+ owner = "misterdanb";
+ repo = "avizo";
+ rev = "7b3874e5ee25c80800b3c61c8ea30612aaa6e8d1";
+ sha256 = "sha256-ixAdiAH22Nh19uK5GoAXtAZJeAfCGSWTcGbrvCczWYc=";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ];
+
+ buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ];
+
+ postInstall = ''
+ substituteInPlace "$out"/bin/volumectl \
+ --replace 'avizo-client' "$out/bin/avizo-client"
+ substituteInPlace "$out"/bin/lightctl \
+ --replace 'avizo-client' "$out/bin/avizo-client"
+ '';
+
+ meta = with lib; {
+ description = "A neat notification daemon for Wayland";
+ homepage = "https://github.com/misterdanb/avizo";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.berbiche ];
+ };
+}
diff --git a/pkgs/applications/misc/avrdudess/default.nix b/pkgs/applications/misc/avrdudess/default.nix
index 61cab2b6a2a4..0a42e6f5e2cd 100644
--- a/pkgs/applications/misc/avrdudess/default.nix
+++ b/pkgs/applications/misc/avrdudess/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, runtimeShell, fetchurl, unzip, mono, avrdude, gtk2, xdg-utils }:
stdenv.mkDerivation {
- name = "avrdudess-2.2.20140102";
+ pname = "avrdudess";
+ version = "2.2.20140102";
src = fetchurl {
url = "http://blog.zakkemble.co.uk/download/avrdudess_20140102.zip";
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index fca1ad12fd1c..f7e39396602e 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -1,9 +1,12 @@
{ stdenv
, lib
, fetchurl
+, copyDesktopItems
+, makeDesktopItem
, makeWrapper
, libuuid
, libunwind
+, libxkbcommon
, icu
, openssl
, zlib
@@ -13,23 +16,69 @@
, gnutar
, atomEnv
, libkrb5
+, libdrm
+, mesa
+, xorg
}:
# from justinwoo/azuredatastudio-nix
# https://github.com/justinwoo/azuredatastudio-nix/blob/537c48aa3981cd1a82d5d6e508ab7e7393b3d7c8/default.nix
+let
+ desktopItem = makeDesktopItem {
+ name = "azuredatastudio";
+ desktopName = "Azure Data Studio";
+ comment = "Data Management Tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.";
+ genericName = "Text Editor";
+ exec = "azuredatastudio --no-sandbox --unity-launch %F";
+ icon = "azuredatastudio";
+ startupNotify = "true";
+ categories = "Utility;TextEditor;Development;IDE;";
+ mimeType = "text/plain;inode/directory;application/x-azuredatastudio-workspace;";
+ extraEntries = ''
+ StartupWMClass=azuredatastudio
+ Actions=new-empty-window;
+ Keywords=azuredatastudio;
+
+ [Desktop Action new-empty-window]
+ Name=New Empty Window
+ Exec=azuredatastudio --no-sandbox --new-window %F
+ Icon=azuredatastudio
+ '';
+ };
+
+ urlHandlerDesktopItem = makeDesktopItem {
+ name = "azuredatastudio-url-handler";
+ desktopName = "Azure Data Studio - URL Handler";
+ comment = "Azure Data Studio";
+ genericName = "Text Editor";
+ exec = "azuredatastudio --no-sandbox --open-url %U";
+ icon = "azuredatastudio";
+ startupNotify = "true";
+ categories = "Utility;TextEditor;Development;IDE;";
+ mimeType = "x-scheme-handler/azuredatastudio;";
+ extraEntries = ''
+ NoDisplay=true
+ Keywords=azuredatastudio;
+ '';
+ };
+in
stdenv.mkDerivation rec {
pname = "azuredatastudio";
- version = "1.17.1";
+ version = "1.33.0";
+
+ desktopItems = [ desktopItem urlHandlerDesktopItem ];
src = fetchurl {
- url = "https://azuredatastudiobuilds.blob.core.windows.net/releases/${version}/azuredatastudio-linux-${version}.tar.gz";
- sha256 = "0px9n9vyjvyddca4x7d0zindd0dim7350vkjg5dd0506fm8dc38k";
+ name = "${pname}-${version}.tar.gz";
+ url = "https://azuredatastudio-update.azurewebsites.net/${version}/linux-x64/stable";
+ sha256 = "0593xs44ryfyxy0hc31hdbj706q16h58jb0qyfyncn7ngybm3423";
};
nativeBuildInputs = [
makeWrapper
+ copyDesktopItems
];
buildInputs = [
@@ -38,7 +87,14 @@ stdenv.mkDerivation rec {
at-spi2-atk
];
- dontInstall = true;
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/pixmaps
+ cp ${targetPath}/resources/app/resources/linux/code.png $out/share/pixmaps/azuredatastudio.png
+
+ runHook postInstall
+ '';
# change this to azuredatastudio-insiders for insiders releases
edition = "azuredatastudio";
@@ -60,7 +116,7 @@ stdenv.mkDerivation rec {
];
# this will most likely need to be updated when azuredatastudio's version changes
- sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/2.0.0-release.56";
+ sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/3.0.0-release.139";
rpath = lib.concatStringsSep ":" [
atomEnv.libPath
@@ -71,6 +127,10 @@ stdenv.mkDerivation rec {
at-spi2-atk
stdenv.cc.cc.lib
libkrb5
+ libdrm
+ libxkbcommon
+ mesa
+ xorg.libxshmfence
]
)
targetPath
@@ -111,5 +171,6 @@ stdenv.mkDerivation rec {
description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio";
license = lib.licenses.unfreeRedistributable;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/misc/barrier/default.nix b/pkgs/applications/misc/barrier/default.nix
index b9dbcf529be1..63a04d181156 100644
--- a/pkgs/applications/misc/barrier/default.nix
+++ b/pkgs/applications/misc/barrier/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "barrier";
- version = "2.3.3";
+ version = "2.4.0";
src = fetchFromGitHub {
owner = "debauchee";
repo = pname;
rev = "v${version}";
- sha256 = "11vqkzpcjiv3pq6ps022223j6skgm1d23dj18n4a5nsf53wsvvp4";
+ sha256 = "sha256-2tHqLF3zS3C4UnOVIZfpcuzaemC9++nC7lXgFnFSfKU=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index 123d839341d6..d230606a3c38 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cairo, libxkbcommon
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cairo, libxkbcommon
, pango, fribidi, harfbuzz, pcre, pkg-config
, ncursesSupport ? true, ncurses ? null
, waylandSupport ? true, wayland ? null, wayland-protocols ? null
@@ -20,6 +20,15 @@ stdenv.mkDerivation rec {
sha256 = "sha256-U4IMfDvQ0rfEJhE3Uext2c/Cs0mjy1tw+k8uk441Ag8=";
};
+ patches = [
+ # Pull upstream fix for build against ncurses-6.3
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/Cloudef/bemenu/commit/d31164db756989579468946aba62969e42c7ed28.patch";
+ sha256 = "sha256-oyndQI7SaR8cK0IO5wIIxMpmakhfUzwUqLIKRbPkEdw=";
+ })
+ ];
+
nativeBuildInputs = [ pkg-config pcre ];
makeFlags = ["PREFIX=$(out)"];
diff --git a/pkgs/applications/misc/binance/default.nix b/pkgs/applications/misc/binance/default.nix
new file mode 100644
index 000000000000..c86342f6e787
--- /dev/null
+++ b/pkgs/applications/misc/binance/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, gtk3, libxshmfence, mesa, nss, popt }:
+
+stdenv.mkDerivation rec {
+ pname = "binance";
+ version = "1.26.0";
+
+ src = fetchurl {
+ url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
+ sha256 = "sha256-UNqz/0IQ1nWANk83X7IVwvZTJayqNO5xPS6oECCgqHI=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ makeWrapper
+ ];
+
+ buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss popt ];
+
+ libPath = lib.makeLibraryPath buildInputs;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv usr $out
+ mv opt $out
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ substituteInPlace $out/share/applications/binance.desktop --replace '/opt/Binance' $out/bin
+
+ makeWrapper ${electron}/bin/electron \
+ $out/bin/binance \
+ --add-flags $out/opt/Binance/resources/app.asar \
+ --prefix LD_LIBRARY_PATH : ${libPath}
+ '';
+
+ meta = with lib; {
+ description = "Binance Cryptoexchange Official Desktop Client";
+ homepage = "https://www.binance.com/en/desktop-download";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/misc/bklk/default.nix b/pkgs/applications/misc/bklk/default.nix
index 86b596d395ec..62aeb7c91a5f 100644
--- a/pkgs/applications/misc/bklk/default.nix
+++ b/pkgs/applications/misc/bklk/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
sha256 = "sha256-R3H6tv6fzQG41Y2rui0K8fdQ/+Ywnc5hqTPFjktrhF8=";
};
+ makeFlags = [ "CC=$$CXX" ];
+
buildInputs = [ ncurses ];
installPhase = ''
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 59de68797830..31c1d4a19937 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -26,11 +26,11 @@ let
in
stdenv.mkDerivation rec {
pname = "blender";
- version = "2.93.2";
+ version = "2.93.5";
src = fetchurl {
url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
- sha256 = "sha256-nG1Kk6UtiCwsQBDz7VELcMRVEovS49QiO3haIpvSfu4=";
+ sha256 = "1fsw8w80h8k5w4zmy659bjlzqyn5i198hi1kbpzfrdn8psxg2bfj";
};
patches = lib.optional stdenv.isDarwin ./darwin.patch;
@@ -136,8 +136,11 @@ stdenv.mkDerivation rec {
NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib";
blenderExecutable =
- placeholder "out" + (if stdenv.isDarwin then "/Blender.app/Contents/MacOS/Blender" else "/bin/blender");
- postInstall = ''
+ placeholder "out" + (if stdenv.isDarwin then "/Applications/Blender.app/Contents/MacOS/Blender" else "/bin/blender");
+ postInstall = lib.optionalString stdenv.isDarwin ''
+ mkdir $out/Applications
+ mv $out/Blender.app $out/Applications
+ '' + ''
buildPythonPath "$pythonPath"
wrapProgram $blenderExecutable \
--prefix PATH : $program_PATH \
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
index 21e63b8b29bb..52f4e8def20e 100644
--- a/pkgs/applications/misc/bottles/default.nix
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -3,18 +3,18 @@
, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy
, python3Packages, gettext
, appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3
-, steam-run-native
+, steam-run, xdg-utils, pciutils, cabextract, wineWowPackages
}:
python3Packages.buildPythonApplication rec {
pname = "bottles";
- version = "2021.7.14-treviso";
+ version = "2021.7.28-treviso-2";
src = fetchFromGitHub {
owner = "bottlesdevs";
repo = pname;
rev = version;
- sha256 = "0xhfk1ll8vacgrr0kkhynq4bryjhfjs29j824bark5mj9b6lkbix";
+ sha256 = "0kvwcajm9izvkwfg7ir7bks39bpc665idwa8mc8d536ajyjriysn";
};
postPatch = ''
@@ -52,7 +52,14 @@ python3Packages.buildPythonApplication rec {
dbus-python
gst-python
liblarch
- ] ++ [ steam-run-native ];
+ patool
+ ] ++ [
+ steam-run
+ xdg-utils
+ pciutils
+ cabextract
+ wineWowPackages.minimal
+ ];
format = "other";
strictDeps = false; # broken with gobject-introspection setup hook, see https://github.com/NixOS/nixpkgs/issues/56943
@@ -62,8 +69,10 @@ python3Packages.buildPythonApplication rec {
substituteInPlace build-aux/meson/postinstall.py \
--replace "'update-desktop-database'" "'${desktop-file-utils}/bin/update-desktop-database'"
substituteInPlace src/runner.py \
- --replace " {runner}" " ${steam-run-native}/bin/steam-run {runner}" \
- --replace " {dxvk_setup}" " ${steam-run-native}/bin/steam-run {dxvk_setup}"
+ --replace " {runner}" " ${steam-run}/bin/steam-run {runner}" \
+ --replace " {dxvk_setup}" " ${steam-run}/bin/steam-run {dxvk_setup}"
+ substituteInPlace src/runner_utilities.py \
+ --replace " {runner}" " ${steam-run}/bin/steam-run {runner}" \
'';
preFixup = ''
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 0153d30a52fc..a991d7c0d13d 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,6 +1,7 @@
{ lib
, mkDerivation
, fetchurl
+, fetchpatch
, poppler_utils
, pkg-config
, libpng
@@ -26,18 +27,21 @@
mkDerivation rec {
pname = "calibre";
- version = "5.24.0";
+ version = "5.31.1";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
- hash = "sha256:18dr577nv7ijw3ar6mrk2xrc54mlrqkaj5jrc6s5sirl0710fdfg";
+ sha256 = "sha256-3LGEWuHms54ji9GWSyLl8cFWIRBqHY1Jf/CNPJOywrU=";
};
+ # https://sources.debian.org/patches/calibre/5.31.1+dfsg-1
patches = [
- # Plugin installation (very insecure) disabled (from Debian)
- ./disable_plugins.patch
- # Automatic version update disabled by default (from Debian)
- ./no_updates_dialog.patch
+ # allow for plugin update check, but no calibre version check
+ (fetchpatch {
+ name = "0001-only-plugin-update.patch";
+ url = "https://raw.githubusercontent.com/debian-calibre/calibre/debian/${version}%2Bdfsg-1/debian/patches/0001-only-plugin-update.patch";
+ sha256 = "sha256-dLzO1TWP7Q4nw2a3oN7qlhGCmcA0NKJrZidUnD6hUMA=";
+ })
]
++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
diff --git a/pkgs/applications/misc/calibre/disable_plugins.patch b/pkgs/applications/misc/calibre/disable_plugins.patch
deleted file mode 100644
index 9ef1dd04251d..000000000000
--- a/pkgs/applications/misc/calibre/disable_plugins.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Disable plugin dialog. It uses a totally non-authenticated and non-trusted way of installing arbitrary code.
-Author: Martin Pitt
-Bug-Debian: http://bugs.debian.org/640026
-
-Index: calibre-0.8.29+dfsg/src/calibre/gui2/actions/preferences.py
-===================================================================
---- calibre-0.8.29+dfsg.orig/src/calibre/gui2/actions/preferences.py 2011-12-16 05:49:14.000000000 +0100
-+++ calibre-0.8.29+dfsg/src/calibre/gui2/actions/preferences.py 2011-12-20 19:29:04.798468930 +0100
-@@ -28,8 +28,6 @@
- pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config)
- cm('welcome wizard', _('Run welcome wizard'),
- icon='wizard.png', triggered=self.gui.run_wizard)
-- cm('plugin updater', _('Get plugins to enhance calibre'),
-- icon='plugins/plugin_updater.png', triggered=self.get_plugins)
- if not DEBUG:
- pm.addSeparator()
- cm('restart', _('Restart in debug mode'), icon='debug.png',
diff --git a/pkgs/applications/misc/calibre/no_updates_dialog.patch b/pkgs/applications/misc/calibre/no_updates_dialog.patch
deleted file mode 100644
index faaaf2c19949..000000000000
--- a/pkgs/applications/misc/calibre/no_updates_dialog.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -burN calibre-2.9.0.orig/src/calibre/gui2/main.py calibre-2.9.0/src/calibre/gui2/main.py
---- calibre-2.9.0.orig/src/calibre/gui2/main.py 2014-11-09 20:09:54.081231882 +0800
-+++ calibre-2.9.0/src/calibre/gui2/main.py 2014-11-09 20:15:48.193033844 +0800
-@@ -37,8 +37,9 @@
- help=_('Start minimized to system tray.'))
- parser.add_option('-v', '--verbose', default=0, action='count',
- help=_('Ignored, do not use. Present only for legacy reasons'))
-- parser.add_option('--no-update-check', default=False, action='store_true',
-- help=_('Do not check for updates'))
-+ parser.add_option('--update-check', dest='no_update_check', default=True,
-+ action='store_false',
-+ help=_('Check for updates'))
- parser.add_option('--ignore-plugins', default=False, action='store_true',
- help=_('Ignore custom plugins, useful if you installed a plugin'
- ' that is preventing calibre from starting'))
diff --git a/pkgs/applications/misc/catclock/default.nix b/pkgs/applications/misc/catclock/default.nix
index 9c6b1812683a..768eb7b308e4 100644
--- a/pkgs/applications/misc/catclock/default.nix
+++ b/pkgs/applications/misc/catclock/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, xlibsWrapper, motif }:
stdenv.mkDerivation {
- name = "catclock-2015-10-04";
+ pname = "catclock";
+ version = "unstable-2015-10-04";
src = fetchFromGitHub {
owner = "BarkyTheDog";
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index f7a56a48fc72..bda779dd54f3 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
buildGoModule rec {
pname = "cheat";
- version = "4.2.2";
+ version = "4.2.3";
src = fetchFromGitHub {
owner = "cheat";
repo = "cheat";
rev = version;
- sha256 = "sha256-YKGCZm0BaFLi+kujl04B4IU1qay15XNfvelxfUkCP8o=";
+ sha256 = "sha256-F0p309rY0PeeOU1K9Had6qI6DCHgzauuuTjMfWoZYBQ=";
};
subPackages = [ "cmd/cheat" ];
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index d4fc82b91393..5802f21a8749 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -13,19 +13,18 @@
, sqlite
, curl
, libuchardet
-, fmt
, spdlog
}:
stdenv.mkDerivation rec {
pname = "cherrytree";
- version = "0.99.41";
+ version = "0.99.42";
src = fetchFromGitHub {
owner = "giuspen";
repo = "cherrytree";
rev = version;
- sha256 = "sha256-Bhk5xpJiVDSTxP1wAFTL39MgAIOa6Is9NTF1WEh6S1A=";
+ sha256 = "sha256-PKjl9n6J0iNdcA56CZ/nAzvgRNwqRLTHjwi3HQYWIMU=";
};
nativeBuildInputs = [
@@ -44,7 +43,6 @@ stdenv.mkDerivation rec {
sqlite
curl
libuchardet
- fmt
spdlog
];
diff --git a/pkgs/applications/misc/chrysalis/default.nix b/pkgs/applications/misc/chrysalis/default.nix
index 55560c50f13f..058a0f656fb5 100644
--- a/pkgs/applications/misc/chrysalis/default.nix
+++ b/pkgs/applications/misc/chrysalis/default.nix
@@ -2,7 +2,7 @@
let
pname = "chrysalis";
- version = "0.8.4";
+ version = "0.8.6";
in appimageTools.wrapAppImage rec {
name = "${pname}-${version}-binary";
@@ -10,7 +10,7 @@ in appimageTools.wrapAppImage rec {
inherit name;
src = fetchurl {
url = "https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
- sha256 = "b41f3e23dac855b1588cff141e3d317f96baff929a0543c79fccee0c6f095bc7";
+ sha256 = "17wv475w4m4fg6ky9wf7ygxm98nmsmydks14vh3an85xv0fhj8h9";
};
};
diff --git a/pkgs/applications/misc/cipher/default.nix b/pkgs/applications/misc/cipher/default.nix
index 5675676d9519..fb373938d5ac 100644
--- a/pkgs/applications/misc/cipher/default.nix
+++ b/pkgs/applications/misc/cipher/default.nix
@@ -60,5 +60,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3Plus;
+ mainProgram = "com.github.arshubham.cipher";
};
}
diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix
index 0bed99ab725f..b5278e7cc75c 100644
--- a/pkgs/applications/misc/clight/default.nix
+++ b/pkgs/applications/misc/clight/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "clight";
- version = "4.6";
+ version = "4.7";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "Clight";
rev = version;
- sha256 = "sha256-5kFzVHxoiZi8tz42eUprm49JHCeuA4GPwtHvdiS2RJY=";
+ sha256 = "sha256-+u50XorUyeDsn4FaKdD0wEtQHkwtiyVDY0IAi0vehEQ=";
};
# dbus-1.pc has datadir=/etc
diff --git a/pkgs/applications/misc/cloak/default.nix b/pkgs/applications/misc/cloak/default.nix
new file mode 100644
index 000000000000..cb33aa595a46
--- /dev/null
+++ b/pkgs/applications/misc/cloak/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cloak";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "evansmurithi";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "139z2ga0q7a0vwfnn5hpzsz5yrrrr7rgyd32yvfj5sxiywkmczs7";
+ };
+
+ cargoSha256 = "0af38wgwmsamnx63dwfm2nrkd8wmky3ai7zwy0knmifgkn4b7yyj";
+
+ meta = with lib; {
+ homepage = "https://github.com/evansmurithi/cloak";
+ description = "Command-line OTP authenticator application";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mvs ];
+ };
+}
diff --git a/pkgs/applications/misc/colort/default.nix b/pkgs/applications/misc/colort/default.nix
index a4283e5ebb93..7a1ae7a9e2f4 100644
--- a/pkgs/applications/misc/colort/default.nix
+++ b/pkgs/applications/misc/colort/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
- name = "colort-unstable-2017-03-12";
+ pname = "colort";
+ version = "unstable-2017-03-12";
src = fetchFromGitHub {
owner = "neeasade";
@@ -10,7 +11,7 @@ stdenv.mkDerivation {
sha256 = "10n8rbr2h6hz86hcx73f86pjbbfiaw2rvxsk0yfajnma7bpxgdxw";
};
- makeFlags = ["PREFIX=$(out)"];
+ makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "A program for 'tinting' color values";
diff --git a/pkgs/applications/misc/crow-translate/default.nix b/pkgs/applications/misc/crow-translate/default.nix
index 6095a00f6e0f..c73094497319 100644
--- a/pkgs/applications/misc/crow-translate/default.nix
+++ b/pkgs/applications/misc/crow-translate/default.nix
@@ -34,37 +34,37 @@ let
qonlinetranslator = fetchFromGitHub {
owner = "crow-translate";
repo = "QOnlineTranslator";
- rev = "1.4.4";
- sha256 = "sha256-ogO6ovkQmyvTUPCYAQ4U3AxOju9r3zHB9COnAAfKSKA=";
+ rev = "df89083d2f680a8f856b1df00b8846f995cf1fae";
+ sha256 = "sha256-I64KGInnYd/QdI5kANJERsF95wMvRlr8kgQhUqXXN/0=";
};
circleflags = fetchFromGitHub {
owner = "HatScripts";
repo = "circle-flags";
- rev = "v2.1.0";
- sha256 = "sha256-E0iTDjicfdGqK4r+anUZanEII9SBafeEUcMLf7BGdp0=";
+ rev = "v2.3.0";
+ sha256 = "sha256-KabmewF1Xf/1JQuzolrlRyLJR8O5j+/iT+29/QtOQVE=";
};
- we10x = fetchFromGitHub {
- owner = "yeyushengfan258";
- repo = "We10X-icon-theme";
- rev = "bd2c68482a06d38b2641503af1ca127b9e6540db";
- sha256 = "sha256-T1oPstmjLffnVrIIlmTTpHv38nJHBBGJ070ilRwAjk8=";
+ fluent = fetchFromGitHub {
+ owner = "vinceliuice";
+ repo = "Fluent-icon-theme";
+ rev = "2021-08-15";
+ sha256 = "sha256-uBu0vbKfhhnPKGwrnSBjPwS9ncH1iAlmeefAcpckOm4=";
};
in
mkDerivation rec {
pname = "crow-translate";
- version = "2.8.4";
+ version = "2.8.7";
src = fetchFromGitHub {
owner = "crow-translate";
repo = pname;
rev = version;
- sha256 = "sha256-TPJgKTZqsh18BQGFWgp0wsw1ehtI8ydQ7ZCvYNX6pH8=";
+ sha256 = "sha256-0bq9itbFyzdOhdNuUtdCYLTCIhc91MM+YRhJgXC5PPw=";
};
patches = [
(substituteAll {
src = ./dont-fetch-external-libs.patch;
- inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator circleflags we10x;
+ inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator circleflags fluent;
})
(substituteAll {
# See https://github.com/NixOS/nixpkgs/issues/86054
@@ -75,7 +75,7 @@ mkDerivation rec {
postPatch = ''
cp -r ${circleflags}/flags/* data/icons
- cp -r ${we10x}/src/* data/icons
+ cp -r ${fluent}/src/* data/icons
'';
nativeBuildInputs = [ cmake extra-cmake-modules qttools ];
diff --git a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
index 116a55a9abdb..44c859a1ea05 100644
--- a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
+++ b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
@@ -1,25 +1,25 @@
diff --git i/CMakeLists.txt w/CMakeLists.txt
-index 0cd2140..16e3190 100644
+index faa9417..059b899 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
-@@ -97,13 +97,11 @@ qt5_add_translation(QM_FILES
+@@ -101,13 +101,11 @@ qt5_add_translation(QM_FILES
)
configure_file(src/cmake.h.in cmake.h)
-configure_file(data/icons/flags.qrc ${CircleFlags_SOURCE_DIR}/flags/flags.qrc COPYONLY)
--configure_file(data/icons/we10x.qrc ${We10X_SOURCE_DIR}/src/we10x.qrc COPYONLY)
+-configure_file(data/icons/fluent-icon-theme.qrc ${FluentIconTheme_SOURCE_DIR}/src/fluent-icon-theme.qrc COPYONLY)
add_executable(${PROJECT_NAME}
- ${CircleFlags_SOURCE_DIR}/flags/flags.qrc
+ data/icons/flags.qrc
${QM_FILES}
-- ${We10X_SOURCE_DIR}/src/we10x.qrc
-+ data/icons/we10x.qrc
+- ${FluentIconTheme_SOURCE_DIR}/src/fluent-icon-theme.qrc
++ data/icons/fluent-icon-theme.qrc
data/icons/engines/engines.qrc
src/addlanguagedialog.cpp
src/addlanguagedialog.ui
diff --git i/cmake/ExternalLibraries.cmake w/cmake/ExternalLibraries.cmake
-index d738716..fb01f3d 100644
+index e2501e1..e15ce6c 100644
--- i/cmake/ExternalLibraries.cmake
+++ w/cmake/ExternalLibraries.cmake
@@ -2,34 +2,28 @@ include(FetchContent)
@@ -46,20 +46,20 @@ index d738716..fb01f3d 100644
FetchContent_Declare(QOnlineTranslator
- GIT_REPOSITORY https://github.com/crow-translate/QOnlineTranslator
-- GIT_TAG 1.4.4
+- GIT_TAG df89083d2f680a8f856b1df00b8846f995cf1fae
+ SOURCE_DIR @qonlinetranslator@
)
FetchContent_Declare(CircleFlags
- GIT_REPOSITORY https://github.com/HatScripts/circle-flags
-- GIT_TAG v2.1.0
+- GIT_TAG v2.3.0
+ SOURCE_DIR @circleflags@
)
- FetchContent_Declare(We10X
-- GIT_REPOSITORY https://github.com/yeyushengfan258/We10X-icon-theme
-- GIT_TAG bd2c68482a06d38b2641503af1ca127b9e6540db
-+ SOURCE_DIR @we10x@
+ FetchContent_Declare(FluentIconTheme
+- GIT_REPOSITORY https://github.com/vinceliuice/Fluent-icon-theme
+- GIT_TAG 2021-08-15
++ SOURCE_DIR @fluent@
)
- FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator CircleFlags We10X)
+ FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator CircleFlags FluentIconTheme)
diff --git a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
index 9e0f587ec7a4..322fd5e04844 100644
--- a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
+++ b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
@@ -1,8 +1,8 @@
-diff --git c/src/settings/appsettings.cpp i/src/settings/appsettings.cpp
-index ff99f64..fa929ae 100644
---- c/src/settings/appsettings.cpp
-+++ i/src/settings/appsettings.cpp
-@@ -80,7 +80,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
+diff --git i/src/settings/appsettings.cpp w/src/settings/appsettings.cpp
+index aa8b357..15e4f74 100644
+--- i/src/settings/appsettings.cpp
++++ w/src/settings/appsettings.cpp
+@@ -81,7 +81,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
QLocale::setDefault(locale);
s_appTranslator.load(locale, QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
diff --git a/pkgs/applications/misc/coreaction/default.nix b/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
similarity index 96%
rename from pkgs/applications/misc/coreaction/default.nix
rename to pkgs/applications/misc/cubocore-packages/coreaction/default.nix
index be9d02bf3393..f17730cc7e95 100644
--- a/pkgs/applications/misc/coreaction/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, fetchpatch, qtsvg, qtbase, libcsys, libcprime, cmake, ninja, }:
+{ mkDerivation, lib, fetchFromGitLab, fetchpatch, qtsvg, qtbase, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "coreaction";
@@ -27,8 +27,8 @@ mkDerivation rec {
buildInputs = [
qtsvg
qtbase
- libcsys
libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/tools/archivers/corearchiver/default.nix b/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
similarity index 92%
rename from pkgs/tools/archivers/corearchiver/default.nix
rename to pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
index 217520dde994..56a05bc434ec 100644
--- a/pkgs/tools/archivers/corearchiver/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, libarchive, libarchive-qt, libcprime, cmake, ninja, }:
+{ mkDerivation, lib, fetchFromGitLab, qtbase, libarchive, libarchive-qt, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "corearchiver";
@@ -18,9 +18,10 @@ mkDerivation rec {
buildInputs = [
qtbase
- libcprime
libarchive-qt
libarchive
+ libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/misc/corefm/default.nix b/pkgs/applications/misc/cubocore-packages/corefm/default.nix
similarity index 88%
rename from pkgs/applications/misc/corefm/default.nix
rename to pkgs/applications/misc/cubocore-packages/corefm/default.nix
index 9ad99e3aa06b..3ec918db7af9 100644
--- a/pkgs/applications/misc/corefm/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corefm/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, libcprime, libcsys, cmake, ninja }:
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "corefm";
diff --git a/pkgs/applications/misc/coregarage/default.nix b/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
similarity index 92%
rename from pkgs/applications/misc/coregarage/default.nix
rename to pkgs/applications/misc/cubocore-packages/coregarage/default.nix
index 6d665479764a..719047c8de7b 100644
--- a/pkgs/applications/misc/coregarage/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, libarchive, libarchive-qt, libcprime, cmake, ninja }:
+{ mkDerivation, lib, fetchFromGitLab, qtbase, libarchive, libarchive-qt, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "coregarage";
@@ -18,9 +18,10 @@ mkDerivation rec {
buildInputs = [
qtbase
- libcprime
libarchive
libarchive-qt
+ libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/misc/corehunt/default.nix b/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
similarity index 86%
rename from pkgs/applications/misc/corehunt/default.nix
rename to pkgs/applications/misc/cubocore-packages/corehunt/default.nix
index ad1fabb25043..fb9bcd5e8ef4 100644
--- a/pkgs/applications/misc/corehunt/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, libcprime, cmake, ninja }:
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "corehunt";
@@ -19,6 +19,7 @@ mkDerivation rec {
buildInputs = [
qtbase
libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/graphics/coreimage/default.nix b/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
similarity index 86%
rename from pkgs/applications/graphics/coreimage/default.nix
rename to pkgs/applications/misc/cubocore-packages/coreimage/default.nix
index 1dcff1f6e8f2..224c946d1175 100644
--- a/pkgs/applications/graphics/coreimage/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, libcprime, qtbase, cmake, ninja }:
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "coreimage";
@@ -19,6 +19,7 @@ mkDerivation rec {
buildInputs = [
qtbase
libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix b/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
new file mode 100644
index 000000000000..d8df86abd870
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, libzen, libmediainfo, zlib, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "coreinfo";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-kLBOvvulHE1+4TyZVEVZwEA+Id7+w8fI3ll+QL2ukr0=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ libzen
+ libmediainfo
+ zlib
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A file information tool from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/coreinfo";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix b/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
new file mode 100644
index 000000000000..3d4e6ddc3010
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, qtx11extras, xorg, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corekeyboard";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-0CbQ43BN4ORvtxs6FwNkgk/0jcVdFJq/tqvjUGYanM4=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ qtx11extras
+ xorg.libXtst
+ xorg.libX11
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A virtual keyboard for X11 from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corekeyboard";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corepad/default.nix b/pkgs/applications/misc/cubocore-packages/corepad/default.nix
new file mode 100644
index 000000000000..fcd1bfa4a4ff
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corepad/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corepad";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-2bGHVv0+0NlkIqnvWm014Kr20uARWnOS5xSuNmCt/bQ=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A document editor from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corepad";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corepaint/default.nix b/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
new file mode 100644
index 000000000000..6410da3ba607
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corepaint";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-nATraYm7FZEXoNWgXt1G86KdrAvRgM358F+YdfWcnkg=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A paint app from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corepaint";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corepdf/default.nix b/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
new file mode 100644
index 000000000000..bb93391c2af8
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, poppler, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corepdf";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-HeOklgCwJ5h3DeelJOZqasG+eC9DGG3R0Cqg2yPKYhM=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ poppler
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A PDF viewer from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corepdf";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corepins/default.nix b/pkgs/applications/misc/cubocore-packages/corepins/default.nix
new file mode 100644
index 000000000000..80d3a096ffe6
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corepins/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corepins";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-H/l/MHHrTmkfznVKUHFAhim8b/arT5SNK5fxTvjsTE4=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A bookmarking app from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corepins";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix b/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
new file mode 100644
index 000000000000..f92d532ba4a5
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corerenamer";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-OI7M7vV0CA42J5cWCqgGKEzUUHSgIJCWRTXmKRD6Jb0=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A batch file renamer from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corerenamer";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/tools/misc/coreshot/default.nix b/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
similarity index 85%
rename from pkgs/tools/misc/coreshot/default.nix
rename to pkgs/applications/misc/cubocore-packages/coreshot/default.nix
index bb2404b1ed52..bf9f5e49aea6 100644
--- a/pkgs/tools/misc/coreshot/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, qtx11extras, libcprime, cmake, ninja }:
+{ mkDerivation, lib, fetchFromGitLab, qtbase, qtx11extras, cmake, ninja, libcprime, libcsys }:
mkDerivation rec {
pname = "coreshot";
@@ -20,6 +20,7 @@ mkDerivation rec {
qtbase
qtx11extras
libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/misc/cubocore-packages/corestats/default.nix b/pkgs/applications/misc/cubocore-packages/corestats/default.nix
new file mode 100644
index 000000000000..a6d71eaa6cb6
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corestats/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, lm_sensors, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corestats";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-/WBetvbd8e4v+j6e2xbGtSLwNMdLlaahSIks6r889B4=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ lm_sensors
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A system resource viewer from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corestats";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/cubocore-packages/corestuff/default.nix b/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
new file mode 100644
index 000000000000..57216f4710da
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, qtx11extras, kglobalaccel, xorg, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "corestuff";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-/mmCIHZXn/Jpjr37neI6owWuU1VO6o7wmRj6ZH8tUbo=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ qtx11extras
+ kglobalaccel
+ xorg.libXcomposite
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "An activity viewer from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/corestuff";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/terminal-emulators/coreterminal/default.nix b/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
similarity index 97%
rename from pkgs/applications/terminal-emulators/coreterminal/default.nix
rename to pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
index e358fae0716f..c2085686aab8 100644
--- a/pkgs/applications/terminal-emulators/coreterminal/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
@@ -1,12 +1,13 @@
{ mkDerivation
, lib
, fetchFromGitLab
-, cmake
-, ninja
, qtbase
, qtserialport
, qtermwidget
+, cmake
+, ninja
, libcprime
+, libcsys
}:
mkDerivation rec {
@@ -30,6 +31,7 @@ mkDerivation rec {
qtserialport
qtermwidget
libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/misc/cubocore-packages/coretime/default.nix b/pkgs/applications/misc/cubocore-packages/coretime/default.nix
new file mode 100644
index 000000000000..af33d474e350
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/coretime/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, qtmultimedia, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "coretime";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-b7oqHhsuHsy96IAXPUtw+WqneEHgn/nUDgHiJt2aXXM=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ qtmultimedia
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "A time related task manager from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/coretime";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/coretoppings/0001-fix-install-phase.patch b/pkgs/applications/misc/cubocore-packages/coretoppings/0001-fix-install-phase.patch
similarity index 100%
rename from pkgs/applications/misc/coretoppings/0001-fix-install-phase.patch
rename to pkgs/applications/misc/cubocore-packages/coretoppings/0001-fix-install-phase.patch
diff --git a/pkgs/applications/misc/coretoppings/default.nix b/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
similarity index 76%
rename from pkgs/applications/misc/coretoppings/default.nix
rename to pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
index eff253ffcc2e..154f4a389948 100644
--- a/pkgs/applications/misc/coretoppings/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
@@ -1,8 +1,32 @@
-{ mkDerivation, lib, fetchFromGitLab, libcprime, cmake, ninja
-, ffmpeg, qtbase, qtx11extras, qtconnectivity, v4l-utils, grim, wf-recorder
-, libdbusmenu, playerctl, xorg, iio-sensor-proxy, inotify-tools
-, bluez, networkmanager, connman, redshift, gawk
-, polkit, libnotify, systemd, xdg-utils }:
+{ mkDerivation
+, lib
+, fetchFromGitLab
+, ffmpeg
+, cmake
+, ninja
+, qtbase
+, qtx11extras
+, qtconnectivity
+, v4l-utils
+, grim
+, wf-recorder
+, libdbusmenu
+, playerctl
+, xorg
+, iio-sensor-proxy
+, inotify-tools
+, bluez
+, networkmanager
+, connman
+, redshift
+, gawk
+, polkit
+, libnotify
+, systemd
+, xdg-utils
+, libcprime
+, libcsys
+}:
mkDerivation rec {
pname = "coretoppings";
@@ -15,22 +39,21 @@ mkDerivation rec {
sha256 = "sha256-DpmzGqjW1swLirRLzd5nblAb40LHAmf8nL+VykQNL3E=";
};
- nativeBuildInputs = [
- cmake
- ninja
- ];
-
patches = [
# Fix file cannot create directory: /var/empty/share/polkit-1/actions
./0001-fix-install-phase.patch
];
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
buildInputs = [
qtbase
qtx11extras
qtconnectivity
libdbusmenu
- libcprime
ffmpeg
v4l-utils
grim
@@ -50,6 +73,8 @@ mkDerivation rec {
libnotify
systemd
xdg-utils
+ libcprime
+ libcsys
];
meta = with lib; {
diff --git a/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix b/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
new file mode 100644
index 000000000000..0a6ccaf72142
--- /dev/null
+++ b/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, cmake, ninja, libcprime, libcsys }:
+
+mkDerivation rec {
+ pname = "coreuniverse";
+ version = "4.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cubocore/coreapps";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-YZCMyYMAvd/xQYNUnURIvmQwaM+X+Ql93OS4ZIyAZLY=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ ];
+
+ buildInputs = [
+ qtbase
+ libcprime
+ libcsys
+ ];
+
+ meta = with lib; {
+ description = "Shows information about apps from the C Suite";
+ homepage = "https://gitlab.com/cubocore/coreapps/coreuniverse";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dan4ik605743 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/development/libraries/libcprime/0001-fix-application-dirs.patch b/pkgs/applications/misc/cubocore-packages/libcprime/0001-fix-application-dirs.patch
similarity index 100%
rename from pkgs/development/libraries/libcprime/0001-fix-application-dirs.patch
rename to pkgs/applications/misc/cubocore-packages/libcprime/0001-fix-application-dirs.patch
diff --git a/pkgs/development/libraries/libcprime/default.nix b/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
similarity index 93%
rename from pkgs/development/libraries/libcprime/default.nix
rename to pkgs/applications/misc/cubocore-packages/libcprime/default.nix
index d312c832243a..00e297bf276a 100644
--- a/pkgs/development/libraries/libcprime/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
@@ -19,7 +19,9 @@ mkDerivation rec {
sha256 = "sha256-RywvFATA/+fDP/TR5QRWaJlDgy3EID//iVmrJcj3GXI=";
};
- patches = [ ./0001-fix-application-dirs.patch ];
+ patches = [
+ ./0001-fix-application-dirs.patch
+ ];
nativeBuildInputs = [
cmake
diff --git a/pkgs/development/libraries/libcsys/default.nix b/pkgs/applications/misc/cubocore-packages/libcsys/default.nix
similarity index 98%
rename from pkgs/development/libraries/libcsys/default.nix
rename to pkgs/applications/misc/cubocore-packages/libcsys/default.nix
index cec6e501bb5b..d1dde9942e92 100644
--- a/pkgs/development/libraries/libcsys/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/libcsys/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, udisks2, qtbase, cmake, ninja, }:
+{ mkDerivation, lib, fetchFromGitLab, udisks2, qtbase, cmake, ninja }:
mkDerivation rec {
pname = "libcsys";
diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch b/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch
deleted file mode 100644
index 3826e92440f0..000000000000
--- a/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-# Notes by Charles Duffy --
-#
-# - The new version of OpenMP does not allow outside variables to be referenced
-# *at all* without an explicit declaration of how they're supposed to be
-# handled. Thus, this was an outright build failure beforehand. The new
-# pragmas copy the initial value from the outer scope into each parallel
-# thread. Since these variables are all constant within the loops, this is
-# clearly correct. (Not sure it's *optimal*, but quite sure it isn't
-# *wrong*).
-# - Upstream has been contacted -- I'm a Lulzbot customer with an active
-# support contract and sent them the patch. That said, they're in the middle
-# of some major corporate churn (sold themselves out of near-bankruptcy to an
-# out-of-state business entity formed as a holding company; moved to that
-# state; have been slowly restaffing after), so a response may take a while.
-# - The patch is purely my own work.
-
---- curaengine/src/support.cpp.orig 2020-03-28 10:38:01.953912363 -0500
-+++ curaengine/src/support.cpp 2020-03-28 10:45:28.999791908 -0500
-@@ -854,7 +854,7 @@
- const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle
- xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance);
- // for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area
-- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic)
-+ #pragma omp parallel for default(none) firstprivate(layer_count, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top, tan_angle, xy_distance, xy_distance_overhang) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic)
- for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++)
- {
- Polygons outlines = storage.getLayerOutlines(layer_idx, false);
-@@ -1054,7 +1054,7 @@
- const int max_checking_layer_idx = std::min(static_cast(storage.support.supportLayers.size())
- , static_cast(layer_count - (layer_z_distance_top - 1)));
- const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx);
--#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic)
-+#pragma omp parallel for default(none) firstprivate(max_checking_idx_size_t, layer_z_distance_top) shared(support_areas, storage) schedule(dynamic)
- for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++)
- {
- support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false));
---- curaengine/src/layerPart.cpp.orig 2020-03-28 10:36:40.381023651 -0500
-+++ curaengine/src/layerPart.cpp 2020-03-28 10:39:54.584140465 -0500
-@@ -49,7 +49,7 @@
- {
- const auto total_layers = slicer->layers.size();
- assert(mesh.layers.size() == total_layers);
--#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic)
-+#pragma omp parallel for default(none) firstprivate(total_layers) shared(mesh, slicer) schedule(dynamic)
- for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++)
- {
- SliceLayer& layer_storage = mesh.layers[layer_nr];
diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/pkgs/applications/misc/cura/lulzbot/curaengine.nix
deleted file mode 100644
index 5d1df20e224b..000000000000
--- a/pkgs/applications/misc/cura/lulzbot/curaengine.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, gcc8Stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }:
-
-gcc8Stdenv.mkDerivation rec {
- pname = "curaengine-lulzBot";
- version = "3.6.21";
-
- src = fetchgit {
- url = "https://code.alephobjects.com/source/curaengine-lulzbot.git";
- rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d";
- sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8";
- };
-
- patches = [ ./curaengine-openmp-compat.patch ];
-
- nativeBuildInputs = [ cmake ];
- buildInputs = [ libarcusLulzbot stb protobuf ];
-
- cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ];
-
- meta = with lib; {
- description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction";
- homepage = "https://code.alephobjects.com/source/curaengine-lulzbot/";
- license = licenses.agpl3;
- platforms = platforms.linux;
- maintainers = with maintainers; [ chaduffy ];
- };
-}
diff --git a/pkgs/applications/misc/cura/lulzbot/default.nix b/pkgs/applications/misc/cura/lulzbot/default.nix
deleted file mode 100644
index 360ef47ecf1d..000000000000
--- a/pkgs/applications/misc/cura/lulzbot/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ lib, mkDerivation, wrapQtAppsHook, callPackage, fetchgit, cmake, jq, python3, qtbase, qtquickcontrols2 }:
-
-let
- # admittedly, we're using (printer firmware) blobs when we could compile them ourselves.
- curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others.
- curaBinaryData = fetchgit {
- url = "https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git";
- rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e";
- sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4";
- };
-
- libarcusLulzbot = callPackage ./libarcus.nix {
- inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder;
- };
- libsavitarLulzbot = callPackage ./libsavitar.nix {
- inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder;
- };
-
- inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
- curaengine = callPackage ./curaengine.nix {
- inherit libarcusLulzbot;
- };
- uraniumLulzbot = callPackage ./uranium.nix {
- inherit callPackage libarcusLulzbot;
- inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
- };
-in
-mkDerivation rec {
- pname = "cura-lulzbot";
- version = "3.6.21";
-
- src = fetchgit {
- url = "https://code.alephobjects.com/source/cura-lulzbot.git";
- rev = "7faeb18604c83004846a02c60cb240708db0034f";
- sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq";
- };
-
- buildInputs = [ qtbase qtquickcontrols2 ];
- # numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415
- propagatedBuildInputs = with python3.pkgs; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl
- nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
-
- cmakeFlags = [
- "-DURANIUM_DIR=${uraniumLulzbot.src}"
- "-DCURA_VERSION=${version}"
- ];
-
- postPatch = ''
- sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
- sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py
- '';
-
- preFixup = ''
- substituteInPlace "$out/bin/cura-lulzbot" --replace 'import cura.CuraApplication' 'import Savitar; import cura.CuraApplication'
- ln -sT "${curaBinaryData}/cura/resources/firmware" "$out/share/cura/resources/firmware"
- ln -sT "${uraniumLulzbot}/share/uranium" "$out/share/uranium"
- ${jq}/bin/jq --arg out "$out" '.build=$out' >"$out/version.json" <<'EOF'
- ${builtins.toJSON {
- cura = version;
- cura_version = version;
- binarydata = curaBinaryDataVersion;
- engine = curaengine.version;
- libarcus = libarcusLulzbot.version;
- libsavitar = libsavitarLulzbot.version;
- uranium = uraniumLulzbot.version;
- }}
- EOF
- '';
-
- postFixup = ''
- wrapPythonPrograms
- wrapQtApp "$out/bin/cura-lulzbot"
- '';
-
- meta = with lib; {
- description = "3D printer / slicing GUI built on top of the Uranium framework";
- homepage = "https://code.alephobjects.com/diffusion/CURA/";
- license = licenses.agpl3; # a partial relicense to LGPL has happened, but not certain that all AGPL bits are expunged
- platforms = platforms.linux;
- maintainers = with maintainers; [ chaduffy ];
- };
-}
diff --git a/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/pkgs/applications/misc/cura/lulzbot/libarcus.nix
deleted file mode 100644
index 15e221a8f743..000000000000
--- a/pkgs/applications/misc/cura/lulzbot/libarcus.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, buildPythonPackage, fetchgit, fetchurl, cmake, sip_4, protobuf, pythonOlder }:
-
-buildPythonPackage {
- pname = "libarcus";
- version = "3.6.21";
- format = "other";
-
- src = fetchgit {
- url = "https://code.alephobjects.com/source/arcus.git";
- rev = "aeda02d7727f45b657afb72cef203283fbf09325";
- sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99";
- };
-
- disabled = pythonOlder "3.4.0";
-
- propagatedBuildInputs = [ sip_4 ];
- nativeBuildInputs = [ cmake ];
- buildInputs = [ protobuf ];
-
- postPatch = ''
- # To workaround buggy SIP detection which overrides PYTHONPATH
- sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake
- '';
-
- meta = with lib; {
- description = "Communication library between internal components for Ultimaker software";
- homepage = "https://code.alephobjects.com/source/arcus/";
- license = licenses.lgpl3Plus;
- platforms = platforms.linux;
- maintainers = with maintainers; [ chaduffy ];
- };
-}
-
diff --git a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
deleted file mode 100644
index dd84173ffce1..000000000000
--- a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, buildPythonPackage, pythonOlder, fetchgit, cmake, sip_4 }:
-
-buildPythonPackage {
- pname = "libsavitar-lulzbot";
- name = "libsavitar-lulzbot";
- version = "3.6.21";
- format = "other";
-
- src = fetchgit {
- url = "https://code.alephobjects.com/source/savitar.git";
- rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234";
- sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j";
- };
-
- postPatch = ''
- # To workaround buggy SIP detection which overrides PYTHONPATH
- sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake
- '';
-
- nativeBuildInputs = [ cmake ];
-
- propagatedBuildInputs = [ sip_4 ];
-
- disabled = pythonOlder "3.4.0";
-
- meta = with lib; {
- description = "C++ implementation of 3mf loading with SIP python bindings";
- homepage = "https://github.com/Ultimaker/libSavitar";
- license = licenses.lgpl3Plus;
- platforms = platforms.unix;
- maintainers = with maintainers; [ chaduffy ];
- };
-}
diff --git a/pkgs/applications/misc/cura/lulzbot/uranium.nix b/pkgs/applications/misc/cura/lulzbot/uranium.nix
deleted file mode 100644
index 01166092b2b5..000000000000
--- a/pkgs/applications/misc/cura/lulzbot/uranium.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, callPackage, fetchurl, fetchgit, buildPythonPackage, fetchFromGitHub, python, cmake
-, pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }:
-
-buildPythonPackage {
- version = "3.6.21";
- pname = "uranium";
- name = "uraniumLulzbot";
- format = "other";
-
- src = fetchgit {
- url = "https://code.alephobjects.com/diffusion/U/uranium.git";
- rev = "54d911edd2551c5875c554928896122835a0dd6c";
- sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i";
- };
-
- disabled = pythonOlder "3.5.0";
-
- buildInputs = [ python gettext ];
- propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ];
- nativeBuildInputs = [ cmake doxygen ];
-
- postPatch = ''
- sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
- sed -i \
- -e "s,Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,Resources.addSearchPath(\"$out/share/uranium/resources\")," \
- -e "s,self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,self._plugin_registry.addPluginLocation(\"$out/lib/uranium/plugins\")," \
- UM/Application.py
- '';
-
- meta = with lib; {
- description = "A Python framework for building Desktop applications";
- homepage = "https://code.alephobjects.com/diffusion/U/";
- license = licenses.lgpl3Plus;
- platforms = platforms.linux;
- maintainers = with maintainers; [ chaduffy ];
- };
-}
-
diff --git a/pkgs/applications/misc/curaengine/stable.nix b/pkgs/applications/misc/curaengine/stable.nix
index 148553da1621..3c74aaaded4a 100644
--- a/pkgs/applications/misc/curaengine/stable.nix
+++ b/pkgs/applications/misc/curaengine/stable.nix
@@ -13,8 +13,6 @@ stdenv.mkDerivation {
postPatch = ''
substituteInPlace Makefile --replace "--static" ""
- '' + lib.optionalString stdenv.isi686 ''
- substituteInPlace Makefile --replace "-flto" ""
'';
installPhase = ''
diff --git a/pkgs/applications/misc/dasel/default.nix b/pkgs/applications/misc/dasel/default.nix
index ba2e8819517a..d8c94c88383d 100644
--- a/pkgs/applications/misc/dasel/default.nix
+++ b/pkgs/applications/misc/dasel/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "dasel";
- version = "1.20.0";
+ version = "1.21.2";
src = fetchFromGitHub {
owner = "TomWright";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-SJWIjizPf0bRwanpnLpuqsWKjaCwc1wBV2sCPSqGiOs=";
+ sha256 = "sha256-HHeO8mbvD+PLMKjeacjIBNEVeOYjeHjXJHhTkbMMOG4=";
};
- vendorSha256 = "sha256-u3KsMi63wOi1fCSLpGxATZNmbhoIAGeVpwcKh+nmi3k=";
+ vendorSha256 = "sha256-yP4iF3403WWgWAmBHiuOpDsIAUx4+KR8uKPfjy3qXt8=";
ldflags = [
"-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}"
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index ed3f07713e93..f7782d0a577c 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "dbeaver";
- version = "21.2.0"; # When updating also update fetchedMavenDeps.sha256
+ version = "21.2.4"; # When updating also update fetchedMavenDeps.sha256
src = fetchFromGitHub {
owner = "dbeaver";
repo = "dbeaver";
rev = version;
- sha256 = "UYLX8oUHHfdsNiby+emunLRPIHo8ht3bfiredXOjkWs=";
+ sha256 = "BPcTj2YIGyP3g4qrQlDp13lziJwSUt0Zn00CayDku9g=";
};
fetchedMavenDeps = stdenv.mkDerivation {
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
dontFixup = true;
outputHashAlgo = "sha256";
outputHashMode = "recursive";
- outputHash = "L8kfYkMCbQOZDrSNIfshR/00qYQLTf8WOGQvxmaIwBg=";
+ outputHash = "7Sm1hAoi5xc4MLONOD8ySLLkpao0qmlMRRva/8zR210=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/dfilemanager/default.nix b/pkgs/applications/misc/dfilemanager/default.nix
index 19cfa95a88e4..6a9453eb583a 100644
--- a/pkgs/applications/misc/dfilemanager/default.nix
+++ b/pkgs/applications/misc/dfilemanager/default.nix
@@ -2,7 +2,7 @@
mkDerivation {
pname = "dfilemanager";
- version = "git-2020-09-04";
+ version = "unstable-2020-09-04";
src = fetchFromGitHub {
owner = "probonopd";
diff --git a/pkgs/applications/misc/ding/default.nix b/pkgs/applications/misc/ding/default.nix
index 649fbe55fae2..3c193d3f569a 100644
--- a/pkgs/applications/misc/ding/default.nix
+++ b/pkgs/applications/misc/ding/default.nix
@@ -10,10 +10,11 @@ let
};
in
stdenv.mkDerivation rec {
- name = "ding-1.9";
+ pname = "ding";
+ version = "1.9";
src = fetchurl {
- url = "http://ftp.tu-chemnitz.de/pub/Local/urz/ding/${name}.tar.gz";
+ url = "http://ftp.tu-chemnitz.de/pub/Local/urz/ding/ding-${version}.tar.gz";
sha256 = "sha256-aabIH894WihsBTo1LzIBzIZxxyhRYVxLcHpDQwmwmOU=";
};
diff --git a/pkgs/applications/misc/dmenu/default.nix b/pkgs/applications/misc/dmenu/default.nix
index 62f02ce67142..42bc05998667 100644
--- a/pkgs/applications/misc/dmenu/default.nix
+++ b/pkgs/applications/misc/dmenu/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }:
stdenv.mkDerivation rec {
- name = "dmenu-5.0";
+ pname = "dmenu";
+ version = "5.0";
src = fetchurl {
- url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz";
sha256 = "1lvfxzg3chsgcqbc2vr0zic7vimijgmbvnspayx73kyvqi1f267y";
};
@@ -24,10 +25,10 @@ stdenv.mkDerivation rec {
makeFlags = [ "CC:=$(CC)" ];
meta = with lib; {
- description = "A generic, highly customizable, and efficient menu for the X Window System";
- homepage = "https://tools.suckless.org/dmenu";
- license = licenses.mit;
- maintainers = with maintainers; [ pSub globin ];
- platforms = platforms.all;
+ description = "A generic, highly customizable, and efficient menu for the X Window System";
+ homepage = "https://tools.suckless.org/dmenu";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pSub globin ];
+ platforms = platforms.all;
};
}
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 5dffbf56a36a..698a9b7c3b5f 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -1,19 +1,20 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper
, pkg-config, which, perl, libXrandr
, cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
-, gtk3, wayland, wayland-protocols
+, wayland, wayland-protocols
, libXinerama, libnotify, pango, xorgproto, librsvg
+, testVersion, dunst
}:
stdenv.mkDerivation rec {
pname = "dunst";
- version = "1.6.1";
+ version = "1.7.1";
src = fetchFromGitHub {
owner = "dunst-project";
repo = "dunst";
rev = "v${version}";
- sha256 = "0lga1kj2vjbj9g9rl93nivngjmk5fkxdxwal8w96x9whwk9jvdga";
+ sha256 = "0v15fhwzcg7zfn092sry0f4qb6dccz9bb312y9dadg745wf3n9qw";
};
nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
buildInputs = [
cairo dbus gdk-pixbuf glib libX11 libXScrnSaver
libXinerama libnotify pango xorgproto librsvg libXrandr
- gtk3 wayland wayland-protocols
+ wayland wayland-protocols
];
outputs = [ "out" "man" ];
@@ -39,6 +40,8 @@ stdenv.mkDerivation rec {
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
'';
+ passthru.tests.version = testVersion { package = dunst; };
+
meta = with lib; {
description = "Lightweight and customizable notification daemon";
homepage = "https://dunst-project.org/";
diff --git a/pkgs/applications/misc/effitask/cargo-lock.patch b/pkgs/applications/misc/effitask/cargo-lock.patch
deleted file mode 100644
index 4f56b82368fa..000000000000
--- a/pkgs/applications/misc/effitask/cargo-lock.patch
+++ /dev/null
@@ -1,1091 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..55e4495
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,1085 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.4.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "atk"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "atk-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "backtrace"
-+version = "0.3.41"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "backtrace-sys"
-+version = "0.1.35"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "cairo-rs"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cairo-sys-rs"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "chrono"
-+version = "0.4.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "effitask"
-+version = "0.1.0"
-+dependencies = [
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "filetime"
-+version = "0.2.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fragile"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fsevent"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fsevent-sys"
-+version = "2.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon-sys"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "gdk"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gdk-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "getopts"
-+version = "0.2.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gio"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gio-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "glib"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "glib-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gobject-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gtk"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gtk-sys"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "human-panic"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "inotify"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "inotify-sys"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "kernel32-sys"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lazycell"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lexical-core"
-+version = "0.6.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.68"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "memchr"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "mio"
-+version = "0.6.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mio-extras"
-+version = "2.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "net2"
-+version = "0.2.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "nodrop"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "nom"
-+version = "5.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "notify"
-+version = "4.0.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "os_type"
-+version = "2.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pango"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pango-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "0.4.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pulldown-cmark"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "relm"
-+version = "0.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "relm-attributes"
-+version = "0.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "relm-derive"
-+version = "0.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "relm-gen-widget"
-+version = "0.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "same-file"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver-parser"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "static_assertions"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "syn"
-+version = "0.15.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "todo-txt"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "2.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "uuid"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "walkdir"
-+version = "2.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.9.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "winapi-build"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-util"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "ws2_32-sys"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "xdg"
-+version = "2.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[metadata]
-+"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
-+"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
-+"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
-+"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba"
-+"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118"
-+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
-+"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
-+"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
-+"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-+"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
-+"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
-+"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
-+"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
-+"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
-+"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-+"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-+"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
-+"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
-+"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
-+"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
-+"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-+"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
-+"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
-+"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
-+"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
-+"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
-+"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
-+"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
-+"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
-+"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8"
-+"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
-+"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
-+"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
-+"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
-+"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-+"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
-+"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
-+"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-+"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
-+"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
-+"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
-+"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
-+"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-+"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
-+"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
-+"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
-+"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
-+"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
-+"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-+"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
-+"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-+"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
-+"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
-+"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714"
-+"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f"
-+"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69"
-+"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0"
-+"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
-+"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-+"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-+"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
-+"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
-+"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
-+"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-+"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
-+"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
-+"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
-+"checksum todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417"
-+"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-+"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-+"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
-+"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-+"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
-+"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-+"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+"checksum winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
-+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-+"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/pkgs/applications/misc/effitask/default.nix b/pkgs/applications/misc/effitask/default.nix
index a01d55ae20e8..f237998f53a6 100644
--- a/pkgs/applications/misc/effitask/default.nix
+++ b/pkgs/applications/misc/effitask/default.nix
@@ -1,32 +1,30 @@
-{ lib, stdenv
+{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, openssl
, gtk3
+, stdenv
, rust
}:
rustPlatform.buildRustPackage rec {
pname = "effitask";
- version = "1.4.0";
+ version = "1.4.1";
src = fetchFromGitHub {
owner = "sanpii";
repo = pname;
rev = version;
- sha256 = "09bffxdp43s8b1rpmsgqr2kyz3i4jbd2yrwbxw21fj3sf3mwb9ig";
+ sha256 = "sha256-nZn+mINIqAnaCKZCiywG8/BOPx6TlSe0rKV/8gcW/B4=";
};
- # workaround for missing Cargo.lock file https://github.com/sanpii/effitask/issues/48
- cargoPatches = [ ./cargo-lock.patch ];
-
- cargoSha256 = "1a80kf95kr94l6jzxdj4i09x1342x358fqjy6119qjg3q3bj0y3p";
-
- buildInputs = [ openssl gtk3 ];
+ cargoSha256 = "sha256-aCjZRJNsxx75ghK0N95Q9w0h5H5mW9/77j/fumDrvyM=";
nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl gtk3 ];
+
# default installPhase don't install assets
installPhase = ''
runHook preInstall
diff --git a/pkgs/applications/misc/electron-cash/default.nix b/pkgs/applications/misc/electron-cash/default.nix
index 4f8c5f8bb8b5..16f5673bed1b 100644
--- a/pkgs/applications/misc/electron-cash/default.nix
+++ b/pkgs/applications/misc/electron-cash/default.nix
@@ -3,13 +3,13 @@
python3Packages.buildPythonApplication rec {
pname = "electron-cash";
- version = "4.2.4";
+ version = "4.2.5";
src = fetchFromGitHub {
owner = "Electron-Cash";
repo = "Electron-Cash";
rev = version;
- sha256 = "sha256-hiOS0cTaPqllb31p+6nU4GYvw/E1Hdn8yd3sppzGkqg=";
+ sha256 = "sha256-ALIrNnhpX46xdQdfJdx/9e/QtdyBEgi5xLrbuOBJR7o=";
};
propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/misc/elfx86exts/cargo-lock.patch b/pkgs/applications/misc/elfx86exts/cargo-lock.patch
deleted file mode 100644
index 4f56b82368fa..000000000000
--- a/pkgs/applications/misc/elfx86exts/cargo-lock.patch
+++ /dev/null
@@ -1,1091 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..55e4495
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,1085 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.4.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "atk"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "atk-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "backtrace"
-+version = "0.3.41"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "backtrace-sys"
-+version = "0.1.35"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "cairo-rs"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cairo-sys-rs"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "chrono"
-+version = "0.4.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "effitask"
-+version = "0.1.0"
-+dependencies = [
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "filetime"
-+version = "0.2.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fragile"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fsevent"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fsevent-sys"
-+version = "2.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon-sys"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "gdk"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gdk-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "getopts"
-+version = "0.2.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gio"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gio-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "glib"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "glib-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gobject-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gtk"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "gtk-sys"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "human-panic"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "inotify"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "inotify-sys"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "kernel32-sys"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lazycell"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lexical-core"
-+version = "0.6.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.68"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "memchr"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "mio"
-+version = "0.6.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mio-extras"
-+version = "2.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "net2"
-+version = "0.2.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "nodrop"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "nom"
-+version = "5.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "notify"
-+version = "4.0.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "os_type"
-+version = "2.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pango"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pango-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "0.4.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pulldown-cmark"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "relm"
-+version = "0.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "relm-attributes"
-+version = "0.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "relm-derive"
-+version = "0.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "relm-gen-widget"
-+version = "0.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "same-file"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver-parser"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "static_assertions"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "syn"
-+version = "0.15.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "todo-txt"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "2.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "uuid"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "walkdir"
-+version = "2.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.9.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "winapi-build"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-util"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "ws2_32-sys"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "xdg"
-+version = "2.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[metadata]
-+"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
-+"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
-+"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
-+"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba"
-+"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118"
-+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
-+"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
-+"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
-+"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-+"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
-+"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
-+"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
-+"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
-+"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
-+"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-+"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-+"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
-+"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
-+"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
-+"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
-+"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-+"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
-+"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
-+"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
-+"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
-+"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
-+"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
-+"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
-+"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
-+"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8"
-+"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
-+"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
-+"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
-+"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
-+"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-+"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
-+"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
-+"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-+"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
-+"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
-+"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
-+"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
-+"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-+"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
-+"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
-+"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
-+"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
-+"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
-+"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-+"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
-+"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-+"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
-+"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
-+"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714"
-+"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f"
-+"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69"
-+"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0"
-+"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
-+"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-+"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-+"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
-+"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
-+"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
-+"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-+"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
-+"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
-+"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
-+"checksum todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417"
-+"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-+"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-+"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
-+"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-+"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
-+"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-+"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+"checksum winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
-+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-+"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/pkgs/applications/misc/eureka-ideas/default.nix b/pkgs/applications/misc/eureka-ideas/default.nix
new file mode 100644
index 000000000000..5f5db97b3323
--- /dev/null
+++ b/pkgs/applications/misc/eureka-ideas/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "eureka-ideas";
+ version = "1.8.1";
+
+ src = fetchFromGitHub {
+ owner = "simeg";
+ repo = "eureka";
+ rev = "v${version}";
+ sha256 = "1qjf8nr7m9igy6h228gm9gnav6pi2rfarbd9bc5fchx4rqy59sp7";
+ };
+
+ cargoSha256 = "sha256-QujrFgliH8Mx1ES9KVl+O9UJP+7GDanQ7+z4QJuSOd0=";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+
+ meta = with lib; {
+ description = "CLI tool to input and store your ideas without leaving the terminal";
+ homepage = "https://github.com/simeg/eureka";
+ changelog = "https://github.com/simeg/eureka/blob/v${version}/CHANGELOG.md";
+ license = licenses.mit;
+ maintainers = with maintainers; [ figsoda ];
+ mainProgram = "eureka";
+ };
+}
diff --git a/pkgs/applications/misc/far2l/default.nix b/pkgs/applications/misc/far2l/default.nix
index 87eaed975352..3e74d04c5128 100644
--- a/pkgs/applications/misc/far2l/default.nix
+++ b/pkgs/applications/misc/far2l/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash
, xdg-utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick
-, libuchardet, spdlog, xercesc, fmt, openssl, libssh, samba, neon, libnfs, libarchive }:
+, libuchardet, spdlog, xercesc, openssl, libssh, samba, neon, libnfs, libarchive }:
stdenv.mkDerivation rec {
pname = "far2l";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config m4 makeWrapper imagemagick ];
- buildInputs = [ wxGTK30 glib pcre libuchardet spdlog xercesc fmt ] # base requirements of the build
+ buildInputs = [ wxGTK30 glib pcre libuchardet spdlog xercesc ] # base requirements of the build
++ [ openssl libssh samba neon libnfs libarchive ]; # optional feature packages, like protocol support for Network panel, or archive formats
#++ lib.optional stdenv.isDarwin Cocoa # Mac support -- disabled, see "meta.broken" below
diff --git a/pkgs/applications/misc/fbreader/default.nix b/pkgs/applications/misc/fbreader/default.nix
index c2347d5fbb8b..c684d273bc75 100644
--- a/pkgs/applications/misc/fbreader/default.nix
+++ b/pkgs/applications/misc/fbreader/default.nix
@@ -1,9 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config
-, bzip2, curl, expat, fribidi, libunibreak, sqlite, zlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, bzip2
+, curl
+, expat
+, fribidi
+, libunibreak
+, sqlite
+, zlib
, uiTarget ? if !stdenv.isDarwin then "desktop" else "macosx"
, uiType ? if !stdenv.isDarwin then "qt4" else "cocoa"
-, qt4, gtk2
-, AppKit, Cocoa
+, qt4
+, gtk2
+, AppKit
+, Cocoa
}:
with lib;
@@ -16,7 +28,8 @@ assert uiTarget == "macosx" -> uiType == "cocoa";
# which is way to old and no longer in nixpkgs.
stdenv.mkDerivation {
- name = "fbreader-${uiType}-0.99.6";
+ pname = "fbreader-${uiType}";
+ version = "0.99.6";
src = fetchFromGitHub {
owner = "geometer";
@@ -53,7 +66,13 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
- bzip2 curl expat fribidi libunibreak sqlite zlib
+ bzip2
+ curl
+ expat
+ fribidi
+ libunibreak
+ sqlite
+ zlib
]
++ optional (uiType == "qt4") qt4
++ optional (uiType == "gtk") gtk2
@@ -68,7 +87,7 @@ stdenv.mkDerivation {
homepage = "http://www.fbreader.org/";
license = licenses.gpl3;
broken = stdenv.isDarwin # untested, might work
- || uiType == "gtk"; # builds, but the result is unusable, hangs a lot
+ || uiType == "gtk"; # builds, but the result is unusable, hangs a lot
platforms = platforms.unix;
maintainers = [ maintainers.coroa ];
};
diff --git a/pkgs/applications/misc/fehlstart/default.nix b/pkgs/applications/misc/fehlstart/default.nix
index 992b62780828..69050ca661f9 100644
--- a/pkgs/applications/misc/fehlstart/default.nix
+++ b/pkgs/applications/misc/fehlstart/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, pkg-config, gtk2, keybinder, fetchFromGitLab }:
stdenv.mkDerivation {
- name = "fehlstart-9f4342d7";
+ pname = "fehlstart";
+ version = "unstable-2016-05-23";
src = fetchFromGitLab {
owner = "fehlstart";
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index 4baa3a094261..f16e2a87a684 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "fetchmail";
- version = "6.4.21";
+ version = "6.4.22";
src = fetchurl {
url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
- sha256 = "sha256-akWcHK/XodqlzRNxQNpgwYyEtWmc2OckmnnDM0LJnR0=";
+ sha256 = "sha256-zGgYvVlDVgIWn6KS1tFj1Wshx/UxEoKUcKOs6r5hLIQ=";
};
buildInputs = [ openssl ];
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
IPSEC.
'';
platforms = platforms.unix;
- maintainers = [ maintainers.peti ];
license = licenses.gpl2Plus;
};
}
diff --git a/pkgs/applications/misc/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index b2ca9a0cab62..92c517835d83 100644
--- a/pkgs/applications/misc/firestarter/default.nix
+++ b/pkgs/applications/misc/firestarter/default.nix
@@ -2,6 +2,7 @@
, lib
, fetchFromGitHub
, fetchzip
+, addOpenGLRunpath
, cmake
, glibc_multi
, glibc
@@ -9,7 +10,6 @@
, pkg-config
, cudatoolkit
, withCuda ? false
-, linuxPackages
}:
let
@@ -60,13 +60,23 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
- nativeBuildInputs = [ cmake git pkg-config ];
+ nativeBuildInputs = [
+ cmake
+ git
+ pkg-config
+ ] ++ lib.optionals withCuda [
+ addOpenGLRunpath
+ ];
buildInputs = [ hwloc ] ++ (if withCuda then
- [ glibc_multi cudatoolkit linuxPackages.nvidia_x11 ]
+ [ glibc_multi cudatoolkit ]
else
[ glibc.static ]);
+ NIX_LDFLAGS = lib.optionals withCuda [
+ "-L${cudatoolkit}/lib/stubs"
+ ];
+
cmakeFlags = [
"-DFIRESTARTER_BUILD_HWLOC=OFF"
"-DCMAKE_C_COMPILER_WORKS=1"
@@ -76,8 +86,14 @@ stdenv.mkDerivation rec {
];
installPhase = ''
+ runHook preInstall
mkdir -p $out/bin
cp src/FIRESTARTER${lib.optionalString withCuda "_CUDA"} $out/bin/
+ runHook postInstall
+ '';
+
+ postFixup = lib.optionalString withCuda ''
+ addOpenGLRunpath $out/bin/FIRESTARTER_CUDA
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/flavours/default.nix b/pkgs/applications/misc/flavours/default.nix
index 94fc91dfdb9c..5eafa0390771 100644
--- a/pkgs/applications/misc/flavours/default.nix
+++ b/pkgs/applications/misc/flavours/default.nix
@@ -2,18 +2,18 @@
rustPlatform.buildRustPackage rec {
pname = "flavours";
- version = "0.5.0";
+ version = "0.5.2";
src = fetchFromGitHub {
owner = "Misterio77";
repo = pname;
rev = "v${version}";
- sha256 = "1bgi6p7l0bh9k4vkwvngk7q19ynia0z1ninb1cq8qnwwpll6kbya";
+ sha256 = "sha256-P7F7PHP2EiZz6RgKbmqXRQOGG1P8TJ1emR0BEY9yBqk=";
};
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
- cargoSha256 = "07hwxhfcbqbwb3hz18w92h1lhdiwwy7abhwpimzx7syyavp4rmn4";
+ cargoSha256 = "sha256-QlCjAtQGITGrWNKQM39QPmv/MPZaaHfwdHjal2i1qv4=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/misc/fnott/default.nix b/pkgs/applications/misc/fnott/default.nix
index 4c2e262c9ae1..93886b3a2c21 100644
--- a/pkgs/applications/misc/fnott/default.nix
+++ b/pkgs/applications/misc/fnott/default.nix
@@ -19,14 +19,14 @@
stdenv.mkDerivation rec {
pname = "fnott";
- version = "1.1.0";
+ version = "1.1.2";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fnott";
rev = version;
- sha256 = "sha256-gzU5AqjCIZlhLbnj/xuSGJ69ZhLv9zQxlM0Nn+MIX/U=";
+ sha256 = "sha256-+x3uN7Uj0fqO0kpHlOVnsshgEJA1z/6ZElKSTyLzfG4=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/applications/misc/font-manager/default.nix
index 29399ab2f5b5..bd6ae3d74780 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/applications/misc/font-manager/default.nix
@@ -26,33 +26,21 @@
stdenv.mkDerivation rec {
pname = "font-manager";
- version = "0.8.6";
+ version = "0.8.7";
src = fetchFromGitHub {
owner = "FontManager";
repo = "master";
rev = version;
- sha256 = "0a18rbdy9d0fj0vnsc2rm7xlh17vjqn4kdyrq0ldzlzkb6zbdk2k";
+ sha256 = "lqXjGSsiWaMJGyr1c2Wt/bs4F8q51mQ1+f6vbZRQzVs=";
};
patches = [
- # Fix some Desktop Settings with GNOME 40.
- # https://github.com/FontManager/font-manager/issues/215
+ # Fix compilation with latest Vala.
+ # https://github.com/FontManager/font-manager/issues/240
(fetchpatch {
- url = "https://github.com/FontManager/font-manager/commit/b28f325d7951a66ebf1a2a432ee09fd22048a033.patch";
- sha256 = "dKbrXGb9a4JuG/4x9vprMlh5J17HKJFifRWq9BWp1ow=";
- })
- (fetchpatch {
- url = "https://github.com/FontManager/font-manager/commit/2147204d4c4c6b58161230500186c3a5d4eeb1c1.patch";
- sha256 = "2/PFLwf7h76fIIN4+lyjg/L0KVU1hhRQCfwCAGDpb00=";
- })
- (fetchpatch {
- url = "https://github.com/FontManager/font-manager/commit/3abc541ef8606727c72af7631c021809600336ac.patch";
- sha256 = "rJPnW+7uuFLxTf5tk+Rzo+xkw2+uzU6BkzPXLeR/RGc=";
- })
- (fetchpatch {
- url = "https://github.com/FontManager/font-manager/commit/03a822f0d7b72442cd2ffcc8668da265d3535e0d.patch";
- sha256 = "3Z2UqK5VV2bIwpGd1tA7fivd7ooIuV6CxTJhzgOAkIM=";
+ url = "https://github.com/FontManager/font-manager/commit/f9c4621389dae5999ca9d2f3c8402c2512a9ea60.patch";
+ sha256 = "ZEJZSUYFLKmiHpVusO3ZUXMLUzJbbbCSqMjCtwlzPRY=";
})
];
diff --git a/pkgs/applications/misc/formatter/default.nix b/pkgs/applications/misc/formatter/default.nix
index 4532b766f47b..440022da6eeb 100644
--- a/pkgs/applications/misc/formatter/default.nix
+++ b/pkgs/applications/misc/formatter/default.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.lgpl2Plus;
+ mainProgram = "com.github.djaler.formatter";
};
}
diff --git a/pkgs/applications/misc/foxtrotgps/default.nix b/pkgs/applications/misc/foxtrotgps/default.nix
index 8692ac98933b..745a2357e236 100644
--- a/pkgs/applications/misc/foxtrotgps/default.nix
+++ b/pkgs/applications/misc/foxtrotgps/default.nix
@@ -6,8 +6,8 @@ let
srcs = {
foxtrot = fetchbzr {
url = "lp:foxtrotgps";
- rev = "329";
- sha256 = "0fwgnsrah63h1xdgm5xdi5ancrz89shdp5sdzw1qc1m7i9a03rid";
+ rev = "331";
+ sha256 = "sha256-/kJv6a3MzAzzwIl98Mqi7jrUJC1kDvouigf9kGtv868=";
};
screenshots = fetchbzr {
url = "lp:foxtrotgps/screenshots";
@@ -17,7 +17,7 @@ let
};
in stdenv.mkDerivation rec {
pname = "foxtrotgps";
- version = "1.2.2+329";
+ version = "1.2.2+331";
# Pull directly from bzr because gpsd API version 9 is not supported on latest release
src = srcs.foxtrot;
@@ -39,12 +39,20 @@ in stdenv.mkDerivation rec {
];
postUnpack = ''
- cp -R ${srcs.screenshots} $sourceRoot/doc/screenshots
- chmod -R u+w $sourceRoot/doc/screenshots
+ cp -R ${srcs.screenshots} $sourceRoot/doc/screenshots
+ chmod -R u+w $sourceRoot/doc/screenshots
+ '';
+
+ # Remove when foxtrotgps supports gpsd 3.23.1
+ # Patch for compatibility with gpsd 3.23.1. This was added for foxtrotgps
+ # 1.2.2+331. The command can be removed if the build of a newer version
+ # succeeds without it.
+ postPatch = ''
+ substituteInPlace src/gps_functions.c --replace "STATUS_NO_FIX" "STATUS_UNK"
'';
preConfigure = ''
- intltoolize --automake --copy --force
+ intltoolize --automake --copy --force
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/fuzzel/default.nix b/pkgs/applications/misc/fuzzel/default.nix
index e43304c5bc18..e099414c0c28 100644
--- a/pkgs/applications/misc/fuzzel/default.nix
+++ b/pkgs/applications/misc/fuzzel/default.nix
@@ -13,29 +13,24 @@
, tllist
, fcft
, enableCairo ? true
-, enablePNG ? true
-, enableSVG ? true
+, withPNGBackend ? "libpng"
+, withSVGBackend ? "librsvg"
# Optional dependencies
, cairo
, librsvg
, libpng
}:
-let
- # Courtesy of sternenseemann and FRidh, commit c9a7fdfcfb420be8e0179214d0d91a34f5974c54
- mesonFeatureFlag = opt: b: "-D${opt}=${if b then "enabled" else "disabled"}";
-in
-
stdenv.mkDerivation rec {
pname = "fuzzel";
- version = "1.6.1";
+ version = "1.6.4";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fuzzel";
rev = version;
- sha256 = "sha256-JW5sAlTprSRIdFbmSaUreGtNccERgQMGEW+WCSscYQk=";
+ sha256 = "sha256-wl3dO6EwLXWf0XtAIml1NlNRIvpIQJuq1pxLmo/pAUE=";
};
nativeBuildInputs = [
@@ -54,15 +49,15 @@ stdenv.mkDerivation rec {
tllist
fcft
] ++ lib.optional enableCairo cairo
- ++ lib.optional enablePNG libpng
- ++ lib.optional enableSVG librsvg;
+ ++ lib.optional (withPNGBackend == "libpng") libpng
+ ++ lib.optional (withSVGBackend == "librsvg") librsvg;
mesonBuildType = "release";
mesonFlags = [
- (mesonFeatureFlag "enable-cairo" enableCairo)
- (mesonFeatureFlag "enable-png" enablePNG)
- (mesonFeatureFlag "enable-svg" enableSVG)
+ "-Denable-cairo=${if enableCairo then "enabled" else "disabled"}"
+ "-Dpng-backend=${withPNGBackend}"
+ "-Dsvg-backend=${withSVGBackend}"
];
meta = with lib; {
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 23aa5f9ba4f1..20590552fc99 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonApplication, fetchPypi, requests, pytestCheckHook }:
+{ lib, buildPythonApplication, fetchPypi, requests, youtube-dl, pytestCheckHook }:
buildPythonApplication rec {
pname = "gallery_dl";
- version = "1.18.4";
+ version = "1.19.2";
src = fetchPypi {
inherit pname version;
- sha256 = "bdb84706fdde867fe2ee11c74c8c51af4e560399bd5fa562f19bfcaf8fc0dac9";
+ sha256 = "7fec9ac69582dbd9922666e6ece3142ae52dc9679a2c4a613f6ee94ad09e5f68";
};
- propagatedBuildInputs = [ requests ];
+ propagatedBuildInputs = [ requests youtube-dl ];
checkInputs = [ pytestCheckHook ];
pytestFlagsArray = [
diff --git a/pkgs/applications/misc/garmin-plugin/default.nix b/pkgs/applications/misc/garmin-plugin/default.nix
index c2c3a69140b9..c401b2722565 100644
--- a/pkgs/applications/misc/garmin-plugin/default.nix
+++ b/pkgs/applications/misc/garmin-plugin/default.nix
@@ -1,26 +1,39 @@
-{ lib, stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }:
-stdenv.mkDerivation {
- name = "garmin-plugin-0.3.26";
- src = fetchurl {
- url = "https://github.com/adiesner/GarminPlugin/archive/V0.3.26.tar.gz";
- sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0";
+{ lib, stdenv, fetchFromGitHub, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "garmin-plugin";
+ version = "0.3.26";
+
+ src = fetchFromGitHub {
+ owner = "adiesner";
+ repo = "GarminPlugin";
+ rev = "V${version}";
+ sha256 = "sha256-l0WAbEsQl1dCADf5gTepYjsA1rQCJMLcrTxRR4PfUus=";
};
- sourceRoot = "GarminPlugin-0.3.26/src";
+
+ preConfigure = ''
+ cd src
+ '';
+
nativeBuildInputs = [ pkg-config ];
+
buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ];
+
configureFlags = [
"--with-libgcrypt-prefix=${libgcrypt.dev}"
"--with-garmintools-incdir=${garmintools}/include"
"--with-garmintools-libdir=${garmintools}/lib"
];
+
installPhase = ''
mkdir -p $out/lib/mozilla/plugins
cp npGarminPlugin.so $out/lib/mozilla/plugins
'';
- meta = {
- homepage = "http://www.andreas-diesner.de/garminplugin";
- license = lib.licenses.gpl3;
- maintainers = [ ];
- platforms = lib.platforms.linux;
+
+ meta = with lib; {
+ homepage = "https://adiesner.github.io/GarminPlugin/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/geek-life/default.nix b/pkgs/applications/misc/geek-life/default.nix
new file mode 100644
index 000000000000..653c940024a6
--- /dev/null
+++ b/pkgs/applications/misc/geek-life/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "geek-life";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "ajaxray";
+ repo = "geek-life";
+ rev = "v${version}";
+ sha256 = "083y2kv5vb217ghy9g2qylqgdgbjjggjj3cq454csnn3cjgq9zfh";
+ };
+
+ vendorSha256 = "05fcnmg2rygccf65r8js6kbijx740vfnvbrc035bjs1jvdw29h9j";
+
+ postInstall = ''
+ mv $out/bin/app $out/bin/geek-life
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/ajaxray/geek-life";
+ description = "The Todo List / Task Manager for Geeks in command line";
+ maintainers = with maintainers; [ noisersup ];
+ license = licenses.mit;
+ };
+}
diff --git a/pkgs/applications/misc/gitit/default.nix b/pkgs/applications/misc/gitit/default.nix
index a4ffd3bf88d3..365b3f6acd97 100644
--- a/pkgs/applications/misc/gitit/default.nix
+++ b/pkgs/applications/misc/gitit/default.nix
@@ -14,13 +14,13 @@ let
plugins =
if pluginSupport
then plain
- else haskell.lib.disableCabalFlag plain "plugins";
- static = haskell.lib.justStaticExecutables plugins;
+ else haskell.lib.compose.disableCabalFlag "plugins" plain;
+ static = haskell.lib.compose.justStaticExecutables plugins;
in
- (haskell.lib.overrideCabal static (drv: {
+ (haskell.lib.compose.overrideCabal (drv: {
buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
- })).overrideAttrs (drv: {
+ }) static).overrideAttrs (drv: {
# These libraries are still referenced, because they generate
# a `Paths_*` module for figuring out their version.
diff --git a/pkgs/applications/misc/gkrellm/default.nix b/pkgs/applications/misc/gkrellm/default.nix
index aaaab255c763..0a62ce4ea518 100644
--- a/pkgs/applications/misc/gkrellm/default.nix
+++ b/pkgs/applications/misc/gkrellm/default.nix
@@ -1,20 +1,32 @@
-{ lib, fetchurl, stdenv, gettext, pkg-config, glib, gtk2, libX11, libSM, libICE, which
-, IOKit, copyDesktopItems, makeDesktopItem, wrapGAppsHook
+{ lib
+, fetchurl
+, stdenv
+, gettext
+, pkg-config
+, glib
+, gtk2
+, libX11
+, libSM
+, libICE
+, which
+, IOKit
+, copyDesktopItems
+, makeDesktopItem
+, wrapGAppsHook
}:
-with lib;
-
stdenv.mkDerivation rec {
- name = "gkrellm-2.3.11";
+ pname = "gkrellm";
+ version = "2.3.11";
src = fetchurl {
- url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2";
+ url = "http://gkrellm.srcbox.net/releases/gkrellm-${version}.tar.bz2";
sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y";
};
nativeBuildInputs = [ copyDesktopItems pkg-config which wrapGAppsHook ];
- buildInputs = [gettext glib gtk2 libX11 libSM libICE]
- ++ optionals stdenv.isDarwin [ IOKit ];
+ buildInputs = [ gettext glib gtk2 libX11 libSM libICE ]
+ ++ lib.optionals stdenv.isDarwin [ IOKit ];
hardeningDisable = [ "format" ];
@@ -48,7 +60,7 @@ stdenv.mkDerivation rec {
})
];
- meta = {
+ meta = with lib; {
description = "Themeable process stack of system monitors";
longDescription = ''
GKrellM is a single process stack of system monitors which
diff --git a/pkgs/applications/misc/gnome-recipes/default.nix b/pkgs/applications/misc/gnome-recipes/default.nix
index b35319c38630..04526ec34656 100644
--- a/pkgs/applications/misc/gnome-recipes/default.nix
+++ b/pkgs/applications/misc/gnome-recipes/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv
-, fetchurl
+{ stdenv
+, lib
+, fetchFromGitLab
, meson
, ninja
, pkg-config
-, gnome
, desktop-file-utils
, gettext
, itstool
@@ -17,17 +17,21 @@
, json-glib
, gnome-autoar
, gspell
-, libcanberra }:
+, libcanberra
+, nix-update-script
+}:
-let
+stdenv.mkDerivation rec {
pname = "gnome-recipes";
- version = "2.0.2";
-in stdenv.mkDerivation rec {
- name = "${pname}-${version}";
+ version = "2.0.4";
- src = fetchurl {
- url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1yymii3yf823d9x28fbhqdqm1wa30s40j94x0am9fjj0nzyd5s8v";
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "GNOME";
+ repo = "recipes";
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "GyFOwEYmipQdFLtTXn7+NvhDTzxBlOAghr3cZT4QpQw=";
};
nativeBuildInputs = [
@@ -53,10 +57,6 @@ in stdenv.mkDerivation rec {
libcanberra
];
- # https://github.com/NixOS/nixpkgs/issues/36468
- # https://gitlab.gnome.org/GNOME/recipes/issues/76
- NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
-
postPatch = ''
chmod +x src/list_to_c.py
patchShebangs src/list_to_c.py
@@ -64,8 +64,8 @@ in stdenv.mkDerivation rec {
'';
passthru = {
- updateScript = gnome.updateScript {
- packageName = pname;
+ updateScript = nix-update-script {
+ attrPath = pname;
};
};
@@ -73,7 +73,7 @@ in stdenv.mkDerivation rec {
description = "Recipe management application for GNOME";
homepage = "https://wiki.gnome.org/Apps/Recipes";
maintainers = teams.gnome.members;
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix
index 03668e586117..f0eed5c1e2fc 100644
--- a/pkgs/applications/misc/goldendict/default.nix
+++ b/pkgs/applications/misc/goldendict/default.nix
@@ -56,7 +56,6 @@ mkDerivation rec {
postInstall = lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv GoldenDict.app $out/Applications
- wrapQtApp $out/Applications/GoldenDict.app/Contents/MacOS/GoldenDict
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix
index e7cfe04da6e8..950cb236ecbf 100644
--- a/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/pkgs/applications/misc/googleearth-pro/default.nix
@@ -2,26 +2,14 @@
, stdenv
, mkDerivation
, fetchurl
-, ffmpeg_3
, freetype
-, gdal_2
, glib
, libGL
, libGLU
-, libICE
, libSM
-, libXi
-, libXv
-, libav_12
, libXrender
-, libXrandr
-, libXfixes
-, libXcursor
-, libXinerama
-, libXext
, libX11
-, libXcomposite
, libxcb
, sqlite
@@ -34,11 +22,8 @@
, dbus
, makeWrapper
-, qtlocation
-, qtwebkit
-, qtx11extras
-, qtsensors
-, qtscript
+, cups
+, alsa-lib
, xkeyboardconfig
, autoPatchelfHook
@@ -50,49 +35,34 @@ let
in
mkDerivation rec {
pname = "googleearth-pro";
- version = "7.3.3.7786";
+ version = "7.3.4.8248";
src = fetchurl {
url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-pro-stable/google-earth-pro-stable_${version}-r0_${arch}.deb";
- sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3";
+ sha256 = "1pbapi267snlrjari5k93y6kbrjsqhqxgkxxqaqv4r25az00dx6d";
};
nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
propagatedBuildInputs = [ xkeyboardconfig ];
buildInputs = [
dbus
- ffmpeg_3
+ cups
fontconfig
freetype
- gdal_2
glib
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
libGL
libGLU
- libICE
libSM
libX11
- libXcomposite
- libXcursor
- libXext
- libXfixes
- libXi
- libXinerama
- libXrandr
libXrender
- libXv
- libav_12
libproxy
libxcb
libxml2
- qtlocation
- qtscript
- qtsensors
- qtwebkit
- qtx11extras
sqlite
zlib
+ alsa-lib
];
doInstallCheck = true;
@@ -131,17 +101,6 @@ mkDerivation rec {
runHook postInstall
'';
- postInstall = ''
- find "$out/opt/google/earth/pro" -name "*.so.*" | \
- egrep -v 'libssl*|libcrypto*|libicu*' | \
- xargs rm
- find "$out/opt/google/earth/pro" -name "*.so" | \
- egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \
- xargs rm
- '';
-
- autoPatchelfIgnoreMissingDeps=true;
-
installCheckPhase = ''
$out/bin/gpsbabel -V > /dev/null
'';
@@ -159,5 +118,6 @@ mkDerivation rec {
license = licenses.unfree;
maintainers = with maintainers; [ friedelino shamilton ];
platforms = platforms.linux;
+ knownVulnerabilities = [ "Includes vulnerable bundled libraries." ];
};
}
diff --git a/pkgs/applications/misc/gpa/default.nix b/pkgs/applications/misc/gpa/default.nix
index 63bba909b6d5..0d567dd79a10 100644
--- a/pkgs/applications/misc/gpa/default.nix
+++ b/pkgs/applications/misc/gpa/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, gpgme, libgpgerror, libassuan }:
+{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, gpgme, libgpg-error, libassuan }:
stdenv.mkDerivation rec {
- name = "gpa-0.10.0";
+ pname = "gpa";
+ version = "0.10.0";
src = fetchurl {
- url = "mirror://gnupg/gpa/${name}.tar.bz2";
+ url = "mirror://gnupg/gpa/gpa-${version}.tar.bz2";
sha256 = "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm";
};
nativeBuildInputs = [ intltool pkg-config ];
- buildInputs = [ gtk2 gpgme libgpgerror libassuan ];
+ buildInputs = [ gtk2 gpgme libgpg-error libassuan ];
meta = with lib; {
description = "Graphical user interface for the GnuPG";
diff --git a/pkgs/applications/misc/gpxlab/default.nix b/pkgs/applications/misc/gpxlab/default.nix
index c8d6eb3b84c7..8d2b95ea4f31 100644
--- a/pkgs/applications/misc/gpxlab/default.nix
+++ b/pkgs/applications/misc/gpxlab/default.nix
@@ -28,7 +28,6 @@ mkDerivation rec {
postInstall = lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv GPXLab/GPXLab.app $out/Applications
- wrapQtApp $out/Applications/GPXLab.app/Contents/MacOS/GPXLab
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index f008ea439ed6..85fef2cbb00d 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "gpxsee";
- version = "9.6";
+ version = "9.11";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
- sha256 = "sha256-Yj8lR8zgIV+gshea7rzLbMF84n1nyN3DytiIkr3B274=";
+ sha256 = "sha256-5FGdcmkVOxjDngVQIlXnH3OPRMjaixqJ2Xb239usUuo=";
};
patches = (substituteAll {
@@ -26,7 +26,6 @@ mkDerivation rec {
postInstall = with stdenv; lib.optionalString isDarwin ''
mkdir -p $out/Applications
mv GPXSee.app $out/Applications
- wrapQtApp $out/Applications/GPXSee.app/Contents/MacOS/GPXSee
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix
index c182db8fdd3a..6a6666763c18 100644
--- a/pkgs/applications/misc/grip/default.nix
+++ b/pkgs/applications/misc/grip/default.nix
@@ -15,10 +15,11 @@
}:
stdenv.mkDerivation rec {
- name = "grip-4.2.2";
+ pname = "grip";
+ version = "4.2.2";
src = fetchurl {
- url = "mirror://sourceforge/grip/${name}.tar.gz";
+ url = "mirror://sourceforge/grip/grip-${version}.tar.gz";
sha256 = "sha256-nXtGgJeNYM8lyllNi9UdmsnVcHOCXfryWmKGZ9QFTHE=";
};
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
homepage = "http://nostatic.org/grip";
license = lib.licenses.gpl2Plus;
- maintainers = with lib.maintainers; [ marcweber peti ];
+ maintainers = with lib.maintainers; [ marcweber ];
platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/misc/grsync/default.nix b/pkgs/applications/misc/grsync/default.nix
index f4d1b0852591..c8068d682237 100644
--- a/pkgs/applications/misc/grsync/default.nix
+++ b/pkgs/applications/misc/grsync/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, dee, gtk2, intltool, libdbusmenu-gtk2, libunity, pkg-config, rsync }:
+{ lib, stdenv, fetchurl, dee, gtk3, intltool, libdbusmenu-gtk3, libunity, pkg-config, rsync }:
stdenv.mkDerivation rec {
- version = "1.2.8";
+ version = "1.3.0";
pname = "grsync";
src = fetchurl {
url = "mirror://sourceforge/grsync/grsync-${version}.tar.gz";
- sha256 = "1c86jch73cy7ig9k4shvcd3jnaxk7jppfcr8nmkz8gbylsn5zsll";
+ sha256 = "sha256-t8fGpi4FMC2DF8OHQefXHvmrRjnuW/8mIqODsgQ6Nfw=";
};
nativeBuildInputs = [
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
buildInputs = [
dee
- gtk2
- libdbusmenu-gtk2
+ gtk3
+ libdbusmenu-gtk3
libunity
rsync
];
diff --git a/pkgs/applications/misc/gv/default.nix b/pkgs/applications/misc/gv/default.nix
index aa07058dc808..851f2d80c976 100644
--- a/pkgs/applications/misc/gv/default.nix
+++ b/pkgs/applications/misc/gv/default.nix
@@ -1,13 +1,11 @@
{ lib, stdenv, fetchurl, Xaw3d, ghostscriptX, perl, pkg-config, libiconv }:
-let
- name = "gv-3.7.4";
-in
-stdenv.mkDerivation {
- inherit name;
+stdenv.mkDerivation rec {
+ pname = "gv";
+ version = "3.7.4";
src = fetchurl {
- url = "mirror://gnu/gv/${name}.tar.gz";
+ url = "mirror://gnu/gv/gv-${version}.tar.gz";
sha256 = "0q8s43z14vxm41pfa8s5h9kyyzk1fkwjhkiwbf2x70alm6rv6qi1";
};
diff --git a/pkgs/applications/misc/gxkb/default.nix b/pkgs/applications/misc/gxkb/default.nix
index 16268bc76c73..e496d7864571 100644
--- a/pkgs/applications/misc/gxkb/default.nix
+++ b/pkgs/applications/misc/gxkb/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "gxkb";
- version = "0.9.2";
+ version = "0.9.3";
src = fetchFromGitHub {
owner = "zen-tools";
repo = "gxkb";
rev = "v${version}";
- sha256 = "sha256-KIlosBNfGSYCgtxBuSVeSfHaLsANdLgG/P5UtAL6Hms=";
+ sha256 = "sha256-9r1eZl7PgIt2ZpK+QQHaa460imIHT3Lh5mpzcFglyWc=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/misc/gxneur/default.nix b/pkgs/applications/misc/gxneur/default.nix
index 9e8c5ddaef4a..7c32cec72192 100644
--- a/pkgs/applications/misc/gxneur/default.nix
+++ b/pkgs/applications/misc/gxneur/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, intltool, gtk2, xorg, glib, xneur, libglade, GConf, libappindicator-gtk2, pcre }:
-stdenv.mkDerivation {
- name = "gxneur-0.20.0";
+stdenv.mkDerivation rec {
+ pname = "gxneur";
+ version = "0.20.0";
src = fetchurl {
- url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/gxneur_0.20.0.orig.tar.gz";
+ url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/${version}/gxneur_${version}.orig.tar.gz";
sha256 = "0avmhdcj0hpr55fc0iih8fjykmdhn34c8mwdnqvl8jh4nhxxchxr";
};
@@ -13,8 +14,17 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config intltool ];
buildInputs = [
- xorg.libX11 glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur
- libglade GConf pcre libappindicator-gtk2
+ xorg.libX11
+ glib
+ gtk2
+ xorg.libXpm
+ xorg.libXt
+ xorg.libXext
+ xneur
+ libglade
+ GConf
+ pcre
+ libappindicator-gtk2
];
meta = with lib; {
diff --git a/pkgs/applications/misc/haxor-news/default.nix b/pkgs/applications/misc/haxor-news/default.nix
index f5a723f59018..43c2eb242241 100644
--- a/pkgs/applications/misc/haxor-news/default.nix
+++ b/pkgs/applications/misc/haxor-news/default.nix
@@ -15,6 +15,7 @@ let
sha256 = "09h1153wgr5x2ny7ds0w2m81n3bb9j8hjb8sjfnrg506r01clkyx";
};
});
+ click = self.callPackage ../../../development/python-modules/click/7.nix { };
};
};
in
diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix
index d3d369368af7..0aff0c6bbd19 100644
--- a/pkgs/applications/misc/heimer/default.nix
+++ b/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "heimer";
- version = "2.6.0";
+ version = "2.8.0";
src = fetchFromGitHub {
owner = "juzzlin";
repo = pname;
rev = version;
- sha256 = "sha256-VSj6bSb92XMsfvDH+cey2GXLnJajUBaCqLMgkv2fnSo=";
+ sha256 = "sha256-838uH8nTxl3FJvtYrLDmS6tYYRdNnFzftZ5RZE8tVpE=";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/hstr/default.nix b/pkgs/applications/misc/hstr/default.nix
index 3cda6d0a3181..888c7892514b 100644
--- a/pkgs/applications/misc/hstr/default.nix
+++ b/pkgs/applications/misc/hstr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, readline, ncurses
+{ lib, stdenv, fetchFromGitHub, fetchpatch, readline, ncurses
, autoreconfHook, pkg-config, gettext }:
stdenv.mkDerivation rec {
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
sha256 = "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y";
};
+ patches = [
+ # pull pending upstream inclusion fix for ncurses-6.3:
+ # https://github.com/dvorka/hstr/pull/435
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/dvorka/hstr/commit/7fbd852c464ae3cfcd2f4fed9c62a21fb84c5439.patch";
+ sha256 = "15f0ja4bsh4jnchcg0ray8ijpdraag7k07ss87a6ymfs1rg6i0jr";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ readline ncurses gettext ];
diff --git a/pkgs/applications/misc/hubstaff/default.nix b/pkgs/applications/misc/hubstaff/default.nix
index b49993ddb9c3..797dfe504cae 100644
--- a/pkgs/applications/misc/hubstaff/default.nix
+++ b/pkgs/applications/misc/hubstaff/default.nix
@@ -4,9 +4,9 @@
, curl, writeShellScript, common-updater-scripts }:
let
- url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.0-02e625d8/Hubstaff-1.6.0-02e625d8.sh";
- version = "1.6.0-02e625d8";
- sha256 = "1rd4icgy25j9l1xs6djmpv2nc2ilvjpblddv95xvvz39z82sfr29";
+ url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.2-328c666b/Hubstaff-1.6.2-328c666b.sh";
+ version = "1.6.2-328c666b";
+ sha256 = "0fmlblw19qk9s9xsl0dl705cnns825wrlc7navii4bvbsn6ycl5v";
rpath = lib.makeLibraryPath
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
diff --git a/pkgs/applications/misc/hunter/default.nix b/pkgs/applications/misc/hunter/default.nix
deleted file mode 100644
index 6c0c9b2955ab..000000000000
--- a/pkgs/applications/misc/hunter/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ lib, stdenv, pkg-config, rustPlatform, fetchFromGitHub, fetchpatch
-, makeWrapper, glib, gst_all_1, CoreServices, IOKit, Security }:
-
-rustPlatform.buildRustPackage rec {
- pname = "hunter";
- version = "2020-05-25-unstable";
-
- src = fetchFromGitHub {
- owner = "rabite0";
- repo = "hunter";
- rev = "355d9a3101f6d8dc375807de79e368602f1cb87d";
- sha256 = "sha256-R2wNkG8bFP7X2pdlebHK6GD15qmD/zD3L0MwVthvzzQ=";
- };
-
- patches = [
- (fetchpatch {
- name = "remove-dependencies-on-rust-nightly";
- url = "https://github.com/06kellyjac/hunter/commit/a5943578e1ee679c8bc51b0e686c6dddcf74da2a.diff";
- sha256 = "sha256-eOwBFfW5m8tPnu+whWY/53X9CaqiVj2WRr25G+Yy7qE=";
- })
- (fetchpatch {
- name = "fix-accessing-core-when-moved-with-another-clone";
- url = "https://github.com/06kellyjac/hunter/commit/2e95cc567c751263f8c318399f3c5bb01d36962a.diff";
- sha256 = "sha256-yTzIXUw5qEaR2QZHwydg0abyZVXfK6fhJLVHBI7EAro=";
- })
- (fetchpatch {
- name = "fix-resolve-breaking-changes-from-package-updates";
- url = "https://github.com/06kellyjac/hunter/commit/2484f0db580bed1972fd5000e1e949a4082d2f01.diff";
- sha256 = "sha256-K+WUxEr1eE68XejStj/JwQpMHlhkiOw6PmiSr1GO0kc=";
- })
- ];
-
- cargoPatches = [
- (fetchpatch {
- name = "chore-cargo-update";
- url = "https://github.com/06kellyjac/hunter/commit/b0be49a82191a4420b6900737901a71140433efd.diff";
- sha256 = "sha256-ctxoDwyIJgEhMbMUfrjCTy2SeMUQqMi971szrqEOJeg=";
- })
- (fetchpatch {
- name = "chore-cargo-upgrade-+-cargo-update";
- url = "https://github.com/06kellyjac/hunter/commit/1b8de9248312878358afaf1dac569ebbccc4321a.diff";
- sha256 = "sha256-+4DZ8SaKwKNmr2SEgJJ7KZBIctnYFMQFKgG+yCkbUv0=";
- })
- ];
-
- RUSTC_BOOTSTRAP = 1;
-
- nativeBuildInputs = [ makeWrapper pkg-config ];
- buildInputs = [
- glib
- ] ++ (with gst_all_1; [
- gstreamer
- gst-plugins-base
- gst-plugins-good
- gst-plugins-ugly
- gst-plugins-bad
- ]) ++ lib.optionals stdenv.isDarwin [ CoreServices IOKit Security ];
-
- cargoBuildFlags = [ "--no-default-features" "--features=img,video" ];
-
- postInstall = ''
- wrapProgram $out/bin/hunter --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
- '';
-
- cargoSha256 = "sha256-Bd/gilebxC4H+/1A41OSSfWBlHcSczsFcU2b+USnI74=";
-
- meta = with lib; {
- description = "The fastest file manager in the galaxy!";
- homepage = "https://github.com/rabite0/hunter";
- license = licenses.wtfpl;
- maintainers = with maintainers; [ fufexan ];
- # error[E0308]: mismatched types
- # --> src/files.rs:502:62
- # expected raw pointer `*const u8`, found raw pointer `*const i8`
- broken = stdenv.isAarch64;
- };
-}
diff --git a/pkgs/applications/misc/icesl/default.nix b/pkgs/applications/misc/icesl/default.nix
index 5c50ac245381..ae049699121e 100644
--- a/pkgs/applications/misc/icesl/default.nix
+++ b/pkgs/applications/misc/icesl/default.nix
@@ -1,22 +1,27 @@
-{ stdenv, lib, fetchzip, freeglut, libXmu, libXi, libX11, libICE, libGLU, libGL, libSM, libXext, dialog, makeWrapper }:
+{ stdenv, lib, fetchzip, freeglut, libXmu, libXi, libX11, libICE, libGLU, libGL, libSM
+, libXext, glibc, lua, luabind, glfw, libgccjit, dialog, makeWrapper
+}:
let
- lpath = lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE libGLU libGL libSM libXext ];
+ lpath = lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE libGLU libGL libSM libXext glibc lua glfw luabind libgccjit ];
in
stdenv.mkDerivation rec {
pname = "iceSL";
- version = "2.1.10";
+ version = "2.4.1";
src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchzip {
- url = "https://gforge.inria.fr/frs/download.php/file/37268/icesl${version}-amd64.zip";
- sha256 = "0dv3mq6wy46xk9blzzmgbdxpsjdaxid3zadfrysxlhmgl7zb2cn2";
+ url = "https://icesl.loria.fr/assets/other/download.php?build=${version}&os=amd64";
+ extension = "zip";
+ sha256 = "0rrnkqkhlsjclif5cjbf17qz64vs95ja49xarxjvq54wb4jhbs4l";
} else if stdenv.hostPlatform.system == "i686-linux" then fetchzip {
- url = "https://gforge.inria.fr/frs/download.php/file/37267/icesl${version}-i386.zip";
- sha256 = "0sl54fsb2gz6dy0bwdscpdq1ab6ph5b7zald3bwzgkqsvna7p1jr";
+ url = "https://icesl.loria.fr/assets/other/download.php?build=${version}&os=i386";
+ extension = "zip";
+ sha256 = "0n2yyxzw0arkc70f0qli4n5chdlh9vc7aqizk4v7825mcglhwlyh";
} else throw "Unsupported architecture";
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
cp -r ./ $out
+ rm $out/bin/*.so
mkdir $out/oldbin
mv $out/bin/IceSL-slicer $out/oldbin/IceSL-slicer
runHook postInstall
@@ -31,7 +36,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "GPU-accelerated procedural modeler and slicer for 3D printing";
- homepage = "http://shapeforge.loria.fr/icesl/index.html";
+ homepage = "https://icesl.loria.fr/";
license = licenses.inria-icesl;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ mgttlinger ];
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index 135132bd4316..8b72647574e6 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -74,6 +74,5 @@ stdenv.mkDerivation rec {
homepage = "http://ikiwiki.info/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
- maintainers = [ maintainers.peti ];
};
}
diff --git a/pkgs/applications/misc/jigdo/default.nix b/pkgs/applications/misc/jigdo/default.nix
index b4573a816359..9e07193cdb7f 100644
--- a/pkgs/applications/misc/jigdo/default.nix
+++ b/pkgs/applications/misc/jigdo/default.nix
@@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, db, gtk2, bzip2 }:
-stdenv.mkDerivation {
- name = "jigdo-0.7.3";
+stdenv.mkDerivation rec {
+ pname = "jigdo";
+ version = "0.7.3";
- # Debian sources
src = fetchurl {
- url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3.orig.tar.gz";
+ url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_${version}.orig.tar.gz";
sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv";
};
@@ -21,10 +21,11 @@ stdenv.mkDerivation {
configureFlags = [ "--without-libdb" ];
- meta = {
+ meta = with lib; {
description = "Download utility that can fetch files from several sources simultaneously";
- homepage = "http://atterer.net/jigdo/";
- license = lib.licenses.gpl2;
- platforms = lib.platforms.unix;
+ homepage = "http://atterer.org/jigdo/";
+ license = licenses.gpl2Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 4701fe0b54f3..9d3b751fcd6a 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
let
pname = "joplin-desktop";
- version = "2.4.6";
+ version = "2.5.12";
name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
sha256 = {
- x86_64-linux = "sha256-BMpRWtfx5fXEJy3hp/+q86sd+Yd/QPJbSqi2nWE2dcQ=";
- x86_64-darwin = "sha256-4UNKdoGtQSN5/m+xQZrY77ZE5A7jvpDOUCRvwrS5e6g=";
+ x86_64-linux = "sha256-/S/paqMKVerSQFjA4wQ9fLV0WaqKm4CzQfy+0OdH7c8=";
+ x86_64-darwin = "sha256-5eKTfZRpW7IYwFt8TeJiytrwEpiHBgN4k9kth+Lh0Bo=";
}.${system} or throwSystem;
};
diff --git a/pkgs/applications/misc/joshuto/default.nix b/pkgs/applications/misc/joshuto/default.nix
index 89e5aea943a5..5497d37ef0e1 100644
--- a/pkgs/applications/misc/joshuto/default.nix
+++ b/pkgs/applications/misc/joshuto/default.nix
@@ -2,23 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "joshuto";
- version = "0.9.0";
+ version = "0.9.1";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = pname;
rev = version;
- sha256 = "08d6h7xwcgycw5bdzwwc6aaikcrw3yc7inkiydgml9q261kql7zl";
- # upstream includes an outdated Cargo.lock that stops cargo from compiling
- postFetch = ''
- mkdir -p $out
- tar xf $downloadedFile --strip=1 -C $out
- substituteInPlace $out/Cargo.lock \
- --replace 0.8.6 ${version}
- '';
+ sha256 = "sha256-+qKOvFoEF/gZL4ijL8lIRWE9ZWJM2eBlk29Lk46jAfQ=";
};
- cargoSha256 = "1scrqm7fs8y7anfiigimj7y5rjxcc2qvrxiq8ai7k5cwfc4v1ghm";
+ # upstream includes an outdated Cargo.lock that stops cargo from compiling
+ cargoPatches = [ ./fix-cargo-lock.patch ];
+
+ cargoSha256 = "sha256-JlekxU9pMkHNsIcH3+7b2I6MYUlxRqNX+0wwyVrQMAE=";
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
diff --git a/pkgs/applications/misc/joshuto/fix-cargo-lock.patch b/pkgs/applications/misc/joshuto/fix-cargo-lock.patch
new file mode 100644
index 000000000000..023c824add10
--- /dev/null
+++ b/pkgs/applications/misc/joshuto/fix-cargo-lock.patch
@@ -0,0 +1,11 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -512,7 +512,7 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+ [[package]]
+ name = "joshuto"
+-version = "0.9.0"
++version = "0.9.1"
+ dependencies = [
+ "alphanumeric-sort",
+ "chrono",
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 93e08b660787..fa93e7257168 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -3,20 +3,20 @@
}:
let
pname = "josm";
- version = "18193";
+ version = "18303";
srcs = {
jar = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
- sha256 = "sha256-55lrPOlQQx1rmmIzBJ522zSia7RmVNTeHuE20vE1d6A=";
+ sha256 = "sha256-+gUJsx238iQKrYx/rdtd8ESVXI0u/kW2s0p33T4MSWU=";
};
macosx = fetchurl {
- url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java16.zip";
- sha256 = "sha256-OoDX5tPTLrUgGfBa11dFVyeuXSai8QJNeQLWwot2ksk=";
+ url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java17.zip";
+ sha256 = "sha256-s8MuXcDl+DwjXOtf6ltpxYSeCE9R2/x9iJs2BoZHgXM=";
};
pkg = fetchsvn {
url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
rev = version;
- sha256 = "sha256-uXXS+urNCrGnalIAj49Bp1S+pXya/XhdfEWvPmcKKII=";
+ sha256 = "sha256-+zsbksfQPwzVPpKlXdRWachWwjVuhExlyiEKDMkaxp8=";
};
};
in
diff --git a/pkgs/applications/misc/jquake/default.nix b/pkgs/applications/misc/jquake/default.nix
index 2a3f1aec4136..5a5aa4011fda 100644
--- a/pkgs/applications/misc/jquake/default.nix
+++ b/pkgs/applications/misc/jquake/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "jquake";
- version = "1.6.1";
+ version = "1.6.2";
src = fetchurl {
url = "https://fleneindre.github.io/downloads/JQuake_${version}_linux.zip";
- sha256 = "0nw6xjc3i1b8rk15arc5d0ji2bycc40rz044qd03vzxvh0h8yvgl";
+ sha256 = "1k12yw9fwq1z3gg0d38dxs4mmyn912zfcm6zsbjkv27q6lvhvwng";
};
nativeBuildInputs = [ unzip copyDesktopItems ];
diff --git a/pkgs/applications/misc/jrnl/default.nix b/pkgs/applications/misc/jrnl/default.nix
index 37142cd20eb5..967d4931c31e 100644
--- a/pkgs/applications/misc/jrnl/default.nix
+++ b/pkgs/applications/misc/jrnl/default.nix
@@ -1,36 +1,26 @@
{ lib
-, ansiwrap
-, asteval
-, buildPythonApplication
-, colorama
-, cryptography
, fetchFromGitHub
-, keyring
-, parsedatetime
-, poetry
-, pytestCheckHook
-, python-dateutil
-, pytz
-, pyxdg
-, pyyaml
-, tzlocal
+, fetchpatch
+, python3
}:
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
pname = "jrnl";
- version = "2.8";
+ version = "2.8.3";
format = "pyproject";
src = fetchFromGitHub {
owner = "jrnl-org";
repo = pname;
rev = "v${version}";
- sha256 = "1zpsvrjhami9y7204yjbdzi04bkkz6i3apda9fh3hbq83y6wzprz";
+ sha256 = "sha256-+kPr7ndY6u1HMw6m0UZJ5jxVIPNjlTfQt7OYEdZkHBE=";
};
- nativeBuildInputs = [ poetry ];
+ nativeBuildInputs = with python3.pkgs; [
+ poetry-core
+ ];
- propagatedBuildInputs = [
+ propagatedBuildInputs = with python3.pkgs; [
ansiwrap
asteval
colorama
@@ -44,12 +34,32 @@ buildPythonApplication rec {
tzlocal
];
- checkInputs = [ pytestCheckHook ];
- pythonImportsCheck = [ "jrnl" ];
+ checkInputs = with python3.pkgs; [
+ pytest-bdd
+ pytestCheckHook
+ toml
+ ];
+
+ patches = [
+ # Switch to poetry-core, https://github.com/jrnl-org/jrnl/pull/1359
+ (fetchpatch {
+ name = "switch-to-poetry-core.patch";
+ url = "https://github.com/jrnl-org/jrnl/commit/a55a240eff7a167af5974a03e9de6f7b818eafd9.patch";
+ sha256 = "1w3gb4vasvh51nggf89fsqsm4862m0g7hr36qz22n4vg9dds175m";
+ })
+ ];
+
+ preCheck = ''
+ export HOME=$(mktemp -d);
+ '';
+
+ pythonImportsCheck = [
+ "jrnl"
+ ];
meta = with lib; {
- homepage = "http://maebert.github.io/jrnl/";
- description = "A simple command line journal application that stores your journal in a plain text file";
+ description = "Simple command line journal application that stores your journal in a plain text file";
+ homepage = "https://jrnl.sh/";
license = licenses.gpl3Only;
maintainers = with maintainers; [ zalakain ];
};
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index b4beab05acd1..a8548f2c5c00 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -11,7 +11,7 @@
, libXtst
, libargon2
, libgcrypt
-, libgpgerror
+, libgpg-error
, libsodium
, libyubikey
, pkg-config
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
libXtst
libargon2
libgcrypt
- libgpgerror
+ libgpg-error
libsodium
libyubikey
qrencode
@@ -115,11 +115,6 @@ stdenv.mkDerivation rec {
++ optional (stdenv.isDarwin && withKeePassTouchID)
darwin.apple_sdk.frameworks.LocalAuthentication;
- preFixup = optionalString stdenv.isDarwin ''
- # Make it work without Qt in PATH.
- wrapQtApp $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC
- '';
-
passthru.tests = nixosTests.keepassxc;
meta = {
diff --git a/pkgs/applications/misc/keystore-explorer/default.nix b/pkgs/applications/misc/keystore-explorer/default.nix
index f98e21edf5bc..2863dd103d8d 100644
--- a/pkgs/applications/misc/keystore-explorer/default.nix
+++ b/pkgs/applications/misc/keystore-explorer/default.nix
@@ -1,4 +1,4 @@
-{ fetchzip, lib, stdenv, jdk8, runtimeShell }:
+{ fetchzip, lib, stdenv, jdk, runtimeShell }:
stdenv.mkDerivation rec {
version = "5.4.4";
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
# Python on Darwin; just write our own start script to avoid unnecessary dependencies
cat > $out/bin/keystore-explorer <
+Date: Mon, 4 Oct 2021 16:58:37 +0800
+Subject: [PATCH] close user config autostart
+
+---
+ app/settings/universalsettings.cpp | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/app/settings/universalsettings.cpp b/app/settings/universalsettings.cpp
+index e0010542..82b9e785 100644
+--- a/app/settings/universalsettings.cpp
++++ b/app/settings/universalsettings.cpp
+@@ -77,9 +77,6 @@ void UniversalSettings::load()
+ //! check if user has set the autostart option
+ bool autostartUserSet = m_universalGroup.readEntry("userConfiguredAutostart", false);
+
+- if (!autostartUserSet && !autostart()) {
+- setAutostart(true);
+- }
+
+ //! init screen scales
+ m_screenScalesGroup = m_universalGroup.group("ScreenScales");
+--
+2.33.0
diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index 43e3014db3a1..b1ba73566999 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -16,7 +16,13 @@ mkDerivation rec {
nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem
qtx11extras kcrash knewstuff ];
-
+ patches = [
+ ./0001-close-user-autostart.patch
+ ];
+ fixupPhase = ''
+ mkdir -p $out/etc/xdg/autostart
+ cp $out/share/applications/org.kde.latte-dock.desktop $out/etc/xdg/autostart
+ '';
meta = with lib; {
description = "Dock-style app launcher based on Plasma frameworks";
diff --git a/pkgs/applications/misc/lavalauncher/default.nix b/pkgs/applications/misc/lavalauncher/default.nix
index 533d3757a6ef..f6071978b867 100644
--- a/pkgs/applications/misc/lavalauncher/default.nix
+++ b/pkgs/applications/misc/lavalauncher/default.nix
@@ -7,24 +7,26 @@
, scdoc
, cairo
, librsvg
+, libxkbcommon
, wayland
, wayland-protocols
}:
stdenv.mkDerivation rec {
pname = "lavalauncher";
- version = "2.0.0";
+ version = "2.1.1";
src = fetchgit {
url = "https://git.sr.ht/~leon_plickat/lavalauncher";
rev = "v${version}";
- sha256 = "MXREycR4ZetTe71ZwEqyozMJN9OLTDvU0W4J8qkTQAs=";
+ sha256 = "hobhZ6s9m2xCdAurdj0EF1BeS88j96133zu+2jb1FMM=";
};
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
buildInputs = [
cairo
librsvg
+ libxkbcommon
wayland
wayland-protocols
];
diff --git a/pkgs/applications/misc/liberasurecode/default.nix b/pkgs/applications/misc/liberasurecode/default.nix
new file mode 100644
index 000000000000..135ecf5ceb13
--- /dev/null
+++ b/pkgs/applications/misc/liberasurecode/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "liberasurecode";
+ version = "1.6.2";
+
+ outputs = [ "out" "dev" ];
+
+ src = fetchFromGitHub {
+ owner = "openstack";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-qV7DL/7zrwrYOaPj6iHnChGA6KHFwYKjeaMnrGrTPrQ=";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ zlib ];
+
+ meta = with lib; {
+ description = "Erasure Code API library written in C with pluggable Erasure Code backends";
+ homepage = "https://github.com/openstack/liberasurecode";
+ license = licenses.bsd2;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/applications/misc/limesctl/default.nix b/pkgs/applications/misc/limesctl/default.nix
new file mode 100644
index 000000000000..d7f0624ad3f3
--- /dev/null
+++ b/pkgs/applications/misc/limesctl/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "limesctl";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "sapcc";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-E6LwNiCykBqjkifUSi6oBWqCEhkRO+03HSKn4p45kh0=";
+ };
+
+ 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 ];
+ };
+}
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 949eb48f392c..4fb05b25c063 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }:
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_13 }:
stdenv.mkDerivation rec {
pname = "logseq";
- version = "0.3.5";
+ version = "0.4.5";
src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
- sha256 = "ruJALAI0YQNwG8An5VzoJX06Qu/pXZ9zsrPZ7EH+5Pk=";
+ sha256 = "EMybZH3heUWeCP74KdFr6zJY1R3hePo6RssbJXrkd9g=";
name = "${pname}-${version}.AppImage";
};
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
'';
postFixup = ''
- makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+ makeWrapper ${electron_13}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app
'';
diff --git a/pkgs/applications/misc/loxodo/default.nix b/pkgs/applications/misc/loxodo/default.nix
index 65f9a9f0f17e..2e7a1365f4d2 100644
--- a/pkgs/applications/misc/loxodo/default.nix
+++ b/pkgs/applications/misc/loxodo/default.nix
@@ -1,18 +1,17 @@
-{ lib, python27Packages, fetchgit }:
-let
- py = python27Packages;
- python = py.python;
-in
-py.buildPythonApplication {
- name = "loxodo-0.20150124";
+{ lib, python2, fetchFromGitHub }:
- src = fetchgit {
- url = "https://github.com/sommer/loxodo.git";
+python2.pkgs.buildPythonApplication {
+ pname = "loxodo";
+ version = "unstable-2015-01-24";
+
+ src = fetchFromGitHub {
+ owner = "sommer";
+ repo = "loxodo";
rev = "6c56efb4511fd6f645ad0f8eb3deafc8071c5795";
sha256 = "1cg0dfcv57ps54f1a0ksib7hgkrbdi9q699w302xyyfyvjcb5dd2";
};
- propagatedBuildInputs = with py; [ wxPython ];
+ propagatedBuildInputs = with python2.pkgs; [ wxPython ];
postInstall = ''
mv $out/bin/loxodo.py $out/bin/loxodo
@@ -21,7 +20,7 @@ py.buildPythonApplication {
[Desktop Entry]
Type=Application
Exec=$out/bin/loxodo
- Icon=$out/lib/${python.libPrefix}/site-packages/resources/loxodo-icon.png
+ Icon=$out/lib/${python2.libPrefix}/site-packages/resources/loxodo-icon.png
Name=Loxodo
GenericName=Password Vault
Categories=Application;Other;
@@ -33,5 +32,6 @@ py.buildPythonApplication {
homepage = "https://www.christoph-sommer.de/loxodo/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/misc/lscolors/cargo.lock.patch b/pkgs/applications/misc/lscolors/cargo.lock.patch
deleted file mode 100644
index 2f233a0667b8..000000000000
--- a/pkgs/applications/misc/lscolors/cargo.lock.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..3528c6c
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,153 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "ansi_term"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "wasi",
-+]
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.86"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
-+
-+[[package]]
-+name = "lscolors"
-+version = "0.7.1"
-+dependencies = [
-+ "ansi_term",
-+ "tempfile",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
-+
-+[[package]]
-+name = "rand"
-+version = "0.8.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
-+dependencies = [
-+ "libc",
-+ "rand_chacha",
-+ "rand_core",
-+ "rand_hc",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
-+dependencies = [
-+ "ppv-lite86",
-+ "rand_core",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
-+dependencies = [
-+ "rand_core",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
-+dependencies = [
-+ "bitflags",
-+]
-+
-+[[package]]
-+name = "remove_dir_all"
-+version = "0.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "rand",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.10.2+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
-+]
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/applications/misc/lscolors/default.nix b/pkgs/applications/misc/lscolors/default.nix
index 85ed493da5aa..f29fdfda6c18 100644
--- a/pkgs/applications/misc/lscolors/default.nix
+++ b/pkgs/applications/misc/lscolors/default.nix
@@ -1,21 +1,15 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchCrate }:
rustPlatform.buildRustPackage rec {
pname = "lscolors";
- version = "0.7.1";
+ version = "0.8.0";
- src = fetchFromGitHub {
- owner = "sharkdp";
- repo = pname;
- rev = "v${version}";
- sha256 = "0av3v31fvanvn59bdm9d0v9zh5lzrq0f4vqhg6xlvabkgsa8jk04";
+ src = fetchCrate {
+ inherit version pname;
+ sha256 = "sha256-dwtrs9NlhJ+km2/146HMnDirWRB5Ur5LTmWdKAK03v0=";
};
- cargoPatches = [
- ./cargo.lock.patch
- ];
-
- cargoSha256 = "0kfm1pq22dhiw138bf7jvf7amlkal90n1hc9fq44wr4chr9b2fmx";
+ cargoSha256 = "sha256-vQnrLt+VSDPr61VMkYFtjSDnEt+NmWBZUd4qLzPzQBU=";
meta = with lib; {
description = "Rust library and tool to colorize paths using LS_COLORS";
diff --git a/pkgs/applications/misc/lsd2dsl/default.nix b/pkgs/applications/misc/lsd2dsl/default.nix
index 8c884305277a..2dfbaeb9941a 100644
--- a/pkgs/applications/misc/lsd2dsl/default.nix
+++ b/pkgs/applications/misc/lsd2dsl/default.nix
@@ -30,9 +30,6 @@ mkDerivation rec {
installPhase = ''
install -Dm755 console/lsd2dsl gui/lsd2dsl-qtgui -t $out/bin
- '' + lib.optionalString stdenv.isDarwin ''
- wrapQtApp $out/bin/lsd2dsl
- wrapQtApp $out/bin/lsd2dsl-qtgui
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index 2d70daa94ecb..fed9d245c190 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -15,6 +15,11 @@
, webkitgtk
, wrapGAppsHook
+ # check inputs
+, xvfb-run
+, nose
+, flake8
+
# python dependencies
, dbus-python
, distro
@@ -46,7 +51,7 @@
let
# See lutris/util/linux.py
- binPath = lib.makeBinPath [
+ requiredTools = [
xrandr
pciutils
psmisc
@@ -64,6 +69,8 @@ let
xorg.xkbcomp
];
+ binPath = lib.makeBinPath requiredTools;
+
gstDeps = with gst_all_1; [
gst-libav
gst-plugins-bad
@@ -76,13 +83,13 @@ let
in
buildPythonApplication rec {
pname = "lutris-original";
- version = "0.5.8.4";
+ version = "0.5.9.1";
src = fetchFromGitHub {
owner = "lutris";
repo = "lutris";
rev = "v${version}";
- sha256 = "sha256-5ivXIgDyM9PRvuUhPFPgziXDvggcL+p65kI2yOaiS1M=";
+ sha256 = "sha256-ykPJneCKbFKv0x/EDo9PkRb1LkMeFeYzTDmvE3ShNe0=";
};
nativeBuildInputs = [ wrapGAppsHook ];
@@ -111,6 +118,20 @@ buildPythonApplication rec {
python_magic
];
+ checkInputs = [ xvfb-run nose flake8 ] ++ requiredTools;
+ preCheck = "export HOME=$PWD";
+ checkPhase = ''
+ runHook preCheck
+ xvfb-run -s '-screen 0 800x600x24' make test
+ runHook postCheck
+ '';
+
+ # unhardcodes xrandr and fixes nosetests
+ # upstream in progress: https://github.com/lutris/lutris/pull/3754
+ patches = [
+ ./fixes.patch
+ ];
+
# avoid double wrapping
dontWrapGApps = true;
makeWrapperArgs = [
@@ -121,8 +142,6 @@ buildPythonApplication rec {
# see https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
- preCheck = "export HOME=$PWD";
-
meta = with lib; {
homepage = "https://lutris.net";
description = "Open Source gaming platform for GNU/Linux";
diff --git a/pkgs/applications/misc/lutris/fhsenv.nix b/pkgs/applications/misc/lutris/fhsenv.nix
index 38513937d01f..bd35d44b7ccc 100644
--- a/pkgs/applications/misc/lutris/fhsenv.nix
+++ b/pkgs/applications/misc/lutris/fhsenv.nix
@@ -121,4 +121,16 @@ in buildFHSUserEnv {
ln -sf ${lutris-unwrapped}/share/applications $out/share
ln -sf ${lutris-unwrapped}/share/icons $out/share
'';
+
+ meta = {
+ inherit (lutris-unwrapped.meta)
+ homepage
+ description
+ platforms
+ license
+ maintainers
+ broken;
+
+ mainProgram = "lutris";
+ };
}
diff --git a/pkgs/applications/misc/lutris/fixes.patch b/pkgs/applications/misc/lutris/fixes.patch
new file mode 100644
index 000000000000..42482453f6a4
--- /dev/null
+++ b/pkgs/applications/misc/lutris/fixes.patch
@@ -0,0 +1,67 @@
+diff --git a/Makefile b/Makefile
+index 821a9500..75affa77 100644
+--- a/Makefile
++++ b/Makefile
+@@ -25,12 +25,12 @@ release: build-source upload upload-ppa
+
+ test:
+ rm tests/fixtures/pga.db -f
+- nosetests3
++ nosetests
+
+ cover:
+ rm tests/fixtures/pga.db -f
+ rm tests/coverage/ -rf
+- nosetests3 --with-coverage --cover-package=lutris --cover-html --cover-html-dir=tests/coverage
++ nosetests --with-coverage --cover-package=lutris --cover-html --cover-html-dir=tests/coverage
+
+ pgp-renew:
+ osc signkey --extend home:strycore
+diff --git a/lutris/util/graphics/xrandr.py b/lutris/util/graphics/xrandr.py
+index f788c94c..5544dbe9 100644
+--- a/lutris/util/graphics/xrandr.py
++++ b/lutris/util/graphics/xrandr.py
+@@ -5,6 +5,7 @@ from collections import namedtuple
+
+ from lutris.util.log import logger
+ from lutris.util.system import read_process_output
++from lutris.util.linux import LINUX_SYSTEM
+
+ Output = namedtuple("Output", ("name", "mode", "position", "rotation", "primary", "rate"))
+
+@@ -12,7 +13,7 @@ Output = namedtuple("Output", ("name", "mode", "position", "rotation", "primary"
+ def _get_vidmodes():
+ """Return video modes from XrandR"""
+ logger.debug("Retrieving video modes from XrandR")
+- return read_process_output(["xrandr"]).split("\n")
++ return read_process_output([LINUX_SYSTEM.get("xrandr")]).split("\n")
+
+
+ def get_outputs(): # pylint: disable=too-many-locals
+@@ -76,7 +77,7 @@ def turn_off_except(display):
+ for output in get_outputs():
+ if output.name != display:
+ logger.info("Turning off %s", output[0])
+- subprocess.Popen(["xrandr", "--output", output.name, "--off"])
++ subprocess.Popen([LINUX_SYSTEM.get("xrandr"), "--output", output.name, "--off"])
+
+
+ def get_resolutions():
+@@ -111,7 +112,7 @@ def change_resolution(resolution):
+ logger.warning("Resolution %s doesn't exist.", resolution)
+ else:
+ logger.info("Changing resolution to %s", resolution)
+- subprocess.Popen(["xrandr", "-s", resolution])
++ subprocess.Popen([LINUX_SYSTEM.get("xrandr"), "-s", resolution])
+ else:
+ for display in resolution:
+ logger.debug("Switching to %s on %s", display.mode, display.name)
+@@ -128,7 +129,7 @@ def change_resolution(resolution):
+ logger.info("Switching resolution of %s to %s", display.name, display.mode)
+ subprocess.Popen(
+ [
+- "xrandr",
++ LINUX_SYSTEM.get("xrandr"),
+ "--output",
+ display.name,
+ "--mode",
diff --git a/pkgs/applications/misc/markets/default.nix b/pkgs/applications/misc/markets/default.nix
index bd9dd7ac9509..d1d16a7c8cbd 100644
--- a/pkgs/applications/misc/markets/default.nix
+++ b/pkgs/applications/misc/markets/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "markets";
- version = "0.5.2";
+ version = "0.5.3";
src = fetchFromGitHub {
owner = "bitstower";
repo = "markets";
rev = version;
- sha256 = "0nk1bs7i6b7r90g5qwd3s2m462vk3kvza0drq7rzb5sdaiz9ccnz";
+ sha256 = "0sfdmz7cp8i2bymippp8jyxsidxjn69v9cqm40q77j81kfm84bfv";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/markmind/default.nix b/pkgs/applications/misc/markmind/default.nix
new file mode 100644
index 000000000000..e44b7fe54ad5
--- /dev/null
+++ b/pkgs/applications/misc/markmind/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+ pname = "markmind";
+ version = "1.3.1";
+
+ src = fetchurl {
+ url = "https://github.com/MarkMindCkm/Mark-Mind/releases/download/v${version}/Mark.Mind-${version}.AppImage";
+ sha256 = "sha256-iOJ0IOIzleA69rv94Qd35rMbHc+XSi8OPatf2V6sYrI=";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ name = "markmind-${version}";
+ inherit src;
+ };
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share/markmind $out/share/applications
+ cp -a ${appimageContents}/{locales,resources} $out/share/markmind
+ cp -a ${appimageContents}/mind.desktop $out/share/applications/markmind.desktop
+ cp -a ${appimageContents}/usr/share/icons $out/share
+ substituteInPlace $out/share/applications/markmind.desktop \
+ --replace 'Exec=AppRun' 'Exec=markmind'
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/markmind \
+ --add-flags $out/share/markmind/resources/app.asar
+ '';
+
+ meta = with lib; {
+ description = "Mind map and outliner editor";
+ homepage = "https://github.com/MarkMindCkm/Mark-Mind";
+ license = licenses.mit;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/misc/mdzk/default.nix b/pkgs/applications/misc/mdzk/default.nix
new file mode 100644
index 000000000000..17365e009bc0
--- /dev/null
+++ b/pkgs/applications/misc/mdzk/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "mdzk";
+ version = "0.4.3";
+
+ src = fetchFromGitHub {
+ owner = "mdzk-rs";
+ repo = "mdzk";
+ rev = version;
+ sha256 = "sha256-VUvV1XA9Bd3ugYHcKOcAQLUt0etxS/Cw2EgnFGxX0z0=";
+ };
+
+ cargoSha256 = "sha256-lZ4fc/94ESlhpfa5ylg45oZNeaF1mZPxQUSLZrl2V3o=";
+
+ buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
+
+ meta = with lib; {
+ description = "Plain text Zettelkasten based on mdBook";
+ homepage = "https://github.com/mdzk-rs/mdzk/";
+ changelog = "https://github.com/mdzk-rs/mdzk/blob/main/CHANGELOG.md";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ bryanasdev000 ratsclub ];
+ };
+}
diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 89d7c2df741a..0ce8d8c373db 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -2,11 +2,11 @@
, desktop-file-utils, libSM, imagemagick }:
stdenv.mkDerivation rec {
- version = "21.03";
+ version = "21.09";
pname = "mediainfo-gui";
src = fetchurl {
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
- sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
+ sha256 = "0mqcqm8y2whnbdi2ry7jd755gfl5ccdqhwjh67hsyr7c0ajxk3vv";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 70f463c02364..146df27726bb 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
stdenv.mkDerivation rec {
- version = "21.03";
+ version = "21.09";
pname = "mediainfo";
src = fetchurl {
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
- sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
+ sha256 = "0mqcqm8y2whnbdi2ry7jd755gfl5ccdqhwjh67hsyr7c0ajxk3vv";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/misc/mencal/default.nix b/pkgs/applications/misc/mencal/default.nix
index 806d6a53cfaa..c4973b275534 100644
--- a/pkgs/applications/misc/mencal/default.nix
+++ b/pkgs/applications/misc/mencal/default.nix
@@ -1,17 +1,18 @@
{ lib, stdenv, fetchurl, perl }:
stdenv.mkDerivation rec {
- name = "mencal-3.0";
+ pname = "mencal";
+ version = "3.0";
src = fetchurl {
- url = "http://kyberdigi.cz/projects/mencal/files/${name}.tar.gz";
+ url = "http://kyberdigi.cz/projects/mencal/files/mencal-${version}.tar.gz";
sha256 = "9328d0b2f3f57847e8753c5184531f4832be7123d1b6623afdff892074c03080";
};
installPhase = ''
- mkdir -p $out/bin
- cp mencal $out/bin/
- '';
+ mkdir -p $out/bin
+ cp mencal $out/bin/
+ '';
buildInputs = [ perl ];
diff --git a/pkgs/applications/misc/menumaker/default.nix b/pkgs/applications/misc/menumaker/default.nix
index 8d018a67d371..0fa9ad5e7f0a 100644
--- a/pkgs/applications/misc/menumaker/default.nix
+++ b/pkgs/applications/misc/menumaker/default.nix
@@ -1,12 +1,12 @@
-{ lib, fetchurl, python2Packages }:
+{ lib, fetchurl, python3Packages }:
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "menumaker";
- version = "0.99.12";
+ version = "0.99.13";
src = fetchurl {
url = "mirror://sourceforge/menumaker/${pname}-${version}.tar.gz";
- sha256 = "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3";
+ sha256 = "sha256-JBXs5hnt1snbnB1hi7q7HBI7rNp0OoalLeIM0uJCdkE=";
};
format = "other";
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index 90d91583a26f..eda540427bbd 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -50,7 +50,6 @@ mkDerivation rec {
mkdir -p $out/Applications
mv binaries/bin/merkaartor.app $out/Applications
mv binaries/bin/plugins $out/Applications/merkaartor.app/Contents
- wrapQtApp $out/Applications/merkaartor.app/Contents/MacOS/merkaartor
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/metar/default.nix b/pkgs/applications/misc/metar/default.nix
index d9e1922f1c48..07ac41f7281e 100644
--- a/pkgs/applications/misc/metar/default.nix
+++ b/pkgs/applications/misc/metar/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv, fetchgit, curl }:
+{ lib, stdenv, fetchFromGitHub, curl }:
stdenv.mkDerivation {
- name = "metar-20161013.1";
+ pname = "metar";
+ version = "unstable-2017-02-17";
- src = fetchgit {
- url = "https://github.com/keesL/metar.git";
+ src = fetchFromGitHub {
+ owner = "keesL";
+ repo = "metar";
rev = "20e9ca69faea330f6c2493b6829131c24cb55147";
sha256 = "1fgrlnpasqf1ihh9y6zy6mzzybqx0lxvh7gmv03rjdb55dr42dxj";
};
@@ -13,8 +15,6 @@ stdenv.mkDerivation {
meta = with lib; {
homepage = "https://github.com/keesL/metar";
- license = licenses.gpl2;
- maintainers = [ maintainers.zalakain ];
description = "Downloads weather reports and optionally decodes them";
longDescription = ''
METAR reports are meteorogical weather reports for aviation. Metar is a small
@@ -26,5 +26,7 @@ stdenv.mkDerivation {
more work in the area of clouds need to be done, as support for Cumulus or
Cumulunimbus is not yet decoded.
'';
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ zalakain ];
};
}
diff --git a/pkgs/applications/misc/minder/default.nix b/pkgs/applications/misc/minder/default.nix
index 607eeb5eaa3c..63840b3f0b29 100644
--- a/pkgs/applications/misc/minder/default.nix
+++ b/pkgs/applications/misc/minder/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ dtzWill ] ++ teams.pantheon.members;
+ mainProgram = "com.github.phase1geo.minder";
};
}
diff --git a/pkgs/applications/misc/mkgmap/default.nix b/pkgs/applications/misc/mkgmap/default.nix
index 79f29777ea23..c88ac932e4f9 100644
--- a/pkgs/applications/misc/mkgmap/default.nix
+++ b/pkgs/applications/misc/mkgmap/default.nix
@@ -14,11 +14,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mkgmap";
- version = "4806";
+ version = "4810";
src = fetchurl {
url = "https://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
- sha256 = "kCjcjl0qXxtAS+WGpZB3o5Eq9Xg0vY0gcjFosYJbAsI=";
+ sha256 = "j21WTEu+MTmnFrRH5B8Eb1tS2elFR715R8jhgKZ5Gmw=";
};
patches = [
diff --git a/pkgs/applications/misc/mkgmap/deps.nix b/pkgs/applications/misc/mkgmap/deps.nix
index 22b5410d6bbc..68cd5a79fe72 100644
--- a/pkgs/applications/misc/mkgmap/deps.nix
+++ b/pkgs/applications/misc/mkgmap/deps.nix
@@ -9,23 +9,23 @@
sha256 = "0zb4pqkwly5z30ww66qhhasdhdrzwmrw00347yrbgyk2ii4wjad3";
};
protobuf = fetchurl {
- url = "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar";
+ url = "mirror://maven/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar";
sha256 = "0x6c4pbsizvk3lm6nxcgi1g2iqgrxcna1ip74lbn01f0fm2wdhg0";
};
xpp3 = fetchurl {
- url = "https://repo1.maven.org/maven2/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar";
+ url = "mirror://maven/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar";
sha256 = "1f9ifnxxj295xb1494jycbfm76476xm5l52p7608gf0v91d3jh83";
};
jaxb-api = fetchurl {
- url = "https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar";
+ url = "mirror://maven/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar";
sha256 = "00rxpc0m30d3jc572ni01ryxq8gcbnr955xsabrijg9pknc0fc48";
};
junit = fetchurl {
- url = "https://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar";
+ url = "mirror://maven/junit/junit/4.11/junit-4.11.jar";
sha256 = "1zh6klzv8w30dx7jg6pkhllk4587av4znflzhxz8x97c7rhf3a4h";
};
hamcrest-core = fetchurl {
- url = "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar";
+ url = "mirror://maven/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar";
sha256 = "1sfqqi8p5957hs9yik44an3lwpv8ln2a6sh9gbgli4vkx68yzzb6";
};
}
diff --git a/pkgs/applications/misc/mob/default.nix b/pkgs/applications/misc/mob/default.nix
index e9e0559b0d08..f558e520da86 100644
--- a/pkgs/applications/misc/mob/default.nix
+++ b/pkgs/applications/misc/mob/default.nix
@@ -2,14 +2,14 @@
buildGoPackage rec {
pname = "mob";
- version = "1.12.0";
+ version = "2.0.0";
goPackagePath = "github.com/remotemobprogramming/mob";
src = fetchFromGitHub {
rev = "v${version}";
owner = "remotemobprogramming";
repo = pname;
- sha256 = "sha256-5hvuaKlaWrB8nEeHytnn4ywciLbOSoXdBdc3K/PqMG8=";
+ sha256 = "sha256-sSeXL+eHroxDr+91rwmUJ+WwDgefZgJBRTxy4wo6DDM=";
};
meta = with lib; {
diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix
index 007965f868b1..f31b79c9ddf4 100644
--- a/pkgs/applications/misc/mop/default.nix
+++ b/pkgs/applications/misc/mop/default.nix
@@ -9,7 +9,7 @@ buildGoPackage rec {
goDeps = ./deps.nix;
preConfigure = ''
- for i in $(find . -type f);do
+ for i in *.go **/*.go; do
substituteInPlace $i --replace michaeldv/termbox-go nsf/termbox-go
done
substituteInPlace Makefile --replace mop/cmd mop/mop
diff --git a/pkgs/applications/misc/mpvc/default.nix b/pkgs/applications/misc/mpvc/default.nix
index 69aca239d311..bfdfeebae271 100644
--- a/pkgs/applications/misc/mpvc/default.nix
+++ b/pkgs/applications/misc/mpvc/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, socat, fetchFromGitHub, makeWrapper }:
stdenv.mkDerivation {
- name = "mpvc-unstable-2017-03-18";
+ pname = "mpvc";
+ version = "unstable-2017-03-18";
src = fetchFromGitHub {
owner = "wildefyr";
diff --git a/pkgs/applications/misc/multibootusb/default.nix b/pkgs/applications/misc/multibootusb/default.nix
index 1d625a67b7b9..3890246a63d6 100644
--- a/pkgs/applications/misc/multibootusb/default.nix
+++ b/pkgs/applications/misc/multibootusb/default.nix
@@ -1,6 +1,6 @@
{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, qemu, unzip, zip,
coreutils, gnugrep, which, gnused, e2fsprogs, autoPatchelfHook, gptfdisk,
- python36Packages, qt5, runtimeShell, lib, util-linux, wrapQtAppsHook }:
+ python3Packages, qt5, runtimeShell, lib, util-linux, wrapQtAppsHook }:
# Note: Multibootusb is tricky to maintain. It relies on the
# $PYTHONPATH variable containing some of their code, so that
@@ -13,7 +13,7 @@
#
# https://github.com/mbusb/multibootusb/blob/0d34d70c3868f1d7695cfd141141b17c075de967/scripts/osdriver.py#L59
-python36Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "multibootusb";
name = "${pname}-${version}";
version = "9.2.0";
@@ -42,7 +42,7 @@ python36Packages.buildPythonApplication rec {
buildInputs = [
libxcb
- python36Packages.python
+ python3Packages.python
qt5.full
];
@@ -58,12 +58,12 @@ python36Packages.buildPythonApplication rec {
# "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory"
doCheck = false;
- pythonPath = [
- python36Packages.dbus-python
- python36Packages.pyqt5
- python36Packages.pytest-shutil
- python36Packages.pyudev
- python36Packages.six
+ pythonPath = with python3Packages; [
+ dbus-python
+ pyqt5
+ pytest-shutil
+ pyudev
+ six
];
# multibootusb ships zips with various versions of syslinux, we need to patchelf them
@@ -95,7 +95,7 @@ python36Packages.buildPythonApplication rec {
"''${qtWrapperArgs[@]}"
# Then, add the installed scripts/ directory to the python path
- --prefix "PYTHONPATH" ":" "$out/lib/${python36Packages.python.libPrefix}/site-packages"
+ --prefix "PYTHONPATH" ":" "$out/lib/${python3Packages.python.libPrefix}/site-packages"
# Add some runtime dependencies
--prefix "PATH" ":" "${lib.makeBinPath runTimeDeps}"
diff --git a/pkgs/applications/misc/navi/default.nix b/pkgs/applications/misc/navi/default.nix
index 9b96fea718bf..04fe08e1f386 100644
--- a/pkgs/applications/misc/navi/default.nix
+++ b/pkgs/applications/misc/navi/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "navi";
- version = "2.16.0";
+ version = "2.17.0";
src = fetchFromGitHub {
owner = "denisidoro";
repo = "navi";
rev = "v${version}";
- sha256 = "sha256-ngSZFYGE+Varul/qwavMO3xcMIp8w2WETWXc573wYhQ=";
+ sha256 = "sha256-WH8FfQ7cD4aFUi9iE0tR/B+5oWy8tMVmMLxusDwXF7w=";
};
- cargoSha256 = "sha256-qtxFTk0iCxPa4Z7H9+QWSii+iYrLUV2LfiAEbePdhOQ=";
+ cargoSha256 = "sha256-TH9DNCoUVqH5g05Z4Vdv7F8CCLnaYezupI5FeJhYTaQ=";
nativeBuildInputs = [ makeWrapper ];
@@ -23,6 +23,11 @@ rustPlatform.buildRustPackage rec {
--prefix PATH : ${lib.makeBinPath [ fzf wget ]}
'';
+ checkFlags = [
+ # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
+ "--skip=test_parse_variable_line"
+ ];
+
meta = with lib; {
description = "An interactive cheatsheet tool for the command-line and application launchers";
homepage = "https://github.com/denisidoro/navi";
diff --git a/pkgs/applications/misc/navipowm/default.nix b/pkgs/applications/misc/navipowm/default.nix
index 0727f8672910..6527a4f57411 100644
--- a/pkgs/applications/misc/navipowm/default.nix
+++ b/pkgs/applications/misc/navipowm/default.nix
@@ -1,9 +1,10 @@
{ lib, stdenv, fetchurl, qt4, qmake4Hook }:
stdenv.mkDerivation rec {
- name = "navipowm-0.2.4";
+ pname = "navipowm";
+ version = "0.2.4";
src = fetchurl {
- url = "mirror://sourceforge/navipowm/NaviPOWM-0.2.4.tar.gz";
+ url = "mirror://sourceforge/navipowm/NaviPOWM-${version}.tar.gz";
sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b";
};
@@ -12,10 +13,10 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
- mkdir -p $out/bin $out/share/${name}/Icons
+ mkdir -p $out/bin $out/share/navipowm-${version}/Icons
cp bin/NaviPOWM $out/bin
- cp ../../common/Config/navipowm.ini $out/share/${name}
- cp ../../common/Images/* $out/share/${name}
+ cp ../../common/Config/navipowm.ini $out/share/navipowm-${version}
+ cp ../../common/Images/* $out/share/navipowm-${version}
'';
buildInputs = [ qt4 ];
diff --git a/pkgs/applications/misc/nerd-font-patcher/default.nix b/pkgs/applications/misc/nerd-font-patcher/default.nix
new file mode 100644
index 000000000000..6807cd9024f5
--- /dev/null
+++ b/pkgs/applications/misc/nerd-font-patcher/default.nix
@@ -0,0 +1,41 @@
+{ python3Packages, lib, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "nerd-font-patcher";
+ version = "2.1.0";
+
+ # The size of the nerd fonts repository is bigger than 2GB, because it
+ # contains a lot of fonts and the patcher.
+ # until https://github.com/ryanoasis/nerd-fonts/issues/484 is not fixed,
+ # we download the patcher from an alternative repository
+ src = fetchFromGitHub {
+ owner = "betaboon";
+ repo = "nerd-fonts-patcher";
+ rev = "180684d7a190f75fd2fea7ca1b26c6540db8d3c0";
+ sha256 = "sha256-FAbdLf0XiUXGltAgmq33Wqv6PFo/5qCv62UxXnj3SgI=";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ fontforge ];
+
+ format = "other";
+
+ postPatch = ''
+ sed -i font-patcher \
+ -e 's,__dir__ + "/src,"'$out'/share/${pname},'
+ '';
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/${pname}
+ install -Dm755 font-patcher $out/bin/${pname}
+ cp -ra src/glyphs $out/share/${pname}
+ '';
+
+ meta = with lib; {
+ description = "Font patcher to generate Nerd font";
+ homepage = "https://nerdfonts.com/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ck3d ];
+ };
+}
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index 159ecb9f5526..8999c3b8f95e 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -20,13 +20,13 @@ assert withNerdIcons -> withIcons == false;
stdenv.mkDerivation rec {
pname = "nnn";
- version = "4.2";
+ version = "4.3";
src = fetchFromGitHub {
owner = "jarun";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-ICUF/LJhsbzDz9xZig1VE6TdG3u0C6Jf/61RoAjx3KI=";
+ sha256 = "sha256-kiLmdEyOnD1wPS2GuFF5nTK9tgUOI6PVCzCRZXdObEo=";
};
configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix
index 952a7b00d087..aad182bd1875 100644
--- a/pkgs/applications/misc/notejot/default.nix
+++ b/pkgs/applications/misc/notejot/default.nix
@@ -2,47 +2,51 @@
, stdenv
, fetchFromGitHub
, gtk4
-, gtksourceview
+, hicolor-icon-theme
, json-glib
, libadwaita
, libgee
, meson
, ninja
, nix-update-script
-, pantheon
, pkg-config
, python3
, vala
-, wrapGAppsHook
+, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "notejot";
- version = "3.1.5";
+ version = "3.2.0";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
- hash = "sha256-wsHQvN+sqAMs1QldiRoc9JlF4d54JFqNkqC+lyuHC7M=";
+ hash = "sha256-WyW1tGhO3+OykNa8BRavi93cBMOSBJw0M+0bwQHJOjU=";
};
+ patches = [
+ # build: use gtk4-update-icon-cache
+ # https://github.com/lainsce/notejot/pull/307
+ ./use-gtk4-update-icon-cache.patch
+ ];
+
nativeBuildInputs = [
meson
ninja
- vala
pkg-config
python3
- wrapGAppsHook
+ vala
+ wrapGAppsHook4
];
+
buildInputs = [
gtk4
- gtksourceview
+ hicolor-icon-theme
json-glib
libadwaita
libgee
- pantheon.elementary-icon-theme
- pantheon.granite
];
postPatch = ''
@@ -50,15 +54,16 @@ stdenv.mkDerivation rec {
patchShebangs build-aux/post_install.py
'';
+ passthru.updateScript = nix-update-script {
+ attrPath = pname;
+ };
+
meta = with lib; {
homepage = "https://github.com/lainsce/notejot";
description = "Stupidly-simple sticky notes applet";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ] ++ teams.pantheon.members;
platforms = platforms.linux;
- };
-
- passthru.updateScript = nix-update-script {
- attrPath = pname;
+ mainProgram = "io.github.lainsce.Notejot";
};
}
diff --git a/pkgs/applications/misc/notejot/use-gtk4-update-icon-cache.patch b/pkgs/applications/misc/notejot/use-gtk4-update-icon-cache.patch
new file mode 100644
index 000000000000..9431c43cef69
--- /dev/null
+++ b/pkgs/applications/misc/notejot/use-gtk4-update-icon-cache.patch
@@ -0,0 +1,20 @@
+diff --git a/build-aux/post_install.py b/build-aux/post_install.py
+index 1278304..fface6d 100644
+--- a/build-aux/post_install.py
++++ b/build-aux/post_install.py
+@@ -2,11 +2,13 @@
+ import os
+ import subprocess
+
+-schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')
++install_prefix = os.environ['MESON_INSTALL_PREFIX']
++icondir = os.path.join(install_prefix, 'share', 'icons', 'hicolor')
++schemadir = os.path.join(install_prefix, 'share', 'glib-2.0', 'schemas')
+
+ if not os.environ.get('DESTDIR'):
+ print('Compiling gsettings schemas…')
+ subprocess.call(['glib-compile-schemas', schemadir], shell=False)
+
+ print('Rebuilding desktop icons cache...')
+- subprocess.call(['gtk-update-icon-cache', '/usr/share/icons/hicolor/'], shell=False)
++ subprocess.call(['gtk4-update-icon-cache', '-qtf', icondir], shell=False)
diff --git a/pkgs/applications/misc/numberstation/default.nix b/pkgs/applications/misc/numberstation/default.nix
index 9809a2a62058..76a583fc8fdf 100644
--- a/pkgs/applications/misc/numberstation/default.nix
+++ b/pkgs/applications/misc/numberstation/default.nix
@@ -15,7 +15,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "numberstation";
- version = "0.5.0";
+ version = "1.0.0";
format = "other";
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "~martijnbraam";
repo = "numberstation";
rev = version;
- sha256 = "1hh66i0rfm85a97iajxlh965wk68hn0kkfgi9cljjkqf98xiy0bb";
+ sha256 = "1mr0rmm7hcyn8qr485h1ihbb5f581sab4fgvs7lhwy9lxsqk0r0l";
};
postPatch = ''
diff --git a/pkgs/applications/misc/nwg-launchers/default.nix b/pkgs/applications/misc/nwg-launchers/default.nix
index 3f82db124229..24deebce1781 100644
--- a/pkgs/applications/misc/nwg-launchers/default.nix
+++ b/pkgs/applications/misc/nwg-launchers/default.nix
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "nwg-launchers";
- version = "0.5.0";
+ version = "0.6.3";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-ZtlAs7McVQKH626h2iOhjpVaiEHeaqs9ncZ6/KnGibg=";
+ sha256 = "sha256-QWDYy0TBxoYxfRAOtAEVM8wsPUi2SnzMXsu38guAURU=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index 5b4444b19851..f293cc60d2a7 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -31,11 +31,11 @@ let
in stdenv.mkDerivation rec {
pname = "obsidian";
- version = "0.12.15";
+ version = "0.12.19";
src = fetchurl {
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
- sha256 = "sha256-0pAwTkx89B6S0GPes2XXSRNdByIc+DwiI5HXoUqs/QE=";
+ sha256 = "sha256-M9U67+mCL/CziTprCAhfrZTWl6i7HRfH24l/xqUqkIg=";
};
nativeBuildInputs = [ makeWrapper graphicsmagick ];
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index bc994bf68233..85ddbdccef7b 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -35,7 +35,6 @@ let
(mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b")
(mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s")
(mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409")
- (mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051")
# Requires flask<2, cannot mkOverride because tests need to be disabled
(
@@ -65,7 +64,20 @@ let
}
)
-
+ # Requires unidecode>=0.04.14,<0.05. Upstream changed the source naming between releases
+ (
+ self: super: {
+ unidecode = super.unidecode.overridePythonAttrs (oldAttrs: rec {
+ version = "0.04.21";
+ src = fetchFromGitHub {
+ owner = "avian2";
+ repo = "unidecode";
+ rev = "release-${version}";
+ sha256 = "0p5bkibv0xm1265dlfrz3zq3k9bbx07gl8zyq8mvvb8hi7p5lifg";
+ };
+ });
+ }
+ )
# Requires websocket-client <1.0, >=0.57. Cannot do mkOverride b/c differing underscore/hyphen in pypi source name
(
diff --git a/pkgs/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix
index 745d03bb189e..fba1c0b0f5f8 100644
--- a/pkgs/applications/misc/onboard/default.nix
+++ b/pkgs/applications/misc/onboard/default.nix
@@ -15,6 +15,7 @@
, hunspellWithDicts
, intltool
, isocodes
+, libappindicator-gtk3
, libcanberra-gtk3
, mousetweaks
, udev
@@ -70,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
gtk3
hunspell
isocodes
+ libappindicator-gtk3
libcanberra-gtk3
libxkbcommon
mousetweaks
@@ -78,7 +80,7 @@ python3.pkgs.buildPythonApplication rec {
xorg.libxkbfile
] ++ lib.optional atspiSupport at-spi2-core;
- propagatedBuildInputs = with python3.pkgs; [
+ pythonPath = with python3.pkgs; [
dbus-python
distutils_extra
pyatspi
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
index 663a7bf43eae..c0fb436b7f8a 100644
--- a/pkgs/applications/misc/openbrf/default.nix
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -2,7 +2,8 @@
mkDerivation {
- name = "openbrf-unstable-2016-01-09";
+ pname = "openbrf";
+ version = "unstable-2016-01-09";
src = fetchFromGitHub {
owner = "cfcohen";
diff --git a/pkgs/applications/misc/openlp/lib.nix b/pkgs/applications/misc/openlp/lib.nix
index c044e76c597d..9e8440a4c806 100644
--- a/pkgs/applications/misc/openlp/lib.nix
+++ b/pkgs/applications/misc/openlp/lib.nix
@@ -5,7 +5,7 @@
# python deps
, python, buildPythonPackage
, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
-, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy_migrate
+, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy-migrate
}:
buildPythonPackage rec {
@@ -43,7 +43,7 @@ buildPythonPackage rec {
pyxdg
sip_4
sqlalchemy
- sqlalchemy_migrate
+ sqlalchemy-migrate
];
prePatch = ''
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index f8facbe01fa0..688d5acdd127 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -8,7 +8,6 @@
, gettext
, yelp-tools
, itstool
-, libxmlxx3
, python
, pygobject3
, gtk3
@@ -35,13 +34,13 @@
buildPythonApplication rec {
pname = "orca";
- version = "40.0";
+ version = "41.0";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000";
+ sha256 = "dpflFEXhn9d05osWCtr2aHuAgXLeBBdgLhaXZra21L0=";
};
patches = [
@@ -58,14 +57,13 @@ buildPythonApplication rec {
autoreconfHook
wrapGAppsHook
pkg-config
- libxmlxx3
gettext
yelp-tools
itstool
gobject-introspection
];
- propagatedBuildInputs = [
+ pythonPath = [
pygobject3
pyatspi
dbus-python
diff --git a/pkgs/applications/misc/orpie/default.nix b/pkgs/applications/misc/orpie/default.nix
index 45e043b6dcfa..a1f119f6834c 100644
--- a/pkgs/applications/misc/orpie/default.nix
+++ b/pkgs/applications/misc/orpie/default.nix
@@ -13,12 +13,10 @@ ocamlPackages.buildDunePackage rec {
sha256 = "1rx2nl6cdv609pfymnbq53pi3ql5fr4kda8x10ycd9xq2gc4f21g";
};
+ patches = [ ./prefix.patch ];
+
preConfigure = ''
- patchShebangs scripts
- substituteInPlace scripts/compute_prefix \
- --replace '"topfind"' \
- '"${ocamlPackages.findlib}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/topfind"'
- export PREFIX=$out
+ substituteInPlace src/orpie/install.ml.in --replace '@prefix@' $out
'';
buildInputs = with ocamlPackages; [ curses camlp5 num gsl ];
diff --git a/pkgs/applications/misc/orpie/prefix.patch b/pkgs/applications/misc/orpie/prefix.patch
new file mode 100644
index 000000000000..41e72ca6d616
--- /dev/null
+++ b/pkgs/applications/misc/orpie/prefix.patch
@@ -0,0 +1,11 @@
+--- a/src/orpie/dune 2021-10-05 06:09:09.040120000 +0200
++++ b/src/orpie/dune 2021-10-05 06:10:06.568418512 +0200
+@@ -18,7 +18,7 @@
+ ; Support $PREFIX for overriding installation location
+ (rule
+ (targets install.ml)
+- (action (run %{project_root}/scripts/compute_prefix subst %{deps} %{targets}))
++ (action (copy# %{deps} %{targets}))
+ (deps (file install.ml.in)))
+
+
diff --git a/pkgs/applications/misc/osm2xmap/default.nix b/pkgs/applications/misc/osm2xmap/default.nix
index 4f2af99ab14d..f9f880050ed6 100644
--- a/pkgs/applications/misc/osm2xmap/default.nix
+++ b/pkgs/applications/misc/osm2xmap/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libroxml, proj, libyamlcpp, boost } :
+{ lib, stdenv, fetchFromGitHub, libroxml, proj_7, libyamlcpp, boost } :
stdenv.mkDerivation rec {
pname = "osm2xmap";
@@ -14,14 +14,14 @@ stdenv.mkDerivation rec {
makeFlags = [
"GIT_VERSION=${version}"
"GIT_TIMESTAMP="
- "SHAREDIR=${placeholder "out"}/share/osm2xmap"
+ "SHAREDIR=${placeholder "out"}/share/osm2xmap/"
"INSTALL_BINDIR=${placeholder "out"}/bin"
"INSTALL_MANDIR=${placeholder "out"}/share/man/man1"
];
NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
- buildInputs = [ libroxml proj libyamlcpp boost ];
+ buildInputs = [ libroxml proj_7 libyamlcpp boost ];
meta = with lib; {
homepage = "https://github.com/sembruk/osm2xmap";
diff --git a/pkgs/applications/misc/osmium-tool/default.nix b/pkgs/applications/misc/osmium-tool/default.nix
index 009f40e1a219..7e63bf04eef2 100644
--- a/pkgs/applications/misc/osmium-tool/default.nix
+++ b/pkgs/applications/misc/osmium-tool/default.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "osmium-tool";
- version = "1.13.1";
+ version = "1.13.2";
src = fetchFromGitHub {
owner = "osmcode";
repo = "osmium-tool";
rev = "v${version}";
- sha256 = "sha256-IeFbcgwayBl3xxv3onCJr0f1oeveyyNlLxXQlzOoVq0=";
+ sha256 = "sha256-dLYmY2bS+DycYBLZdLw8CsRIIE8EfDJEx6RZ/r9yMS8=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/pass-secret-service/default.nix b/pkgs/applications/misc/pass-secret-service/default.nix
index 932fa588d271..12f8935797c8 100644
--- a/pkgs/applications/misc/pass-secret-service/default.nix
+++ b/pkgs/applications/misc/pass-secret-service/default.nix
@@ -19,9 +19,8 @@ python3.pkgs.buildPythonApplication rec {
# /etc/ in check phase.
postPatch = ''
substituteInPlace Makefile \
- --replace \
- "dbus-run-session" \
- "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf"
+ --replace "dbus-run-session" "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf" \
+ --replace '-p $(relpassstore)' '-p $(PASSWORD_STORE_DIR)'
'';
propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/misc/pcmanfm/default.nix b/pkgs/applications/misc/pcmanfm/default.nix
index a8b407dd7b5d..deb9a98a517c 100644
--- a/pkgs/applications/misc/pcmanfm/default.nix
+++ b/pkgs/applications/misc/pcmanfm/default.nix
@@ -1,5 +1,18 @@
-{ lib, stdenv, fetchurl, glib, intltool, libfm, libX11, pango, pkg-config
-, wrapGAppsHook, gnome, withGtk3 ? true, gtk2, gtk3 }:
+{ lib
+, stdenv
+, fetchurl
+, glib
+, intltool
+, libfm
+, libX11
+, pango
+, pkg-config
+, wrapGAppsHook
+, gnome
+, withGtk3 ? true
+, gtk2
+, gtk3
+}:
let
libfm' = libfm.override { inherit withGtk3; };
@@ -7,9 +20,11 @@ let
inherit (lib) optional;
in
stdenv.mkDerivation rec {
- name = "pcmanfm-1.3.2";
+ pname = "pcmanfm";
+ version = "1.3.2";
+
src = fetchurl {
- url = "mirror://sourceforge/pcmanfm/${name}.tar.xz";
+ url = "mirror://sourceforge/pcmanfm/pcmanfm-${version}.tar.xz";
sha256 = "sha256-FMt7JHSTxMzmX7tZAmEeOtAKeocPvB5QrcUEKMUUDPc=";
};
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index 404c95f52a85..9aed6daa5c31 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "pdfsam-basic";
- version = "4.2.3";
+ version = "4.2.7";
src = fetchurl {
url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
- sha256 = "sha256-WmJ+atndIXm5Z6RvRVSvf2de1Gda+cs5kSw4iotPVfU=";
+ sha256 = "sha256-PVG4KZX6KxkrooywgEmqOItyLt5hGs+b/KCaguduGyc=";
};
unpackPhase = ''
diff --git a/pkgs/applications/misc/pipr/default.nix b/pkgs/applications/misc/pipr/default.nix
index 96627f5cccb5..2f5ba3e6d9cb 100644
--- a/pkgs/applications/misc/pipr/default.nix
+++ b/pkgs/applications/misc/pipr/default.nix
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "pipr";
- version = "0.0.15";
+ version = "0.0.16";
src = fetchFromGitHub {
owner = "ElKowar";
repo = pname;
rev = "v${version}";
- sha256 = "1pbj198nqi27kavz9bm31a3h7h70by6l00046x09yf9n8qjpp01w";
+ sha256 = "sha256-6jtUNhib6iveuZ7qUKK7AllyMKFpZ8OUUaIieFqseY8=";
};
- cargoSha256 = "05ryaxi479fxzdcl51r1xlqbiasfzxcxgvl4wnxync8qi8q2yqk0";
+ cargoSha256 = "sha256-SLOiX8z8LuQ9VA/lg0lOhqs85MGs0vmeP74cS6sgghI=";
nativeBuildInputs = [ makeWrapper ];
postFixup = ''
diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index b3b71d87608e..3660b0d7e0b1 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -43,13 +43,13 @@
stdenv.mkDerivation rec {
pname = "polybar";
- version = "3.5.6";
+ version = "3.5.7";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "sha256-Uvj9V2M/uQxyziTx1hecrcaQZECijlpVmWcUeT+PqrI=";
+ sha256 = "sha256-h12VW3IY4do4cKz2Fd/QgVTBk+zJO+qXuRUCQUyO/x0=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/misc/posterazor/default.nix b/pkgs/applications/misc/posterazor/default.nix
index 602ac3e5e3b4..77e5e34899ea 100644
--- a/pkgs/applications/misc/posterazor/default.nix
+++ b/pkgs/applications/misc/posterazor/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake, unzip, pkg-config, libXpm, fltk13, freeimage }:
-stdenv.mkDerivation {
- name = "posterazor-1.5.1";
+stdenv.mkDerivation rec {
+ pname = "posterazor";
+ version = "1.5.1";
src = fetchurl {
- url = "mirror://sourceforge/posterazor/1.5.1/PosteRazor-1.5.1-Source.zip";
+ url = "mirror://sourceforge/posterazor/${version}/PosteRazor-${version}-Source.zip";
sha256 = "1dqpdk8zl0smdg4fganp3hxb943q40619qmxjlga9jhjc01s7fq5";
};
diff --git a/pkgs/applications/misc/privacyidea/default.nix b/pkgs/applications/misc/privacyidea/default.nix
index 217ea6f5e6cc..b8e4ebf841cd 100644
--- a/pkgs/applications/misc/privacyidea/default.nix
+++ b/pkgs/applications/misc/privacyidea/default.nix
@@ -14,7 +14,8 @@ let
});
flask_migrate = super.flask_migrate.overridePythonAttrs (oldAttrs: rec {
version = "2.7.0";
- src = oldAttrs.src.override {
+ src = python3.pkgs.fetchPypi {
+ pname = "Flask-Migrate";
inherit version;
sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
};
diff --git a/pkgs/applications/misc/procmail/default.nix b/pkgs/applications/misc/procmail/default.nix
index 1244347cc53c..dafc73925b54 100644
--- a/pkgs/applications/misc/procmail/default.nix
+++ b/pkgs/applications/misc/procmail/default.nix
@@ -1,7 +1,13 @@
{ lib, stdenv, fetchurl }:
-stdenv.mkDerivation {
- name = "procmail-3.22";
+stdenv.mkDerivation rec {
+ pname = "procmail";
+ version = "3.22";
+
+ src = fetchurl {
+ url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-${version}.tar.gz";
+ sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
+ };
patches = [
./CVE-2014-3618.patch
@@ -15,20 +21,16 @@ stdenv.mkDerivation {
# getline is defined differently in glibc now. So rename it.
# Without the .PHONY target "make install" won't install anything on Darwin.
postPatch = ''
- sed -e "s%^RM.*$%#%" -i Makefile
- sed -e "s%^BASENAME.*%\BASENAME=$out%" -i Makefile
- sed -e "s%^LIBS=.*%LIBS=-lm%" -i Makefile
+ sed -i Makefile \
+ -e "s%^RM.*$%#%" \
+ -e "s%^BASENAME.*%\BASENAME=$out%" \
+ -e "s%^LIBS=.*%LIBS=-lm%"
sed -e "s%getline%thisgetline%g" -i src/*.c src/*.h
sed -e "3i\
-.PHONY: install
-" -i Makefile
+ .PHONY: install
+ " -i Makefile
'';
- src = fetchurl {
- url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz";
- sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
- };
-
meta = with lib; {
description = "Mail processing and filtering utility";
homepage = "http://www.procmail.org/";
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index bc9b83178da0..479e497e3418 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -1,23 +1,27 @@
{ lib, fetchFromGitHub, makeDesktopItem, prusa-slicer }:
let
appname = "SuperSlicer";
- version = "2.3.56.8";
pname = "super-slicer";
description = "PrusaSlicer fork with more features and faster development cycle";
- override = super: {
+
+ versions = {
+ stable = { version = "2.3.56.9"; sha256 = "sha256-vv01wGQkrasKKjpGSDeDqZbd1X5/iTfGXYN5Jwz+FKE="; };
+ staging = { version = "2.3.57.0"; sha256 = "sha256-7o0AqgQcKYc6c+Hi3x5pC/pKJZPlEsYOYk9sC21+mvM="; };
+ };
+
+ override = { version, sha256 }: super: {
inherit version pname;
src = fetchFromGitHub {
owner = "supermerill";
repo = "SuperSlicer";
- sha256 = "sha256-em0OgrcPaV2VYM8DpvtVJjgdojStMF/ROUEtZ8iLZfo=";
+ inherit sha256;
rev = version;
fetchSubmodules = true;
};
# We don't need PS overrides anymore, and gcode-viewer is embedded in the binary.
postInstall = null;
- dontStrip = true;
separateDebugInfo = true;
# See https://github.com/supermerill/SuperSlicer/issues/432
@@ -44,5 +48,10 @@ let
maintainers = with maintainers; [ cab404 moredread ];
};
+ passthru = allVersions;
+
};
-in prusa-slicer.overrideAttrs override
+
+ allVersions = builtins.mapAttrs (_name: version: (prusa-slicer.overrideAttrs (override version))) versions;
+in
+allVersions.stable
diff --git a/pkgs/applications/misc/psi-notify/default.nix b/pkgs/applications/misc/psi-notify/default.nix
new file mode 100644
index 000000000000..9e4dcd783b73
--- /dev/null
+++ b/pkgs/applications/misc/psi-notify/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, systemd, libnotify, pkg-config }:
+
+stdenv.mkDerivation rec {
+ pname = "psi-notify";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "cdown";
+ repo = pname;
+ rev = version;
+ sha256 = "0hn37plim1smmlrjjmz8kybyms8pz3wxcgf8vmqjrsqi6bfcym7g";
+ };
+
+ buildInputs = [ systemd libnotify ];
+ nativeBuildInputs = [ pkg-config ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -D psi-notify $out/bin/psi-notify
+ substituteInPlace psi-notify.service --replace psi-notify $out/bin/psi-notify
+ install -D psi-notify.service $out/lib/systemd/user/psi-notify.service
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Alert on system resource saturation";
+ longDescription = ''
+ psi-notify can alert you when resources on your machine are becoming
+ oversaturated, and allow you to take action before your system slows to a
+ crawl.
+ '';
+ license = licenses.mit;
+ homepage = "https://github.com/cdown/psi-notify";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ eduarrrd ];
+ };
+}
diff --git a/pkgs/applications/misc/ptask/default.nix b/pkgs/applications/misc/ptask/default.nix
index b243f1941817..739003720447 100644
--- a/pkgs/applications/misc/ptask/default.nix
+++ b/pkgs/applications/misc/ptask/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, makeWrapper, gtk3, json_c, taskwarrior }:
stdenv.mkDerivation rec {
- name = "ptask-1.0.0";
+ pname = "ptask";
+ version = "1.0.0";
src = fetchurl {
- url = "https://wpitchoune.net/ptask/files/${name}.tar.gz";
+ url = "https://wpitchoune.net/ptask/files/ptask-${version}.tar.gz";
sha256 = "13nirr7b29bv3w2zc8zxphhmc9ayhs61i11jl4819nabk7vy1kdq";
};
diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix
index 05cc834591f5..d7969155370e 100644
--- a/pkgs/applications/misc/pytrainer/default.nix
+++ b/pkgs/applications/misc/pytrainer/default.nix
@@ -36,7 +36,7 @@ in python.pkgs.buildPythonApplication rec {
};
propagatedBuildInputs = with python.pkgs; [
- sqlalchemy_migrate
+ sqlalchemy-migrate
python-dateutil
matplotlib
lxml
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index bddcfa497d91..8e19a311fce3 100644
--- a/pkgs/applications/misc/qcad/default.nix
+++ b/pkgs/applications/misc/qcad/default.nix
@@ -17,13 +17,13 @@
mkDerivationWith stdenv.mkDerivation rec {
pname = "qcad";
- version = "3.26.4.7";
+ version = "3.26.4.10";
src = fetchFromGitHub {
owner = "qcad";
repo = "qcad";
rev = "v${version}";
- sha256 = "sha256-of0wsuHWM2mzGQmu9P4AHqXCHew45ywnnv/Al2o47ZM=";
+ sha256 = "sha256-dWpItV18lYjdwUsn2wwA//AUHU5ICGfmih2cJWihvn0=";
};
patches = [
diff --git a/pkgs/applications/misc/redshift-plasma-applet/default.nix b/pkgs/applications/misc/redshift-plasma-applet/default.nix
index b8d25f0db1de..9bc39aaac4ff 100644
--- a/pkgs/applications/misc/redshift-plasma-applet/default.nix
+++ b/pkgs/applications/misc/redshift-plasma-applet/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, }:
+{ lib, stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, fetchpatch, }:
let version = "1.0.18"; in
@@ -13,6 +13,17 @@ stdenv.mkDerivation {
sha256 = "122nnbafa596rxdxlfshxk45lzch8c9342bzj7kzrsjkjg0xr9pq";
};
+ patches = [
+ # This patch fetches from out-of-source repo because the GitHub copy is frozen,
+ # the active fork is now on invent.kde.org. Remove this patch when a new version is released and src is updated
+ # Redshift version >= 1.12 requires the -P option to clear the existing effects before applying shading.
+ # Without it scrolling makes the screen gets darker and darker until it is impossible to see anything.
+ (fetchpatch {
+ url = "https://invent.kde.org/plasma/plasma-redshift-control/-/commit/898c3a4cfc6c317915f1e664078d8606497c4049.patch";
+ sha256 = "0b6pa3fcj698mgqnc85jbbmcl3qpf418mh06qgsd3c4v237my0nv";
+ })
+ ];
+
patchPhase = ''
substituteInPlace package/contents/ui/main.qml \
--replace "redshiftCommand: 'redshift'" \
diff --git a/pkgs/applications/misc/remarkable/rmapi/default.nix b/pkgs/applications/misc/remarkable/rmapi/default.nix
index 11373756f8d0..8482f85d927a 100644
--- a/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "rmapi";
- version = "0.0.15";
+ version = "0.0.17";
src = fetchFromGitHub {
owner = "juruen";
repo = "rmapi";
rev = "v${version}";
- sha256 = "sha256-ju54JSd3Zyye5YGLPEOkhY93ONh0b7eDSnvJlIawizE=";
+ sha256 = "sha256-KFoaZ0OAqwJm4tEUaEAGJ+70nHJUbxg0kvhm71mQB6E=";
};
- vendorSha256 = "sha256-SE/0a8QUJsWoGwkSiZqYx1eXuOIL3avJujyg8iSdcBU=";
+ vendorSha256 = "sha256-gu+BU2tL/xZ7D6lZ1ueO/9IB9H3NNm4mloCZaGqZskU=";
doCheck = false;
diff --git a/pkgs/applications/misc/rofi-menugen/default.nix b/pkgs/applications/misc/rofi-menugen/default.nix
index 6c9e5f6feff8..569ae6ef4cd8 100644
--- a/pkgs/applications/misc/rofi-menugen/default.nix
+++ b/pkgs/applications/misc/rofi-menugen/default.nix
@@ -1,24 +1,28 @@
{ lib, stdenv, fetchFromGitHub, rofi, gnused }:
stdenv.mkDerivation rec {
- rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
- name = "rofi-menugen-2015-12-28-${builtins.substring 0 7 rev}";
+ pname = "rofi-menugen";
+ version = "unstable-2015-12-28";
+
src = fetchFromGitHub {
owner = "octotep";
repo = "menugen";
- inherit rev;
+ rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
sha256 = "09fk9i6crw772qlc5zld35pcff1jq4jcag0syial2q000fbpjx5m";
};
- patchPhase = ''
+
+ postPatch = ''
sed -i -e "s|menugenbase|$out/bin/rofi-menugenbase|" menugen
sed -i -e "s|rofi |${rofi}/bin/rofi |" menugen
sed -i -e "s|sed |${gnused}/bin/sed |" menugenbase
'';
+
installPhase = ''
mkdir -p $out/bin
cp menugen $out/bin/rofi-menugen
cp menugenbase $out/bin/rofi-menugenbase
'';
+
meta = with lib; {
description = "Generates menu based applications using rofi";
homepage = "https://github.com/octotep/menugen";
diff --git a/pkgs/applications/misc/rootbar/default.nix b/pkgs/applications/misc/rootbar/default.nix
index d50cefb2a718..eab821c6dc64 100644
--- a/pkgs/applications/misc/rootbar/default.nix
+++ b/pkgs/applications/misc/rootbar/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
];
meta = with lib; {
- homepage = "https://github.com/alexays/waybar";
+ homepage = "https://hg.sr.ht/~scoopta/rootbar";
description = "A bar for Wayland WMs";
longDescription = ''
Root Bar is a bar for wlroots based wayland compositors such as sway and
diff --git a/pkgs/applications/misc/safeeyes/default.nix b/pkgs/applications/misc/safeeyes/default.nix
index 179ebd33d856..c188e5f78532 100644
--- a/pkgs/applications/misc/safeeyes/default.nix
+++ b/pkgs/applications/misc/safeeyes/default.nix
@@ -57,6 +57,9 @@ in buildPythonApplication rec {
# safeeyes images
--prefix XDG_DATA_DIRS : "$out/lib/${python.libPrefix}/site-packages/usr/share"
)
+ mkdir -p $out/share/applications
+ cp -r safeeyes/platform/icons $out/share/
+ cp safeeyes/platform/safeeyes.desktop $out/share/applications/
'';
doCheck = false; # no tests
diff --git a/pkgs/applications/misc/sbagen/default.nix b/pkgs/applications/misc/sbagen/default.nix
index 215447ed4e9f..4ddfa6f9cf28 100644
--- a/pkgs/applications/misc/sbagen/default.nix
+++ b/pkgs/applications/misc/sbagen/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "sbagen-1.4.4";
+ pname = "sbagen";
+ version = "1.4.4";
src = fetchurl {
- url = "https://uazu.net/sbagen/${name}.tgz";
+ url = "https://uazu.net/sbagen/sbagen-${version}.tgz";
sha256 = "0w62yk1b0hq79kl0angma897yqa8p1ww0dwydf3zlwav333prkd2";
};
diff --git a/pkgs/applications/misc/scli/default.nix b/pkgs/applications/misc/scli/default.nix
index 3605e7c416fd..3809283e62a8 100644
--- a/pkgs/applications/misc/scli/default.nix
+++ b/pkgs/applications/misc/scli/default.nix
@@ -8,13 +8,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "scli";
- version = "0.6.4";
+ version = "0.6.5";
src = fetchFromGitHub {
owner = "isamert";
repo = pname;
rev = "v${version}";
- sha256 = "0fx9ig08whl7bsii9m1h9wp361ngf1szd8v8yqglgl0x8044fwrk";
+ sha256 = "1lykxkqscvpzb7bvl8kfaf23mjhr2kaaqdg0756xx4z1m0smpkgy";
};
propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/misc/seatd/default.nix b/pkgs/applications/misc/seatd/default.nix
index 0565c8add3b8..e142ec47af99 100644
--- a/pkgs/applications/misc/seatd/default.nix
+++ b/pkgs/applications/misc/seatd/default.nix
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "seatd";
- version = "0.6.2";
+ version = "0.6.3";
src = fetchFromSourcehut {
owner = "~kennylevinsen";
repo = "seatd";
rev = version;
- sha256 = "0c07i1nq0k60xmcsnr37ryqs7nzbg4qfq6fzbnzwbh1yhr8kypcm";
+ sha256 = "sha256-LLRGi3IACqaIHExLhALnUeiPyUnlhAJzsMFE2p+QSp4=";
};
outputs = [ "bin" "out" "dev" "man" ];
diff --git a/pkgs/applications/misc/sequeler/default.nix b/pkgs/applications/misc/sequeler/default.nix
index 123e01fe798a..7ba7d15478a7 100644
--- a/pkgs/applications/misc/sequeler/default.nix
+++ b/pkgs/applications/misc/sequeler/default.nix
@@ -47,5 +47,6 @@ in stdenv.mkDerivation rec {
license = licenses.gpl3;
maintainers = with maintainers; [ etu ] ++ teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "com.github.alecaddd.sequeler";
};
}
diff --git a/pkgs/applications/misc/sfm/default.nix b/pkgs/applications/misc/sfm/default.nix
index 355c5915db27..800ea9419cbe 100644
--- a/pkgs/applications/misc/sfm/default.nix
+++ b/pkgs/applications/misc/sfm/default.nix
@@ -2,19 +2,21 @@
stdenv.mkDerivation rec {
pname = "sfm";
- version = "0.3.1";
+ version = "0.4";
src = fetchFromGitHub {
owner = "afify";
repo = pname;
rev = "v${version}";
- hash = "sha256-NmafUezwKK9bYPAWDNhegyjqkb4GY/i1WEtQ9puIaig=";
+ hash = "sha256-VwPux6n+azpR4qDkzZJia95pJJOaFDBBoz6/VwlC0zw=";
};
configFile = lib.optionalString (conf!=null) (writeText "config.def.h" conf);
postPatch = lib.optionalString (conf!=null) "cp ${configFile} config.def.h";
+ makeFlags = [ "CC:=$(CC)" ];
+
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
diff --git a/pkgs/applications/misc/skytemple/default.nix b/pkgs/applications/misc/skytemple/default.nix
index a242a520fc45..e8c6445d5f84 100644
--- a/pkgs/applications/misc/skytemple/default.nix
+++ b/pkgs/applications/misc/skytemple/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "skytemple";
- version = "1.3.0";
+ version = "1.3.2";
src = fetchFromGitHub {
owner = "SkyTemple";
repo = pname;
rev = version;
- sha256 = "03qmjp257rk4p1zkz89cv26awdgngvakqyg6jc3g6xrhmsvr4r2p";
+ sha256 = "1sx2rib0la3mifvh84ia3jnnq4qw9jxc13vxyidsdkp6x82nbvcg";
};
buildInputs = [
@@ -41,6 +41,6 @@ python3Packages.buildPythonApplication rec {
homepage = "https://github.com/SkyTemple/skytemple";
description = "ROM hacking tool for Pokémon Mystery Dungeon Explorers of Sky";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ xfix ];
+ maintainers = with maintainers; [ xfix marius851000 ];
};
}
diff --git a/pkgs/applications/misc/slade/git.nix b/pkgs/applications/misc/slade/git.nix
index f263c4ee74dd..124ae206c8ce 100644
--- a/pkgs/applications/misc/slade/git.nix
+++ b/pkgs/applications/misc/slade/git.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
, cmake
, pkg-config
, wxGTK
@@ -15,7 +17,8 @@
}:
stdenv.mkDerivation {
- name = "slade-git-3.2.0.2021.05.13";
+ pname = "slade";
+ version = "unstable-2021-05-13";
src = fetchFromGitHub {
owner = "sirjuddington";
diff --git a/pkgs/applications/misc/sleepyhead/default.nix b/pkgs/applications/misc/sleepyhead/default.nix
index bf8a9efb9fd0..94c47c23afef 100644
--- a/pkgs/applications/misc/sleepyhead/default.nix
+++ b/pkgs/applications/misc/sleepyhead/default.nix
@@ -33,10 +33,6 @@ in mkDerivation {
cp sleepyhead/SleepyHead $out/bin
'';
- postFixup = lib.optionalString stdenv.isDarwin ''
- wrapQtApp "$out/Applications/SleepyHead.app/Contents/MacOS/SleepyHead"
- '';
-
meta = with lib; {
homepage = "https://sleepyhead.jedimark.net/";
description = "Review and explore data produced by CPAP and related machines";
diff --git a/pkgs/applications/misc/slides/default.nix b/pkgs/applications/misc/slides/default.nix
index c69971919ee9..a7c0f6f7047f 100644
--- a/pkgs/applications/misc/slides/default.nix
+++ b/pkgs/applications/misc/slides/default.nix
@@ -1,27 +1,31 @@
-{ lib, buildGoModule, fetchFromGitHub, bash, go, python3, ruby }:
+{ lib
+, bash
+, buildGoModule
+, fetchFromGitHub
+, go
+}:
buildGoModule rec {
pname = "slides";
- version = "0.5.0";
+ version = "0.7.2";
src = fetchFromGitHub {
owner = "maaslalani";
repo = "slides";
rev = "v${version}";
- sha256 = "175g823n253d3xg8hxycw3gm1hhqb0vz8zs7xxcbdw5rlpd2hjii";
+ sha256 = "02zdgn0pnjqharvmn9rww45yrja8dzww64s3fryxx4pm8g5km9nf";
};
checkInputs = [
bash
go
- python3
- ruby
];
- vendorSha256 = "13kx47amwvzyzc251iijsbwa52s8bpld4xllb4y85qkwllfnmq2g";
+ vendorSha256 = "06vb5xnss6ibgbsny6cadphfkzw8z3np5qgn3hp2wpf3hxgcnnvs";
ldflags = [
- "-s" "-w"
+ "-s"
+ "-w"
"-X=main.Version=${version}"
];
diff --git a/pkgs/applications/misc/smos/default.nix b/pkgs/applications/misc/smos/default.nix
index aa2f53b5a2c7..1039deb43a11 100644
--- a/pkgs/applications/misc/smos/default.nix
+++ b/pkgs/applications/misc/smos/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A comprehensive self-management system";
- homepage = https://smos.online;
+ homepage = "https://smos.online";
license = licenses.mit;
maintainers = with maintainers; [ norfair ];
platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/misc/smpq/default.nix b/pkgs/applications/misc/smpq/default.nix
new file mode 100644
index 000000000000..fd6b5937b8e5
--- /dev/null
+++ b/pkgs/applications/misc/smpq/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, cmake, StormLib }:
+
+stdenv.mkDerivation rec {
+ pname = "smpq";
+ version = "1.6";
+
+ src = fetchurl {
+ url = "https://launchpad.net/smpq/trunk/${version}/+download/${pname}_${version}.orig.tar.gz";
+ sha256 = "1jqq5x3b17jy66x3kkf5hs5l322dx2v14djxxrqrnqp8bn5drlmm";
+ };
+
+ cmakeFlags = [
+ "-DWITH_KDE=OFF"
+ ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ StormLib ];
+
+ meta = with lib; {
+ description = "StormLib MPQ archiving utility";
+ homepage = "https://launchpad.net/smpq";
+ license = licenses.gpl3Only;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ aanderse karolchmist ];
+ };
+}
diff --git a/pkgs/applications/misc/snapmaker-luban/default.nix b/pkgs/applications/misc/snapmaker-luban/default.nix
new file mode 100644
index 000000000000..84ad34637f58
--- /dev/null
+++ b/pkgs/applications/misc/snapmaker-luban/default.nix
@@ -0,0 +1,88 @@
+{ lib, stdenv, autoPatchelfHook, makeDesktopItem, copyDesktopItems, wrapGAppsHook, fetchurl
+, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups
+, gtk3, nss, glib, dbus, nspr, gdk-pixbuf
+, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
+, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, pango
+, gcc-unwrapped, udev
+}:
+
+stdenv.mkDerivation rec {
+ pname = "snapmaker-luban";
+ version = "4.0.3";
+
+ src = fetchurl {
+ url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
+ sha256 = "13qk7ssfawjaa5p4mnml4ndzzsqs26qpi76hc9qaipi74ss3jih4";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ wrapGAppsHook
+ copyDesktopItems
+ ];
+
+ buildInputs = [
+ alsa-lib
+ at-spi2-atk
+ at-spi2-core
+ cairo
+ cups
+ gcc-unwrapped
+ gtk3
+ libXdamage
+ libX11
+ libXScrnSaver
+ libXtst
+ libxcb
+ nspr
+ nss
+ ];
+
+ libPath = lib.makeLibraryPath [
+ stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups
+ gdk-pixbuf glib gtk3 libX11 libXcomposite
+ libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
+ libXtst nspr nss libxcb pango libXScrnSaver udev
+ ];
+
+ dontWrapGApps = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,opt,share/pixmaps}/
+ mv * $out/opt/
+
+ patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
+ $out/opt/snapmaker-luban
+
+ wrapProgram $out/opt/snapmaker-luban \
+ "''${gappsWrapperArgs[@]}" \
+ --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+ --prefix LD_LIBRARY_PATH : ${libPath}:$out/snapmaker-luban
+
+ ln -s $out/opt/snapmaker-luban $out/bin/snapmaker-luban
+ ln -s $out/opt/resources/app/app/resources/images/snap-luban-logo-64x64.png $out/share/pixmaps/snapmaker-luban.png
+
+ runHook postInstall
+ '';
+
+ desktopItems = [
+ (makeDesktopItem {
+ name = pname;
+ exec = "snapmaker-luban";
+ icon = "snapmaker-luban";
+ desktopName = "Snapmaker Luban";
+ genericName = meta.description;
+ categories = "Office;Printing;";
+ })
+ ];
+
+ meta = with lib; {
+ description = "Snapmaker Luban is an easy-to-use 3-in-1 software tailor-made for Snapmaker machines";
+ homepage = "https://github.com/Snapmaker/Luban";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.simonkampe ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/misc/solaar/default.nix b/pkgs/applications/misc/solaar/default.nix
index b6059ac1a71b..641353f53daf 100644
--- a/pkgs/applications/misc/solaar/default.nix
+++ b/pkgs/applications/misc/solaar/default.nix
@@ -1,4 +1,13 @@
-{ fetchFromGitHub, lib, gobject-introspection, gtk3, python3Packages }:
+{ fetchFromGitHub
+, lib
+, gobject-introspection
+, gtk3
+, python3Packages
+, wrapGAppsHook
+, gdk-pixbuf
+, libappindicator
+, librsvg
+}:
# Although we copy in the udev rules here, you probably just want to use
# logitech-udev-rules instead of adding this to services.udev.packages on NixOS
@@ -13,6 +22,9 @@ python3Packages.buildPythonApplication rec {
sha256 = "sha256-Ys0005hIQ+fT4oMeU5iFtbLNqn1WM6iLdIKGwdyn7BM=";
};
+ nativeBuildInputs = [ wrapGAppsHook gdk-pixbuf ];
+ buildInputs = [ libappindicator librsvg ];
+
propagatedBuildInputs = with python3Packages; [
gobject-introspection
gtk3
@@ -23,11 +35,6 @@ python3Packages.buildPythonApplication rec {
xlib
];
- makeWrapperArgs = [
- "--prefix PYTHONPATH : $PYTHONPATH"
- "--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH"
- ];
-
# the -cli symlink is just to maintain compabilility with older versions where
# there was a difference between the GUI and CLI versions.
postInstall = ''
diff --git a/pkgs/applications/misc/speedread/default.nix b/pkgs/applications/misc/speedread/default.nix
index a7b9cb591a5e..451382cda373 100644
--- a/pkgs/applications/misc/speedread/default.nix
+++ b/pkgs/applications/misc/speedread/default.nix
@@ -1,12 +1,13 @@
{ lib, stdenv, fetchFromGitHub, perl }:
stdenv.mkDerivation rec {
- name = "speedread-unstable-2016-09-21";
+ pname = "speedread";
+ version = "unstable-2016-09-21";
src = fetchFromGitHub {
- owner = "pasky";
- repo = "speedread";
- rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
+ owner = "pasky";
+ repo = "speedread";
+ rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
sha256 = "1h94jx3v18fdlc64lfmj2g5x63fjyqb8c56k5lihl7bva0xgdkxd";
};
diff --git a/pkgs/applications/misc/spicetify-cli/default.nix b/pkgs/applications/misc/spicetify-cli/default.nix
index e20b95922f9a..7bbe65811548 100644
--- a/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/pkgs/applications/misc/spicetify-cli/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "spicetify-cli";
- version = "2.2.6";
+ version = "2.7.1";
src = fetchFromGitHub {
owner = "khanhas";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-9g6rkSDjE7x/YprPX0dkzqgpjgED5qBpUUQoVv6fGkk=";
+ sha256 = "sha256-fWh345J2fD9uoGrDiVZyEBiOlMy8giEGKHGMujT0mjo=";
};
vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";
diff --git a/pkgs/applications/misc/ssh-tools/default.nix b/pkgs/applications/misc/ssh-tools/default.nix
index 8740633262fd..2e79f69656f9 100644
--- a/pkgs/applications/misc/ssh-tools/default.nix
+++ b/pkgs/applications/misc/ssh-tools/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "ssh-tools";
- version = "1.6";
+ version = "1.7";
src = fetchFromGitHub {
owner = "vaporup";
repo = pname;
rev = "v${version}";
- sha256 = "0m0x9383p9ab4hdirncmrfha130iasa0v4cbif2y5nbxnxgh101r";
+ sha256 = "sha256-PDoljR/e/qraPhG9RRjHx1gBIMtTJ815TZDJws8Qg6o=";
};
installPhase = ''
diff --git a/pkgs/applications/misc/stag/default.nix b/pkgs/applications/misc/stag/default.nix
index 03c90af23689..f9c91d28f14a 100644
--- a/pkgs/applications/misc/stag/default.nix
+++ b/pkgs/applications/misc/stag/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv, fetchgit, curses }:
+{ lib, stdenv, fetchFromGitHub, curses }:
stdenv.mkDerivation {
- name = "stag-1.0";
+ pname = "stag";
+ version = "1.0";
- src = fetchgit {
- url = "https://github.com/seenaburns/stag.git";
+ src = fetchFromGitHub {
+ owner = "seenaburns";
+ repo = "stag";
rev = "90e2964959ea8242349250640d24cee3d1966ad6";
sha256 = "1yrzjhcwrxrxq5jj695wvpgb0pz047m88yq5n5ymkcw5qr78fy1v";
};
@@ -15,11 +17,11 @@ stdenv.mkDerivation {
make install PREFIX=$out
'';
- meta = {
+ meta = with lib; {
homepage = "https://github.com/seenaburns/stag";
description = "Terminal streaming bar graph passed through stdin";
- license = lib.licenses.bsdOriginal;
- maintainers = [ lib.maintainers.matthiasbeyer ];
- platforms = lib.platforms.unix;
+ license = licenses.bsdOriginal;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/misc/survex/default.nix b/pkgs/applications/misc/survex/default.nix
index f6865f877d7d..277230965884 100644
--- a/pkgs/applications/misc/survex/default.nix
+++ b/pkgs/applications/misc/survex/default.nix
@@ -6,7 +6,7 @@
, wxGTK30-gtk3
, wxmac
, ffmpeg
-, proj
+, proj_7
, perl532
, unscii
, python
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ docbook5 docbook2x autoreconfHook pkg-config perlenv python ];
buildInputs = [
- libGL libGLU ffmpeg proj
+ libGL libGLU ffmpeg proj_7
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
wxmac Carbon Cocoa
] ++ lib.optionals stdenv.hostPlatform.isLinux [
diff --git a/pkgs/applications/misc/synergy/build-tests.patch b/pkgs/applications/misc/synergy/build-tests.patch
deleted file mode 100644
index ab08195e794d..000000000000
--- a/pkgs/applications/misc/synergy/build-tests.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 9c2278dad498b8e4040f30c80cf65b3a089ba218 Mon Sep 17 00:00:00 2001
-From: talyz
-Date: Fri, 14 Feb 2020 16:26:36 +0100
-Subject: [PATCH] Build tests again
-
-The tests were accidentally disabled in
-688095d0a7d22704b5c3282bc68b41ceca42ab7e. Since then, the code has
-drifted slightly: the synergy lib has been renamed from synergy to
-synlib in 4263fd17177d7717b04ac6d6ec62efa2f657ed74 and the curl
-dependency was dropped in 491bb2de000245a943b8298462c4a9d8f34c9a44.
-
-This reenables the tests, targets the right lib and removes the
-obsolete test.
----
- src/CMakeLists.txt | 2 +
- src/test/integtests/CMakeLists.txt | 2 +-
- .../integtests/arch/ArchInternetTests.cpp | 37 -------------------
- src/test/unittests/CMakeLists.txt | 2 +-
- 4 files changed, 4 insertions(+), 39 deletions(-)
- delete mode 100644 src/test/integtests/arch/ArchInternetTests.cpp
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index ab63a066..fee080ab 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -22,3 +22,5 @@ add_subdirectory(cmd)
- if (SYNERGY_BUILD_LEGACY_GUI)
- add_subdirectory(gui)
- endif (SYNERGY_BUILD_LEGACY_GUI)
-+
-+add_subdirectory(test)
-diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt
-index f39968a3..096ba3d5 100644
---- a/src/test/integtests/CMakeLists.txt
-+++ b/src/test/integtests/CMakeLists.txt
-@@ -68,4 +68,4 @@ endif()
-
- add_executable(integtests ${sources})
- target_link_libraries(integtests
-- arch base client common io ipc mt net platform server synergy gtest gmock ${libs} ${OPENSSL_LIBS})
-+ arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS})
-diff --git a/src/test/integtests/arch/ArchInternetTests.cpp b/src/test/integtests/arch/ArchInternetTests.cpp
-deleted file mode 100644
-index 95823e9f..00000000
---- a/src/test/integtests/arch/ArchInternetTests.cpp
-+++ /dev/null
-@@ -1,37 +0,0 @@
--/*
-- * synergy -- mouse and keyboard sharing utility
-- * Copyright (C) 2014-2016 Symless Ltd.
-- *
-- * This package is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * found in the file LICENSE that should have accompanied this file.
-- *
-- * This package is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program. If not, see .
-- */
--
--#include "arch/Arch.h"
--
--#include "test/global/gtest.h"
--
--#define TEST_URL "https://symless.com/tests/?testString"
--//#define TEST_URL "http://localhost/synergy/tests/?testString"
--
--TEST(ArchInternetTests, get)
--{
-- ARCH_INTERNET internet;
-- String result = internet.get(TEST_URL);
-- ASSERT_EQ("Hello world!", result);
--}
--
--TEST(ArchInternetTests, urlEncode)
--{
-- ARCH_INTERNET internet;
-- String result = internet.urlEncode("hello=+&world");
-- ASSERT_EQ("hello%3D%2B%26world", result);
--}
-diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt
-index 54131eb2..46307e90 100644
---- a/src/test/unittests/CMakeLists.txt
-+++ b/src/test/unittests/CMakeLists.txt
-@@ -68,4 +68,4 @@ endif()
-
- add_executable(unittests ${sources})
- target_link_libraries(unittests
-- arch base client server common io net platform server synergy mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS})
-+ arch base client server common io net platform server synlib mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS})
---
-2.25.0
-
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index 8d3cc8c30966..803456dc85f0 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -1,41 +1,90 @@
-{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools
-, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver
-, xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat
-, withGUI ? true, wrapQtAppsHook }:
+{ withGUI ? true
+, stdenv
+, lib
+, fetchpatch
+, fetchFromGitHub
+, wrapQtAppsHook
+
+, cmake
+, openssl
+, pcre
+, util-linux
+, libselinux
+, libsepol
+, pkg-config
+, gdk-pixbuf
+, libnotify
+, qttools
+, xlibsWrapper
+, libX11
+, libXi
+, libXtst
+, libXrandr
+, xinput
+, avahi-compat
+
+# macOS / darwin
+, ApplicationServices
+, Carbon
+, Cocoa
+, CoreServices
+, ScreenSaver
+}:
stdenv.mkDerivation rec {
pname = "synergy";
- version = "1.13.1.41";
+ version = "1.14.1.32";
src = fetchFromGitHub {
owner = "symless";
repo = "synergy-core";
rev = "${version}-stable";
fetchSubmodules = true;
- sha256 = "1phg0szc9g018zxs5wbys4drzq1cdhyzajfg45l6a3fmi6qdi1kw";
+ sha256 = "123p75rm22vb3prw1igh0yii2y4bvv7r18iykfvmnr41hh4w7z2p";
};
- patches = lib.optional stdenv.isDarwin ./macos_build_fix.patch;
+ patches = [ ./macos_build_fix.patch ];
postPatch = ''
substituteInPlace src/gui/src/SslCertificate.cpp \
--replace 'kUnixOpenSslCommand[] = "openssl";' 'kUnixOpenSslCommand[] = "${openssl}/bin/openssl";'
'';
- cmakeFlags = lib.optional (!withGUI) "-DSYNERGY_BUILD_LEGACY_GUI=OFF";
+ cmakeFlags = lib.optionals (!withGUI) [
+ "-DSYNERGY_BUILD_LEGACY_GUI=OFF"
+ ] ++ lib.optionals stdenv.isDarwin [
+ "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.09"
+ ];
+ NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-inconsistent-missing-override";
- nativeBuildInputs = [ cmake ] ++ lib.optional withGUI wrapQtAppsHook;
+ nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
dontWrapQtApps = true;
buildInputs = [
openssl
+ pcre
] ++ lib.optionals withGUI [
qttools
] ++ lib.optionals stdenv.isDarwin [
- ApplicationServices Carbon Cocoa CoreServices ScreenSaver
+ ApplicationServices
+ Carbon
+ Cocoa
+ CoreServices
+ ScreenSaver
] ++ lib.optionals stdenv.isLinux [
- xlibsWrapper libX11 libXi libXtst libXrandr xinput avahi-compat
+ util-linux
+ libselinux
+ libsepol
+ xlibsWrapper
+ libX11
+ libXi
+ libXtst
+ libXrandr
+ xinput
+ avahi-compat
+ gdk-pixbuf
+ libnotify
];
installPhase = ''
@@ -60,7 +109,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Share one mouse and keyboard between multiple computers";
- homepage = "https://synergy-project.org/";
+ homepage = "https://symless.com/synergy";
license = licenses.gpl2;
maintainers = with maintainers; [ talyz ];
platforms = platforms.all;
diff --git a/pkgs/applications/misc/synergy/macos_build_fix.patch b/pkgs/applications/misc/synergy/macos_build_fix.patch
index 50087a2c4b4b..c304f3bfdd44 100644
--- a/pkgs/applications/misc/synergy/macos_build_fix.patch
+++ b/pkgs/applications/misc/synergy/macos_build_fix.patch
@@ -1,20 +1,29 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c1e78d1d..13639ba1 100644
+index 50e712fa..d39c2ce4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -328,14 +328,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- ${OPENSSL_ROOT}/lib/libssl.lib
- ${OPENSSL_ROOT}/lib/libcrypto.lib
- )
--elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-- set (OPENSSL_ROOT /usr/local/opt/openssl)
-- include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
-- set (OPENSSL_LIBS
-- ${OPENSSL_ROOT}/lib/libssl.a
-- ${OPENSSL_ROOT}/lib/libcrypto.a
-- )
--elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|.*BSD|DragonFly")
-+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|Darwin|.*BSD|DragonFly")
- set (OPENSSL_LIBS ssl crypto)
- else()
- message (FATAL_ERROR "Couldn't find OpenSSL")
+@@ -326,9 +326,6 @@ endif()
+ # Apple has to use static libraries because
+ # "Use of the Apple-provided OpenSSL libraries by apps is strongly discouraged."
+ # https://developer.apple.com/library/archive/documentation/Security/Conceptual/cryptoservices/SecureNetworkCommunicationAPIs/SecureNetworkCommunicationAPIs.html
+-if(APPLE)
+- set(OPENSSL_USE_STATIC_LIBS TRUE)
+-endif()
+ find_package(OpenSSL REQUIRED)
+
+ #
+diff --git a/src/gui/src/OSXHelpers.mm b/src/gui/src/OSXHelpers.mm
+index 0c98afc1..38c190a6 100644
+--- a/src/gui/src/OSXHelpers.mm
++++ b/src/gui/src/OSXHelpers.mm
+@@ -20,10 +20,6 @@
+ #import
+ #import
+ #import
+-#import
+-#import
+-#import
+-#import
+
+ #import
+
diff --git a/pkgs/applications/misc/tasknc/default.nix b/pkgs/applications/misc/tasknc/default.nix
index d24a7d3e0d13..5250581762b0 100644
--- a/pkgs/applications/misc/tasknc/default.nix
+++ b/pkgs/applications/misc/tasknc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, perl, ncurses5, taskwarrior }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, perl, ncurses5, taskwarrior }:
stdenv.mkDerivation rec {
version = "2020-12-17";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "0jrv2k1yizfdjndbl06lmy2bb62ky2rjdk308967j31c5kqqnw56";
};
+ # Pull pending upstream inclusion for ncurses-6.3:
+ # https://github.com/lharding/tasknc/pull/57
+ patches = [
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/lharding/tasknc/commit/f74ea0641e9bf287acf22fac9f6eeea571b01800.patch";
+ sha256 = "18a90zj85sw2zfnfcv055nvi0lx3h8lcgsyabdfk94ksn78pygrv";
+ })
+ ];
+
nativeBuildInputs = [
makeWrapper
perl # For generating the man pages with pod2man
diff --git a/pkgs/applications/misc/taskwarrior-tui/default.nix b/pkgs/applications/misc/taskwarrior-tui/default.nix
index b360733d5058..ae25ce358deb 100644
--- a/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -5,19 +5,19 @@
rustPlatform.buildRustPackage rec {
pname = "taskwarrior-tui";
- version = "0.13.33";
+ version = "0.13.35";
src = fetchFromGitHub {
owner = "kdheepak";
repo = "taskwarrior-tui";
rev = "v${version}";
- sha256 = "sha256-vKmVScXQLDjhNJEzlhqiyhRZjR26xjrT1LijxzZK8Cg=";
+ sha256 = "sha256-sXJto2YygPz2B5y7m8uUfOhuRCbKkZGoCmzHOhvH2MU=";
};
# Because there's a test that requires terminal access
doCheck = false;
- cargoSha256 = "sha256-0E4nk8WLprumHKQjpdn+U36z7mdgFb7g/i7egLk4Jcs=";
+ cargoSha256 = "sha256-mUlwpH2XhVDtjV7ChEqlEUXffOIbips4FzQyGejFvWk=";
meta = with lib; {
description = "A terminal user interface for taskwarrior ";
diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix
index 812c9b72f99e..8290a868ef07 100644
--- a/pkgs/applications/misc/taskwarrior/default.nix
+++ b/pkgs/applications/misc/taskwarrior/default.nix
@@ -1,34 +1,27 @@
-{ lib, stdenv, fetchurl, cmake, libuuid, gnutls, python3, bash }:
+{ lib, stdenv, fetchFromGitHub, cmake, libuuid, gnutls, python3, xdg-utils }:
stdenv.mkDerivation rec {
pname = "taskwarrior";
- version = "2.5.3";
+ version = "2.6.1";
- srcs = [
- (fetchurl {
- url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/${sourceRoot}.tar.gz";
- sha256 = "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj";
- })
- (fetchurl {
- url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/tests-${version}.tar.gz";
- sha256 = "165xmf9h6rb7l6l9nlyygj0mx9bi1zyd78z0lrl3nadhmgzggv0b";
- })
- ];
+ src = fetchFromGitHub {
+ owner = "GothenburgBitFactory";
+ repo = "taskwarrior";
+ rev = "v${version}";
+ sha256 = "sha256-jMZzo2cegoapEHTvfD6ThU1IsXru3iOcpyDbZxkSXzQ=";
+ fetchSubmodules = true;
+ };
- sourceRoot = "task-${version}";
-
- postUnpack = ''
- mv test ${sourceRoot}
+ postPatch = ''
+ substituteInPlace src/commands/CmdNews.cpp \
+ --replace "xdg-open" "${lib.getBin xdg-utils}/bin/xdg-open"
'';
- nativeBuildInputs = [ cmake libuuid gnutls ];
+ nativeBuildInputs = [ cmake libuuid gnutls python3 ];
doCheck = true;
preCheck = ''
- find test -type f -exec sed -i \
- -e "s|/usr/bin/env python3|${python3.interpreter}|" \
- -e "s|/usr/bin/env bash|${bash}/bin/bash|" \
- {} +
+ patchShebangs --build test
'';
checkTarget = "test";
@@ -37,15 +30,13 @@ stdenv.mkDerivation rec {
ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/task.bash"
mkdir -p "$out/share/fish/vendor_completions.d"
ln -s "../../../share/doc/task/scripts/fish/task.fish" "$out/share/fish/vendor_completions.d/"
- mkdir -p "$out/share/zsh/site-functions"
- ln -s "../../../share/doc/task/scripts/zsh/_task" "$out/share/zsh/site-functions/"
'';
meta = with lib; {
description = "Highly flexible command-line tool to manage TODO lists";
homepage = "https://taskwarrior.org";
license = licenses.mit;
- maintainers = with maintainers; [ marcweber ];
+ maintainers = with maintainers; [ marcweber oxalica ];
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/misc/themechanger/default.nix b/pkgs/applications/misc/themechanger/default.nix
new file mode 100644
index 000000000000..d2b92fa250b3
--- /dev/null
+++ b/pkgs/applications/misc/themechanger/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, gobject-introspection
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, desktop-file-utils
+, glib
+, gtk3
+, python3
+, gsettings-desktop-schemas
+, python3Packages
+, fetchFromGitHub
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "themechanger";
+ version = "0.10.2";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "ALEX11BR";
+ repo = "ThemeChanger";
+ rev = "v${version}";
+ sha256 = "00z1npm3lpvf0wc9z2v58pc4nxxh8x9m158kxf1k0qlz536jrzqr";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ meson
+ ninja
+ pkg-config
+ wrapGAppsHook
+ desktop-file-utils
+ gtk3
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ python3
+ gsettings-desktop-schemas
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pygobject3
+ ];
+
+ postPatch = ''
+ patchShebangs postinstall.py
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/ALEX11BR/ThemeChanger";
+ description = "A theme changing utility for Linux";
+ longDescription = ''
+ This app is a theme changing utility for Linux, BSDs, and whatnots.
+ It lets the user change GTK 2/3/4, Kvantum, icon and cursor themes, edit GTK CSS with live preview, and set some related options.
+ It also lets the user install icon and widget theme archives.
+ '';
+ maintainers = with maintainers; [ ALEX11BR ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/todoist-electron/default.nix b/pkgs/applications/misc/todoist-electron/default.nix
index 945b0b324910..bcd277cad4aa 100644
--- a/pkgs/applications/misc/todoist-electron/default.nix
+++ b/pkgs/applications/misc/todoist-electron/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_11, libsecret }:
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron, libsecret }:
stdenv.mkDerivation rec {
pname = "todoist-electron";
- version = "0.2.4";
+ version = "1.0.1";
src = fetchurl {
url = "https://electron-dl.todoist.com/linux/Todoist-${version}.AppImage";
- sha256 = "1xrf2qjhq116z18qx7n1zd7mhvkb2dccaq7az4w6fs216l8q5zf2";
+ sha256 = "1c4qmfyfi4hm3fs5bkxjbq1hxs5sgyp531xi5z5vpnzzi5z7dw0k";
};
appimageContents = appimageTools.extractType2 {
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
cp -a ${appimageContents}/todoist.desktop $out/share/applications/${pname}.desktop
- cp -a ${appimageContents}/usr/share/icons/hicolor/0x0/apps $out/share/icons/hicolor/512x512
+ cp -a ${appimageContents}/usr/share/icons/hicolor/512x512/apps $out/share/icons/hicolor/512x512
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
'';
postFixup = ''
- makeWrapper ${electron_11}/bin/electron $out/bin/${pname} \
+ makeWrapper ${electron}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc libsecret ]}"
'';
diff --git a/pkgs/applications/misc/toot/default.nix b/pkgs/applications/misc/toot/default.nix
index 2a322b208819..933464b62631 100644
--- a/pkgs/applications/misc/toot/default.nix
+++ b/pkgs/applications/misc/toot/default.nix
@@ -1,14 +1,14 @@
{ lib, fetchFromGitHub, python3Packages }:
python3Packages.buildPythonApplication rec {
- version = "0.27.0";
- name = "toot-${version}";
+ pname = "toot";
+ version = "0.28.0";
src = fetchFromGitHub {
owner = "ihabunek";
repo = "toot";
rev = version;
- sha256 = "197g9lvwg8qnsf18kifcqdj3cpfdnxz9vay766rn9bi4nfz0s6j2";
+ sha256 = "076r6l89gxjwxjpiklidcs8yajn5c2bnqjvbj4wc559iqdqj88lz";
};
checkInputs = with python3Packages; [ pytest ];
diff --git a/pkgs/applications/misc/tootle/default.nix b/pkgs/applications/misc/tootle/default.nix
index 63ac88ecac9d..8c111ae6aa42 100644
--- a/pkgs/applications/misc/tootle/default.nix
+++ b/pkgs/applications/misc/tootle/default.nix
@@ -2,7 +2,7 @@
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, vala
+, vala_0_52
, meson
, ninja
, pkg-config
@@ -35,7 +35,9 @@ stdenv.mkDerivation rec {
ninja
pkg-config
python3
- vala
+ # Does not build with vala 0.54
+ # https://github.com/bleakgrey/tootle/issues/337
+ vala_0_52
wrapGAppsHook
];
diff --git a/pkgs/applications/misc/tty-solitaire/default.nix b/pkgs/applications/misc/tty-solitaire/default.nix
index 708596d40747..b390c7bf9d14 100644
--- a/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/pkgs/applications/misc/tty-solitaire/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ncurses }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses }:
stdenv.mkDerivation rec {
pname = "tty-solitaire";
@@ -11,9 +11,21 @@ stdenv.mkDerivation rec {
sha256 = "sha256-zMLNWJieHxHALFQoSkdAxGbUBGuZnznLX86lI3P21F0=";
};
- buildInputs = [ ncurses ];
+ patches = [
+ # Patch pending upstream inclusion to support ncurses-6.3:
+ # https://github.com/mpereira/tty-solitaire/pull/61
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/mpereira/tty-solitaire/commit/4d066c564d086ce272b78cb8f80717a7fb83c261.patch";
+ sha256 = "sha256-E1XVG0be6JH3K1y7UPap93s8xk8Nk0dKLdKHcJ7mA8E=";
+ })
+ ];
- patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
+ postPatch = ''
+ sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile
+ '';
+
+ buildInputs = [ ncurses ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" ];
diff --git a/pkgs/applications/misc/ttyper/default.nix b/pkgs/applications/misc/ttyper/default.nix
index 664bf9ba7252..c3001c3337cd 100644
--- a/pkgs/applications/misc/ttyper/default.nix
+++ b/pkgs/applications/misc/ttyper/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "ttyper";
- version = "0.2.5";
+ version = "0.3.0";
src = fetchFromGitHub {
owner = "max-niederman";
repo = pname;
rev = "v${version}";
- sha256 = "1fsb77ky92fyv3ll6zrbxbd69gm85xnc6bivj7sc3sv5cxhgr7a5";
+ sha256 = "sha256-9vcoK2mFEivTSZE3KoQRHUr3AfQ/aN5eWP//Jagw3gU=";
};
- cargoSha256 = "1sqdql0kfr1vsww6hkrp7yjlzx0mnhfma51z699hkx9c492sf1wk";
+ cargoSha256 = "sha256-VzO32b5oAoXR/Ei9up00XRM63I5kuG68TeX4KBCXIdo=";
meta = with lib; {
description = "Terminal-based typing test";
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 8e84f56c841a..0d0d1c394e2c 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "tut";
- version = "0.0.33";
+ version = "0.0.36";
src = fetchFromGitHub {
owner = "RasmusLindroth";
repo = pname;
rev = version;
- sha256 = "sha256-8aa3LYLHjodyYradF2NBuZReHTYBf9TvfVCoDs0gAUw=";
+ sha256 = "sha256-Ew/nrsJivq/3/vlZnR1gwhqzQQ9YmrW2LPD7qjmPH4A=";
};
- vendorSha256 = "sha256-DcMsxqUO9H1q5+njoOuxQ6l8ifSFuS1jdWSvY/5MDm8=";
+ vendorSha256 = "sha256-Q1H/Y2mDTr24JQMoTf8DL3cj5oF9lH0uaJD2g/0Yxko=";
meta = with lib; {
description = "A TUI for Mastodon with vim inspired keys";
diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix
index b7974966be45..d4b4d1d9d803 100644
--- a/pkgs/applications/misc/twmn/default.nix
+++ b/pkgs/applications/misc/twmn/default.nix
@@ -1,7 +1,8 @@
{ lib, mkDerivation, fetchFromGitHub, qtbase, qtx11extras, qmake, pkg-config, boost }:
mkDerivation {
- name = "twmn-git-2018-10-01";
+ pname = "twmn";
+ version = "unstable-2018-10-01";
src = fetchFromGitHub {
owner = "sboli";
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index e70b875e6f2c..687dc7a49ac9 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -6,15 +6,13 @@
stdenv.mkDerivation rec {
pname = "upwork";
- version = "5.6.7.13";
+ version = "5.6.9.3";
src = fetchurl {
- url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_7_13_9f0e0a44a59e4331/${pname}_${version}_amd64.deb";
- sha256 = "f1d3168cda47f77100192ee97aa629e2452fe62fb364dd59ad361adbc0d1da87";
+ url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_9_3_10c2eb9781db4d7f/${pname}_${version}_amd64.deb";
+ sha256 = "0b884aa6992d438cee09f58673780218a00a823e03c114b0c753947020c0a327";
};
- dontWrapGApps = true;
-
nativeBuildInputs = [
dpkg
wrapGAppsHook
@@ -31,6 +29,10 @@ stdenv.mkDerivation rec {
libPath = lib.makeLibraryPath buildInputs;
+ dontWrapGApps = true;
+ dontBuild = true;
+ dontConfigure = true;
+
unpackPhase = ''
dpkg-deb -x ${src} ./
'';
diff --git a/pkgs/applications/misc/urlscan/default.nix b/pkgs/applications/misc/urlscan/default.nix
index 576d66659a3a..c125c2f75161 100644
--- a/pkgs/applications/misc/urlscan/default.nix
+++ b/pkgs/applications/misc/urlscan/default.nix
@@ -1,24 +1,31 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
python3Packages.buildPythonApplication rec {
pname = "urlscan";
- version = "0.9.6";
+ version = "0.9.7";
src = fetchFromGitHub {
owner = "firecat53";
repo = pname;
rev = version;
- sha256 = "D+WJ1HG1gXIFtIpaqazFqC9Y4GBCUsz88U8q8W9tHFA=";
+ sha256 = "sha256-Wg1QecSMyifID9uIvVWrmkHax4FbbwEcoXIZ8V8P3FU=";
};
- propagatedBuildInputs = [ python3Packages.urwid ];
+ propagatedBuildInputs = [
+ python3Packages.urwid
+ ];
doCheck = false; # No tests available
+ pythonImportsCheck = [ "urlscan" ];
+
meta = with lib; {
description = "Mutt and terminal url selector (similar to urlview)";
homepage = "https://github.com/firecat53/urlscan";
- license = licenses.gpl2;
+ license = licenses.gpl2Plus;
maintainers = with maintainers; [ dpaetzel jfrankenau ];
};
}
diff --git a/pkgs/applications/misc/vifm/default.nix b/pkgs/applications/misc/vifm/default.nix
index 531c108cdbf9..2765cd5ad7aa 100644
--- a/pkgs/applications/misc/vifm/default.nix
+++ b/pkgs/applications/misc/vifm/default.nix
@@ -10,11 +10,11 @@
let isFullPackage = mediaSupport;
in stdenv.mkDerivation rec {
pname = if isFullPackage then "vifm-full" else "vifm";
- version = "0.11";
+ version = "0.12";
src = fetchurl {
url = "https://github.com/vifm/vifm/releases/download/v${version}/vifm-${version}.tar.bz2";
- sha256 = "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh";
+ sha256 = "1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k";
};
nativeBuildInputs = [ pkg-config makeWrapper ];
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index b56904e7fd6d..b1b92ebe2d3f 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -24,13 +24,13 @@
}:
buildPythonApplication rec {
pname = "visidata";
- version = "2.6";
+ version = "2.6.1";
src = fetchFromGitHub {
owner = "saulpw";
repo = "visidata";
rev = "v${version}";
- sha256 = "sha256-fsk+Cn7CzrOAif5+LUMrs8llSnEfoSLAdg1qOFMJOh8=";
+ sha256 = "1dmiy87x0yc0d594v3d3km13dl851mx7ym1vgh3bg91llg8ykg33";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix
index a38c1002a01f..38ea7c909c05 100644
--- a/pkgs/applications/misc/waybar/default.nix
+++ b/pkgs/applications/misc/waybar/default.nix
@@ -10,7 +10,6 @@
, gtkmm3
, libsigcxx
, jsoncpp
-, fmt
, scdoc
, spdlog
, gtk-layer-shell
@@ -51,7 +50,7 @@ stdenv.mkDerivation rec {
strictDeps = false;
buildInputs = with lib;
- [ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date libxkbcommon ]
+ [ wayland wlroots gtkmm3 libsigcxx jsoncpp spdlog gtk-layer-shell howard-hinnant-date libxkbcommon ]
++ optional traySupport libdbusmenu-gtk3
++ optional pulseSupport libpulseaudio
++ optional sndioSupport sndio
diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix
new file mode 100644
index 000000000000..0809f835668a
--- /dev/null
+++ b/pkgs/applications/misc/whalebird/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, nodePackages, alsa-lib, gtk3, libxshmfence, mesa, nss }:
+
+stdenv.mkDerivation rec {
+ pname = "whalebird";
+ version = "4.4.5";
+
+ src = fetchurl {
+ url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
+ sha256 = "sha256-CIlj9Sc/hj2UMgQzfHA3iQYO6EPqcndqkNUCBecHq+E=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ makeWrapper
+ nodePackages.asar
+ ];
+
+ buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss ];
+
+ dontConfigure = true;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ # Necessary steps to find the tray icon
+ asar extract opt/Whalebird/resources/app.asar "$TMP/work"
+ substituteInPlace $TMP/work/dist/electron/main.js \
+ --replace "Mo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
+ asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir $out
+ mv usr/share opt $out
+
+ substituteInPlace $out/share/applications/whalebird.desktop \
+ --replace '/opt/Whalebird' $out/bin
+ makeWrapper ${electron}/bin/electron $out/bin/whalebird \
+ --add-flags $out/opt/Whalebird/resources/app.asar
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Electron based Mastodon, Pleroma and Misskey client for Windows, Mac and Linux";
+ homepage = "https://whalebird.social";
+ license = licenses.mit;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/misc/wike/default.nix b/pkgs/applications/misc/wike/default.nix
index fac8ac2886d3..41722edc4c20 100644
--- a/pkgs/applications/misc/wike/default.nix
+++ b/pkgs/applications/misc/wike/default.nix
@@ -14,13 +14,13 @@ let
]);
in stdenv.mkDerivation rec {
pname = "wike";
- version = "1.5.6";
+ version = "1.5.7";
src = fetchFromGitHub {
owner = "hugolabe";
repo = "Wike";
rev = version;
- sha256 = "1qnxzxqjj0sn522k15plskwa7nlhhbcipfc3w17fbq3k2zhpr1yy";
+ sha256 = "sha256-SB+ApuSovqQCaZYPhH+duf+c07JDSSCRz8hTVhEa4gY=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/wmname/default.nix b/pkgs/applications/misc/wmname/default.nix
index cb4f5ec34425..438bd5c5d56a 100644
--- a/pkgs/applications/misc/wmname/default.nix
+++ b/pkgs/applications/misc/wmname/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libX11 }:
stdenv.mkDerivation rec {
- name = "wmname-0.1";
+ pname = "wmname";
+ version = "0.1";
src = fetchurl {
- url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ url = "https://dl.suckless.org/tools/wmname-${version}.tar.gz";
sha256 = "559ad188b2913167dcbb37ecfbb7ed474a7ec4bbcb0129d8d5d08cb9208d02c5";
};
diff --git a/pkgs/applications/misc/xcruiser/default.nix b/pkgs/applications/misc/xcruiser/default.nix
index db7fe260b924..d57eb4878173 100644
--- a/pkgs/applications/misc/xcruiser/default.nix
+++ b/pkgs/applications/misc/xcruiser/default.nix
@@ -1,12 +1,13 @@
{ lib, stdenv, fetchurl, gccmakedep, imake, libXt, libXaw, libXpm, libXext }:
-stdenv.mkDerivation {
- name = "xcruiser-0.30";
+stdenv.mkDerivation rec {
+ pname = "xcruiser";
+ version = "0.30";
src = fetchurl {
- url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz";
- sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
- };
+ url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-${version}/xcruiser-${version}.tar.gz";
+ sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
+ };
nativeBuildInputs = [ gccmakedep imake ];
buildInputs = [ libXt libXaw libXpm libXext ];
diff --git a/pkgs/applications/misc/xfe/default.nix b/pkgs/applications/misc/xfe/default.nix
index 17e58cb54d71..d59b936608c8 100644
--- a/pkgs/applications/misc/xfe/default.nix
+++ b/pkgs/applications/misc/xfe/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, fox, pkg-config, gettext, xlibsWrapper, gcc, intltool, file, libpng }:
stdenv.mkDerivation rec {
- name = "xfe-1.42";
+ pname = "xfe";
+ version = "1.42";
src = fetchurl {
- url = "mirror://sourceforge/xfe/${name}.tar.gz";
+ url = "mirror://sourceforge/xfe/xfe-${version}.tar.gz";
sha256 = "1v1v0vcbnm30kpyd3rj8f56yh7lfnwy7nbs9785wi229b29fiqx1";
};
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- meta = {
+ meta = with lib; {
description = "MS-Explorer like file manager for X";
longDescription = ''
X File Explorer (Xfe) is an MS-Explorer like file manager for X.
@@ -25,8 +26,8 @@ stdenv.mkDerivation rec {
Xfe aims to be the filemanager of choice for all the Unix addicts!
'';
homepage = "https://sourceforge.net/projects/xfe/";
- license = lib.licenses.gpl2;
- maintainers = [];
- platforms = lib.platforms.linux;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/xfontsel/default.nix b/pkgs/applications/misc/xfontsel/default.nix
index 365f6217861b..d056dd66e8da 100644
--- a/pkgs/applications/misc/xfontsel/default.nix
+++ b/pkgs/applications/misc/xfontsel/default.nix
@@ -2,17 +2,20 @@
# at https://www.x.org/releases/individual/.
# That is why this expression is not inside pkgs.xorg
-{lib, stdenv, fetchurl, makeWrapper, libX11, pkg-config, libXaw}:
+{ lib, stdenv, fetchurl, makeWrapper, libX11, pkg-config, libXaw }:
+
stdenv.mkDerivation rec {
- name = "xfontsel-1.0.6";
+ pname = "xfontsel";
+ version = "1.0.6";
src = fetchurl {
- url = "mirror://xorg/individual/app/${name}.tar.bz2";
+ url = "mirror://xorg/individual/app/xfontsel-${version}.tar.bz2";
sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
};
nativeBuildInputs = [ pkg-config makeWrapper ];
- buildInputs = [libX11 libXaw];
+
+ buildInputs = [ libX11 libXaw ];
# Without this, it gets Xmu as a dependency, but without rpath entry
NIX_LDFLAGS = "-lXmu";
@@ -26,11 +29,11 @@ stdenv.mkDerivation rec {
--set XAPPLRESDIR $out/share/X11/app-defaults
'';
- meta = {
+ meta = with lib; {
homepage = "https://www.x.org/";
description = "Allows testing the fonts available in an X server";
- license = lib.licenses.free;
- maintainers = with lib.maintainers; [viric];
- platforms = with lib.platforms; linux ++ darwin;
+ license = licenses.free;
+ maintainers = with maintainers; [ viric ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix
index c0120e33992f..56c078fd9fc6 100644
--- a/pkgs/applications/misc/xmrig/default.nix
+++ b/pkgs/applications/misc/xmrig/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "xmrig";
- version = "6.14.1";
+ version = "6.15.0";
src = fetchFromGitHub {
owner = "xmrig";
repo = "xmrig";
rev = "v${version}";
- sha256 = "sha256-JJ20LKA4gnPXO6d2Cegr3I67k+ZZc69hdL1dTUIF5OM=";
+ sha256 = "sha256-AsYfByiI5W50T/kOhLtD/kUSwDOWMCo33OZ6WGmNcFk=";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xpdf/default.nix b/pkgs/applications/misc/xpdf/default.nix
index e57fb75c11f1..eb5ebf3a7177 100644
--- a/pkgs/applications/misc/xpdf/default.nix
+++ b/pkgs/applications/misc/xpdf/default.nix
@@ -51,11 +51,6 @@ stdenv.mkDerivation rec {
install -Dm644 $src/xpdf-qt/xpdf-icon.svg $out/share/pixmaps/xpdf.svg
'';
- # wrapQtAppsHook broken on macOS (https://github.com/NixOS/nixpkgs/issues/102044)
- postFixup = lib.optionalString stdenv.isDarwin ''
- wrapQtApp $out/bin/xpdf
- '';
-
meta = with lib; {
homepage = "https://www.xpdfreader.com";
description = "Viewer for Portable Document Format (PDF) files";
diff --git a/pkgs/applications/misc/xpdf/libxpdf.nix b/pkgs/applications/misc/xpdf/libxpdf.nix
index 065ca813155d..61c696f1309e 100644
--- a/pkgs/applications/misc/xpdf/libxpdf.nix
+++ b/pkgs/applications/misc/xpdf/libxpdf.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv, fetchurl
+{ lib
+, stdenv
+, fetchurl
}:
stdenv.mkDerivation {
- name = "libxpdf-3.02pl5";
+ pname = "libxpdf";
+ version = "3.02pl5";
src = fetchurl {
url = "https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz";
diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix
index 9ac39d722b56..856f48437f51 100644
--- a/pkgs/applications/misc/xplr/default.nix
+++ b/pkgs/applications/misc/xplr/default.nix
@@ -1,17 +1,19 @@
-{ lib, stdenv, rustPlatform, fetchCrate, libiconv }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv }:
rustPlatform.buildRustPackage rec {
pname = "xplr";
- version = "0.14.7";
+ version = "0.15.2";
- src = fetchCrate {
- inherit pname version;
- sha256 = "sha256-rGU9Jf+MHDs3pnuddqxLaWc8YqL+Ka7Rex+fTuU62sM=";
+ src = fetchFromGitHub {
+ owner = "sayanarijit";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1znb6n9xbzbi9sif76xlwnqrzkh50g9yz6k36m0hm5iacd1fapab";
};
buildInputs = lib.optional stdenv.isDarwin libiconv;
- cargoSha256 = "sha256-GwepsY7PcWjKZpJ7H4D9vtXwd2XGFgG1c+QvinMAG4Q=";
+ cargoSha256 = "0gbhkpha02ymr861av0fmyz6h007ajwkqcajq8hrnfzjk8rii47m";
meta = with lib; {
description = "A hackable, minimal, fast TUI file explorer";
diff --git a/pkgs/applications/misc/xrq/default.nix b/pkgs/applications/misc/xrq/default.nix
index e8e6490cbd64..22ad3d789ac9 100644
--- a/pkgs/applications/misc/xrq/default.nix
+++ b/pkgs/applications/misc/xrq/default.nix
@@ -1,7 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, libX11}:
+{ lib, stdenv, fetchFromGitHub, libX11 }:
stdenv.mkDerivation {
- name = "xrq-unstable-2016-01-15";
+ pname = "xrq";
+ version = "unstable-2016-01-15";
src = fetchFromGitHub {
owner = "arianon";
diff --git a/pkgs/applications/misc/xxkb/default.nix b/pkgs/applications/misc/xxkb/default.nix
index b579579195f6..d6514e58517e 100644
--- a/pkgs/applications/misc/xxkb/default.nix
+++ b/pkgs/applications/misc/xxkb/default.nix
@@ -1,21 +1,35 @@
-{ lib, stdenv, fetchurl, libX11, libXt, libXext, libXpm, imake, gccmakedep
-, svgSupport ? false, librsvg, glib, gdk-pixbuf, pkg-config
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXt
+, libXext
+, libXpm
+, imake
+, gccmakedep
+, svgSupport ? false
+, librsvg
+, glib
+, gdk-pixbuf
+, pkg-config
}:
-assert svgSupport ->
- librsvg != null && glib != null && gdk-pixbuf != null && pkg-config != null;
-
stdenv.mkDerivation rec {
- name = "xxkb-1.11.1";
+ pname = "xxkb";
+ version = "1.11.1";
src = fetchurl {
- url = "mirror://sourceforge/xxkb/${name}-src.tar.gz";
+ url = "mirror://sourceforge/xxkb/xxkb-${version}-src.tar.gz";
sha256 = "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf";
};
nativeBuildInputs = [ imake gccmakedep ];
+
buildInputs = [
- libX11 libXt libXext libXpm
+ libX11
+ libXt
+ libXext
+ libXpm
] ++ lib.optionals svgSupport [ librsvg glib gdk-pixbuf pkg-config ];
outputs = [ "out" "man" ];
@@ -33,11 +47,11 @@ stdenv.mkDerivation rec {
installTargets = [ "install" "install.man" ];
- meta = {
+ meta = with lib; {
description = "A keyboard layout indicator and switcher";
homepage = "http://xxkb.sourceforge.net/";
- license = lib.licenses.artistic2;
- maintainers = with lib.maintainers; [ rasendubi ];
- platforms = lib.platforms.linux;
+ license = licenses.artistic2;
+ maintainers = with maintainers; [ rasendubi ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/xygrib/default.nix b/pkgs/applications/misc/xygrib/default.nix
index 864ea27ede77..580faa360268 100644
--- a/pkgs/applications/misc/xygrib/default.nix
+++ b/pkgs/applications/misc/xygrib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg }:
+{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj_7, libpng, openjpeg }:
stdenv.mkDerivation rec {
version = "1.2.6.1";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
- buildInputs = [ bzip2 qtbase libnova proj openjpeg libpng ];
+ buildInputs = [ bzip2 qtbase libnova proj_7 openjpeg libpng ];
cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-${lib.versions.majorMinor openjpeg.version}" ]
++ lib.optionals stdenv.isDarwin [ "-DLIBNOVA_LIBRARY=${libnova}/lib/libnova.dylib" ];
diff --git a/pkgs/applications/misc/yarssr/default.nix b/pkgs/applications/misc/yarssr/default.nix
index 93e8f1fc9d75..d031f63a097a 100644
--- a/pkgs/applications/misc/yarssr/default.nix
+++ b/pkgs/applications/misc/yarssr/default.nix
@@ -2,16 +2,33 @@
let
perlDeps = with perlPackages; [
- Glib Gtk2 Gnome2 Pango Cairo Gnome2Canvas Gnome2VFS Gtk2GladeXML Gtk2TrayIcon
- XMLLibXML XMLSAXBase XMLParser XMLRSS
+ Glib
+ Gtk2
+ Gnome2
+ Pango
+ Cairo
+ Gnome2Canvas
+ Gnome2VFS
+ Gtk2GladeXML
+ Gtk2TrayIcon
+ XMLLibXML
+ XMLSAXBase
+ XMLParser
+ XMLRSS
HTMLParser
- DateTime DateTimeFormatMail DateTimeFormatW3CDTF DateTimeLocale DateTimeTimeZone
+ DateTime
+ DateTimeFormatMail
+ DateTimeFormatW3CDTF
+ DateTimeLocale
+ DateTimeTimeZone
ParamsValidate
- ModuleImplementation ModuleRuntime
+ ModuleImplementation
+ ModuleRuntime
TryTiny
ClassSingleton
URI
- AnyEvent AnyEventHTTP
+ AnyEvent
+ AnyEventHTTP
commonsense
FileSlurp
JSON
@@ -24,7 +41,7 @@ let
];
in
stdenv.mkDerivation {
- version = "git-2017-12-01";
+ version = "unstable-2017-12-01";
pname = "yarssr";
src = fetchFromGitHub {
@@ -35,7 +52,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ perlPackages.perl gettext makeWrapper ];
- buildInputs = perlDeps ++ [gnome2.libglade];
+ buildInputs = perlDeps ++ [ gnome2.libglade ];
propagatedBuildInputs = libs ++ perlDeps;
installPhase = ''
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
index 77ff11b98622..65aca548e4c3 100644
--- a/pkgs/applications/misc/zettlr/default.nix
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -10,11 +10,11 @@
# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
let
pname = "zettlr";
- version = "1.8.9";
+ version = "2.0.2";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
- sha256 = "sha256-1cU9HdPXrJ4ibSjOitO8iJfMIaGub/jjlb2lssYFfcU=";
+ sha256 = "sha256-AUGfD7FFB5+pfKyIqvychD4mvFU+GTRneQTRI+8bwBM=";
};
appimageContents = appimageTools.extractType2 {
inherit name src;
@@ -31,9 +31,9 @@ appimageTools.wrapType2 rec {
extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ texlive pandoc ];
extraInstallCommands = ''
mv $out/bin/{${name},${pname}}
- install -m 444 -D ${appimageContents}/Zettlr.desktop $out/share/applications/zettlr.desktop
- install -m 444 -D ${appimageContents}/Zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
- substituteInPlace $out/share/applications/zettlr.desktop \
+ install -m 444 -D ${appimageContents}/Zettlr.desktop $out/share/applications/Zettlr.desktop
+ install -m 444 -D ${appimageContents}/Zettlr.png $out/share/icons/hicolor/512x512/apps/Zettlr.png
+ substituteInPlace $out/share/applications/Zettlr.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index 52e3b9d847df..6c24f65d7624 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices, installShellFiles }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, cmake
+, pkg-config
+, openssl
+, oniguruma
+, CoreServices
+, installShellFiles
+, libsass
+}:
rustPlatform.buildRustPackage rec {
pname = "zola";
@@ -13,9 +24,18 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n";
- nativeBuildInputs = [ cmake pkg-config installShellFiles];
- buildInputs = [ openssl oniguruma ]
- ++ lib.optional stdenv.isDarwin CoreServices;
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ installShellFiles
+ ];
+ buildInputs = [
+ openssl
+ oniguruma
+ libsass
+ ] ++ lib.optionals stdenv.isDarwin [
+ CoreServices
+ ];
RUSTONIG_SYSTEM_LIBONIG = true;
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index c509941b8f1f..a60f9da39bc6 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -42,6 +42,7 @@
, zlib
, xdg-utils
, wrapGAppsHook
+, commandLineArgs ? ""
}:
let
@@ -92,11 +93,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
- version = "1.29.77";
+ version = "1.31.91";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
- sha256 = "LJykdig44ACpvlaGogbwrbY9hCJT3CB4ZKDZ/IzaBOU=";
+ sha256 = "LuzflA96UQehLHUVYdPDTXs+YuFLEkpzTdO2liGrWtE=";
};
dontConfigure = true;
@@ -126,7 +127,7 @@ stdenv.mkDerivation rec {
ln -sf $BINARYWRAPPER $out/bin/brave
- for exe in $out/opt/brave.com/brave/{brave,crashpad_handler}; do
+ for exe in $out/opt/brave.com/brave/{brave,chrome_crashpad_handler}; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" $exe
@@ -158,6 +159,11 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
+ preFixup = ''
+ # Add command line args to wrapGApp.
+ gappsWrapperArgs+=(--add-flags ${lib.escapeShellArg commandLineArgs})
+ '';
+
installCheckPhase = ''
# Bypass upstream wrapper which suppresses errors
$out/opt/brave.com/brave/brave --version
diff --git a/pkgs/applications/networking/browsers/castor/default.nix b/pkgs/applications/networking/browsers/castor/default.nix
index ae8b7c723ecc..71b4593c40d4 100644
--- a/pkgs/applications/networking/browsers/castor/default.nix
+++ b/pkgs/applications/networking/browsers/castor/default.nix
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage rec {
pname = "castor";
- version = "0.8.16";
+ version = "0.8.18";
src = fetchFromSourcehut {
owner = "~julienxx";
repo = pname;
rev = version;
- sha256 = "0rwg1w7srjwa23mkypl8zk6674nhph4xsc6nc01f6g5k959szylr";
+ sha256 = "sha256-sv6hiSTVFe3jxNuaM6Jyn7UeqFqUNmRvYtWfkJTJ4tA=";
};
- cargoSha256 = "0dm3walwi3vzpk69l7nz6yl6w49676x8pjnigpn67q4bn7lpaqb1";
+ cargoSha256 = "sha256-/IHxvTW9VYZmgjmDh0zJFDQqfw/H5CXVwEuLKq6Hnys=";
nativeBuildInputs = [
pkg-config
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index 8b80f8f8a6ef..96729f1dcda6 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -19,8 +19,7 @@ mkChromiumDerivation (base: rec {
cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
- ${lib.optionalString (!chromiumVersionAtLeast "94") ''cp -v "$buildPath/crashpad_handler" "$libExecPath/"''}
- ${lib.optionalString (chromiumVersionAtLeast "94") ''cp -v "$buildPath/chrome_crashpad_handler" "$libExecPath/"''}
+ cp -v "$buildPath/chrome_crashpad_handler" "$libExecPath/"
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
# Swiftshader
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index fac1537a7c7e..e88c1fa1b94a 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -6,7 +6,7 @@
# Native build inputs:
, ninja, pkg-config
-, python2, python3, perl
+, python3, perl
, gnutar, which
, llvmPackages
# postPatch:
@@ -34,6 +34,7 @@
, libva
, libdrm, wayland, libxkbcommon # Ozone
, curl
+, epoxy
# postPatch:
, glibc # gconv + locale
@@ -53,12 +54,13 @@ buildFun:
with lib;
let
- python2WithPackages = python2.withPackages(ps: with ps; [
- ply jinja2 setuptools
- ]);
python3WithPackages = python3.withPackages(ps: with ps; [
ply jinja2 setuptools
]);
+ clangFormatPython3 = fetchurl {
+ url = "https://chromium.googlesource.com/chromium/tools/build/+/e77882e0dde52c2ccf33c5570929b75b4a2a2522/recipes/recipe_modules/chromium/resources/clang-format?format=TEXT";
+ sha256 = "0ic3hn65dimgfhakli1cyf9j3cxcqsf1qib706ihfhmlzxf7256l";
+ };
# The additional attributes for creating derivations based on the chromium
# source tree.
@@ -85,9 +87,7 @@ let
in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
# https://source.chromium.org/chromium/chromium/src/+/master:build/linux/unbundle/replace_gn_files.py
- gnSystemLibraries = lib.optionals (!chromiumVersionAtLeast "95") [
- "zlib"
- ] ++ [
+ gnSystemLibraries = [
# TODO:
# "ffmpeg"
# "snappy"
@@ -125,7 +125,7 @@ let
nativeBuildInputs = [
ninja pkg-config
- python2WithPackages python3WithPackages perl
+ python3WithPackages perl
gnutar which
llvmPackages.bintools
];
@@ -150,6 +150,8 @@ let
libva
libdrm wayland mesa.drivers libxkbcommon
curl
+ ] ++ optionals (chromiumVersionAtLeast "96") [
+ epoxy
] ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals cupsSupport [ libgcrypt cups ]
@@ -160,21 +162,6 @@ let
./patches/no-build-timestamps.patch
# For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags:
./patches/widevine-79.patch
- ] ++ lib.optionals (versionRange "91" "94") [
- # Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
- ./patches/fix-missing-atspi2-dependency.patch
- # Required as dependency for the next patch:
- (githubPatch {
- # Reland "Reland "Linux sandbox syscall broker: use struct kernel_stat""
- commit = "4b438323d68840453b5ef826c3997568e2e0e8c7";
- sha256 = "1lf6yilx2ffd3r0840ilihp4px35w7jvr19ll56bncqmz4r5fd82";
- })
- # To fix the text rendering, see #131074:
- (githubPatch {
- # Linux sandbox: fix fstatat() crash
- commit = "60d5e803ef2a4874d29799b638754152285e0ed9";
- sha256 = "0apmsqqlfxprmdmi3qzp3kr9jc52mcc4xzps206kwr8kzwv48b70";
- })
];
postPatch = ''
@@ -196,7 +183,7 @@ let
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
fi
- chmod -x third_party/webgpu-cts/src/tools/deno
+ chmod -x third_party/webgpu-cts/src/tools/${lib.optionalString (chromiumVersionAtLeast "96") "run_"}deno
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
@@ -227,6 +214,9 @@ let
# Allow to put extensions into the system-path.
sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
+ # We need the fix for https://bugs.chromium.org/p/chromium/issues/detail?id=1254408:
+ base64 --decode ${clangFormatPython3} > buildtools/linux64/clang-format
+
patchShebangs .
# Link to our own Node.js and Java (required during the build):
mkdir -p third_party/node/linux/node-linux-x64/bin
@@ -253,6 +243,7 @@ let
# e.g. unsafe developer builds have developer-friendly features that may
# weaken or disable security measures like sandboxing or ASLR):
is_official_build = true;
+ disable_fieldtrial_testing_config = true;
# Build Chromium using the system toolchain (for Linux distributions):
custom_toolchain = "//build/toolchain/linux/unbundle:default";
host_toolchain = "//build/toolchain/linux/unbundle:default";
@@ -289,10 +280,6 @@ let
enable_widevine = true;
# Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture:
rtc_use_pipewire = true;
- } // optionalAttrs (!chromiumVersionAtLeast "94") {
- fieldtrial_testing_like_official_build = true;
- } // optionalAttrs (chromiumVersionAtLeast "94") {
- disable_fieldtrial_testing_config = true;
} // optionalAttrs proprietaryCodecs {
# enable support for the H.264 codec
proprietary_codecs = true;
@@ -326,7 +313,7 @@ let
# This is to ensure expansion of $out.
libExecPath="${libExecPath}"
- ${python2}/bin/python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
+ ${python3}/bin/python3 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
# Fail if `gn gen` contains a WARNING.
diff --git a/pkgs/applications/networking/browsers/chromium/patches/fix-missing-atspi2-dependency.patch b/pkgs/applications/networking/browsers/chromium/patches/fix-missing-atspi2-dependency.patch
deleted file mode 100644
index 9417b30159d7..000000000000
--- a/pkgs/applications/networking/browsers/chromium/patches/fix-missing-atspi2-dependency.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 6c5b9197076f6f384112e6566039116c56600909 Mon Sep 17 00:00:00 2001
-From: Michael Weiss
-Date: Sat, 10 Apr 2021 13:53:50 +0200
-Subject: [PATCH] Fix a missing atspi2 dependency
-
-See https://bugs.chromium.org/p/chromium/issues/detail?id=1197837 for
-more details.
----
- content/public/browser/BUILD.gn | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn
-index 7e7c436d90c7..20ef832f1d8c 100644
---- a/content/public/browser/BUILD.gn
-+++ b/content/public/browser/BUILD.gn
-@@ -535,6 +535,7 @@ source_set("browser_sources") {
-
- if (use_atk) {
- sources += [ "ax_inspect_factory_auralinux.cc" ]
-+ configs += [ "//build/config/linux/atspi2" ]
- }
-
- if (is_linux || is_chromeos) {
---
-2.20.1
-
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 676553c5731a..624dde9e1702 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,26 +1,8 @@
{
"stable": {
- "version": "93.0.4577.82",
- "sha256": "0lr8zdq06smncdzd6knzww9hxl8ynvxadmrkyyl13fpwb1422rjx",
- "sha256bin64": "0ydvcakpnl20gx7493hv6aqnyf8f28rkvzgwnm4gws92b92n9ify",
- "deps": {
- "gn": {
- "version": "2021-07-08",
- "url": "https://gn.googlesource.com/gn",
- "rev": "24e2f7df92641de0351a96096fb2c490b2436bb8",
- "sha256": "1lwkyhfhw0zd7daqz466n7x5cddf0danr799h4jg3s0yvd4galjl"
- }
- },
- "chromedriver": {
- "version": "93.0.4577.63",
- "sha256_linux": "0w2lyjj0y9g1wnvk1sg2wi9dvhbjhdz1jb20rlrp5ny2gak6a47b",
- "sha256_darwin": "11420nflyfvf95hxj488336jq6xqjn4lcrwpr67rj2fx6ganji7z"
- }
- },
- "beta": {
- "version": "94.0.4606.50",
- "sha256": "1aqy9bvypx66bvn5p15g94p47yfbal8mixs1d0j82pznqnqgph1z",
- "sha256bin64": "07hq4qnbgq6m43zhipgy84yhiiy1fs6ffjkgsi8ixhr9b5pipzpv",
+ "version": "95.0.4638.69",
+ "sha256": "1rzg48mbd5n75nq2rfwknyxpmfrddds199ic82c736kcgirpv8rq",
+ "sha256bin64": "1jhxm12sdlgvgnny0p56xsfyxd78mwn9qwc20c33qfvwxrzp9ajp",
"deps": {
"gn": {
"version": "2021-08-11",
@@ -28,35 +10,53 @@
"rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263",
"sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
}
+ },
+ "chromedriver": {
+ "version": "95.0.4638.54",
+ "sha256_linux": "0p228x7w423p3zqwfdba2jj4x4gkxz4267qzzswpba335p3k1nyk",
+ "sha256_darwin": "1yxi8c18fa07w8kdm63v4663lhgx1y56957bkqb7hf459bzz594l"
+ }
+ },
+ "beta": {
+ "version": "96.0.4664.45",
+ "sha256": "01q4fsf2cbx6g9nnaihvc5jj3ap8jq2gf16pnhf7ixzbhgcnm328",
+ "sha256bin64": "1vaazcrlx0999xd9yp25i9kzb8y8g0yqd28xssw7jqwrhz033wgr",
+ "deps": {
+ "gn": {
+ "version": "2021-09-24",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "0153d369bbccc908f4da4993b1ba82728055926a",
+ "sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
+ }
}
},
"dev": {
- "version": "95.0.4638.10",
- "sha256": "0pgd5k24yly9fqpzigc5qqx6lvn6m95fjp7294cgmk0132icx71j",
- "sha256bin64": "1gfaal3yxmi1n2nvfp39xp82g8vykzm0fjbdk0c1wh4gvlq2xx85",
+ "version": "97.0.4692.8",
+ "sha256": "0n47jfxs05g55p69f5939jf5pgyw88n4cpg78k019n3zr2vlv1qf",
+ "sha256bin64": "1gisqc6dz7yfigj0dji7cnx5jdcjz0gmn248cp2a6zs9mfvwwbqv",
+ "deps": {
+ "gn": {
+ "version": "2021-11-03",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "90294ccdcf9334ed25a76ac9b67689468e506342",
+ "sha256": "0n0jml8s00ayy186jzrf207hbz70pxiq426znxwxd4gjcp60scsa"
+ }
+ }
+ },
+ "ungoogled-chromium": {
+ "version": "95.0.4638.69",
+ "sha256": "1rzg48mbd5n75nq2rfwknyxpmfrddds199ic82c736kcgirpv8rq",
+ "sha256bin64": "1jhxm12sdlgvgnny0p56xsfyxd78mwn9qwc20c33qfvwxrzp9ajp",
"deps": {
"gn": {
"version": "2021-08-11",
"url": "https://gn.googlesource.com/gn",
"rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263",
"sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
- }
- }
- },
- "ungoogled-chromium": {
- "version": "93.0.4577.82",
- "sha256": "0lr8zdq06smncdzd6knzww9hxl8ynvxadmrkyyl13fpwb1422rjx",
- "sha256bin64": "0ydvcakpnl20gx7493hv6aqnyf8f28rkvzgwnm4gws92b92n9ify",
- "deps": {
- "gn": {
- "version": "2021-07-08",
- "url": "https://gn.googlesource.com/gn",
- "rev": "24e2f7df92641de0351a96096fb2c490b2436bb8",
- "sha256": "1lwkyhfhw0zd7daqz466n7x5cddf0danr799h4jg3s0yvd4galjl"
},
"ungoogled-patches": {
- "rev": "93.0.4577.82-1",
- "sha256": "199f78f5gvnkpkcvh7587pk35jslkszhvv1d648b4qphzxmw7c66"
+ "rev": "95.0.4638.69-1",
+ "sha256": "19azr4m4rd6za9vgcggijyq9x54jrjp0n07y4falgjrdz9q4f7aj"
}
}
}
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index 50ada47a4446..dbe25ea06a94 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -13,13 +13,13 @@ assert enablePython -> python != null;
stdenv.mkDerivation rec {
pname = "elinks";
- version = "0.14.2";
+ version = "0.14.3";
src = fetchFromGitHub {
owner = "rkd77";
repo = "felinks";
rev = "v${version}";
- sha256 = "sha256-/VsxMpITBDKJqyMwl1oitS8aUM4AziibV/OHRSHbRjg=";
+ sha256 = "sha256-vyzuMU2Qfz8DMRP0+QQmSx8J40ADTMJqg2jQOZJQxUA=";
};
buildInputs = [
diff --git a/pkgs/applications/networking/browsers/ephemeral/default.nix b/pkgs/applications/networking/browsers/ephemeral/default.nix
index 1fea44e66279..7ff3b843bc22 100644
--- a/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3;
+ mainProgram = "com.github.cassidyjames.ephemeral";
};
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index d14d5b3215b9..213efa8d9983 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,975 +1,985 @@
{
- version = "90.0b6";
+ version = "94.0b2";
sources = [
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ach/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ach/firefox-94.0b2.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha256 = "07c06ddfe0b2d3f4acc89a8bd5de963ae8fb90aedb7710272adbccac178af867";
+ sha256 = "edbac6e1811e97cf9c8f9b4b65ad0709722330adeaa521314144bd34fdd4a182";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/af/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/af/firefox-94.0b2.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "b01b6f591d815e2dd3c0bb129952a4a5dbfc7f93d9eed2d61b8c387135768462";
+ sha256 = "437bb41be38350ba7c3962475d0fad1e3186379b93f751755978187960d27704";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/an/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/an/firefox-94.0b2.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha256 = "aebbf9e5edce5aa4a01b3dea5342d2335dadca261124f9557d727a2f03c5a123";
+ sha256 = "bd264763fd5cf9272736595e1b96509c6558561f49664960e14f4c87364f871f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ar/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ar/firefox-94.0b2.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "842c29a5aa563d1f386ed74820ba2cce763e86f8d86a943295b959a51bd8bf27";
+ sha256 = "af3bd5415b279f90b625716217bdf25c3f8b51cbd0969c944755043150b7f069";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ast/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ast/firefox-94.0b2.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "8fe01d2193b4d60ce2134ebc5848abf6621cc49bc76d08890ce7588ac2d81311";
+ sha256 = "b83760c915d1508188cbc1d02ce210ab6ae4847b42f4e03f37b75134808a9576";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/az/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/az/firefox-94.0b2.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha256 = "e5a929e0eb95a09ec408aa831853b1a5859bb0b1f3b133677568f18bc7ba5a31";
+ sha256 = "7e28431db70a3a7c8bbedadd2e1abb32f3b69c8f571eb1f2e0cdc7d2c4097f9f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/be/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/be/firefox-94.0b2.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "32533dc55222e7e407b386f46d55ae78dc61581ec7653bbe9f8e9859b4d191ce";
+ sha256 = "07b286100cd63f4b700c7f7ba88692010cc27b281a31ba411f65d4cb8071b7ce";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/bg/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bg/firefox-94.0b2.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "2d561a690d625cfff4fe163dda26eac5424e89b74bd6385543238c9e85abf39b";
+ sha256 = "8d1e1bdccd06eca90a233660c20a7e2127c0a352ef897f582924f377d5d1c4e6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/bn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bn/firefox-94.0b2.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha256 = "3cec173b9c23137d935221d715bfeb87353bc87bd316a219c8063b5977422bc8";
+ sha256 = "d2b113a70009d5a5c9699882e8df8a707bb7faa3a2d37c3f84b63157c3d30cf6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/br/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/br/firefox-94.0b2.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "ab9bd15850209de8d7ad1ef33f50c132babc2c6e70b4ceddee84081f2707b6ab";
+ sha256 = "0535bfe128414d7fd30eac04590c5932387d035fbf35d2d29048894b5267af90";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/bs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bs/firefox-94.0b2.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha256 = "9f9c87c0bf0a08c23dc30b29bcfb79634a52dccfa945a4593451f6230e373686";
+ sha256 = "9dcfc9a016456ef20177a0ab5296b661a06c7738329e5d4c18637d42c6399e89";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ca-valencia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ca-valencia/firefox-94.0b2.tar.bz2";
locale = "ca-valencia";
arch = "linux-x86_64";
- sha256 = "21900bc7c61ebbf34f45da1b4740a722e00d6c0d27042a89e006fd99485e7b60";
+ sha256 = "bec81b4ea39288303c6a62383b24589defea2ed35e71b355e67bf852c432cb57";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ca/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ca/firefox-94.0b2.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "6ccec2ac83ab36fb72a8db9293622d7b1c6fe55d1fb8ec6421a64e1210e7e0a1";
+ sha256 = "1f3b8416e7683c6d81cf6f0c90a7dd74a6d0dc251e6c14d5eeed2b7de1530cea";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/cak/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cak/firefox-94.0b2.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "7610d94fa66da37689abd3fa79e0703d77f68457c77287e5e61e66169baf7473";
+ sha256 = "162a8ffdc7b3840528f632278a1acb7f9ff23899f88ca898cde8ae0574ca37ea";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/cs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cs/firefox-94.0b2.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "6241b68e5618b474b86529222f5a646f426983eb9e39b2a4d7c3d261cd26f4e2";
+ sha256 = "160234bbd7a68ab3376f37487385af9ee8d692298bf62cf2e4577636ccc34a60";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/cy/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cy/firefox-94.0b2.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "b981946aec3128a3e7da3ca76f7815373dc8963ed01d495ee02941954ca42fca";
+ sha256 = "f876e1ce0b9db06f1de275b3cdf9b8ac9481860a70689846191dd7c68dc6ae8a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/da/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/da/firefox-94.0b2.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "c59f28aef1af64d1cf83e0e5e9ba4bd15be593da27e88e6ea7edaed80a3a64b5";
+ sha256 = "980651fba5ead97dcdb05ea2f0b1dccc2947c985e2ab65aed8c239d1c85518eb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/de/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/de/firefox-94.0b2.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "b9cd59a9b7ca024f6931d8e25962349346d8c279d3c7983f1a76681784c38efc";
+ sha256 = "430c4a2cad2d9cf170332bb8abd6e66d084e7e1221b63dcb7993d04d9c713aeb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/dsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/dsb/firefox-94.0b2.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "e185f4b874beeacca38bfde59958eb277ce83fcf47eee4cc16065e350707e52d";
+ sha256 = "92e9665c4c6f01112374b4ff1b2778c020459a970a1dceafbe1257d9ad519f4e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/el/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/el/firefox-94.0b2.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "ed323fc4a677afa40b1073640dc3fe9e5f49906842684677694a1c85d042c988";
+ sha256 = "2db0291b5a827f86c2fa8c33770d1bc8ad88873e2d451b57df40c0546d776d5b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/en-CA/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-CA/firefox-94.0b2.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "3c495c341ab226b13cca26fb4d1e79ba8a763c2944374f417b0d1d1e3afb6e64";
+ sha256 = "84330d6f6e648f996b8eb54f999a54f8c552f55a4cd17cb8aa2065d296692a0d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/en-GB/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-GB/firefox-94.0b2.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "00d888cf643780473aa480c0a0ded49ad22b76ee0b902062cf014f140ddd2530";
+ sha256 = "3f46d8f80747adb4f619806b8450569d6bbaa259792b9ebe9e4d7a3df54522d0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/en-US/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-US/firefox-94.0b2.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "4421542a7a8d968b4e705852ca76ec4bed857c57df0d10afab17f27b701712e8";
+ sha256 = "90a836f289c72d09b26968516df7fdfba4d1f19e035b102dcabf5c69e4c6306b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/eo/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/eo/firefox-94.0b2.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha256 = "db89780192cd14f0fb43ac2974c7c8a72e1896ddcf2db7ff3f6eea9f2788051a";
+ sha256 = "a01c2871905b78d8e2f6f53bcce50a1446cbf4595e38f21a8e9c74ffc0305b8f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-AR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-AR/firefox-94.0b2.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "60cd22340342b689e12cabf13ae33a2af3a5ecc6dad5b5e15851fcec0405652b";
+ sha256 = "5e6dbece8a54d5f384bab627e92f3481e3a3823a259d93a152f5e71f92f6d524";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-CL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-CL/firefox-94.0b2.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha256 = "7524fa67ed3246fac49622fb360ddb9ca5b91cc0bdb7eb64d881bf9851dd9128";
+ sha256 = "8ca362a3be8bb77fe390e96b23d04bc0902c49c9adbdde37c310703d9dda78b9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-ES/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-ES/firefox-94.0b2.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "641c8f48694184ff77db1b7825317f623deae42acafccce35cf7b8b95d38d45e";
+ sha256 = "1705fd9cef5991a0f88cc7c62412a2a6573a2aeac0514ffccbaa4dc663f94314";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-MX/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-MX/firefox-94.0b2.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha256 = "e0c808695678e844efe04926bab17168fef0a97f8b125e724c4ebc606a5fc513";
+ sha256 = "8da27496f7674cea873dfe963e9e87871e9648c33cc4fa6eff0cc0717263bbb8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/et/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/et/firefox-94.0b2.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "64fc3ac8c3614cb128f7174802dc101b5c36a92fee5cd6dbd826f505e85c149d";
+ sha256 = "56ce06fec63fd6bcb9c71ac5cb5375864b2e8f9967e1a3d03dad37454dc9fa01";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/eu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/eu/firefox-94.0b2.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "e7bb62c4f6d4a00b0837fb720c08923f057610267ef97b0090ae8767c26e6867";
+ sha256 = "03b0f33d0d960c044fe80990404e1f9480843cac11100769bc52f6cc32ffd5ff";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fa/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fa/firefox-94.0b2.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha256 = "038a1f723017141ae12ec15a6fec3fc6a49cbdd6244d237c18cd36c70ea6e6d9";
+ sha256 = "ea75b853ec5807b6e292c2fb0cb44f7529d9f9047892f03a674c24e0455b146c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ff/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ff/firefox-94.0b2.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha256 = "e2c1d68ee029e3f1064277dc6c3844bdbbe3eb28b0492c1299ed6f8a9351ab56";
+ sha256 = "99f3232c806671f4d1099c2b3e72d5511a3377dbd601e9880c36f4c6db9d25fe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fi/firefox-94.0b2.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "c5e4dff35094ff645272bf402e4c56908b6df7b5c7d6b6925e86528d3ced89af";
+ sha256 = "c99f94936820657990d9aec946e664b7f607412df03d9ee9a87b5bfaaed4d66a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fr/firefox-94.0b2.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "502f35f69f5f04477678f183e40f8958aa095724e65254cbbdaa9c72c1a40ed7";
+ sha256 = "f053084b00a5c22e1e0e257226c46716fed3425293ce8e57cc58f6a0e7c6bf76";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fy-NL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fy-NL/firefox-94.0b2.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "e353afc86a7b6c452870587b13fa093883e7680f2e44a14c94563d12d50de622";
+ sha256 = "587dfd7904bf5d077a8f61417bd635547e71e2926980730b9ee93fa83109e7a5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ga-IE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ga-IE/firefox-94.0b2.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "10cb0a4ee3c42035a06e509a74e632dc269c407efb8dbad40bc4dfc2b2d6b9d4";
+ sha256 = "4a549683496ad19adb87c87c01eb296cea59d309c494f55f7512d9ac3fa23f7b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gd/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gd/firefox-94.0b2.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "8cc1603bd589fb910df22b47a8d7e3611cff371deea4eb634127b68a523221df";
+ sha256 = "bc8a38559c327121f2c8d89a8f511446db83ff2fb9c554661020b8624ff5790d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gl/firefox-94.0b2.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "b4867bf6406854f80dd402ab3f1ad1e20b7acae7e93587831913144e690cc84f";
+ sha256 = "9412b3f98618a40e4e66542db3892f4d276d25d3ce86c336fe3297edcd9c64e1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gn/firefox-94.0b2.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha256 = "555a76d9915a471f134d8f3986e7afca341d201bcad73d90d5751d8ec86c17c3";
+ sha256 = "1664f221bc7a6faad6eb1cbb2fcbf083626f80883703506a8a79eb9562e02a0e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gu-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gu-IN/firefox-94.0b2.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha256 = "c72f1b40d5a9fbe689b76b3a0010ee1838b8b7fd7126dccb2a7c8907a87db0a4";
+ sha256 = "556e8f38a0743a421a4fabf658eaccada707e8f3164c9eab7dbfdf8b301fea3c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/he/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/he/firefox-94.0b2.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "e63f1e83785b777dbf9c69982c314684937dc22456b19eb1e8e83c87af511938";
+ sha256 = "aedd0af01b30b582d601bbd6c52234218c702eff7eb17d0af6c6c6aff838f984";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hi-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hi-IN/firefox-94.0b2.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha256 = "41e02c58459a2b2e4dfee5ba4d8dce6fda51fd85ddcf7a4d18426d25b9049aa7";
+ sha256 = "879bb929c4f871536eba1c479148ebeda4d6651dfcb9832fd981673e3eeec850";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hr/firefox-94.0b2.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "5b4122ac4367a88de9d8551498633d396630ac4fbaa7012408382e8e7dbfd27f";
+ sha256 = "ec26e00627ee66b2d4113871e13995b4e60dc91088db30d318ace4f9bea4e903";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hsb/firefox-94.0b2.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "ec1d030b1980e747c415d6238cc5868c24ff6393cce6489f4775926e00fe55e6";
+ sha256 = "7950d84ad252c9ff6e01d7ae3506a1dd69b9d9a118f2df2e5234a5a987651f0e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hu/firefox-94.0b2.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "214f1dc79bd09d1f5e4dbba1311ebfbfd47ac4a418da2f6adb6c8c6285bfc4b4";
+ sha256 = "9700bd647b0a074ffbeb2c1b71b422d0a15a7da1055c92c29897abbb7f54c4ee";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hy-AM/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hy-AM/firefox-94.0b2.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "fddc2c4c13595e480696924cea10e5caeea81fb775d01a91e7b13a6701a1cd2a";
+ sha256 = "5c8e6dd327ca3b07e64c9e2e33d31fcdfffdff8c716577a0a89ba680635c8c61";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ia/firefox-94.0b2.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha256 = "39402ff53caddb69cb6248afbcc37814536fc0cd4767a2096923089168f48a46";
+ sha256 = "465094fd3b6f035df4f603ca55acfa8c75665d5b92e3527973dbc26697913105";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/id/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/id/firefox-94.0b2.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "d2143e50a0f6bb19ce038e5fcc83530bbd5c781bb104da3a29d870f00acd2001";
+ sha256 = "ea3dea0c2a091707341f19f64995bf6a41980be8ad915eb547876f34bd8b5e8d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/is/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/is/firefox-94.0b2.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "e2b035ece9d2911d131fb40eee6bd8f9c40506cc812978bce0bcf317ea9c8ef1";
+ sha256 = "dbb1a792245c9e0fe6fad749da27679d45d0d892044e9779b25143d2d34d247e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/it/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/it/firefox-94.0b2.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "a2c3ddfeba658b8c58b77e6abd6aaf2c4141c73b0ee6363e391f08f5a94e8ec4";
+ sha256 = "dda28b54be15f43ecacbf490099270cc1cd279b6801a2bbe84cb8c0ba092ff27";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ja/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ja/firefox-94.0b2.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "ea7c40e0d00a1d8d72d7cd397bbe7533959e1e715a2a7df8a205ce6e98d26fca";
+ sha256 = "e023f941584bd89e9465076aa1912774d64d8430ad7bc75d8bd5f4cdd1b6efbd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ka/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ka/firefox-94.0b2.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "24c62141ec5bddfc431690bd21428bbf8ad07d7fecc9acdc242565a2dfe5fe91";
+ sha256 = "24ee80944e4101353f5126d2cdbb2d9f1023656ac638f3975558efb24b13378d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/kab/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kab/firefox-94.0b2.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "de40edc25528e7cff904d14feac97dd282067e27793a4d2a85311c260be4262c";
+ sha256 = "d5bc4455950dd952a936247b0f3ef5a4fd2047bba599c229bf2b7c04e716d7da";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/kk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kk/firefox-94.0b2.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "a4daf7b8c77661f2dc211c6e4a4432de8c57e34be48556b707f167f7333f0a25";
+ sha256 = "85ec8a29e24aa5362fe4b3b397571c2bd479348ce63c2adf63e8006b7555aca3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/km/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/km/firefox-94.0b2.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha256 = "6d4a3eb396871b35e4d880c98e48dd5dfd92e66b09a80066c20543f95ab3cfbb";
+ sha256 = "a9fdb04131c7b761426b68748b491dcbf1ddee41e063dc222045ee84fb2eab2c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/kn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kn/firefox-94.0b2.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha256 = "ff5e9d651cb9224dde03d207042c5ee4312359d9b111839269eaadff49d2efb5";
+ sha256 = "3de931130e6136287fcd0983e975188c3110611f14f28838f439149ad00b0a74";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ko/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ko/firefox-94.0b2.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "3433149001e07215dcce9f3b934edf5f188b8e88725a01372fb1e831f0dc00f7";
+ sha256 = "17012e23c8dcc5c136377ebdd6e0c4035eff9e4a605bd61df21ea5b2ed9f0189";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/lij/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lij/firefox-94.0b2.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha256 = "79434cc64d0acbed593f3c859ef15623333239d2868d0b797e6e51252778466c";
+ sha256 = "96ccf4a71bc2feff202374a63330c4e064ea0d50c6687bc5fd2c372116e1dfcd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/lt/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lt/firefox-94.0b2.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "efb3302005785dc6fd7aa464c591978f11637e89aca3a6f41d4d855970fe68d9";
+ sha256 = "2eb4c4b355888e9b540d1290d7aea0f0a0dfe3eb0d03e278b1fa20eae43cbeff";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/lv/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lv/firefox-94.0b2.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "7940ac6685d94144e758f703511946aa422f7a9303f6e8461d29b65178068d3d";
+ sha256 = "27cf7a6f9cb6ff304ed6169fe97e519e19049e9608f7cf08313c36d7b1640e08";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/mk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/mk/firefox-94.0b2.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha256 = "adfc49b40832942760d996da4e659c672def298159de535b03daf5064ebbb049";
+ sha256 = "1cb76b49d0323c194f47bd64a8df186c9724de25449b3f6cde123425436a4d6d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/mr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/mr/firefox-94.0b2.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha256 = "1212c04fb5b1a114b49562534e65c4983bfade7ae9290290e1b51f999476fdbe";
+ sha256 = "7a60b912f369d9f344b0fee98c4108ccf87cb643712bd7033bbb139634e1471d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ms/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ms/firefox-94.0b2.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "4172e9dd98806535b22162c2a4b50b1912936ac6d94ee99fc2315fc8e93e7fba";
+ sha256 = "788a127d2f75462cbdfd4f5915777d81095e2a8bb591bfc256d1b604987a17e3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/my/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/my/firefox-94.0b2.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha256 = "4c65a755594a5e03611c0add1b506760853efcfc057b9c04c0237968d972960e";
+ sha256 = "946911b98f0d7cc6765ec7e88db9d19ce4b908f0e53fd6f79ff27e1d45eb2b88";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/nb-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nb-NO/firefox-94.0b2.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "7b82b581badc7d5ddcc02e008bb1b968a1ddccd42e4acc3f75863114ef00459b";
+ sha256 = "d1703b56d9796af0053605cc1ed7eaee69bd7f30d470cf8fc18b074e8ecbb529";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ne-NP/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ne-NP/firefox-94.0b2.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha256 = "db25e60614b1f31049886d17b5d9f7aa45f51a1230e5829d513d449752d4cad4";
+ sha256 = "3cc448f48a8aac7b61ceab0cc8e46402795c61dd1bad66dee72b93dbbdeeff02";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/nl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nl/firefox-94.0b2.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "d0208622ac503716edd14383f9b3391064b0e5167ebeb6e349819253ab12cadd";
+ sha256 = "aa4857320b95c78b6434475ada060ce78d3a36d71148d8b24b5868cf3311b916";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/nn-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nn-NO/firefox-94.0b2.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "3e9eb15f215120151572feb8ae621cd9e07617962fd1797edbecd79f7176f950";
+ sha256 = "227414b8fdbcf31ddcafac4c3ddb25ac34154a46db3e1e93f8cf26477720c8bb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/oc/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/oc/firefox-94.0b2.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha256 = "db49b53e15f96dd4668e0224019f4413c3e41c5e696de137faa44ac547ad2560";
+ sha256 = "22924d95c07426b40b201bb6c659421f43d8f3c36c50348f053c8f8654430706";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pa-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pa-IN/firefox-94.0b2.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "9b05c58c61c25b584dd32cd9973d42aed887b22e07feb8a64f20e8288a1ccbcf";
+ sha256 = "418853a0c95d16cf9277b8b5210ba707a427d68d2390f3bfb9917bafbfe2b947";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pl/firefox-94.0b2.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "bdcd745a9270d9fa34b070cd260285381f41481a2735bcde9cb73ffd038c924c";
+ sha256 = "ede88f034e7541851a21aae7329bb5f60c767cbc163fa6a58a67cdd760382899";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pt-BR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pt-BR/firefox-94.0b2.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "05ce159ae923326132d656b94b7ed78590109b14ce5436d65f262c00f7b70235";
+ sha256 = "679efad4343b9fd6c9869a35f5c1e74daf902014263ca06f957740f911cfe56c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pt-PT/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pt-PT/firefox-94.0b2.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "1829442b517f425fa85feab5691ec63e2375473655d00a25618f21f4c3ff6797";
+ sha256 = "45bdfc0cd916eec6628618fdcdb042df9207193a6fef74e539bdce548c985520";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/rm/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/rm/firefox-94.0b2.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "5ea7bfa88a46b4d3409ab953537fcc87a5a8a95dfc314a9f7b4b991886be10dd";
+ sha256 = "7bbea6a1d8fa099d7882758aae43136dd413724d3dd17fae103a32b7f960e879";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ro/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ro/firefox-94.0b2.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "896c0a79ccebd764d4718342bd142d1cfdc172a666b2db2beafc3f1883b69edc";
+ sha256 = "9540f4015850aad6561d9c03b39ef36f1b2c6497d240b7ad5b43e02a73cd003a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ru/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ru/firefox-94.0b2.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "6c4f2da35945c331de90f292e35314ffd51c693f01ad69268062bbcad0e2a617";
+ sha256 = "7837ebd163d03693e504d50c70c6798f228b89bdb9ffcb6a892a350a211cece9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/si/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sco/firefox-94.0b2.tar.bz2";
+ locale = "sco";
+ arch = "linux-x86_64";
+ sha256 = "43be1c890d3aaefdf1e7671c3ad1d177fd2ecb34df23369cac5d9cdad6404eba";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/si/firefox-94.0b2.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha256 = "095abb133991ec166dd0d6bc86de71f6367bd338a21480577f2fc2210f42d69f";
+ sha256 = "08f5c9fcd42937bb7c56fcbb82d39570a08dd88fa82afd6defb12468dc8116f6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sk/firefox-94.0b2.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "549d6fe7bb33d99a2e4a22438defeb5d5b090069f67d58063efdcc458edcaf9c";
+ sha256 = "ba0008b1ce61baaa4026cde2df5e643fde36d8442e5d7a4eb60bf366d913d75a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sl/firefox-94.0b2.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "5c7138c3ccefcfea898c00e428fb166b0c8883ebaa4980eb9f75507acd15f01b";
+ sha256 = "7192260868cf36a31b8f0e655a623a06c9ea6a9f070b62517803a4f5f922c650";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/son/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/son/firefox-94.0b2.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha256 = "a4cdf6b8a865b818301fa23a2ed3626f4e220b02cdc46475d1e39bc9e5245735";
+ sha256 = "ef1b7444683e8232ab043f539a8822e18f0de181a99c205d3d1258f4f3d4fba5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sq/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sq/firefox-94.0b2.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "69d42b943be2a848b5a28aadf240540f9cb7e527ea312d83e1ac559a361ccfdc";
+ sha256 = "3eee3b72f4deeefa66f4214347d5800421827e2d402c1a1b594c8c57fde35fec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sr/firefox-94.0b2.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "8b14c6a508f0c5676de085050cac2732a6852047356d28d6257dcf80691df0b1";
+ sha256 = "63cb0b927a324afac3e7ecbdb899f970ce24008ce95d2179afae3eb06543d713";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sv-SE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sv-SE/firefox-94.0b2.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "b145606546bac77e3e45b98a23bdeebd23b752b5a1045a72312e1cb6c6927fc9";
+ sha256 = "be7023d2f9d23adc466fdf79206694dbd2e17ebeadb6293c85a82dbf6e966884";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/szl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/szl/firefox-94.0b2.tar.bz2";
locale = "szl";
arch = "linux-x86_64";
- sha256 = "212ff7d8d8addec767ce38d81a4a92103d9ee905f01387df9975bbf557795a8d";
+ sha256 = "95714546832f86662101ba73c560d38aa9850fa90333feef7d9ff8267f295296";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ta/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ta/firefox-94.0b2.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha256 = "334684039f1350871356e58e0c467b2d93c6d56b00973601e24728a65ebf45fa";
+ sha256 = "6bf28669ddf04df959d24b960d9f67ac9fd1bee97743d28cc21bac1d8fcc16a0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/te/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/te/firefox-94.0b2.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha256 = "96a9a309a869fa11effce362fd6f781e9c0067639a49b372170e0bc85eb11706";
+ sha256 = "8c59a61fb25662936ca2ad8e19a84058aa22d85103d75c76493eb30b2762eda1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/th/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/th/firefox-94.0b2.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "3bce10cbab2b6e913af910160c4935e814d2fe862428be78448b6c3b872df53f";
+ sha256 = "984d1a346179dd819de86e970f3cacb0a89ea026c86ca56edabd7855b7bc7afa";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/tl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/tl/firefox-94.0b2.tar.bz2";
locale = "tl";
arch = "linux-x86_64";
- sha256 = "96879338880bc4c632d31d2b096966a957c85de649a047a9ecd5f8e0eaaa43e5";
+ sha256 = "19617e8f8f2aeaaedcbbe33d8bb2421cd8b1eba399ea860d6c7d1e209d5dbc66";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/tr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/tr/firefox-94.0b2.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "ab592b0b45491be0c573e604344a74291df2d7aa41604ae7961dd78e64987f49";
+ sha256 = "d953044a4b63b5e5eee29c782c12e8e55350dd638c199ce1390361b3ea509f34";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/trs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/trs/firefox-94.0b2.tar.bz2";
locale = "trs";
arch = "linux-x86_64";
- sha256 = "d75e1569466425349d64c57836517a20be7f6e036bfa837815f6e60c9b1f4f85";
+ sha256 = "738504b47da44370d49c0a7aae03317c3f83992d1be913189194f0e0ce1a3dd9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/uk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/uk/firefox-94.0b2.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "5a35497e2e07cd5552f05a130c4ca161929e0643cf106e3bd6fd46fca71e2309";
+ sha256 = "88243361771fbee5cc666bf8bded017a68b4ce1d608e4e13f29b1e58250de2a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ur/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ur/firefox-94.0b2.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha256 = "504a498350b1399662a68ef1b5371e3d5bd9313c844a9389e862ebc74b28f073";
+ sha256 = "a10538386e72d3051de739cfed8422b4c48eb1ddf5389589b49cd6079a5136e6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/uz/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/uz/firefox-94.0b2.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "46c4b1f8403f0fb645878b5cf2867871bfd74382d33963ddc3240ebd0222971f";
+ sha256 = "f07e249bd9e106b7513a65e0b0bf8915adc7d6c0cf65cba983c8763fd3da9aab";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/vi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/vi/firefox-94.0b2.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "909f7fbdd6d669f46bb3fdd7fdc929c4fccae59f3b6fcbce4fb6668e26661dc9";
+ sha256 = "29d7bc28680f4694eb66ec898be74089c34ac73536b6bffc26a74ca8a424c537";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/xh/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/xh/firefox-94.0b2.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha256 = "98114043b1b79dd9a151de04b2654fdc12885649e06a45c05818c1d66229a818";
+ sha256 = "771c98ac9bd5420bff5ab955882114249d274cd1dc82f8fad24885efca302069";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/zh-CN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/zh-CN/firefox-94.0b2.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "b2a0f7e1a18f77cbc33183a48a70f6459adde67329b7c2522d95622ac474f2f0";
+ sha256 = "670a2a1b9e6805aed79909474c01b771d7fd8215fb2bc0e7bb79e890cffc70eb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/zh-TW/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/zh-TW/firefox-94.0b2.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "3999a0a4f297acfa0e5e8e464df86774676c07f7df9cdf3a9ade243b17d91424";
+ sha256 = "7265b78daf40004d7767d17b500a50d06f0d6bd0ea3a72d341732b6eea3d85a7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ach/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ach/firefox-94.0b2.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha256 = "1557576b37ef31b8ac98f2663afab1e589acc071a489c415594b2b7880ae15b6";
+ sha256 = "2aac8adf1d0059b9d6ac6cb8558cc87738a60600260ba3c6267d5ca0091dcb35";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/af/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/af/firefox-94.0b2.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "1ee162319eb90015d06165d4e6fb4ba6071cfddc54dbb17e3b84ee6c5f9bb72c";
+ sha256 = "5b53daa874efe434aaf3e9ab913a7eb5c41de3dc5bb45218375761a4a9251064";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/an/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/an/firefox-94.0b2.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha256 = "bb117ca51ff004a4320f58593f5aa45042e1ad9336989fee60810aa13b051ec7";
+ sha256 = "44eb267e3e38957fdf328bc7c72f35286c0f4de98ea16b419d22650c464b398b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ar/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ar/firefox-94.0b2.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "d204482d09bb66f08562dc57a7151230d02994ed7515443c2a8ae1cdb35e1533";
+ sha256 = "cf12aca145ee165cebd17b0e206ce3bb874f0b06a910f34bee4ebd7bd20675b2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ast/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ast/firefox-94.0b2.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "412812c1b9df963039f72652d24785f4401f414d4953c8a249c9bb8bb94e2f2a";
+ sha256 = "5742c9397cf56356f8377516bfd16098df3ec690282ea1b01c2121e80855aafb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/az/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/az/firefox-94.0b2.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha256 = "3e2fe0a600137fdda9ed538dbc9292c8da03654d071c44651fae7a0917fd1428";
+ sha256 = "28c52a7dca6db549577e072bbf055701706e4bbac9a65fc11f8f2bfd62c6760a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/be/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/be/firefox-94.0b2.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "5d845562839f60c2c7b6b142411bb43764b67dbab604ea27852f2b61bf77bf22";
+ sha256 = "d50cf3da85aeba9f967d23cb1d661f6ac3bddc032ab14ad8790237a7eebc2dad";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/bg/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bg/firefox-94.0b2.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "642f79d32cb8ffa869527dc394b316a95caa3b3c30b1e61303d49ef4becc7ce1";
+ sha256 = "44e8f8477b5bf60546e712ea054fb0f736c593ccfa76d744c5f7ff092f8756e8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/bn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bn/firefox-94.0b2.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha256 = "aef7ab7858de026b357f9af8d00c32759031e77aef42d6ce9338cdffb1b120dc";
+ sha256 = "6a70df8153b96afa2b3489e40781b3ec56cd40515ecce9e682f2236a395c1224";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/br/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/br/firefox-94.0b2.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "856d428fc9cd62369b1b6834fbf577c94807ce4f958eb3c70accb45d4f86445e";
+ sha256 = "e999ec80dec5e33143e911a3f0492e68a8dac43088a9adf9a9a644fd87905b6b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/bs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bs/firefox-94.0b2.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha256 = "8557c44af4b52dc6c72279b1b3b31a41c87c5cd9b1c23284e2e503362ba81ff7";
+ sha256 = "d500cc9f6e898626efb8e987649f4786988c0977342a46c2ed02c5c5ef540043";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ca-valencia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ca-valencia/firefox-94.0b2.tar.bz2";
locale = "ca-valencia";
arch = "linux-i686";
- sha256 = "0fc37342f7539431522dd60f1eb319ade594efa494810416843a58a1291fbe40";
+ sha256 = "0f524bb723d1c62380f5bb1e6223ee6c2469a08ddc643dfc36e21c0c82153803";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ca/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ca/firefox-94.0b2.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "e5577a0cfec17c2dc83c46570a1351363ec7bffc3bbca59390d3866459bcd33c";
+ sha256 = "e41924c1d4a6161da982a50ab6556a0dd680db8bba3a0399b0fa2a950667bf2e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/cak/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cak/firefox-94.0b2.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "e4ea2fa2c4d15152d21fa1843a5d14d76c12aaaa0ea8326c8db29f219f877f88";
+ sha256 = "a598adefaae52af1da8649965a1b8ba96316d0c6fa13fb5d3c482e7aa63a00c3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/cs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cs/firefox-94.0b2.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "43d9d42a10ad996f8a447f932068a0366557d542c1f2a3be626703b2f09735d0";
+ sha256 = "a4833932ee61dd26c552c01b9b6c7d91efe25d7a2d9a63fc0ab2f7700bb2d508";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/cy/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cy/firefox-94.0b2.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "0c79fc024f1714d4267d3483c33e5ef75a0415fc487b0689d600ac5a9a8b8c9b";
+ sha256 = "865c431769651a68946d7496a293194eeaa50886d2d14496b2d06ecae97d0f02";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/da/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/da/firefox-94.0b2.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "df9e037da8af21c5a22c26f326389d8c171fdc3218e2df2b37795a2ea0af4987";
+ sha256 = "90761a3f5ce8340678eb1bde13dfb646922cd1c42edd17dc8eeef99ddf5a94a4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/de/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/de/firefox-94.0b2.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "1e85bb05709e2efdbb48d5b788a0210a5ed83b52c709be06d4cae6d7a94ea9a1";
+ sha256 = "cb0e6ee6fcaa7e112f5c8a1c32f1423ff718b1413f5ba8c1c8807d8513d7798b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/dsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/dsb/firefox-94.0b2.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "1074ee2af33d208875197e7f6434596b9d9bcbe6aa5ae911e11adb3606a8f06d";
+ sha256 = "028fc876c1156b48d670b97c750a25ec442b2ba6a68a28a7cd1b81c3a1db410f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/el/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/el/firefox-94.0b2.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "c2378d2924f99e3c8600d6d23023cb524ada34884645917e1adfd810583fa1b4";
+ sha256 = "b5055d99965a01312dbe339113ce2495c23dbd38cf93a994ff5622f9b61835fb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/en-CA/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-CA/firefox-94.0b2.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "8f3f4c41c324d7b8b6e518f370899cef2aa58d311e2edea50be22991e0f0c865";
+ sha256 = "a83a7457ad8f4ba12feb3c7824a8d9d211dd88e9f862a9f5127bfb7bf4896075";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/en-GB/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-GB/firefox-94.0b2.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "a702f5cc3d5cc80b189ab4e50579a4a0dd5a3b969497c0f17f22296ccd6aaeac";
+ sha256 = "ad3ffa6449f1fe0f65cee89a64f9b392131c0a765704f95ec94cdc9f7d4baa9f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/en-US/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-US/firefox-94.0b2.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "628dce1cf52e132019eb538d260c692e360d33ba18067c5696b665118f1756c1";
+ sha256 = "baa1bea27fddd11c6781a48ea677724bce4c4246125be876d17122998d9a7f4d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/eo/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/eo/firefox-94.0b2.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha256 = "bea0b89ddeaf47d79d40ffd152c14846e7ece9d5cd62c3e11b3d8a47db26018e";
+ sha256 = "568e14988abf65cfbc9d6c73adfcd5716f909b8a6fca3fb120a6cfdeb9e69e2d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-AR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-AR/firefox-94.0b2.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "79703843c31b39f48198e7477c1047c246c2bbf6ae23736483a1a3c68a3acee2";
+ sha256 = "c90e3f18ecf370d223365c1d0f91b785476d0abc680fda2f86247e25387004c9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-CL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-CL/firefox-94.0b2.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha256 = "a1defb47b1e0deca525e474790fbb75ab48825b59a996f8e2af6d8bb3fd04da3";
+ sha256 = "c0f03f3762ca094a7562f312a4d8de177da3603f3e10ecdebb8d53a0573be44f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-ES/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-ES/firefox-94.0b2.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "cc0b63ac061cc573a16ef419a856417242cb52f4f39525eaf4a03fe084659e87";
+ sha256 = "a105f2f4a70c891e4e29e73871919e0eee5882080bc5f5fde408b3ef5b68d5e9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-MX/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-MX/firefox-94.0b2.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha256 = "9f0ccc88d783b2b5dcefa19c0761517ec4aa29ebd45e09d36f3b52d4c0d4841e";
+ sha256 = "a1f3a1bbd0c63f96627fed01fea147520e0df328aa0fadfe3dd1a7f6bcadf0c0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/et/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/et/firefox-94.0b2.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "f08eb49146b4ff68ad82c92accf80956c9b5e203d384021475cbc51abd1be67e";
+ sha256 = "de90af4dc817d9df6273dda7ee1c7a9eb360c758220b501b37470cd7d8704a7e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/eu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/eu/firefox-94.0b2.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "982cce3566baf096f37a3d9b4ab09324c0b0edd8bd1b31e711a269e2284fe5d2";
+ sha256 = "32eaea585ba8b2d4cf2974b7b78e57657ed8aa3fc7e005453197c3aa1c96abd6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fa/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fa/firefox-94.0b2.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha256 = "8fcc7329ca0fd874e6b36d830bc6195d43387332b28bd2fdfbe09fad0a17c65f";
+ sha256 = "07810ba943fe1f8a129d7d5795a6bc96852b216d9988ba96776647c7f33a8f62";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ff/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ff/firefox-94.0b2.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha256 = "efb096d2e43e54f9ed0e18ed898db646839287f55996c86610a463c1d6b92cd5";
+ sha256 = "6a9bdce53ea3b5546b938b2ee9a1b47be4bd1084cb0461740518b4efbb6138af";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fi/firefox-94.0b2.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "8c3715c8063cbe7d7df698fa4e4380be1fd06d4e5c7976578f46fa3d40539417";
+ sha256 = "b9145e2b96cf240f4309b8c240269ace21edb90925f140cedf7fca6c74692015";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fr/firefox-94.0b2.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "57077171b350b88ccfaceb8c0eb3ad1990748d80b2f40dbc3d761c1d0a73d6eb";
+ sha256 = "e3b6b6a62a48a154d28f132a597d265c51b31fc25edbdc2548020e8ca25953a4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fy-NL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fy-NL/firefox-94.0b2.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "14f24328d0e33a18ce6e3d67fbc95cecc61554d07035884181806a25391ab6b6";
+ sha256 = "be2ef81fc49fb6ce874d5efb62b1bc1752ff125fa4ba2205a1dbdb5064c7d072";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ga-IE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ga-IE/firefox-94.0b2.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "27a8b7fdb93b98f36aee3a5442564421436df91f17a68d58961238108992542a";
+ sha256 = "5fc3a6df099ba9e0230717c7fabc6026583818bb0b4a27f465dd27b020a0c475";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gd/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gd/firefox-94.0b2.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "2319b00f9b2bb0073045b08d170af666d217b2e4667611fbd8b9628c52680200";
+ sha256 = "d6c799bb7c0f13ea956d878462e625425dbc4ece9547514cb12dd9102553c44f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gl/firefox-94.0b2.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "65782353f01ad909dec1b473a6642b0a0e6733070df5c98f0a262b28aa536e36";
+ sha256 = "6268596e62294f38ab05c85373ed99fc18f69bcb4add19d6dd201b92d066b454";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gn/firefox-94.0b2.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha256 = "e6cea933b4b1948f0eb84918df5b401968f6e449caae9a5a57ab765a8726eb89";
+ sha256 = "de044826177ce892bc5ce3ef1bdf46882759bb8e49e2b6b36df47cdf34b2615b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gu-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gu-IN/firefox-94.0b2.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha256 = "5702b1f19f7b99781447290abf32bbcf97c4ab889549ae5b9d73b20d49b0ecb6";
+ sha256 = "586e731cdc1336ac6d1894ff4f79d67e098bf203384c2944f33a8185a7b6d183";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/he/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/he/firefox-94.0b2.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "599e8f6d6972a7d9c33ebd92527eb30abe7ea5098c0dc0ad91171818d2ea1ca0";
+ sha256 = "42fbadfd03343c5e878abf913bb45283dda50fb3c9b52395be47d939881a8420";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hi-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hi-IN/firefox-94.0b2.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha256 = "d8303c9148c008e556dbe754eba46f2c056a93167e90088ce06fb1bcf425c27e";
+ sha256 = "3fa42bca8f7816b8ab2c87c783f326c55cfae8a04f578f4b7ad71477e9b4cf85";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hr/firefox-94.0b2.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "da8034b67d159a267b5a1e0d1d816c2030e52d1828fea29e46b8241486854e0f";
+ sha256 = "69d0b032973f80c05ea79d79e98b2f9f4084199cffe9ce486c2a1f7a57fc2569";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hsb/firefox-94.0b2.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "7b7fa736a29a08108f6e3b5bb47aa768e3ee6c9dc58dae866dd70ab3ec6b04bb";
+ sha256 = "6e78186771e988d87d4cc1eb341ce7fa37b53cb1a34d221dadcf694457a71912";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hu/firefox-94.0b2.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "7152458a1742f65ca69341d3762c0adec354acd7402c35213ac07ea2264107d8";
+ sha256 = "5fab0ba23aebd9f717f799ca5783150796ec14c9c45d1c709448e16bd37c9f01";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hy-AM/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hy-AM/firefox-94.0b2.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "362b5c4c2764f69c3cc175025cf3b0de054cc39e5a47bced76a67e8578d17a2a";
+ sha256 = "fa0de5ec5044eccccec5d8a2b113f7ea1aef59d3a33197bc21774643aa85198d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ia/firefox-94.0b2.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha256 = "a19ec522293833dbb48a20e0da510d67825f2dc7892c6c7c9e66d844f74a62f6";
+ sha256 = "87608b529985a8949e29394a9bfeedcd5ffeb67949923358fd82c27c6b351871";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/id/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/id/firefox-94.0b2.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "cc0819e2c416b2473ef52eb1ee91dec88b38af97c420723562d90dab16f30952";
+ sha256 = "c6d5bcf7db0582063cf42b3b9d8793b4941bd13604ee7cab68fc919dbf160907";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/is/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/is/firefox-94.0b2.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "f24905a22e4a664af3cfffc859ce6ec453a1b40309c2756b45a74b999e056769";
+ sha256 = "0de58066c6904a9870fc79e144e50cebddf61bab26f346dff8d3d8b4339eb650";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/it/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/it/firefox-94.0b2.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "e9813624c07dac6b9615f18baed1d24cbb1e34a2347e3d31034ba4718dba90b7";
+ sha256 = "aff66e83da3a968e003caf4df9278a85e9bb15e0cda0173b3e73339c1c85e481";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ja/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ja/firefox-94.0b2.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "e8670c1edbff38ee9400bcfc9bc9893ff036af337fcfcceb8d8f76c854474b61";
+ sha256 = "3205dbb1ccec432962d90c2cb533244f1baf47d01b0c77801a827a85f89de328";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ka/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ka/firefox-94.0b2.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "bb9243d36cf8c4e62258be1b692366243056d51164a183c7e10fcb3206e22902";
+ sha256 = "d14ee6a00e34495e76af31a20a49b206a744ca0eda7eff60e739e504774ec042";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/kab/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kab/firefox-94.0b2.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "7e57fa6e4da39014b4c7c53bf8b7e5b4f7868ba7e5c80726a3e03bf2d283baca";
+ sha256 = "fe3fe6170a6b5ce661d54d24c0a1d09f7772f11faa4a325d0553cb12ecdc8c7f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/kk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kk/firefox-94.0b2.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "acf4d5d11aa323659ef6c6ea0754104d642501cdc68e734d75bde77b662e207b";
+ sha256 = "14e27fff2da0ee16a47372f6d1426c9f337aa3d2c781020539f787ffd6535765";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/km/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/km/firefox-94.0b2.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha256 = "ab268fc166a3cf2b27df64472835d2ea487bf4860662db807a0700ac21ccfa0c";
+ sha256 = "0de1b97e2bb964b161e15092607f7ed98483a421216249e9988050e213795744";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/kn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kn/firefox-94.0b2.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha256 = "478ea687157dc0922712a61652ad6884972551ed8ce4d01127a80c1efc106e32";
+ sha256 = "8f0160c8797f48024b19139ce23fa2b13540b09e4ac100508fe8fb6c68596f9f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ko/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ko/firefox-94.0b2.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "111876d47dd316c11e77439e076df41af384d3daed166f6f5d30b68bd0be4d52";
+ sha256 = "7729469059efd35363ae18d58ab8c84785534d2d94624b863c13ba0e5e98fd3e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/lij/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lij/firefox-94.0b2.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha256 = "0810c419383c606ff14d2bbac487368d2122599ee3a5684a288416069b52fac9";
+ sha256 = "6712ecde2c548608fa95af783a7576d765e8bf09e157060a3619cbaf0bec4196";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/lt/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lt/firefox-94.0b2.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "79ab57756a0d232407752eecd621f13567e43592f84ce2995b13bf73513022b6";
+ sha256 = "938e3e220f39d91014b5fb0824d1543027d971f260eaa633c286f6815ebe3a6c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/lv/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lv/firefox-94.0b2.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "856608639af7990122fa2fce426ef126d35dbc3525fc7515b5f26c93203aadb8";
+ sha256 = "b563a544e75431ee878c8c982076c4f320331f8930f539ab15502df6a57e1e49";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/mk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/mk/firefox-94.0b2.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha256 = "ddd8dfa8a85754d96b83ef24ae5f0b3748b084cc1fbc87670dfe576d7c65c012";
+ sha256 = "e349e36c833709f737cbdbe6effc7874d07b06bf92aa762a91a25fe218862a3c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/mr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/mr/firefox-94.0b2.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha256 = "52f5327fe808e4273830ae5b71077d6419dff4c763c9e4fd9e64ac8c49b67f14";
+ sha256 = "ab19ad0215db1d4a3dede497bc4ff13bed3f584b1238157b5ad13a1faf62cb15";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ms/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ms/firefox-94.0b2.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "0242eedfe6b5259738175f83686db3bfdd6d42db66173f7632c6ad9b064cdd51";
+ sha256 = "9971db2e0b409c58a6931e7e8b8b1ae3fb109c51ca6d8ca763a3819a20c4e818";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/my/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/my/firefox-94.0b2.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha256 = "706c6525e5f6859b5d19a5c49ad787577064b1c12ad5088cff3e923d4fb3304d";
+ sha256 = "67f4e4b4f21f6b0af8973602300a5a511966b341e8abc6a4156d9c5f6278b523";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/nb-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nb-NO/firefox-94.0b2.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "6a3aca1232dbf5a018be45fc5411ca82a45f4be7ecb91fc052a429b9716ec8d6";
+ sha256 = "3a0519e469b7e215f8a3fda16a3445f0dfa466ddcbef105926d00a792e5ec29b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ne-NP/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ne-NP/firefox-94.0b2.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha256 = "ee10040074f9eb053a83308b104f84deabb2183bf7b1b9dbf349adfd3e25f523";
+ sha256 = "8fb2ef6a3a96c772202dcfc31e507d75baced0df75882135864fcfd376187948";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/nl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nl/firefox-94.0b2.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "3bbd3358f8a6d84ae3183f8f67941f3653d70595feb4d74f9c3d287caa698932";
+ sha256 = "fd81e646da95800ef65d4f7d260be6f40d0c6b3f5fd927258c1b587212a26a3b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/nn-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nn-NO/firefox-94.0b2.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "61f21fef0fb76e40099f2264aae4969d1cd798f58dbf75db81c6366ddfe48335";
+ sha256 = "f7630d4b5ae51b163cf7aea5d8c1d2580b6e11a101fd74672df4b38e629c92b0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/oc/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/oc/firefox-94.0b2.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha256 = "0edac08c5d0f400df2f2c7d26c410b2eb3b2a467a167d17fd57b50352b9ff079";
+ sha256 = "c938d337a49dadeecf83ea0436ec1b2e1fcfad93a9a573eee1f8481df303af5d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pa-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pa-IN/firefox-94.0b2.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "c036f77e862df5454e3be5f913448e1732585f19b3f4cd968824c139f82d8790";
+ sha256 = "c4ed4426a29a456c4232d4d681b5d7cf24ee26b80b0d03aa32e860038d011871";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pl/firefox-94.0b2.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "927a08479433999af0808538ea3df289d3595ff0c88dc311c71d061875ada19d";
+ sha256 = "e5064dd88b7a2fc3a99a0d702aa50f9fa425442e6b10ae6b2f69daa7dcff3961";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pt-BR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pt-BR/firefox-94.0b2.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "fd7ec7834104629773481d47cf3c36deb1147326661788403c5ad676e18dc1a5";
+ sha256 = "a749befb91525c428a2861524b51742cf6a04f9d2c5e9b65b313422a29a54f21";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pt-PT/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pt-PT/firefox-94.0b2.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "b5125d265997ed75a68a9b9c8348efb1127da8c7e07233ee403bbc1c1c1d551a";
+ sha256 = "cc8af104daff4f7023d1bad24d88d8eae063d7810c76edeb3548426eb70056b7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/rm/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/rm/firefox-94.0b2.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "9a77df59be3a58f7ba75951f38461ac366afeb22a936c01562a01d509792ecbb";
+ sha256 = "d548cfd5b4d4a7e4f1d2fcadde5686868ad6d08549ca17d876747d7ae51f0476";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ro/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ro/firefox-94.0b2.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "baf15728a07ba2ce73213edbc486cd060a95e9722867e129b4dcaa5b7dbdc20e";
+ sha256 = "02339108ac6c793ecd2907366ddf68864fc834c57358c2b8895684cffc8b92fe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ru/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ru/firefox-94.0b2.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "201bfd1905918fde0134abff649e4153639d42beefca8e5cf695db13305c4869";
+ sha256 = "35113139ff21db5ea21b14856927d08fdf4b9486cead60ffc842f5d0d525bc3c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/si/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sco/firefox-94.0b2.tar.bz2";
+ locale = "sco";
+ arch = "linux-i686";
+ sha256 = "5ad751c892c034a839ebef7a5033af04555d7e9873bd0080ece3323c277dae26";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/si/firefox-94.0b2.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha256 = "9a8b35abf95cedd5bd8c777e45dc412df76c5ab135fdffce1136f4d5400c4b5f";
+ sha256 = "b06f9b5301f89f3ee5a54f564302ab820ddc3c3e75ff2bb775c506a28afe46dc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sk/firefox-94.0b2.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "371fc35135170674b3560a7472b479473c5f989d041c87cd030f8798861f1c2e";
+ sha256 = "dddcc75cbd4bb4d88d04348d71043e6983e6c149bc509de92f0b89e4a8b728f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sl/firefox-94.0b2.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "77df5a99a9577a3a07bb0f034a99f96afa85cb4b05200f56c41a3da2283a93f6";
+ sha256 = "f77d13ae4d55533427e6f61643688fbc7f5018c64058657e3af0b840e5a57ff4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/son/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/son/firefox-94.0b2.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha256 = "5b72f4757d23c78e2f6ed33ba7afc99b09478d434b6d85b453f980d6a183fabb";
+ sha256 = "984590c9cb5216738e6f438bf976b1d7f948ae2a74eb721d32d34cd10185b0ba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sq/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sq/firefox-94.0b2.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "f44f53326face336bebe48657abec77444fbeaf90c82ea57a596465f0fa2e87f";
+ sha256 = "1534c2664809eee6f08d63f6e90f9b68cc451753a7be05ec6271eae0102d9297";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sr/firefox-94.0b2.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "5a284e9d3afc91691a2f4cc9454f8f113a2385db8e93cf243717e18755a066ce";
+ sha256 = "b007555569112e3603d0f82b70b88232a08790de47715becf1eafc263cc5b766";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sv-SE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sv-SE/firefox-94.0b2.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "b2abb070d7d89d0fff19b9ba293961d863547da558804c9ee853ba280cab5524";
+ sha256 = "3ebe9a9ab0f98d9e72111334fa14fe2756d14b7c55ca0961661a4b614b29e730";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/szl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/szl/firefox-94.0b2.tar.bz2";
locale = "szl";
arch = "linux-i686";
- sha256 = "a6a8233e17ecdc236c6741286272fb79148d30b86876d348097f93733937bfcb";
+ sha256 = "c0b10b4c6a40acf11625fde74091060550a127e50374d112357a7644e85fc7c4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ta/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ta/firefox-94.0b2.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha256 = "723d94602a9914c1d572f85635ceb2622960b09bfdc99d4ae010efd1f65e4792";
+ sha256 = "02ccf92925d17e23aaba13cfc30691cc7ccca4058ef3b5f687c2ec6d86be9131";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/te/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/te/firefox-94.0b2.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha256 = "78e0ed7271171c5eaed2831ed56afb98b525f8ae4cd9db78f6e5b2c6830b5c87";
+ sha256 = "0a915418ae01e65f77814765719a8d92a8476e0e6b92b7e4f3345c741f9b9d4c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/th/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/th/firefox-94.0b2.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "4d06b6cf8b81e39875f6b749286cc52d89d8c172e8a8af54f920906326404346";
+ sha256 = "0e528aea8b5ba9ad6cc432c73677702233fe40681e0b2b8a35069c97d6727c20";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/tl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/tl/firefox-94.0b2.tar.bz2";
locale = "tl";
arch = "linux-i686";
- sha256 = "9880b5fb724522d823fdbad3aea4c9b1376e9d97543ad47071a7438aef164b1c";
+ sha256 = "08643d52f23bf7bd945e85575675331213d1b7aaee907dee007913107cf06df8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/tr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/tr/firefox-94.0b2.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "b198c6491a3618c0dc437cfef06c4564a8b70700b399013072201bbf003b2b37";
+ sha256 = "fea788ada1b3260ff7effac66eae99cabe7f7d56c3c27a9f6ecc31fdb077feed";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/trs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/trs/firefox-94.0b2.tar.bz2";
locale = "trs";
arch = "linux-i686";
- sha256 = "f35c3b4a04742ad4e500fd60a5d6f80147e19b60d6ba1464c7df62707a8dcc19";
+ sha256 = "74709f4feef8ce28eda0b6b1c82dc26991b8099f0cb3f09eb2bd1ced924d4922";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/uk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/uk/firefox-94.0b2.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "d3c2b7e536438e8d212c66463bb201475c1df143a040617aaeb08cc14e6962eb";
+ sha256 = "7181038f9069573e8a043dd855efd0bdfb9434be0abe91e79f632778f26d3de3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ur/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ur/firefox-94.0b2.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha256 = "c708a6886f3a22ec5ef66d9c3d26e051d153fea4ff01fceb65ac41cf090173e8";
+ sha256 = "82a8a5fb6f45d64ac1250465c469572ee8aea4af578158f7b6c697abd81bb949";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/uz/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/uz/firefox-94.0b2.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "e26ab71962c17774721bc54bb612f963c61b3b5fb83f5c1473a84157c73c28bb";
+ sha256 = "b2f7b1f0b296912a6dea8f4003ecc1511ed22d7546e576b5f9ef4c877311c01b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/vi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/vi/firefox-94.0b2.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "fc8d824190bec7889618e14cc439f6b96e878acec171ef270e54980000cb60d5";
+ sha256 = "8bf4701b32ae12d16d8d207a2344c2f6b208065c96166bfb724309cd223205de";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/xh/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/xh/firefox-94.0b2.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha256 = "ef932683f2b7eb51b043ac7c2b9dc1ffef3e048f3a92a5abc65550743e95440b";
+ sha256 = "d546e726258f3b2e72373892bf11bdada96dca0f21e97acb4cc60af872f991f7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/zh-CN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/zh-CN/firefox-94.0b2.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "9e2695711d611ace940d8f6dcce037646bd96f0d0a533d551b73eb1adaa31b98";
+ sha256 = "1e064ce673c92fe9ab0874a71583a9bac311a61850787b419e64b12819cd2dbe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/zh-TW/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/zh-TW/firefox-94.0b2.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "dbb0f78780deef67bfed9c1a126ec296657f327ce3a72beabcea0bbb9a033be3";
+ sha256 = "e3dc9f29ccc01f149f1a071dacdda21fbdca6906f4007ab1cd352b3ff6b498c3";
}
];
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 551453e9a2eb..29a506dd1b03 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -25,10 +25,12 @@
, libXi
, libXinerama
, libXrender
+, libXrandr
, libXt
+, libXtst
, libcanberra
, libnotify
-, gnome
+, adwaita-icon-theme
, libGLU, libGL
, nspr
, nss
@@ -50,7 +52,7 @@
, ffmpeg
, runtimeShell
, mesa # firefox wants gbm for drm+dmabuf
-, systemLocale ? config.i18n.defaultLocale or "en-US"
+, systemLocale ? config.i18n.defaultLocale or "en_US"
}:
let
@@ -78,7 +80,12 @@ let
defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
- source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+ mozLocale =
+ if systemLocale == "ca_ES@valencia"
+ then "ca-valencia"
+ else lib.replaceStrings ["_"] ["-"] systemLocale;
+
+ source = lib.findFirst (sourceMatches mozLocale) defaultSource sources;
pname = "firefox-${channel}-bin-unwrapped";
@@ -118,7 +125,9 @@ stdenv.mkDerivation {
libXi
libXinerama
libXrender
+ libXrandr
libXt
+ libXtst
libcanberra
libnotify
libGLU libGL
@@ -137,7 +146,7 @@ stdenv.mkDerivation {
inherit gtk3;
- buildInputs = [ wrapGAppsHook gtk3 gnome.adwaita-icon-theme ];
+ buildInputs = [ wrapGAppsHook gtk3 adwaita-icon-theme ];
# "strip" after "patchelf" may break binaries.
# See: https://github.com/NixOS/patchelf/issues/10
@@ -196,11 +205,9 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Mozilla Firefox, free web browser (binary package)";
homepage = "http://www.mozilla.org/firefox/";
- license = {
- free = false;
- url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
- };
+ license = licenses.mpl20;
platforms = builtins.attrNames mozillaPlatforms;
+ hydraPlatforms = [];
maintainers = with maintainers; [ taku0 lovesegfault ];
};
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 619b6186b49c..8c3988389fa0 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,975 +1,985 @@
{
- version = "90.0b6";
+ version = "94.0b2";
sources = [
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ach/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ach/firefox-94.0b2.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha256 = "20c33b145287c4477e6516837c7bd763f0895750e40400e82ddb6f196b072b23";
+ sha256 = "bd42904859dbd5891779c6e74035596669a498c4140abe36091746a74ca0eea4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/af/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/af/firefox-94.0b2.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "edebcfa2f2c8a7af69d8d98ec4890d6ce8404f93d8e21a7d643458d769056286";
+ sha256 = "37fab70d161246bcc70e4685dc680a2941c8d92db5bd66edb18fa6e72f1ba279";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/an/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/an/firefox-94.0b2.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha256 = "59a8423486afdf3860bd03c5ed2df595c5706f2d048f14d27acf50bc659da119";
+ sha256 = "0960095aba64ca73ad838935a5bd78fc4773347b02f2bf8a08964cf15d0cd866";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ar/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ar/firefox-94.0b2.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "0c2f57d48e42602109bc30574f12843c09f68f84e810e3f7860d3185999bf7cb";
+ sha256 = "40c097f94a2c106434fe95f35c68b8dafca84fbb887d416aba427637f83d7e11";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ast/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ast/firefox-94.0b2.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "d505465fa32dd6e0a324955ca950cbef5826f3136b5d2deff3e5a42b8063e69a";
+ sha256 = "41f7b6e15760548be4bb883bbf196175c912484891298a717fd256f091c72f5c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/az/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/az/firefox-94.0b2.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha256 = "fd87877ec1d0978b4f83451360d1eb4f2ff7c0e3fec9a9346b38f34545b89418";
+ sha256 = "1485eb4eee5f3858797871c710a83d7a79217f69002dc8915202080ce182358e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/be/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/be/firefox-94.0b2.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "a193474f5b728559acbabbfb5d746930909db38e83c2607c38d48a8b62376bb9";
+ sha256 = "1ed4be4238bb0f427dd2a8b8542da9a989c88c417da48ac333dc0afa11ca5a66";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/bg/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bg/firefox-94.0b2.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "b0ed4a45bb9ec405b4795d2e73eccd56e89555eaa40c4c72c64c0b5d7731bad0";
+ sha256 = "8b29bc7a4ab22512343e836998150c8786496354697574b8318f6c47da499949";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/bn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bn/firefox-94.0b2.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha256 = "1d7deb7f6bed82fe73e795677b4e60192dee7bc52e2a870c1ef53dc3a23e7390";
+ sha256 = "f3b279fed3f5542ed7d9222eb4e7bf7d36ebd633defc920fc1f2d50de71cb0b7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/br/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/br/firefox-94.0b2.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "379304d81c8ca21b41e63802394d30892572dc3a740d5fc701512ca482e2a649";
+ sha256 = "f9e07894a168c6ecb36a0f10d5aff3335e6553d3516440bb3b2e0a99e34afde8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/bs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bs/firefox-94.0b2.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha256 = "8b54063ef6a1c015f2fac84426b6309df89e013dc8e7deeb862ca6ef54512a7f";
+ sha256 = "4ef75403c6db94821419ab687c362c355bdd7864caa1248383aa33ea330bbe86";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ca-valencia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ca-valencia/firefox-94.0b2.tar.bz2";
locale = "ca-valencia";
arch = "linux-x86_64";
- sha256 = "80ca50a92ff6a46d140609558265efb422759ce320f5e7480a270b16fcaf486d";
+ sha256 = "7f0488fe5efc807560dec19bf5ab8b9ab63fbea074e5da0c1ba10677fc37580a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ca/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ca/firefox-94.0b2.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "00c027ca3c56aea456d0187a0a664d34d5ad704af5220d508e7dfe29ef66a4fa";
+ sha256 = "cefcdb247f82543e356e0aa3144a8594b40d5ebb6d612dbe4624ee23ce4e1ffa";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/cak/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cak/firefox-94.0b2.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "7126556936ac97989719922c4123f48508bf946ea51af05ce30182a8c5c798ca";
+ sha256 = "761d75f0764b94bc24a2ef480841639975698308f9a957b68c4cbe4487f0920e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/cs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cs/firefox-94.0b2.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "3f40d14e92fd79cf695b36c0c6357503bf08ffdf3e2105ea30b38919a0c40442";
+ sha256 = "ba098e4498e3b5e7d5832e922db7a75022cc2eb0ee75a90c587b8a605b9341d7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/cy/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cy/firefox-94.0b2.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "be85ba66f9d92f27fadc5bef7220b794ad1425c09424ff7c1ffea905f1495222";
+ sha256 = "1ab3378924c5ec5677a0380307a34f3c0d5dc5278f14fae8cbc6638f95d887df";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/da/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/da/firefox-94.0b2.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "a69fb1355b2b0fb710954d2982750d9a11a80be924c4e8ca8664d97a77676f7f";
+ sha256 = "dd10f8ca235755fa0384c8e9856ff68da9d35f08f4207253f026393b4ca6913c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/de/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/de/firefox-94.0b2.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "9142b0b44f4f375f2b426f3ed7af11646367b2a21db8cc3afb704d847552569b";
+ sha256 = "c82331eddd13d69a947555842d4398ae3c89f6bf11d4f57d7e99543aec3d720c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/dsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/dsb/firefox-94.0b2.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "42f04094c7d3eaeff3e8bebb073c140870a94e7de29f367950c47ea963fd8ee5";
+ sha256 = "4770d9fa07f4be586ed036e2c9b5655f8aa1939bf9b7148ea282f0926822e88f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/el/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/el/firefox-94.0b2.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "17a234d289679e507f9bfe67d2b65d7a89dcb4b603e0b154b9faebb9044d320b";
+ sha256 = "4e5beae917f4cc06283cd02eac07758383d9efb26976100bf8c0728e0cffc752";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/en-CA/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-CA/firefox-94.0b2.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "5c5e9ef0526aaccf67f6f0bd1bbd5415c2086c0ea8c9d9e614cdd053c5e3e9c8";
+ sha256 = "38bc8dc87a3f381b17d2f38a15d6d75238a16fd968a6463773af773617ffa74f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/en-GB/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-GB/firefox-94.0b2.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "61a4dd2a80d54c79436c2f3f62c4b56bb2d6449c0475cd938a4bc5c3c91a41fd";
+ sha256 = "52592454a7f3a3bab8b1613584da691641b6e25a391b430694e3a4a0a4b96398";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/en-US/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-US/firefox-94.0b2.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "0ab2b7121ff045df76e043e165cffd3a4cf33f4a5d76f80d880e4135b3ac8e87";
+ sha256 = "ec2b8c578b1aed605987b29c89ad168589f736a656d05de555378a5b5adf2f16";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/eo/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/eo/firefox-94.0b2.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha256 = "20282abb72dc7bbc2db8898d6c18b2d877a6905449a221d4044bb2984594782a";
+ sha256 = "769c9355c29af59994e1c16671c73304d4f51ef8642331c5940b208388c5247d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-AR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-AR/firefox-94.0b2.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "3bfdb83b8ec6ea8c2e95e4a7e50348370617135057053e89ccf9e61ae26710bc";
+ sha256 = "8cef957fd4f6dae23193a51f6fe1bcd473245cb0e559cef09121b012bf56b433";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-CL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-CL/firefox-94.0b2.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha256 = "b78b75d2832c240c764409d0130f7f70081c66ddfc6a4a710acb329325df3f36";
+ sha256 = "551e4cbb9e2208189da351886127c71bc2b8251aabcfbf3868199f8fc2d75e4b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-ES/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-ES/firefox-94.0b2.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "28821baefc20114bd7785c04ddcf4aec363151f0c1ebb850d364b337a5141fbd";
+ sha256 = "a54f96c6354616f3b55a67da80f347a402197712fe751971517130d35fe1ec90";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-MX/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-MX/firefox-94.0b2.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha256 = "853620bc46a74bd425554e83a5866bc5bdec79e9f8129c83f0ba147c47ceec35";
+ sha256 = "a47ed73f1c3323b1b8fe005c903e63773f2e1d2ac0956ec0159c3b335bc28918";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/et/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/et/firefox-94.0b2.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "570cc2cf48702b16384029ee8831e3ba4db39a50b1b02576a0c82d51beb03779";
+ sha256 = "8acdbed6a1027dd9ab042875b8c0d2a612c6a8a86d8a099836dec7fcb7bc26c9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/eu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/eu/firefox-94.0b2.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "44f3cb224da4c0df900737ca5d4d80ce41f404f1d3aa36f6f470d6eb13d7c9bb";
+ sha256 = "5809ce9075b2b4ec919e443b849f10185ae7d636009654c5692a9a480d680404";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fa/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fa/firefox-94.0b2.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha256 = "24ac71b7d28b286fe026b1cea49777876eff5146bd47463071142524d4f18fb3";
+ sha256 = "79ab5b7258434720299141ef6df0c70c8ac617e0c92fb7ad394c8bb5adf5515e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ff/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ff/firefox-94.0b2.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha256 = "1a795decfbef4c7689eeb931f07d8b036943856239ffdd550882267a14395dc0";
+ sha256 = "3faecda595fe0dd9685786fc70a81aa2df19e019e724f3f52d06397cb853c5a7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fi/firefox-94.0b2.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "807a38d68d0a5010c6309e2e725d210e3254de5c5b7375fbd209b864053ad25b";
+ sha256 = "bb9109efeab5b45a9fedce6dcbbab7e71f06f2e91204fed3dbe160e3d1b757d7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fr/firefox-94.0b2.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "6be1e617b3dcd59ec82607a8a1f8b5f145ca6c1cea7020ee678021ea5524d902";
+ sha256 = "6b2d0b74c8eacd8dad7f946ca0f1279d3a22a0176595712859e4de72810c4fe4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fy-NL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fy-NL/firefox-94.0b2.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "48d4de4cc60ebc53acdcc4f8fea5b483b546f06527f24bf90340db141f1a043a";
+ sha256 = "21f847af86e0806f16a28f6174178e0cfe1cb9bef8728e6d7e4cbd0e38683fd4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ga-IE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ga-IE/firefox-94.0b2.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "4924bab4100d18fa65b1309a091f0e6042f34aa342508923dd8c3ca559dc9628";
+ sha256 = "c75d79b0e12406e69c00a1975b59003e9cc2ac4467bf565eb17e5af9302ff467";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gd/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gd/firefox-94.0b2.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "b2dcd37bc4c9ed6015321216040cbc27909061c668d8cc053f3385920ad9b18a";
+ sha256 = "1863a424cde413315e7b7b4cc0e39070c1ed18cc470b32c6a951952b95ab2675";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gl/firefox-94.0b2.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "bb50a6514aeed37e4fd96295c0e97ef026bc6fca8c62b7ce6bfdbc227b69b0dd";
+ sha256 = "9eb9d0f8f8ba600a50a7005b7c8c165050ff8fb7c58586e2581a1d45781f8ff0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gn/firefox-94.0b2.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha256 = "a038dd8daa01675758acb4adf50cb93b204f3573ee204f97cf170a16f300906a";
+ sha256 = "8587fc264b5dae1acd2f6286d6e918ececfd4c25e2f79557faa2b9b268a33264";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gu-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gu-IN/firefox-94.0b2.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha256 = "a2b385578b11bc12c3bd7230b3a22d03f08a260d26e8f287efb2756b0fd3f9e0";
+ sha256 = "f592615d49abf4cfe6e0fdbba0534199fc3a60c7a330fef45dd254eeae44d6bd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/he/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/he/firefox-94.0b2.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "6025d34743157cc0869d12aa5921d9951cffa660244804b092ce0f79ebe9abae";
+ sha256 = "fd19095f03f488c2d4303498ce5f11055104b76cc31073f4ac7d146255653a89";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hi-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hi-IN/firefox-94.0b2.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha256 = "0c83746e1212350945277a65e0219e7bd871bf3bd01fd2e91194dd0e44e377c1";
+ sha256 = "39f6e825ff611a87ab3a86fe83f36c1036a81e78fb6cf96f619d165ba1066db9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hr/firefox-94.0b2.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "03675af908ee739dbe8f426fe7c4647f4b9073128544e990fd3e167020ba3a88";
+ sha256 = "cf92d55b8e812c9d6ab4d4c26e1d7c1e6c17d211bba601f7eb9dcae9e0c735ad";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hsb/firefox-94.0b2.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "9cf3dc5faebef0342f2b165189312fb1d76b5882b0767241a8240a440fc33bc8";
+ sha256 = "3a3fe83158be2ac5839065b31d988ffe170e3945556d91959fbd47c50cffe6e8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hu/firefox-94.0b2.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "b30deb7e51005523457e7f31428356178c1fd546440df2cb12f9420d89374c08";
+ sha256 = "67baa75346bec877fd5f780a02e6edcf7f26f3568de4c175b8abd5a21c5dba61";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hy-AM/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hy-AM/firefox-94.0b2.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "b51db297071b1bcec3416e7904bc1340d1dcf3bc5fea5016e3311911782ae813";
+ sha256 = "66a6143eb2d7e9de36e3c4320f3fdcd6975ffac37fbe33c32519470fcb072025";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ia/firefox-94.0b2.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha256 = "1e946e4c6893583836874e9ed951969a605b5f8de222d152d79ca003904af86b";
+ sha256 = "c9ff2c7cee071e6e6a08aeffa0e2f733d13337f8088312f927e8b61c24feb096";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/id/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/id/firefox-94.0b2.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "6fb1006d097e353401e032090f08bf1911247b4c3923d2490a7f46cae3f69376";
+ sha256 = "80b403898b67fb720e63dc4eb23f9dec28d526144c287a3a74478db7a083f088";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/is/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/is/firefox-94.0b2.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "a0de49c85a0726fd56038058acb6e1ab31e5100bbb759a6c5cc89191908fe402";
+ sha256 = "6c3a8e686a74a10b6e360420affd461bb51e840a1b4c6a47fa057bd2e928ea4c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/it/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/it/firefox-94.0b2.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "386c1b25b9f78b91b0474e512091b6907a598555a8e146ed61226332e3c04e22";
+ sha256 = "86d7c1a8401f706fcd8c54da28609355f04c3017f14cc32f656090cbe5641a72";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ja/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ja/firefox-94.0b2.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "185964b4ba62e93ce54004e28a8d6da65c9b5c657f191e4ef924528c92bf5fcb";
+ sha256 = "15abffc6fde55d2212283001cc74bb250f8c5f088268409352950356fe2bb59e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ka/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ka/firefox-94.0b2.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "ff14f1d6c4ee8438cc471c151fea840cc81336de06e244b6e2c8ca193d97e490";
+ sha256 = "ef5149154a366f71bbac944ca3a9c05f64695ad6ce0b0f93c8c24262aa287761";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/kab/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kab/firefox-94.0b2.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "36d9058cb4c0bd804f640665bfd05804a787ec59632010d682ea132f12660b18";
+ sha256 = "1c5ce596f41132a7a085ced18dd7a2377544a360b19f3553de8ec1b652ae1c80";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/kk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kk/firefox-94.0b2.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "da31f2928efa27843afe07872ecd9b6e286bac90a101c14e1dd1e806e3bdeb65";
+ sha256 = "f13adef30dd6b0b05faff543c1e405e9dd9e29da718dd49831837dd323732c22";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/km/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/km/firefox-94.0b2.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha256 = "7a8a1aaf9d78f7b1373374e70017252004c3d49de9c0b97e705fc5df7790834d";
+ sha256 = "e32051813912b819150b7509dec726dcfe206a0a8210f8f7b19db1532f683cdc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/kn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kn/firefox-94.0b2.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha256 = "8641fa391ff8ac3cc25236ee6d19c043c39d651c674cca2badafee685b47eeef";
+ sha256 = "4b94e161b64db88cedfd119962647118d7124853d20c03f64d3540dfafffd9b9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ko/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ko/firefox-94.0b2.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "7a676b767215a1d5d6537975fbe9e7e16156d21032901365c24b8b0dd1adb21f";
+ sha256 = "ef05cb08b2bebccd2defb0cbda7c4bbb529e45f0a4d3de23a98c81b201f7e5ed";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/lij/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lij/firefox-94.0b2.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha256 = "3d5b3e6f04d7a617870a034a4c1b213246d48408eb4849cfaa8872f1aa8c8f13";
+ sha256 = "223f9f000297769f259c1536b51598212524ed202e58d225b0e6387afe073a3d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/lt/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lt/firefox-94.0b2.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "6534871a9a4414a59c3b885d7fa7d7637c9e1f220aa82afcb89e629795c61562";
+ sha256 = "42769ee6bf135861247c5d60482ddcdcf7f5e3f63864e21b50e93398452e573d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/lv/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lv/firefox-94.0b2.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "c2b3cb52ea74f0d62b28e54f87662863b801d4f8fc357c088ecb690d042fe8f4";
+ sha256 = "d3f2cda8f808a32e1fbd28054232a177a46f3db232806281c3ae1a31a4522b57";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/mk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/mk/firefox-94.0b2.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha256 = "2a30d42025663aad7cf6f3039c0e4b8a1fe642dcf97b9d616e6a70c5f2ff0e82";
+ sha256 = "89acc976c5cae171aba6dd2fb7e3c2f99594533bbbad0c27eb2b14ac4a1ae691";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/mr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/mr/firefox-94.0b2.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha256 = "43f244482732b43c39f206fecbf1080c8a154e78707be98931549e0f6809b56f";
+ sha256 = "efa3e483041e64c481d6ef10227fe8ae2b3221285b3a631ff47bf0a156cd2bc9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ms/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ms/firefox-94.0b2.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "46b3273f508889c48d611568f0e927eac7e612c2fdafb3546c47f080ee928db7";
+ sha256 = "30891b9eb724b0dfa216c31298e9498145693f12a47b368de7bbca87f25a608e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/my/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/my/firefox-94.0b2.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha256 = "ea355f78f80ec11c44a5735838c5b48b6b915951872abfd8a935f8991010840c";
+ sha256 = "34cd51cd386cfba4566e758615f65d3a74a072b57479fee738fe67796d09e7d2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/nb-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nb-NO/firefox-94.0b2.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "acda50b76ec558b2d941d77b4e523edc0fe4cce0f03e0201d881917a820dff9a";
+ sha256 = "44a38252170ff2fca7722e4cbf30ca42fb268c70eb293299f8350729389d67c1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ne-NP/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ne-NP/firefox-94.0b2.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha256 = "ac72053ee1992338bf192ec3a10ff975cc973e72c5468de68f8441bc815553b8";
+ sha256 = "86042545a3c9caaa29f200d4e179a364548d42905b6a12d1dd0a3cf82c1cef14";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/nl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nl/firefox-94.0b2.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "7f8c13888b7a24235c48f7c8c03ed66f7e3736247c936ddfcf88c8f3816c066c";
+ sha256 = "9c2021434b4f52e2ddd1af5953359e7fd6c783e9216790d09909434e35dadec9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/nn-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nn-NO/firefox-94.0b2.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "c0b50c45a6d198f60cd5703889771778bae6493e77e70d07518b6ae9ce9c4f4b";
+ sha256 = "12cd5d82ed9d74f44e5eb6371c45f65152a74342add2828bf6927c384471da4d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/oc/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/oc/firefox-94.0b2.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha256 = "0b75c4725e1d9f271a5f34781b8479ff6d6a11ef827afca97d52c599fb389d08";
+ sha256 = "f9d56085b622cc36a1559171ad6bafde322630d638e9a2934dbe6ff933c41a04";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pa-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pa-IN/firefox-94.0b2.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "fd4e2d38c3dbbe0ef35799a89fb8cb50435e2a06ed49cec2a380144b3ccd0ec9";
+ sha256 = "9f1557c39b960da9c13d7bb25caeb03d8cc35ff1e2983682c56dce61ef02bc97";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pl/firefox-94.0b2.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "a329a085eaa20c41105b70b2efdfc31260c2e5f9afaae97416a8c3a77e82f822";
+ sha256 = "c7a0989eaec77ccec91464fce8c443bde4069eeb91c069e7919f2fc09715d3b7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pt-BR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pt-BR/firefox-94.0b2.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "c418d18e275c4ce5641c8b0f7e30da75659137a4a5ef9dc43fbd2c206e1a1bdb";
+ sha256 = "4d36295b3998c0b512d6757899c8a88f6e960d81fd7ac1eec4585f4f90dc10cd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pt-PT/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pt-PT/firefox-94.0b2.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "d5cbb5282477c716966c6b30ca9a8f21771638cfbf2e3fce69663ff7bc58c6b4";
+ sha256 = "a0d88e57288dfaf4aaa5f133e5790c6de78bfaeb66b1bef5984c522e05e58626";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/rm/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/rm/firefox-94.0b2.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "916934135d13a1b8c0a21543c3569f697358e8935cb9f6972c9e80f96fbb775c";
+ sha256 = "5157ae9afa5b8ee193901c1d07dd993261b997be7af0fbde407ec938bb2460b0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ro/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ro/firefox-94.0b2.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "5571914386329eb2b0eddf3e4ddbf98eeebf1ae86172fac533d2397a48c8cb31";
+ sha256 = "73baed0ba08e472f57ab2897cbba7a4edc4c63a80ea5bf374a65c3fd8d9b68d0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ru/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ru/firefox-94.0b2.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "6b78d8ed2d8df5c00198ccf6fc3221b215623ab4a0b6c21030cde5413f1a1165";
+ sha256 = "8b56328580c42eb44669765e1fa912ce4e4cf5c8f61f3bf32f011661b59b31ad";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/si/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sco/firefox-94.0b2.tar.bz2";
+ locale = "sco";
+ arch = "linux-x86_64";
+ sha256 = "6b8d7cdbcc0254e5d48190032325af651a068f5b53f04b258b2c04ee44300fee";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/si/firefox-94.0b2.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha256 = "ed31203623e85d3cd0ea23c54177542455af4013e2ed8ddf642056a99187f814";
+ sha256 = "d31d5b07b273d9cd69ce5422298ba4a2afe874c4bb7e86215ad9abaa5a867786";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sk/firefox-94.0b2.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "ef8f4020adae61fcd797ed23efc1bf54bd94609105a9bec4ac7f543fe876275b";
+ sha256 = "a9cb13bfd2d8b38a144c82a8b7718eacbc26f241a75cc9b42c044130e4acbe56";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sl/firefox-94.0b2.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "ca4a679042db1485d0ced1f81be3610493755ceb7a32887110f528029657b499";
+ sha256 = "bbe947610a3eeee8d93d2f42504d9fabff9574519c67568305c3786df121a0fa";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/son/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/son/firefox-94.0b2.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha256 = "aeb7a5e4a15eb836455dacf964826a08905ac822390e2f67230eccd32942e136";
+ sha256 = "67a26046e446d455c1acc161736e0ce0077a7486bf645e03eb2cda98b5b08e8a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sq/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sq/firefox-94.0b2.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "93109db6d38da24dd3999960c866754966945dceebdfee960125039e1939b5d9";
+ sha256 = "c97fa4c925a8f78fc86e5df390cefd75dd881c27e328730bba7fe142673bb2e0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sr/firefox-94.0b2.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "cc1787dca9c673d6ee937d7e0a2801cb345a0b06db3f6e53581e1151716d4170";
+ sha256 = "acb8f82e49472d39a771bf54b0f7999fde4551b165db334c53a2bf91b84ae83b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sv-SE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sv-SE/firefox-94.0b2.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "281397c37d390635e44e1471b318ea9ba98f4b3b8d7670131c3262838ad26e4a";
+ sha256 = "4e2b4a35ba5b3a68ddc43cc268975d1d717a836c6e83b28b5857cfb63c1306e3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/szl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/szl/firefox-94.0b2.tar.bz2";
locale = "szl";
arch = "linux-x86_64";
- sha256 = "5255724df1ec3d05f33de152885d180dab52796317ec6739838029f20195ce3b";
+ sha256 = "eb2680babe9f84a0ceef228303cdbe6576acd8fb6753026af5dfbe7779ef98c7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ta/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ta/firefox-94.0b2.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha256 = "d8c5ae00cc8175e5b6beba8b1c7102a8a1f81860d5945c4e73cd77df5b5f8368";
+ sha256 = "0ca07506b739e405f1ac3fad1842cb3f7993c580c1c9d65a0cd805dd531d0f2e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/te/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/te/firefox-94.0b2.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha256 = "270e079ef9ce1c7977d8cdcfaed1f34552c3058dd6cdad22f17b53c31d6c1dc6";
+ sha256 = "c8660dbf2ca596dfb0ab28178701a8718f6ba7e556f657a19e1c50f69d80edbf";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/th/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/th/firefox-94.0b2.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "747acadb00c955621ec470870478a63a10c4131c244282bdde2a269a9569d6e6";
+ sha256 = "14a935d95568d0c8f723031291c647e6548880f66abb082319303832a3b8c212";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/tl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/tl/firefox-94.0b2.tar.bz2";
locale = "tl";
arch = "linux-x86_64";
- sha256 = "9cdc0ccc264d071ee7f9d7208cd1fddb6179e016ad759c4d5e4dbb00f6508360";
+ sha256 = "c6b1745e717ba35fead6cb9c3c735084e2b019aaa4b20a0fc9af480b9703ae3b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/tr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/tr/firefox-94.0b2.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "2e20a8e524e0b91832efa759627b0ddab02fac12d009e0b6bc81ba0833c94c2c";
+ sha256 = "0abfb41a070c5bd2941d29b3c84ab3d9eed74e653bb6177a59803301a27b5465";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/trs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/trs/firefox-94.0b2.tar.bz2";
locale = "trs";
arch = "linux-x86_64";
- sha256 = "1f4654b6d9d9d33992662288c47e79f8fcfbdf76db5ba0519bfb0de997756afa";
+ sha256 = "a405fa57208ad50ab282f87725fa47789f3afc742c6bf65b872ff2e1320dd83c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/uk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/uk/firefox-94.0b2.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "e7048a1226c8af17dd95d162b0d88ed9cd8b0ddfb08bc03920ed04e3d2cd2d8b";
+ sha256 = "a463362bda810d83d86ad8e516cd784ff037f8571a2530ea409c8c6539d5af82";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ur/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ur/firefox-94.0b2.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha256 = "5ae8a63c2c3dc8168910c231dcf54aac745327b818d66254a3caada129a83fb0";
+ sha256 = "bbe19675765e179d7277dcb97fa46cdcced95ab1fc52f88bf282d280c29fd376";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/uz/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/uz/firefox-94.0b2.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "3dc370ffe28c5ed91b8374c2f5ee41a0ae4bd094851a8dfb1d53b546595f558f";
+ sha256 = "4cdeb5836d53de3234e42d2af3db899891500ce9d6ee1ab5ef8ccf6e13312e6e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/vi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/vi/firefox-94.0b2.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "a6f39e25aae7ed5b7d7d1e4ec8c67c4bd5f5ab28178d8f1fbbb817713dbecc1a";
+ sha256 = "db8690e204c87d956665191fe767212d4c5a12797143cf48552d24cf62de81bb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/xh/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/xh/firefox-94.0b2.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha256 = "10d3c4c3638f0715001b8eb0026a6ca18a5b92d09e8e1d80f6b40246a5c7cafd";
+ sha256 = "6563e14b33dfe307967f75b06bb18f5a2f6ef5de4efcb7f59b0efd0727f95af6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/zh-CN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/zh-CN/firefox-94.0b2.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "2142e803dd183e8f7fdf7949804e3cfef22dee2a0e665eeb60933368f54797c5";
+ sha256 = "a3e6b37681f053b771e10a745b0eadce52424d69cac40896112fe317f424701b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/zh-TW/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/zh-TW/firefox-94.0b2.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "0617ccd22cc00872e5e5462636f150511ef5074052c8ad707bba98ae907f4ad7";
+ sha256 = "cd4e160499499bc09e3dc813376711d5d084dff4a2728df4ebc611617a6df56c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ach/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ach/firefox-94.0b2.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha256 = "eaa38a9976a7ac2e99030559ba27ff56cac4820ab5f9757f5c2cef76db8c4536";
+ sha256 = "4049dea6bb18ee343452b59bae0072d68b1e8b7c75a22ac03122a56f0804dd55";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/af/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/af/firefox-94.0b2.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "acc117bc014e08cfef0a26447097bb8df774d6246d569e6408021f0f8799af9d";
+ sha256 = "7acdcd0346fef075473a3585de300b90bd00b2ddc9bd7ae2ce094163b361fbd6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/an/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/an/firefox-94.0b2.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha256 = "1bbab4c2b380edc694480e2f6427ddb539b5fe5fd2489f050998c920975725da";
+ sha256 = "1e8da8a7e6e5b55ace65c4d7040ce20a2829f222f6636b3638f849af8d8d180b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ar/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ar/firefox-94.0b2.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "4d438bef41db963a282b53d13fc54db0d685014e03684fa19e25109f94d7f6bc";
+ sha256 = "3c6502b58e6ffe364ee1aa2dcb2b69448e45885211a99684b5ec725a8945a648";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ast/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ast/firefox-94.0b2.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "ae0d76246adcf16e4e910a02c54c8227a1ebd930b24bfe32ee54e631310cc42e";
+ sha256 = "ebf2d99fc7a64876a9541e27a77cbb7c0a2c69deaa0defeecd1e2ddca2b11807";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/az/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/az/firefox-94.0b2.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha256 = "7b262f731afe0ab9a35e604099197e470416a79c80141c672886473cccfe9f49";
+ sha256 = "3630b509a69a5511fddc9347b89b8afda1c60ca54d42cdaa30409593a7eb8f39";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/be/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/be/firefox-94.0b2.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "7a3596146cc81954dc55c4040d3926326d468e447dc8fdffaac7a3fabe423d0e";
+ sha256 = "d112fb18d55b5381470103be2cb2a068f3712a1ed16912813f59f0972d8cd5b7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/bg/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bg/firefox-94.0b2.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "8a1cd058dbd39c6c807a7819116f1af4b22ff936a71d67bc54047d72252721f7";
+ sha256 = "b0c8a0ee33d50fbb2a6d9b0770a7b5fe85c7f8a00eb15cbbc57abc682b7f7cd0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/bn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bn/firefox-94.0b2.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha256 = "8e58b03730a2c32f0537537114ec662c7307d1f79c5f1aa3dbe60a8d95526194";
+ sha256 = "63bca544f093ec07b5813b2b692edcf6ed1d46068f1a736a49d55255a7a7a23d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/br/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/br/firefox-94.0b2.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "37bb7c1e9c015994ea23b6c069b227367c752a4a2cb968d983fe2b0fd0d35839";
+ sha256 = "8b419f06da716bd14f6d6c0534f2ebb622c25a8c52f9f7e03b4bf596657e8612";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/bs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bs/firefox-94.0b2.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha256 = "fa97d80ac97b9d155c40ca0dcc21bc5d1255b3e6a54153402d965b35700d9f74";
+ sha256 = "edab469f4b69d843a15a925a667c8fd33fd16cbbfcaf4ad16c8974bef172cbbb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ca-valencia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ca-valencia/firefox-94.0b2.tar.bz2";
locale = "ca-valencia";
arch = "linux-i686";
- sha256 = "c9bc1be306267b7bb2282c8a543e6af66ccfaaa1f09769cd4c535d744a670b22";
+ sha256 = "3be5d8044cd4f8a474fafe864f8264776ba5a478bed7510c6530ee7966d25d3c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ca/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ca/firefox-94.0b2.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "8f3d423ea28e80303709b9323576695a674ea20c675bd825ab5431606e284136";
+ sha256 = "b330165f8326818276b06bf4592984a4061c6236c962dc54d060318aa2131481";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/cak/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cak/firefox-94.0b2.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "57d9509c186eee016cc22568d1f90942e689aeb918ed55aef19764b53da46087";
+ sha256 = "d705ca432b15db9b0f2ed0b2067ee0d236fe788434dc066b428c19d7420e34bf";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/cs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cs/firefox-94.0b2.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "af43cab80b6f29346310171c32f8b8ea610f191ae48d6caf7db383826f23945c";
+ sha256 = "3116ba93d2926b38d6cc372d3a7e8c746b0c1da14237ea8c18ac51ba7f3aa8e2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/cy/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cy/firefox-94.0b2.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "dc8e87e1e15cba292f3c5aadec017d8c0c6f2c5c5518f68b5267c7e707b27c4e";
+ sha256 = "c598db707229b9d19723943e018b52b45e3a6c129c3541cadd64798127c403ef";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/da/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/da/firefox-94.0b2.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "c30e8c35a2eb997c62530a330fc411bf9f87996a717ea3e12f0747784ce287d5";
+ sha256 = "31a2ed6b5d9749319e754e259c9963a195edcc93349429856eb71eecf5b4395d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/de/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/de/firefox-94.0b2.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "ab884b36e16d5401b54c1e75d77d553c9add8bd26ee38e57f11f433a163bc567";
+ sha256 = "dc3734616f5d1d997dd0af6a16df090ed28b1945d4f621cb306030cd3ddee06a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/dsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/dsb/firefox-94.0b2.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "0eb8d2548e8b79211dba6fd477393430ba77c7bfb2fc519eeb5e1a3f484504fd";
+ sha256 = "4d11e58b9885cab5f81bbe55b7976d63079d019bc659c23eb537d09a7d527f92";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/el/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/el/firefox-94.0b2.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "86522647d5107f3518002d8958af62272f0566e178b732a1243ff84da1b2579a";
+ sha256 = "24c23df7db690d2f998f424cd90e951986378a861ef4c722e6517465397c69f4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/en-CA/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-CA/firefox-94.0b2.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "e9b442a4aebca8f9740f657bd9c032661573890355efc2e418bc2a8ca66c07a4";
+ sha256 = "71a3e42722b84fec6b286d1b009270d40022d43b929b8226961c589059262da0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/en-GB/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-GB/firefox-94.0b2.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "d0a850a7d9754bb71ff29985c4a129160ce3e99e30df1ef4e7c7a2e011b59771";
+ sha256 = "9e29763788ae6df281ef367def18a19385605afc211a888c24bb0971cdb2a073";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/en-US/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-US/firefox-94.0b2.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "4ba4529f6b391d946e876aa321648790b0ec7a92ea5530981dd2f726e04ce0b6";
+ sha256 = "df7b71e338f62f841bd5154aa454324416043bb0485c6ccac8fa068240a5ff81";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/eo/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/eo/firefox-94.0b2.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha256 = "01e4bcc9d4d01ff5ffb67540cdb815710ab12d9bf621ab1febe8237236960680";
+ sha256 = "370e0b201f706dfbf157cc49d02adb36c64e660d95dca4a10d4020c77e4d3e59";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-AR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-AR/firefox-94.0b2.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "e3d38a32104b08219d06950d1f63726460ea631a7efe8f0eb594ff8aa4e398f4";
+ sha256 = "4c70649db14fdbbc04a5d9cf464cb538f8e652c26e79edc5f388c1f0bda4377d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-CL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-CL/firefox-94.0b2.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha256 = "20df30c114c27f1242d14139e0a62efde00a6fca686adb54ea9f30ce30a22776";
+ sha256 = "151f18e59c2f1a986ae07f0dd8184bc5d6f3f8d1e9f02923d433740620fa47f2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-ES/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-ES/firefox-94.0b2.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "441b5a41d4721cb6a3f99de3820611907e212415c4a398be9177693704d3cd80";
+ sha256 = "2298f5411f24fdfb1e1e0488643cfaf71caf1c1e33823f4b7f4b705f0bd663f9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-MX/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-MX/firefox-94.0b2.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha256 = "b08fa76644afe19af1203fcf079e4908f1e441bf0db362cead45d13ad5f30a93";
+ sha256 = "1ee921da00504251d898ffad33a524c0fe306aba8b555d973e058c7f5950e680";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/et/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/et/firefox-94.0b2.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "1754d25cf865a5d08c8a267abe0bce05c951644b58e0126f7085152538392028";
+ sha256 = "dcbe2aa046fe5123a53d6f29ea7961c214a6a2aabeb1d8b0ea586b6cb769a656";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/eu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/eu/firefox-94.0b2.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "33c3a95df0a369c5feae813bda7f0cc8bbc9b1c63aba5cf4193647f03d86623b";
+ sha256 = "d5b2cc74d0073a47c6ca32ce9fdfec34360e09e00459823a04e8780eb24e427c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fa/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fa/firefox-94.0b2.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha256 = "ba977267c4ab955665fee6ebae8e5be2ac9a71118b118c2626942f4481e8b8f8";
+ sha256 = "1584f4daebfd7dea873f05c86af3625193f5ac376281229076f4e5d3a9c9c0db";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ff/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ff/firefox-94.0b2.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha256 = "52b1cbeae32276158a6e649299229c008f797e05d16af756f8e11ab10b8e5a68";
+ sha256 = "263e74577c0559fbe65f157ebbd199e4c31a092227c79378cac6a52a263aec26";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fi/firefox-94.0b2.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "45e3e210abb3d0e8647451a52c3ac8e17982d3774e557ffbde36383741b3ea88";
+ sha256 = "c9dfd9166aea3a5ac1d124285b19e65914908a96614a5f02f089d05b8a8b67e4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fr/firefox-94.0b2.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "0d6b747bc77931771c9cf6ec23085bcc3def89d8586ebe310df6296a4690df74";
+ sha256 = "9392bc742f0b99eee0b44b7f936794a5098eda0ee67ce8720d7263dde1ea459a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fy-NL/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fy-NL/firefox-94.0b2.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "829019f441a1bdbabe67a367d755499c0fb2a79fe1e62c5fa319f7b786d8f096";
+ sha256 = "7be3b93ec071fd2e8759a29a0eea0486c0eb7f2aa091e26ce3f2d3e0e47d0e23";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ga-IE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ga-IE/firefox-94.0b2.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "2a04c91377b2870c986d434e24626e119a2420028549a51e0dfc0be140ebbd57";
+ sha256 = "0ac9df6ec6d46588028af9c462a3ac9a6e97418e2d3cd4786f1f284069c60b80";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gd/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gd/firefox-94.0b2.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "60ac0465a4cdae54b33035469d6897a5905678ebbe36b49a748fd87b0bf8e541";
+ sha256 = "430016776249d100bfc5a214949acf41fa9065a679f99f05abb4931ee8770768";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gl/firefox-94.0b2.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "237a0ef1486b7864bb8cfbccd17d8ae95a1935664acda423a1c4ae543aa4401d";
+ sha256 = "a2c4e3cbfe150218b1d9aa158fdf22b195dc85832066dc7cf34ff1caa6e241d7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gn/firefox-94.0b2.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha256 = "137d3c301c5fb74d69481801eca7e7bd1cd01d10d0a87b68b177bc63382f8559";
+ sha256 = "a5946fd82663f7127f9ab867eb8c1b09aee2d00e287ca78809cd76ebd009894d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gu-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gu-IN/firefox-94.0b2.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha256 = "6d9e69ca5feb66721369a1c39e76ea3e0b4b4db855ca895137f55d61df129485";
+ sha256 = "9474d901bf617bb76ea3052225086689dd59b9d17a0b0b86f36ea501829cffad";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/he/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/he/firefox-94.0b2.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "fe88f902475e01b1fb5a26abaf40fef31910eb1c812bce208eb9f55024225e95";
+ sha256 = "a91230f5c6a47273e134252333d8146c3ac7a37a5fbe1e52e5cfc68dd5a813bc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hi-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hi-IN/firefox-94.0b2.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha256 = "fce917ccb693ac825b387ea78f6a5e4de4816f8fe9d7fe5ad6c2b600a2a68cbc";
+ sha256 = "52b5c938ac1920321612adf241fc6618c878abfb31103e72e0634a1dc1416da6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hr/firefox-94.0b2.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "71872966d982032bbafea002c3e7e03162b972ee7f8eb8df00d26bd5d3e8c70e";
+ sha256 = "32046eca67d812d36508fcb918292fb7c50c7a663a439a1cdef1779dbe470982";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hsb/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hsb/firefox-94.0b2.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "ea8d862701f94cbca2e5f22090cc1434f6f51f8afec5ec929c84c714f11c42ee";
+ sha256 = "858047b2ca9c33a1177625b00b2a46feae836c3b1985b5dc699120194b7592d7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hu/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hu/firefox-94.0b2.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "9bd5842125a2432fc997a416987414323f729685b8b0780db1183a8415ad3a94";
+ sha256 = "293c677e1b7dd29832f94cef92af1b646fbafdff6597db8cc384bbde73c3dda4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hy-AM/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hy-AM/firefox-94.0b2.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "d094a0d50acfa2d2e28cc6c4bda43c4e4fa999e80ef97bf4090fa19d672515a9";
+ sha256 = "0cf4541c98712014394dc6438536a98fdfeb70993aab1c323a30d3f5f46511f8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ia/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ia/firefox-94.0b2.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha256 = "077179806415be1461f4cf2dc5676c434b851fe99e62404cafa6736284cb432c";
+ sha256 = "b1367ef6cc208b39eb022d9767adc0b36169b201ba5a30cdf9db6e08afb2b0ce";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/id/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/id/firefox-94.0b2.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "69e9dbb8621fb196d2a59f7f96c3f368abebc7b512ccc492ea45959f9ba75446";
+ sha256 = "d7f7e0afbd30dff3611b5785e0570b31aa536f67e3d3542cad14beb88f26bbe6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/is/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/is/firefox-94.0b2.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "b5776defe739415915780672d31c35a277f885914ac56c09ac947e317f71ac5a";
+ sha256 = "75b5aaf6aafa26d3b4e51f65cf545ca8c673d71e9a6e8e047814a681d6a7faf3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/it/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/it/firefox-94.0b2.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "37b347a27bb14ee9a2c6c7f672cf971de1a7826cbeb0588a4847c32b79dc0496";
+ sha256 = "5b105dab4223fa1b0415e995c4f5e71139427ed9024db5a6e11cd93e3bf370c0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ja/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ja/firefox-94.0b2.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "979cb88f236160d3091f7cfcb80d317fba4fac6ab2ec26d78a2c92651e856f21";
+ sha256 = "d1fb1d2a0d26bb5cf297183639078e7b631840280313f08c80c5ec78e4cbdf8f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ka/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ka/firefox-94.0b2.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "744cf7540dc3238442153b0edd50c687957f47531c0569ce32720e2e5160cbd7";
+ sha256 = "cfd785976f05874dd811c12678a73a0c2804caefe2a01a55839a81f4cb56e580";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/kab/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kab/firefox-94.0b2.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "66efbd08ad245c4629d05de0eec26f987d7d72d66ad097ab197bb31f29345284";
+ sha256 = "e57ffdeb5b3251bf79a3a2308e5b61322db608c0756a61fe28593c7fbfc3da7e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/kk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kk/firefox-94.0b2.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "9099027e11d674ce49a0945194d724010980deab08360b4bc0240d007c307fbc";
+ sha256 = "eec7d365e1567a4b5ae818b2b42354d9f0109c211bd38af9cdede58c687497eb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/km/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/km/firefox-94.0b2.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha256 = "a7e43012fcb7a6b58ad20069452d69cc9624236983872f733239c487e4737fda";
+ sha256 = "42f1ed4bdc2cb8098d87b4a313263a5af352a0c3f4cd0cdb7bd07fb7db54bf99";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/kn/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kn/firefox-94.0b2.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha256 = "396bb2a4e2c5385b5f74018d3eccb3db2526fdaf277ca99e74934cb17c738cd2";
+ sha256 = "0bd163bd0de53e70fb53bd95aa560203d3af91233e6e75b2417fa7a7dbcb0969";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ko/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ko/firefox-94.0b2.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "7606eccf3e6ebe3190a1bfbb60bf88d991e0ff48453b9cc1c07a08ecf54e7932";
+ sha256 = "304b6218cf1f93735589be998b09f9b7ab8dff300ba8b8d2ac28b4a59925b526";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/lij/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lij/firefox-94.0b2.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha256 = "b5570a8a3ee4445da1b18ee3217976e02923819f4b3d05f58caba65586f91294";
+ sha256 = "e983f5c04ff113f532e2125c4cbcc474569975eb0b48810e5b64348bd100c51e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/lt/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lt/firefox-94.0b2.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "2e4b6a279d3db48dc8a498ee5d038c6304782083a699a89d958f81bfa87d8916";
+ sha256 = "5e77dc75af6951262e7f427ac18f9ace83bb28171a9b3cfb9c702093542bb2c2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/lv/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lv/firefox-94.0b2.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "031c1fa63780985b4576305b2979bb3c7265cfb175b67393c0f0bfc23177711e";
+ sha256 = "99924cc0493a8309a947cd190758b7a0656c34be18b0f3cb02a6b09719cee78d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/mk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/mk/firefox-94.0b2.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha256 = "797af316793586db1ab0e0cc9fcf75c1fe70a9c89d78ffa43e6ca6b4fce99c44";
+ sha256 = "23c0d0defcf9bd212bf53a7ff4b6ead8787b0c45a0421f27e403be8067bf0b69";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/mr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/mr/firefox-94.0b2.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha256 = "5363901c98627006d490d20f89fbe9a050cc23a018651934b39e0a0b7dde0d5e";
+ sha256 = "91bc941df086f34ecd6ca3ed6116fb8d90bdb5148e4c206f6cb377c720dcf90d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ms/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ms/firefox-94.0b2.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "063ebaa12fa522c218990d01f5b312f019e223fee8efb57a10ff68197b8c529e";
+ sha256 = "83cee1afe5711c1735e9f7242760f5a06c912d1f488a2550e6c377e56c80e837";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/my/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/my/firefox-94.0b2.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha256 = "0eac26eb33852f0c0ea79869385010c623769933f5c8cd6c718ab9fde5eae61d";
+ sha256 = "d8111a8274c916dcc7d19442cdab770b3c1895debf8e6e073402e14fa647a2d7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/nb-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nb-NO/firefox-94.0b2.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "15cad2c535889f2cc29021490d6bb28145e0f1df27676e3871d18d17b3db90bc";
+ sha256 = "bd45064a98e01c6048c2f1497d17d8e9fc695304076f7e8e3bf91d2c6ae0aa1b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ne-NP/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ne-NP/firefox-94.0b2.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha256 = "640b3099d96af524455026de4059a23fe75a54b330a8b4fd0a9efe58e55cf950";
+ sha256 = "258a79a425ac0de620e1e05a9710a2f1c6972955bdd075f39ef3d45a8caf1ac0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/nl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nl/firefox-94.0b2.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "f12f1d587701cc78884fa5ae3d9997aed69ab6b57438e89419bda3330e1787d7";
+ sha256 = "6a7d5d49b97b08463280935e9e2cf22cbac4e00416a113ba320bbc6379604b11";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/nn-NO/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nn-NO/firefox-94.0b2.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "7ac1de885da3fd400e03d91adad4eee78736d7776d1b3134b38ecb9bc4d4614c";
+ sha256 = "e85e22c122266db32f28c2701682be59a0ebd5991eae47dc83f1b21ace3a486f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/oc/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/oc/firefox-94.0b2.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha256 = "bab17427dc0d1af03bf8a28a1ac9f505d71ff2d84a184fa6ac99454d6623a269";
+ sha256 = "f21eb275072e63bdd5508d10ab07f2fa3633560fafe45c522f29c90fd7ba511b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pa-IN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pa-IN/firefox-94.0b2.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "47a04146475054fcb8d76880f06491e885e12862bd0444e6556ac1030ae8b2b9";
+ sha256 = "26c77efd91b134b19a5054be1ea1782ce9026894be5b1fa3d563cad853b2aa79";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pl/firefox-94.0b2.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "5c4993bcc60f8d116ef36ea6b502078c34c274f91ee455497203714281f3be46";
+ sha256 = "c003cafaf65b18bd89c10d7f225dac95e254c7792499379f962795da67bf9920";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pt-BR/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pt-BR/firefox-94.0b2.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "7b5e2f52aa1864a6c1c96387a8f5fe3e788b8472d4852226919db430168b151e";
+ sha256 = "ec8fdd1b154a0cc44c7eb573ee46a52e191115ad6ce26b1e5e5e6d58c5feb790";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pt-PT/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pt-PT/firefox-94.0b2.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "7717af1088d956ffaaf91f122e5929d3605b60938a40bfa829f791eb7833b620";
+ sha256 = "b699ab3c9034a54111c91aec2292803181466f482fc36a4d56ad2ab1642776e6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/rm/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/rm/firefox-94.0b2.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "eea1dd966c8f4264616b89183a732f7c551c30c999c7bc95e3a6952c6ed667c1";
+ sha256 = "92d2ff95f2b4a4933df5b94e314d9b4ab3957cb4abf852b93c5f547e3c5cfeca";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ro/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ro/firefox-94.0b2.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "1f472eab1edacbd4f94e5120a32ecd51b4ec507108b516a244582e0a6f177669";
+ sha256 = "7ef53acc59832375854cf6795bdd5ef02dfd94bb50ed258b981364332d4f1b98";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ru/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ru/firefox-94.0b2.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "0cc517ed918facc26e76159b744b28397536736db641a45ac5e11bef9cf9b3d9";
+ sha256 = "65c0596d5d6d889b8dd7bca44c302b46fac0e584fc8d7b0e31db28943886e3ff";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/si/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sco/firefox-94.0b2.tar.bz2";
+ locale = "sco";
+ arch = "linux-i686";
+ sha256 = "5f07b16697dcda7129127c2b0d69f05f6ae4d52b1c6a158c979ea96f77124b52";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/si/firefox-94.0b2.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha256 = "edb56422879227089c8093397464e24c641d7d76bfd71e2dd6fde7a8b7b2498e";
+ sha256 = "3a1203cc2974f91ca023b5ebb99945708dea0dd995a7f2ab7dcd0efdd05963a0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sk/firefox-94.0b2.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "ca64ed30ae3d073b51c3dc82c841eec88a7fa3913e82243dd8f67078f0ec59b0";
+ sha256 = "1622f6101810fec383598d0d586023137b391cf3657d14ac223a19874887ae6f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sl/firefox-94.0b2.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "ce5c1df3db5e819f309a757e37c764f75dffc2cbf8737a8953349283f98855c2";
+ sha256 = "b64163b6769fbdca125b5f593c99b368e6750db33b0289f093b6622e4c084bea";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/son/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/son/firefox-94.0b2.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha256 = "d1f5604c5204be5c6c5e323b1ffabb411051de8c31c1568cebb6cecda0c1a371";
+ sha256 = "dc7fa036e51002568832b39d929fe519d3f485dafb40e2804c687b00e24151a2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sq/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sq/firefox-94.0b2.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "805b77a1a561541e714c9ebaf23d0f5d50abb84766033e38056e0c528ac44d13";
+ sha256 = "8e0a44122cee3ce32783022e6adfc34368939089585e2cc59bc8cff2d77526ce";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sr/firefox-94.0b2.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "d9b5ca9b56132936391f0b56b3694dd741a6217f591acc7cecb73e947adac302";
+ sha256 = "63162923573e087dfd13c3e3fc65a4b5c20ccc7427fb0a5809639d1edead0b53";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sv-SE/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sv-SE/firefox-94.0b2.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "3b5aa0a8d598135a2bee5b9b7db478a106473f7708e24c89f103c8d67e233dec";
+ sha256 = "d29eeca6fa60fbfc225610f3d90b3e394296ecd3edf8acd0a9417df22d8f41eb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/szl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/szl/firefox-94.0b2.tar.bz2";
locale = "szl";
arch = "linux-i686";
- sha256 = "6da4aef36fb8cd014e827a89a9ec9092c9d2005f493b29180048fe70688e8513";
+ sha256 = "a2d122d98a66cb67820111cf6914321e094f112c38ba8b10b7b413631258bea3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ta/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ta/firefox-94.0b2.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha256 = "972706bfdf85c74f7615222fd3dc15315fe9b339f2cf03509ea40461ffa09dc9";
+ sha256 = "829f0888af39a91bfc7d1813d37f3c8fd0379eb80b8445550e0d00af9ca89167";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/te/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/te/firefox-94.0b2.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha256 = "5e92dbef162c8553868c321c604315af544fc5a157ad80bbb6cf0dfc1e049ed3";
+ sha256 = "9e5862a75d161b3a7a5afe0b04625a4e195c08c6d76f9b359b5c18470cd2f7c9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/th/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/th/firefox-94.0b2.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "2530799eca2427f2294b9020dacdd1360f12c07973627a4f27a1fd09fcee02c3";
+ sha256 = "8562d938f7afb33d2c393a047cd48b4a5791c9fb9d20dafd5c60402b08505edb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/tl/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/tl/firefox-94.0b2.tar.bz2";
locale = "tl";
arch = "linux-i686";
- sha256 = "ab71a1db5a1a1a77e52819b48322186a7b2425ccea4528aa68c286f76733b0cd";
+ sha256 = "541cad5bfe1cb36595e6ffff13af66f23595fa94d0a2b3591920519da06f5bb7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/tr/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/tr/firefox-94.0b2.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "f4816b4dcc0263451bfe4953c80ca9b2c19dcc882cd01523dee0fa95f8196db7";
+ sha256 = "fc59be56ae01db30b9349cdd912f40fb16851d4ba45d85cb2741c00bcaf1eceb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/trs/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/trs/firefox-94.0b2.tar.bz2";
locale = "trs";
arch = "linux-i686";
- sha256 = "6dad8a06f75a64ea647b7eac9b211611048d46f6cb82c339eed09f26554e97e1";
+ sha256 = "6b07660d7ebc94792483ee248d87de5b28c720fc24cec2acbd3feb5275250e2b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/uk/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/uk/firefox-94.0b2.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "ea5eb3e482eb51804a935266a91957c5969f0faacf7ea6fc3aaeb39e0b0d3dc4";
+ sha256 = "1936549b7414a8f8712bc642b1d95123b92c1330a523822c6cd35146bc723ead";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ur/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ur/firefox-94.0b2.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha256 = "3048627e8fa53fa379f5d1c3ec9ea70733aadee3a8a9ae35c75187f820024a1e";
+ sha256 = "38c599db47a31edbc86fc57106f9dd4e95fc5f35bb92828c6f8f1aab4cb4ec66";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/uz/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/uz/firefox-94.0b2.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "9cd8711b5a188e7c3fc954b65bd08b4ecb3b827816652ae859d5e6a57a15ae5f";
+ sha256 = "6be5066a14c96acba04a49d76c9f08f1f5aec41b492c4473ed8744f7fdd6fe14";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/vi/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/vi/firefox-94.0b2.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "89b09f5d295512e98fc374ee950a74aac041ecdde3bbad5cf42a07e5b3ae3ece";
+ sha256 = "0e07833741e12e53d6bbc41eacce27ad3f65d6e3dbfda5aff701ac3c915654a1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/xh/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/xh/firefox-94.0b2.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha256 = "925c0f9832d235aca22b0b26aef59f750f09d1d3ea2a391aab4087a44f743072";
+ sha256 = "d34b9f5ce9b3f3bf94d0412d21283909a8170e78aafc0db5cdb006c1a48a5bc2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/zh-CN/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/zh-CN/firefox-94.0b2.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "3f8029b6f33a0954ea8d3029a5182b4b016356348d1a793f9f96261a5e7e6e99";
+ sha256 = "a865cf695ddfb17c218c19ebd7373b396ca008ff4e848af80725881a4398d7b9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/zh-TW/firefox-90.0b6.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/zh-TW/firefox-94.0b2.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "8d69eede16322268738bf8d4b75698a825391df1c06caa0ca2931555c832f124";
+ sha256 = "f5c1ab464a2c66945116dac0c7fc5da7b21dd5e219b0f19cc7bb210b0d649b71";
}
];
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 773393287aa4..4c47eb3b285e 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
{
- version = "92.0";
+ version = "94.0";
sources = [
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ach/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ach/firefox-94.0.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha256 = "f2ad99def0a6c2f778d96350b9a9db8d029cba7d6a21103f8c728f05a4143036";
+ sha256 = "de15198bb4e95a84482694415e656c03aa4d4b0c3cc0e3631e8454189a516835";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/af/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/af/firefox-94.0.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "032fa343964a31cc31953a8b39be52e2328c06e2d0d37bb25dd99c2b6a286a74";
+ sha256 = "01419633778013bfa5c5577dcb58f03fc74f851b53af6585a7d69ec25145d13a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/an/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/an/firefox-94.0.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha256 = "65a99d7af2c738a35cd9a32aa73537fc39c03a49ff8c8bc79b2434c2d73fbdcc";
+ sha256 = "6ac71816131c4540131e81b0d53957cd83112bc97da4fe6c1302743c4ca45c54";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ar/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ar/firefox-94.0.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "37cf6f24f2d89373f5cc03969a1584e0eba8602c9720bcd9cb83510b00c37d9e";
+ sha256 = "74253d1a9325bbe0ce20f8dad8eee0d22b4cb6080a38e3a780b831d75e6e73db";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ast/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ast/firefox-94.0.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "250b48aa826b8487c2a0318bd4aefa769a0e5f1ccacd3c960db76a34b8541d29";
+ sha256 = "f1e0d0d63ae5ba972592ed07b7844090aefdc07d67dec25e444e6f68a8fee834";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/az/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/az/firefox-94.0.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha256 = "2cd6130a3097510b0a88d71e03f902b355acb5c54b04c54fe744f02082e9258f";
+ sha256 = "1bf3613239e288de9c1116d2f292fe86c8cef38da4d8e459b1ac907ead624c14";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/be/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/be/firefox-94.0.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "1e6c1e3281c831040c26fe690e193eee32e04c04755776f1d5d02230aa4920d1";
+ sha256 = "820de9fd56247c99a62fee8b01b0274b1171d7093de7f2261e4457651392d523";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/bg/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/bg/firefox-94.0.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "248464ee16c46a948771977a15e0740d75a4023ac7b1381caa4ab89e8854ce50";
+ sha256 = "dbb01c85c26d21ea8b971e7bfb1cd0af45ebc0378783368b7f0801d4f712e4a5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/bn/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/bn/firefox-94.0.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha256 = "22872587d0bc7cb548032163c0944b85d60f44b8b3015cd9445a1d249f226897";
+ sha256 = "06bf17d84782c636b84f0239900256c23b353e17fceca2c31bd3f3a128c72c67";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/br/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/br/firefox-94.0.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "5ce3b39bccf4557b726518addd963511b3184b2a5776422d470baec0c0737c68";
+ sha256 = "5473adf681b62bd3316a14b3d1fe54c86bebce1960495630c83eb556bad3115e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/bs/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/bs/firefox-94.0.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha256 = "3238ff9f73f0a13b1716d678594b051e02992813354c880144df1a442cf2bbe5";
+ sha256 = "c1de2c5f685e5c62a75b4bb9ff26486f968de3aac16a92fd86c9fd927d24289e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ca-valencia/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ca-valencia/firefox-94.0.tar.bz2";
locale = "ca-valencia";
arch = "linux-x86_64";
- sha256 = "305e8800fe2760a9aed35d26fecdbf39be310633e45410d46f5e78414ee7c977";
+ sha256 = "de7744abd5c2878edebe546eb4f2a99a185d7ff3e8235eb41d5a548d704f5aba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ca/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ca/firefox-94.0.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "de25616de4e2a4876309de99736db900114d9b3d2785a022eef5d4bd205f463a";
+ sha256 = "ffd8af63684d4cdc9f9a6deb5f8111d7a1aad0a1bc331d02d64d2ce695b5e44a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/cak/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/cak/firefox-94.0.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "348a4320ebbe14c115a419a092f73d43876b55a4788380e9145aa2d0a5bf4f14";
+ sha256 = "38cd4c961e90c4eab38eb61f3da82aeb57d70c6b1d768dec91e365393fc705a6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/cs/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/cs/firefox-94.0.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "9272de8867d1b590bb9912f8104e59e942463cf6aa2b47e46cb3baaa117bf62b";
+ sha256 = "c4d4b0686cddd4ac2eb846e6802ab0577554649e91ad99f041ff8d4f50ec01d7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/cy/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/cy/firefox-94.0.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "32562b809a715a12074b0467d14a1deec0f3b48d1d2b4fe90a18d00b0ae05298";
+ sha256 = "c1eb3b4b0f31ff2580b0c2dcf071e95dcc8721cefaa152da277ffc927c248bf9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/da/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/da/firefox-94.0.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "63829b7a279e2eb8e43ba374c589ec3ac65a4a5de46bcc55df757b2f9f0fdd60";
+ sha256 = "e4d11271b51b06321f763dd5fd460f002b00c177bc1e9aa6e0cf1d276f28527e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/de/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/de/firefox-94.0.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "c62aa20c3b3f8eb2462fe157872196fc01fdba14e19e2025a1c04887a14741ac";
+ sha256 = "6cf50d4973194d9d5c82266707313a14a1d813677e1881a87aa2cf74488a2ea5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/dsb/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/dsb/firefox-94.0.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "84667669ece60081417e597cd00c5db9f25df9c3bce3b72c37d660aa2f9e57d9";
+ sha256 = "6ab8643ab33f443864a01a3319b616f48b67a58a12f17da1185ca30a8e025fe8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/el/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/el/firefox-94.0.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "33646c69fd8058dab93d685ef525b9c159e6161704b497f00553a9c9900713d0";
+ sha256 = "4c152598ae6b7360b81902265fe716f8fe4cbcccf419fb378be20d81b44f01d2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/en-CA/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/en-CA/firefox-94.0.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "130a04cbb4bd463f39de36392d1d3bf465974ad866069b3eb7a1ac65c6e7ca8b";
+ sha256 = "ff09e12f2255ff7cb49df32213739432c706a6ef500104029c5e7196a324ac24";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/en-GB/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/en-GB/firefox-94.0.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "51839c5b3bd7c7ab471c44001318f09c0ef5fc9e82131308646adaaffca5a50d";
+ sha256 = "78005100d97d4fa48150606f5a9d6e7b4c6496b4cfe9fd3037031e486aa387d8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/en-US/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/en-US/firefox-94.0.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "29050d18670a61585b101f8fa4e196fcfc22d0447178143202301836f3c048eb";
+ sha256 = "9d91733d36b16bea6df2e988ccc8ec541bda558f8a8d9a4d4134225dd21ac7ec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/eo/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/eo/firefox-94.0.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha256 = "155e7fa1b564bec8cb11fd12efcfd9438be986e05fae2e978251d8baa7642c08";
+ sha256 = "6164f90815da3943f14514999969c6b2cbf6227d088524084b137d1fa2533f4d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/es-AR/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/es-AR/firefox-94.0.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "524f2abfb48663f30d92cd3da01be180ff13a182aa300f31beab3ea996ff3e92";
+ sha256 = "199c86c5eb5ad9f1936731c1d0b17a89b5a44d7409192aad0c3ae5ada296b44f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/es-CL/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/es-CL/firefox-94.0.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha256 = "ca79ea7d15fd829845e9bccb28ff366ea2c8dd023026e16c05adf076015ba46b";
+ sha256 = "664aa3266a728cfa4b2885cecc1cb82d3a38767e6eab0316718cccad82397219";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/es-ES/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/es-ES/firefox-94.0.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "0a31b2fc5719d46567795f4d49b0655923adee804c117d83915d8ad61dbf01f1";
+ sha256 = "28fd5db5af1aa1e0b50724b794fbb1c1c7208824be9eaba1736073cac8e83695";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/es-MX/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/es-MX/firefox-94.0.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha256 = "f9f4e72ac67247466539ed3c844748e34e85f4b9ba28123e9eba55fa5f845fbb";
+ sha256 = "242ae68cb8ad5227d6aa8f4d44c78e2a9a4c82b99fcd5c747324296725b9dc82";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/et/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/et/firefox-94.0.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "4a135e194c889b4a655c846e77d7fc7dc18faa9e1564a9ac9107ea492571bebb";
+ sha256 = "c2e9fee5dde6544e7868d1d0c879ba9a72d481efe09f8d21059087e17c6e94b4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/eu/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/eu/firefox-94.0.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "9bf92e2872590cc6879fb03885e8a89d0325696d1f5269d08b7469e384ce3134";
+ sha256 = "a3f2b298b5ac86c85bf5334ad7217b5a879e460cecf87711c0be9d8fc8704638";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/fa/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/fa/firefox-94.0.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha256 = "5025a2eb60cb136e1aee6aa846a15577bf95cb870dc30c51b6b79b5de01b3594";
+ sha256 = "e1a9f506417b391b0635604e155a2d9389baaa73b591f3c43a8defa8e5e7a3e0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ff/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ff/firefox-94.0.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha256 = "f20436867ecbf73bb2262645bcb7b566173bc7975a46a3d7fa74718ce9f1fe6d";
+ sha256 = "89cb6b9d8757de75fdcc73098943a4ff81f3ce6d2f7d938fe94ba7f875069aaf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/fi/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/fi/firefox-94.0.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "4e8a5ca31f6dce0891b24e03b54c0fa3774f9bba5e99b90d73bcc5cadc20b12f";
+ sha256 = "322070cbba8c68f4b6a918018273c989e8fd8a7378ba86fad533490a93ec3af1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/fr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/fr/firefox-94.0.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "5e4d6b7d4f654b53afb2d6dd32291feda2a06fcd8d30a0fd8580a81e12716015";
+ sha256 = "24142d84aca0895c6f9f4c312597afc59bac072bd56c24dbe46bb869dcbbc094";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/fy-NL/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/fy-NL/firefox-94.0.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "3ef484bd72bbb0d4ad75d42d052e26e1da50f85e7bb124e3f7a02e96ba06d837";
+ sha256 = "19d39c728d1623e0a53b2b5b58bb948a018e75a87fd31ac390b65537be577f1e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ga-IE/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ga-IE/firefox-94.0.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "45cffb030cb8a3efe85eaee32b97d3b995b2ab0c8a5b943cdade38bc39bf6a0a";
+ sha256 = "8ffb458b531035c015299e089cc2caafad55876cdcf4adb259eeedb613a40904";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/gd/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/gd/firefox-94.0.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "9cc69e735cf67da632ad1765853224a7b442883c023bd45d87cfd5f1a90e06e7";
+ sha256 = "9f0ceaf44c8d689f08c1e9752af948fa143c41cc87afa8f16be66f839975447d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/gl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/gl/firefox-94.0.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "567e290d2e6a9b09db3d1b0e33ef5d88a9db2b6ab8cdfc1ebf6619327b030a98";
+ sha256 = "f63683e490103a978e1da9cbb4cbbc1d46a44b4a76a429072299338165067f65";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/gn/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/gn/firefox-94.0.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha256 = "bb39c07acc3bc89d7c36a121b701776793f391c05f011087367da6ac7a3f82cf";
+ sha256 = "f1233e94f5f82ff37dccd91eaa64bbdd13f70eaa14817e943251faf7a57f8e0a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/gu-IN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/gu-IN/firefox-94.0.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha256 = "4bb13592ece99d0f3baf0fc2ea0e4017ae5f14f0099baf4b17a83505ad811ad5";
+ sha256 = "ea2528a2f78d73f0554e319aa6f7beec1be3d8c60ffb545a27e5b5fc26d103a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/he/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/he/firefox-94.0.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "ed666bd6e000d232b7c0a2e7e1c236c4cdbea638fb6327a23629be033093ab11";
+ sha256 = "efa093a43af1b86d786c0e6349d6c02f53b3ec2d9eac6c6be2182d84bd3ccaaa";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/hi-IN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/hi-IN/firefox-94.0.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha256 = "0e48dbbda7854a54465ef78c194c7c5d1dd7f3c5609ccee92739a1245e625f36";
+ sha256 = "a26e025f1cb032883c6558bb2257d671f92733ca4b9dc5635ff2befb4eed2c9b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/hr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/hr/firefox-94.0.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "9ec220bfbb0e8e1c745c89cf9e7ca4349d70ecdd9ef343fdedf8a477dd33f582";
+ sha256 = "ee79321b1cb31624562bee737ecfabf533194a4c026dbb69bad4d510b63ef060";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/hsb/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/hsb/firefox-94.0.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "23ec07f1307a41791b0a54f3160779ae10e91ab051a1a5353a2f1b97f1495468";
+ sha256 = "dd334938f061bf1fdd08b303c6e4abc910be4264a40cf1be6ed808ace58f98e1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/hu/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/hu/firefox-94.0.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "101367ecf8df3de940bb672280569ad861cfdb17af8bcb393f9c9a7877e577d9";
+ sha256 = "c445dea144a4a3a57e5dbb483f1c5a3872cece10a466d0b2e0e7769c2c22627f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/hy-AM/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/hy-AM/firefox-94.0.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "e340c664894abe8b6ebb95bf8e9c0a800f19d7fcec82325a6de9a592a00a6ea8";
+ sha256 = "4ea07bb7d9c17ebc64e568d317820e91215d650aacaca420915fbf90f8a26542";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ia/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ia/firefox-94.0.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha256 = "cce244fe4b5387f567655f974862c3df5e77398b0803ae43eb60dce42f4614fd";
+ sha256 = "e5b05ae03fb961ca6e77c4fee0861b0e5faa913a49d60920541ed180e621ce1b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/id/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/id/firefox-94.0.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "a094a09793400eef4990aa638e50a2d894e434e568c2c00491a6ab444fe1a9d2";
+ sha256 = "090fc235bc878dbace606ed669ad26f7f48792fa00676627c2399bf73c7072a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/is/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/is/firefox-94.0.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "10e7a8689abf2ae940500d3562c21c3186883c6a8477c012b60d56c856fe0226";
+ sha256 = "16929ff44ec2f51dc8e4b7d0ed55fc0548db3bd830b65dddd23fe9f5f45882a5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/it/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/it/firefox-94.0.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "9b5c5ff9c7a52a1b58e31ca44bc993d31d42ed4e2ef697847391559c0986c5a3";
+ sha256 = "f8954f671c91073b46a1b6c2e03ea5df39becc40b7926478a8c8bcc78d49e105";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ja/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ja/firefox-94.0.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "3e8d6c06f7e66409c1a17ceffb81a4127b496bcc4a4cccae3be731414891a8dd";
+ sha256 = "35f497fa15427f8f2f78e40531444374982313f7e86305edea64c2a5139370e8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ka/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ka/firefox-94.0.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "2a0406c8205cc8de560f0d9c1dcee6963dbb2df67110ed54fe54821c82132bc6";
+ sha256 = "905bbb623f9792d92167e66880f9624479ad60f8bc68f257e5f59f1aebd33abb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/kab/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/kab/firefox-94.0.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "d6bcc16d8eba88cb29ab1985a717abf1e7835c01261e50f2d04bea9229327feb";
+ sha256 = "5a8c5006eb58f3a143b9580d7173fa87598caef93ecf73173fabeaa6e51574f8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/kk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/kk/firefox-94.0.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "ce6467027b132c8a56c5fa96e26140a11761c0a6b630ebf1b8d6d1ef8ef717e5";
+ sha256 = "893fcdbebdb7b646781be410ec08ecfaca06b65a6c58d9a0866070d724d654ec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/km/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/km/firefox-94.0.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha256 = "2af10a5004835e32c6ec579f621f7a2daa58f58f6eee831fe65efae0a2b6e5b7";
+ sha256 = "dc977315a12131902070ffa6c6f118593fa3535c8aaa2788c28a289f8f58071c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/kn/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/kn/firefox-94.0.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha256 = "272821a500af703c960d2d9ff18347616237ecf7340fef39f9a9897e807683b0";
+ sha256 = "4110bb026876a7ec25f6e3fc0b3f40a4ff2b1a52ba3aa7cf44bf86dd13e5bfd0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ko/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ko/firefox-94.0.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "a8b44dbb7744cf1c2ec25f9fc64b6fed1fc19aa06089dc503e648bfc449f78ed";
+ sha256 = "5d9912d2c259d89c2e95fa820bb8347e40739891fe0cb7db3484ea479b03093d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/lij/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/lij/firefox-94.0.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha256 = "e16be9d8119619328617e9c16a123a07aab4a4020eaae8cf0a8de1a87d9c6e58";
+ sha256 = "f2e7cf14aca5a1ecd13e682a421be77b63e8c4c46ce1fcdcfa06fb6f3226a2db";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/lt/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/lt/firefox-94.0.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "b3d3969331c25f74e65756b7bdd43a32234e5e40fed98597da073d0c67f96d98";
+ sha256 = "cff207c01f8c1a154376e3298f104a6cfd61978f553183631cacbea45a555381";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/lv/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/lv/firefox-94.0.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "a588b619b832aff9850692c622e1b458bbd3f481f0e9c6d12290dcbf16a05c4e";
+ sha256 = "f621fda53b5bcfd276c7a5edf4a32db23a3039050e51a7b2d2e52f654828d7d8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/mk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/mk/firefox-94.0.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha256 = "9aaa0a446703e06249e8c0ad56982962d34d5a59a9d25bd744377bb011014904";
+ sha256 = "a97c9c058e511841130267ddb8758b2f5c984eadca8021a9863a992d9dfc0661";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/mr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/mr/firefox-94.0.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha256 = "7b889d5ace4d0ea80a496fa1d2e963c052e55d6cffc57b3e8f1d4088bc7b6091";
+ sha256 = "b078043237564dbbf93e544f6791120f1daf0b00bd31bbbaf7d4a9c81b25eeb4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ms/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ms/firefox-94.0.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "bb52c8b703cef9e25b41cd3d85974cce0a009a1d83a9a97b295de6bfcdc07959";
+ sha256 = "74f7638b2d75476cbbffe6249ba9c64c1617bc21a57c30d8e2169df1b0f59bf4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/my/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/my/firefox-94.0.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha256 = "ed9f099d13f984e3ce3b8837066869df3861d5ebd6e6391ad0ded9a1db6bc946";
+ sha256 = "6eaa860ec35d6b71aa284ec798385dbbd8bdfb843a1fe8d898dda32b5ba7cc20";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/nb-NO/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/nb-NO/firefox-94.0.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "c922d44b8e8a2355e7c6231d976e9ccaed02ebee0ab1d781b079dd2bd2a6d848";
+ sha256 = "6b9832b1135f17d60220e3a6bf5cb557fcf57e5ff50e5538a3f42fab36319d2b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ne-NP/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ne-NP/firefox-94.0.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha256 = "5192653edff514a71ca95aa24eacf5e56dc824a47ee47df5c25d42bfb6bf521b";
+ sha256 = "71a5b237c05394176ba930fc458d375b3371d45dade1fbcaa009537cdfbe9a21";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/nl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/nl/firefox-94.0.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "9c5fc26d06f1f57e7f9f97761abcffa864b378ae259637d37e8084322df549bf";
+ sha256 = "8adc924dc977ac687dd1d5c80124e99ee1ffb854181636e208d934e396e46a1c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/nn-NO/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/nn-NO/firefox-94.0.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "85380878356b288976972c3fec4f393271975ba03a6541885676e13f78b0d1df";
+ sha256 = "4934faaea8bdd3de1eeb8ad9223d52d2f1e867e078d3c63443847fdc66d0d1c9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/oc/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/oc/firefox-94.0.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha256 = "f538de12b1c43a112c4ac1eac24ebeecff59bb9b820913cbf70b01cbd7cbdf9c";
+ sha256 = "440688f67ad6babb9cf7b5354c84fda25c33f8383b447c0cafe4973c30888d2c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/pa-IN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/pa-IN/firefox-94.0.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "4bfd146cd7b05bb4e63ebd035360c4b7b2fd1c6ea551cd400df5ac8c647a89ec";
+ sha256 = "b7b9dc6eeffe6a7be68f37d5625a4c9f40f6e592a96de7c3be81cfcb5928b395";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/pl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/pl/firefox-94.0.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "badaeaa9c937ad7766aba52a1f7a67016d50bc0c8843a0d2fc866104e5245dac";
+ sha256 = "5a452ca451afa94b43568c04ae91573c70ade62c41ecad41ccfe63f78a01a5ce";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/pt-BR/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/pt-BR/firefox-94.0.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "ce492dc058a636704a9483e82f95f102703136cd273f653e39f38ee8ef2381dd";
+ sha256 = "f7b19be51c9f7905f7249a5d2771647bb8234fef7a68314ca5e05cdf1335b519";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/pt-PT/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/pt-PT/firefox-94.0.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "2661cbca38cca08a504cd58a48b20623cbb87043240cf79a40530a315dbbe8ec";
+ sha256 = "2990d7460eea578e0ffbdb356e0e03157cdf897221b57e8e3369450aa47f0309";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/rm/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/rm/firefox-94.0.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "540351da416718343cab82f8756bc0b33a3a396377d27d02f1e9dc7e42e9db66";
+ sha256 = "1367561b5d30a9aa8f3d06ad5fbb5a3d23912d3baaf10593c4a8d24aff7784f7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ro/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ro/firefox-94.0.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "54b661b40ad66a5881a98d6c97fce50fb91542e677b7dc0be07f38c19e3927ad";
+ sha256 = "457c48c878d3ffd6c1a413e2ad87dbeff98bcb50459337836d291cd34d79d5fe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ru/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ru/firefox-94.0.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "250fe6abc746a74a1e1c7be095f8766b193738eabd095213da2b6e41b4e9249a";
+ sha256 = "669c1e78a7d46fff2be2756f3b06b769af9cccc11f7fb5e981e7862dbd4e915c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/sco/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/sco/firefox-94.0.tar.bz2";
locale = "sco";
arch = "linux-x86_64";
- sha256 = "b14fd7e73b132fce408ad8398728c1a13e065bb8a86a37720cb3aa02bc7fb4b7";
+ sha256 = "c4ea98e01c626a0088e4e94b8fc05723f178ce302ef2847cf6e45c9ffe7d70ea";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/si/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/si/firefox-94.0.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha256 = "f6427495f30297c38225e972090efd3f02242f70a7d47ff67da06f54d747da5d";
+ sha256 = "cd05e8a2ddf01a345bf5891d317fdcf7d3a0bc54f1a09700786db1f8cb8a3510";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/sk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/sk/firefox-94.0.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "a59f87ac0ee93fa517347148be8f1d519df525d63424a93faf11b6349557bcfe";
+ sha256 = "c64667483a3fb1ab8c5ebf1c16f2a80206c4266f530e6b3941bd164e0ea228e9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/sl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/sl/firefox-94.0.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "a86644ce8fa694fb6727488f566490f5cfd624edb556b94ff9ac6cd3506bd5b5";
+ sha256 = "35e2a7c6b215e57ba137f25be7d7e072c4f4e875150ce16e33717907731ad499";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/son/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/son/firefox-94.0.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha256 = "b76724b86c8c82036b159baf9c376de3db0d9855a256060259a6800e62fefc83";
+ sha256 = "50e0d59b34159572aac1249d2f0fc1b8e1a34dc0332822ad6553c5f9300adea0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/sq/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/sq/firefox-94.0.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "233d9bd22ddd0223c5f4d9f1e96caff90b4fdfc3527c8ca39f3da4aaa34918ee";
+ sha256 = "0a26399706b1731adac50c188aaefcbdf676cc512242440c41007c125669a6fd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/sr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/sr/firefox-94.0.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "9b65446757e6438ff477df76de2c9a79c5300a40b9533df90715ad842365840e";
+ sha256 = "3e43e14e80c98fc2eb02dceddffebafeaf960c30cab85da2150c02ab3805d038";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/sv-SE/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/sv-SE/firefox-94.0.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "a9b76248c2e5043129c4b55da2cedb5456df556c8cb28a3f7814e4b99ed5a02a";
+ sha256 = "407c2d972299b0f26f7161e5a2eff788fb7ea7b3c9c30d6269b8ec384b37c149";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/szl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/szl/firefox-94.0.tar.bz2";
locale = "szl";
arch = "linux-x86_64";
- sha256 = "532e51336b7ed703f4955ad01dbb030b19ab222f20bc44e5b224d24077d96537";
+ sha256 = "7d5a624540ac7f80395e817926933fba356d4d718895e2108d5a32f02aeaf36e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ta/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ta/firefox-94.0.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha256 = "1093e65ad6bf476417dd34dd44fcf97cbaa23bb897b71cb5c7b81a30e7bb38ae";
+ sha256 = "89901483a4f2b1ca1732f35cbbed1ebe2515986e15498de3073b838ab0c46993";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/te/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/te/firefox-94.0.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha256 = "99e4829264f1ec2ea00e3359db5f16113e30ad67d8e6f7b8611987f6c1ac5f35";
+ sha256 = "053565729f009879551cb8cb517942ab574d9a28698ec29d14b6c00550c851c5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/th/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/th/firefox-94.0.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "fb7baf520791be7d45b197ebdd81886635328c986bb0d06ea69c2c705fcc719d";
+ sha256 = "19655e2a64607454c4bff58016fa6762b1d68a0389a0dce7f0b6d0fd4fc19235";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/tl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/tl/firefox-94.0.tar.bz2";
locale = "tl";
arch = "linux-x86_64";
- sha256 = "1e8f5b75200fd25ad6e14f89d2be604bc724fb48d7cd15ee9b3adb2142a7d1f8";
+ sha256 = "8a8c6369384085f7b923715c45d9dbeee2f2d53595955ea763c5e074109fe594";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/tr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/tr/firefox-94.0.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "ca3201648b93b16513f4aeeaf6decece145e86a36706d26a0cd708f8e1c17fb0";
+ sha256 = "1ad702522fd900ca0c03bdaada843e14cc1b12ab7b3996efb45f43c6add8c2a2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/trs/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/trs/firefox-94.0.tar.bz2";
locale = "trs";
arch = "linux-x86_64";
- sha256 = "559d792599c51ba20a78e2a8cd4d10b47ccd61ad334a2504966b388fd4165991";
+ sha256 = "82f3cd4f9c041ce3921bab6f9b37ef241aaa711ee551e38446528622a51b0540";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/uk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/uk/firefox-94.0.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "290f97c09de52f639cf9c9b7cd605cf29d1b6a3419915a021a42353f9848d96f";
+ sha256 = "95acd99c8f1fa4ea9de8e3af31e0ab776ce025be2854a72cb40549356390d90e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/ur/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/ur/firefox-94.0.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha256 = "296d50147acf5e8564adedc1253899a5bf67d8db40eb46f8d7abb51d3dc8ad38";
+ sha256 = "890a7a8fd5821c76acf9be1bbd56221e5073cce82c707cd68fd9f5543a8febcf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/uz/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/uz/firefox-94.0.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "e53df4ca508cbaf49bae355fc08d1f37c90e99bd8629d3a4968e4905fe476b64";
+ sha256 = "4fe03256f1689ec3e63f387d51dbdf0a67c66152b01b7ba814c4511b8e3e167d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/vi/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/vi/firefox-94.0.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "35189770f0e63c9b1f5623c4ef3bef4115179adeeec2d1c3b9fe7595bae63329";
+ sha256 = "df8febc9569c490e987105ec046e34698c59bcc6848402a2542d2f82a2cc09cb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/xh/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/xh/firefox-94.0.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha256 = "df7e4988bc574de22f3419f5522cae14a8b7b6c9cb32402e990fff92895fc34b";
+ sha256 = "11d93be20b634cbf34953397539dde1aba1711b4131517edde8eed88283765c0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/zh-CN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/zh-CN/firefox-94.0.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "c9d10f3798510192c2a7e04c318e69a8f80945e72e7b7f81392d3f7f716cdbe4";
+ sha256 = "c0d2a9890a02c9f7a3a2830525892e326115d5f33897473a1ae57de0d7d4b27e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-x86_64/zh-TW/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-x86_64/zh-TW/firefox-94.0.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "22992234bae2f13ee4c22b3f75f69aff251ea466383f423398a062e400da21ad";
+ sha256 = "770f9282d48893d22dce66b3f416eaa6385bdfbd5dc1dce4f2d9df02cfd9fdbf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ach/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ach/firefox-94.0.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha256 = "316ca1559fbca9ad56be2ea53636dae960e05ccb3f50868df8baf427332b289c";
+ sha256 = "362cb04cba45c439b44625453cd981bfd81811e81144c30958fba5affe55cef8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/af/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/af/firefox-94.0.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "2a7ff4409a50d76319fc4a749f516171fc1abe2a53290b4bef3f7dd87871d4f7";
+ sha256 = "43c6e8e2833279572b2b2c1e70ea42f0ab3603cb9a74cf6f80121dac0f8ba058";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/an/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/an/firefox-94.0.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha256 = "dba4ce48f723ac4616906e7170e08aa14bff86def5f2e9edcbe4fa5bd283c4a9";
+ sha256 = "c52e9ee451de959203b52a511a7be5c2fe4afcda3e12a123d71f264250d46f29";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ar/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ar/firefox-94.0.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "db69d68b140702d595489d732c4f5909fede55cb4d5f81a91a12a7d769f96a8a";
+ sha256 = "3ae760cfb56c655792fd3e890980e4be2753fc0a31e7e6bbfee99220109ae8c7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ast/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ast/firefox-94.0.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "92185bfe4198d9d4d3fe2146e6cd1ba23dfcd258933e393d2ed29dd2239e6f23";
+ sha256 = "93b16862e89e178a215742faabcea5d948d1c10d3112943f1872ed283cbaf07d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/az/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/az/firefox-94.0.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha256 = "62fd888cd6639e208907268290b0d7eac668480a131052924c978b5356da8ab0";
+ sha256 = "68510d91c747baae7a4c808e859318e7bccf22fce2563da2e3c5e556a2611904";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/be/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/be/firefox-94.0.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "41f4cc7bb3f8aea6059afd61ac7518abc32708271aed42eaae058fe17c3e7691";
+ sha256 = "1e4758cda7503fa95eadec402e8bdebbf9059a8de9060b59e95f570f86758bc6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/bg/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/bg/firefox-94.0.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "59e502d69afdb5a80d6a3de0afd16caef6e2b69e86cdd716f62fd4d5631312c4";
+ sha256 = "95e4e4f1becfd49910f7509f57226f129c7150e198b000e36455423215c77ee1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/bn/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/bn/firefox-94.0.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha256 = "20b3c1c5ac49607fe6198cd078e95882e1bf0efba4456b3d0b484519ad8ff2a4";
+ sha256 = "b552136d7d9befcc90c6fb0cd11310feedc1df31ff2cc8a52cc7dc90d5a5609e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/br/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/br/firefox-94.0.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "c532e758f36f92bb06d0c9a9e99e121ea2ae8989a216334224d79303cbe9db50";
+ sha256 = "94d3fc7dc1a90d9f3f15eb4033581e9bf0a76abc2f98de73ad751845f247aa6b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/bs/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/bs/firefox-94.0.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha256 = "3b642ee6d1227fe4b459bda110285826a5f1d8d4ea32e30a9f043ac2f0d290bf";
+ sha256 = "cf07948c9a29a6f45fd4ed541fe4fbc070fa8a352ca013c5a271aa55090282dc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ca-valencia/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ca-valencia/firefox-94.0.tar.bz2";
locale = "ca-valencia";
arch = "linux-i686";
- sha256 = "1ffb6094c6f56c79c1032bd73b01335277c49988d37ff8be7767cfdcd5ddb0a6";
+ sha256 = "fc18e2256759652676380e063e343b5119169fc42ab8971582cc0cdd31351602";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ca/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ca/firefox-94.0.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "e70753a344a1b4bf1c95941495508de71a5c064fec7dba981fe123be48efe85d";
+ sha256 = "21dcd27ebfebd49fe1b054b821beb84d407633a2c1a3f6672fdc35e4f71241b2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/cak/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/cak/firefox-94.0.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "f71978689dcb2040910b342ca69dc863b9d50881b8015667f0ea5e16e6730429";
+ sha256 = "fe2b7e3212391293db934bc5c436abd5198e91253544689a820f70f9c93ed402";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/cs/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/cs/firefox-94.0.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "7e98ec58cecce174b3a76550bc3c4e0efea5f49ed6270137697dbe3410232b07";
+ sha256 = "598ff5d4d7111578cd70a86581940ad6bf5e7c92ecd2a3ba8103022e91136bf7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/cy/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/cy/firefox-94.0.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "5c6b89f3ad3404ce5269c9da0ce5a2a827409f989146bad2ace80a93067ee0da";
+ sha256 = "322ad3fb9c2bbad85d556ca51ccb6a93588935b1787c6a1c4c38ec8bc2e3268a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/da/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/da/firefox-94.0.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "c7f21ccb8478fcc0cc76d7895f8b4e18fb750d62f9d6a01101b106f436c015bf";
+ sha256 = "52c4aae25b5842a1ab044aeb79377c7583d21e9cf1e22c8962fc2e8ba6eb2497";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/de/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/de/firefox-94.0.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "69cec8959bfcfb1103097657980b9a40b946fe7fe61c93c8fe78aab996a2f30a";
+ sha256 = "233fca3c08dd7903cbe94bd9c5729c1f798cd8d705afb4e71ef0818d9677a92e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/dsb/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/dsb/firefox-94.0.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "568d38d8650fa65d258db761c19396da66110588b50be860a107675b0420715c";
+ sha256 = "5b271d57eb0f71d5d6e89802362a693ee77862c84c1657b20aaf7edb323988d1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/el/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/el/firefox-94.0.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "b3567a5124db9ff3aa6878bcc24f4f484c73ac2bbf928efcbc8d5cec50acfcf4";
+ sha256 = "4b46c4175dec3ee1e6d0ab9e254fcaab81e80e72bee78f59d361d4deddb661f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/en-CA/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/en-CA/firefox-94.0.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "aee0ffc689d817fe539473a5164b6cb0ad9a6bafa23282af56fd87743261365f";
+ sha256 = "7df34d2a0889aafc6d5d5cea4df61ea640a0ee479d0926dd1e406c2b8b17451e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/en-GB/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/en-GB/firefox-94.0.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "528c966c67582b5bd96e0e6ca911ecd5a30988237bb7d93d85dbb2e5979c0301";
+ sha256 = "efc65e2cd633e9f29fd890263a5a2c859ee10567b6c6e4f5a8eb541f888e3366";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/en-US/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/en-US/firefox-94.0.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "3fbb43fa7e8f1636a5c9be13af710dd5b3ef5326803b1fc35634ef68cb8db531";
+ sha256 = "2420dac89edba10f231e8c9449ca91d5863cfe38d749f77fe0e6d77403cbb7de";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/eo/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/eo/firefox-94.0.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha256 = "62de83dc9b666f1699302754676b5657e587203c49ab71ff925657a73c53ad5f";
+ sha256 = "308f92c206b25b99abfa595eb532cedfc865a8bdbd0cb4cea53d90ef525bfca9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/es-AR/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/es-AR/firefox-94.0.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "08d8aa305344ea45256dcc7c574c9a8fdd5e44e7ea889a1ea4e6af17eaaa09ca";
+ sha256 = "0cb3605c842e5b69719b456a41944e7afc5150c77038a7e946abdb16a148e096";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/es-CL/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/es-CL/firefox-94.0.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha256 = "41fbcf2947e91b50b5467f7341dd02be42b71240414b56aac651d6ba7f53e74b";
+ sha256 = "13d085bbef8bae604488de620aea95d4088b898bccd11e8b597f36909a1e8f85";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/es-ES/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/es-ES/firefox-94.0.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "e180d0e363ea6fdc4f2fe7c727c5958d33b42c27267b05b31928ffb5799a06d8";
+ sha256 = "30e153b20288ba67ce74a59ef0a66f9ef133580b445ed51044660f96b8e7e71c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/es-MX/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/es-MX/firefox-94.0.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha256 = "00ee74e5b48685accba8e37510742821a3a6ee993649429194dd46da63b553f7";
+ sha256 = "75352b7d2f3f216888b86c31e1f89e4082cdb859feaac0d3c00138b5bb90052d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/et/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/et/firefox-94.0.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "430c623e3b855dba5f13173031ebce68079f71394194cec5f60cacd6a2e1c061";
+ sha256 = "5bd55749ab95983248d19eb5895dd982598e0857c43fd7f658fa3672203d0fe3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/eu/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/eu/firefox-94.0.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "9e056cd390cd72fd3cb75f6c704b36798c835fed3eea46d44cd036c6d012b18f";
+ sha256 = "015a815e7588cb5845d6d38c83d27088198986e35db13d38bbed1a9bd47e81c7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/fa/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/fa/firefox-94.0.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha256 = "5ab4507f0af10790e4df3f4caacabeb9ce01e82b9b002791a1102193492f7c1f";
+ sha256 = "ae117c651dce5b8e242a56d37a337c94f52ecf5453ea1d579c838c9bc8ca2728";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ff/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ff/firefox-94.0.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha256 = "031e7de2b235aa06ea74850506dd241621548032fb65fbb27b3389d557271e9d";
+ sha256 = "e92cdd13973fbb41d89ed4207b7f0f1ecb989dab357d765c18032343b3216de9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/fi/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/fi/firefox-94.0.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "d3f30254a4afef69da5dc59c6f77c48eb801f402e40bca9f2e97ad69d7dedebf";
+ sha256 = "7593d7aa6970664e60b04bdb20b389ac26213d5c0c39343c02878494cdac5184";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/fr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/fr/firefox-94.0.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "7e4063d25aba375375c6ef1749ddd6a49fe616ba2b293cac9220bcfcefa936f3";
+ sha256 = "5ff6d42610957ac8dde0bf979f775a0d6628ebb88eaf8e2d5964b396f6b6603f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/fy-NL/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/fy-NL/firefox-94.0.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "edf12cb878e8014402c8249c89fd648a0dc5ddf5621d9ee4f92694fb92b5a6e5";
+ sha256 = "c7d688238e7bbbd736e276a99d08941f8d4b232a9d622181afd84c516f8ca3b9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ga-IE/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ga-IE/firefox-94.0.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "9d7e464620bd62e81ce62fa6de176c614a8347cd2972d8ff96f3b6c7ec893c42";
+ sha256 = "9faa422501a3d435be9f6d45415cc30a0e38e41314bf6bbf0cb866e3788c1430";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/gd/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/gd/firefox-94.0.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "5c48eeefa57989c23810fddf8a63c0ab022e7774050f9e69f3d0abece64a7b33";
+ sha256 = "9a09850afb66abd76c5c4f49bc6b74fef9d2f8a7f143575a3f6aad14d5b1fa97";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/gl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/gl/firefox-94.0.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "eb1904437e14194c672e8efc493e08490b8660220ad4484fbe827d4e6c36ba11";
+ sha256 = "81f678ba67891560e520ab26eb419d08c0798b44e018ebe2a7af8e48e40ff659";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/gn/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/gn/firefox-94.0.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha256 = "1018ee1a262a44138a54f61c9755a42fd8fcf894466bc8f6ee63fd3db95eb08b";
+ sha256 = "a913a6e22d1e34c407eb804d6d53724e2240c1e158a1da05bf5f14ea161026d7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/gu-IN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/gu-IN/firefox-94.0.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha256 = "63b248a8f170066cb27858a239da41c08d3bd0dd31f49c0532f47dd3b8531cce";
+ sha256 = "5ebe57f52fe5b15f70d3246112b164cca27c9bc35032c077adc1007c8fef5e83";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/he/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/he/firefox-94.0.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "fa1db5d836aa3136e6051fc3a378c9ac7f6750da680e6581af1018f8f20e9c88";
+ sha256 = "6275efe3761abe08372465aa660de4feb34bc0a16f6ba1f4ca7861c758c38821";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/hi-IN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/hi-IN/firefox-94.0.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha256 = "d21f6a1a4edb24aea217ead940a41846a12de5004dcb8bc1145807ee32a08998";
+ sha256 = "920adec16d84adb0f000e75657f53ff17983b64cde0120bebdc2eb4d0bc1d975";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/hr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/hr/firefox-94.0.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "5e2fbd3e80787a8a2aad7f7324fe4d0b508bde79efe22ec0aad7f10e02db15ba";
+ sha256 = "39ba25071789f170129dc426e3d82756882c754125578e86f2f0da2fd9f8a9b0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/hsb/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/hsb/firefox-94.0.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "3698ae1adffdac77fb639d80114eeae27241a535f8cd248432256c4e7ba923e5";
+ sha256 = "3df9c6836a220182fb9b6c392a2b85d5680689835d2164fcc4bdba3a4ff06f46";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/hu/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/hu/firefox-94.0.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "bdda2cffd94bfbb86311db1df2f70693717c37938dc5481ae4d4ff961b1f123e";
+ sha256 = "55d914ad230f54086e32d2a2fff4dac2f7bac8d75cbefc5d78b247c55d4ac406";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/hy-AM/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/hy-AM/firefox-94.0.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "8e03e849a5fc77ccde394f48e752c7b38d791edc748679fb99149c9ec55cf114";
+ sha256 = "d99b6919fb5330cd60c494815260cdc7e5032f14d0cf9f7a8247aaa579b89136";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ia/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ia/firefox-94.0.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha256 = "da963fe2f9c5f739c75e0676a588d49bcc5f55e46e502f7c8fc26962e3f6b50b";
+ sha256 = "16a4c0f8dcde298b0de46536ad55f213f29277b714635b2ff8a60b637b93a8e4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/id/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/id/firefox-94.0.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "7053bd9321bbc81e2d8c0ee44d5bae33dc61658ab98de9dc9151b23af775ce2b";
+ sha256 = "ee7b5124c884848c62f5cbcbac5af3238c040541c30293ff3c6b097a439cb22e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/is/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/is/firefox-94.0.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "796332ab0dc70589fa719f9c43689474e6a4c4253a0334c3fcbec5ff46817a66";
+ sha256 = "39b77a3ceb6a71553ff8f17f7a21f84d51f6e91b6b2d890be6782ef8e8d8820c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/it/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/it/firefox-94.0.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "78b42d241584443d2bb92bf0c35a5616bf291f10ee8912eae7d729d3c51fdb95";
+ sha256 = "b0d05e2c777bea2abd0cdd91d2ada36db717b194e0b2b2774e4c9d7b6d4d9864";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ja/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ja/firefox-94.0.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "9ecf782fabd96dd5e39a36b6fbd59d0ff0532107cb3e91d97857fb360f2cb00f";
+ sha256 = "c22b8859cfd95c42294c471911244a0e7cd2bdb9fe409822ae2568180e18be7b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ka/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ka/firefox-94.0.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "17d7e4467fa606abbef19fad5eb22e3fda9435eb897560406e36f9f52daff804";
+ sha256 = "beaa70c670923e5df4ac0aeebc63168252c307d6c094ad05ddab484c60946071";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/kab/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/kab/firefox-94.0.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "b06eb4fd02a68286dd12dd5a2f1708ee11ec65d0c96e151d9a4fcf676daf7b45";
+ sha256 = "6a530d2ab5e58376f3ed652fba6c57cfb12961cef5906ebb3ef8af4509ad3750";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/kk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/kk/firefox-94.0.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "0b4fea3f3f06f18cf407956d9e8f1cff7c5e9b3a262bfec787c8433ddda5b5cd";
+ sha256 = "d192dcc8137129a1c35963a4c66e63e4200d32d7d8b4d5affa0153387dfc697f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/km/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/km/firefox-94.0.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha256 = "fd0422c095fa662c622732f2347757c058653839a9e7d29e775a5132f555797e";
+ sha256 = "0a056f6eed84c23074cca2f25a82c668f180eec8f74c8b4b6141251d6b8c8e3d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/kn/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/kn/firefox-94.0.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha256 = "23da36033e71f0bfbde58d00ed47895ace26d5cb35f440fe97e6c8572f847f6c";
+ sha256 = "9ba1637fd1f5368567483f8ed5ff8126cc76352f7d46782070850e19443f3e16";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ko/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ko/firefox-94.0.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "27279269f97127826a46fda7401fb929194c5b04107ba08158cc9169f4a35a4a";
+ sha256 = "cd37ae7cff4c843a7a2caa8dffe54f9faca26610bc74706f43bb1f069b1423f7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/lij/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/lij/firefox-94.0.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha256 = "d718cff103154a25a5159e788117767e82ca4581733c61e68b5c04dee7f1e21f";
+ sha256 = "9f74cfc8fad6f83c3d5e79b22502a108356b2a0259514b6a958b930b82953b21";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/lt/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/lt/firefox-94.0.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "d830090981e07344c714503b8cc37b6f2e63be4ee494a885542a998b56697ffc";
+ sha256 = "831d4b7eab6e9c41df904f19e0af4a9ac572ecd7116fe5f50fef7b878d95a97d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/lv/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/lv/firefox-94.0.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "d4cd8d44dc024d3d992b263f6dfd40ae52a22ddd87fdec6cbe092a739f723025";
+ sha256 = "7d95a06c4a0a474e34339e94ae2b5da8f2f671f6c4e834808ea2e8a6746be665";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/mk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/mk/firefox-94.0.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha256 = "45e4d1d02724c91f26b39dd5ea9f789a6ae966b31f9a0fa784b3f40a41d0d925";
+ sha256 = "4bdce5f56d567673b9217949ec28b85dc5e04dee820091af0181121a0d96ca40";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/mr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/mr/firefox-94.0.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha256 = "d84e53481bfad44403f1de84845444fe40cc8a92345e8a01262d98c09f47ddbf";
+ sha256 = "85c5b8fb78f8c9848e02dfdad4ad9375722d3d93e39cbe33e993709113598eab";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ms/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ms/firefox-94.0.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "905f8ec65500b63ae4e04647126871200520d3a8ac5d6deb79227794da2b24d9";
+ sha256 = "3ee490fb26655a317e31802d8c5ec845d2b7cb42393032756cb17380609bca22";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/my/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/my/firefox-94.0.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha256 = "37b93b5d29772952e00626b70e1e1655b483dd6d800a8e5fd55613d3f7910c0f";
+ sha256 = "4a2e59d2e34bbe3626facfa81e6110cbdd753b05fe077999f2824b6b7089892a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/nb-NO/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/nb-NO/firefox-94.0.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "f2ecd7f0f4f53c8705181716297772e78d433c3feee17730066a31582ae0c7b1";
+ sha256 = "78c4f405de0d4c586a4a0fcf616f5e776aea84eb955b8201221b9599f93bda6c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ne-NP/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ne-NP/firefox-94.0.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha256 = "5104800ddab3310a0c21cd7fda903c822eae256622735469e845c6a169d9d783";
+ sha256 = "9992fb97625500a732ca8c9bef32883d1ec34c5bd88f64dcd35c6097a7e40f9d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/nl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/nl/firefox-94.0.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "9c6c58ced571a0d044e8acbbaf8236d9de14df4378742086aaf4fd997c8b7509";
+ sha256 = "eaa09031df88bdc093e9ca952e92d0906016b2db6ef00dcec5c7f0cfef7300f8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/nn-NO/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/nn-NO/firefox-94.0.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "9e2a1cbc3d235df91962e9835712e1a52bdc830bc930a8e577cd2edb8b47e8fa";
+ sha256 = "1834a51455b46e2bc05396764e892f7033bd88dd38d3b1f5ff2a5372f8082bd4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/oc/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/oc/firefox-94.0.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha256 = "76da1a7f18f17a87c891252944bc6e2c2962b0ccaa450e1472e04ce5e1df2d90";
+ sha256 = "8ad55eacf0c83e9da6b05a8969c8255ec1525a81d37fad70a6d3b4b2127aeec5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/pa-IN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/pa-IN/firefox-94.0.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "60804014c94b3abb6785ce7da4f3036806f2ec378314a4b7cd61b3fd21e01365";
+ sha256 = "31af504f238ccdb0c7c13a3439e4282d04112c75ae8c37a4af234907006bd466";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/pl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/pl/firefox-94.0.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "f956ff3882125832feb630143ac335eb094c9e4c3102646487bd5e3a36ddaf8b";
+ sha256 = "be7e60b53d7af9ba8e37bdb0cb96d0c3413aa91d0d18fb2a75c290a30c7cec50";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/pt-BR/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/pt-BR/firefox-94.0.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "ae51131c8e6c99f15034e851d48f8b08c008a5a9edbecc05e7af2df9cb4d1c43";
+ sha256 = "5911470fe3f22815441e671e3cd735a6910f1f4971fbe38be1fc5d900101fd3a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/pt-PT/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/pt-PT/firefox-94.0.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "7568cd2077858ca9944fdb5eee9c991bbc5ad53cf355f161aa21342d61427a27";
+ sha256 = "63970065b91fe06990bfff3c64bed42462fe7f1b503952ef0fc1126a2c0ec1e7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/rm/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/rm/firefox-94.0.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "089f4383a2f586a9196d683126f69164465f0ec35e7adabb57ef961820280e06";
+ sha256 = "19b27c0397ef1cc2e66b824bfc4ce1ecd898d66e636cf91ac0d427eeffd2790b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ro/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ro/firefox-94.0.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "d40ca2a9def1c5667e39d1fa711b22383ebcfc99139d2e2dd29fd891f900406b";
+ sha256 = "058262df85b83bb7f0b63a9ba1c37515171c420f961bf552f2957429be28ebca";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ru/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ru/firefox-94.0.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "3de026d11f3b6ee19f95a1ad9b6eb3620697c4afda9627d54782c0f9eff3d421";
+ sha256 = "66741e268de073845609a4c0cbd7c7a2924682bf67be8a868908351adbb1926e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/sco/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/sco/firefox-94.0.tar.bz2";
locale = "sco";
arch = "linux-i686";
- sha256 = "4fe831c9d2d5444c61b8310be958de7174b5058e873f897159a5db5434a38cd6";
+ sha256 = "81950d16c18c117141f4ed029c341c2eaff9cdc8e6686542f8bda6143ffd217a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/si/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/si/firefox-94.0.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha256 = "0473706c50ba90efc8ceffcf1dd8fc7aa4f043d4494a29ff95f289d65a4d5938";
+ sha256 = "48e007a94382ff436084b2ca430e733516540810590caa18c126f4c02fd7cdba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/sk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/sk/firefox-94.0.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "ee20205a3b2e92e3aa54318dcaec7d9ad4a43c3cfde7b890652dbec7b7f36d30";
+ sha256 = "41aa765eddc48c9ca6f54d4a7a5e0a560ca5fe09301baa9a2936f0ed2b6496f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/sl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/sl/firefox-94.0.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "d4890198b1d21ceef36c7d4531f37726e4b769874cfbc8ab3882ebabe36bc037";
+ sha256 = "4abb659a46008a4945d4fc6aff3e2ea44b11ae3b018ceeba71001f316f43c008";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/son/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/son/firefox-94.0.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha256 = "715e12adc1a9e1597d9116f49598eca3f1e4161e4cb8bd80b666e4f8b5aa166a";
+ sha256 = "1dbe56489541537d0146914b675b3865dbd99c81535b999bb0127049145f5e0b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/sq/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/sq/firefox-94.0.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "a5b982feb51839aace544c0e35244c77a3dac26ddda652ab5ee18c1472f7ee5b";
+ sha256 = "320d96283c35b31d1ea8b064b42b535bbb05914a8990a9c57c3eb70d9d00d70b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/sr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/sr/firefox-94.0.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "2bdba656b4b7fe0f83ed895b77ba7d0e1e0701b98c9603c210a10ebc4d0061fc";
+ sha256 = "67f3110abcc7a6ac809bfd736fc93896f43a2b74af6050232f73d7a9241f77ba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/sv-SE/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/sv-SE/firefox-94.0.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "58bdd781766057ee0eadf439b90964c4c6d09eb27b4d085d2eb6ebdb60147922";
+ sha256 = "7449ccd7d60310d2fbf3a41f29f26ad367f68cf7818bc52dd88b13fb36934f40";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/szl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/szl/firefox-94.0.tar.bz2";
locale = "szl";
arch = "linux-i686";
- sha256 = "3de916e83f388da456ecd420008dfb6a41707699c507ab318aed2b060af7e369";
+ sha256 = "2b618f1d76b7956ae155300a12762b798674e75ebbf45dcb7f9117354d4f7b37";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ta/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ta/firefox-94.0.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha256 = "ededbd930c5430b5582093ed385ac0ed81ac48da31cc51d02fdd11fa582eba75";
+ sha256 = "02748056d19f789cdcde3a177da3e7f18445761a98b12eecf977ff5eb03be395";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/te/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/te/firefox-94.0.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha256 = "9913061ffee19132a8a560d13c1a9948cb57c67e1fb1a243ecbfb1973fb072e0";
+ sha256 = "6b566444e09255848619616a90c077992ed8ec5f37c3f05dd3dcd73b56f69257";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/th/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/th/firefox-94.0.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "4e9f765ae6677e00720f1c7bd9bfd3a7f83e9c68a889958444430d086991d7c5";
+ sha256 = "5fd70591f901e830139ed969bf3ecacbfa7bce8f14ca5a8b2606f25e56b87c2c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/tl/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/tl/firefox-94.0.tar.bz2";
locale = "tl";
arch = "linux-i686";
- sha256 = "d98f74c41c1b39d9946f55ac3803826bcade325458b1415ebd6e93e5ff18b03f";
+ sha256 = "418d24e78a4c981722e53427bb124fdd9fb8f5292a1e2f0b2d3aa8e4cd33111c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/tr/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/tr/firefox-94.0.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "0b0dd787cfec56d8c7cd1fec959b589958e7ed59ac9415fc0374486b1bbc567f";
+ sha256 = "b4abfd964b934d2f7118c13d73a2d321540a16e5f7e84f3b7589f905e85d570f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/trs/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/trs/firefox-94.0.tar.bz2";
locale = "trs";
arch = "linux-i686";
- sha256 = "98bf2ef8b94fc3cfeaa324ac4fb07c28723072a09150f68835ed07fc6429d796";
+ sha256 = "7e656c2c1be7e42d68913328c4d1e8de711b2af75fe8125337750c7be040f228";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/uk/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/uk/firefox-94.0.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "87c66d8f1155b428879b1fe83ca0f439cbe323b1a35d33d7d1fd6c30a73ed8ed";
+ sha256 = "f7e621633585fc7abd7ab63d4148ffb25b5717ac4e01d2ec9c456fac6c05b22b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/ur/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/ur/firefox-94.0.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha256 = "8bfb0c2cdb60e7e3964cc5cfa363633d03fa28cb149411883ba00044448e0eb1";
+ sha256 = "ba8656ec5386b77fcc850be8f5218c3bfca154a2aadf20248bf3307290c03646";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/uz/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/uz/firefox-94.0.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "2bfad6b583a7052b97c89681fe53b27e2c4ad97f40ee9e3d4be59a29b204f39a";
+ sha256 = "f3ca1728f5bd101c57171c820f6831fa1c2d2c03cfc84aa52b47d74d6a044dda";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/vi/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/vi/firefox-94.0.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "54557679f6f58dded05c688338829b590eaca85cddc36a1e14263e07f39bd102";
+ sha256 = "98d119cea1d534c5390c68066424eeca8cccf8c842e27608aff1a66fb07feda0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/xh/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/xh/firefox-94.0.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha256 = "dec9743fc37e7d7f614293e65874d0dead710e6641dd3e2afb9cfc377a8900d6";
+ sha256 = "980e757674515b98d197ea27a33d8b3f9fee9a284a578c22f76b038917007b86";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/zh-CN/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/zh-CN/firefox-94.0.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "cdaf04b42adc999eda8108c18a62990ec18984c1133a98743b8059ff9a774c74";
+ sha256 = "87f6d9188135de2389c2288324ed2063aa5adc21ac7c1412d99922d75e0f0156";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/92.0/linux-i686/zh-TW/firefox-92.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/94.0/linux-i686/zh-TW/firefox-94.0.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "dc84f295a187bb49172953282ccef628a492b4f24050715d9591d842143e5688";
+ sha256 = "10a77bf3f63e669226bb44c6ada46c8224b73b9bfa03d05480fa6255fa9744eb";
}
];
}
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 9f2566d07d6d..c99d1c10a12c 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -5,15 +5,15 @@
{ lib, stdenv, pkg-config, pango, perl, python3, zip
, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
-, freetype, fontconfig, file, nspr, nss, nss_3_53
+, freetype, fontconfig, file, nspr, nss
, yasm, libGLU, libGL, sqlite, unzip, makeWrapper
, hunspell, libevent, libstartup_notification
, libvpx_1_8
-, icu69, libpng, jemalloc, glib, pciutils
-, autoconf213, which, gnused, rustPackages, rustPackages_1_45
+, icu69, libpng, glib, pciutils
+, autoconf213, which, gnused, rustPackages
, rust-cbindgen, nodejs, nasm, fetchpatch
, gnum4
-, gtk2, gtk3, wrapGAppsHook
+, gtk3, wrapGAppsHook
, debugBuild ? false
### optionals
@@ -27,6 +27,7 @@
, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
, gssSupport ? true, libkrb5
, pipewireSupport ? waylandSupport && webrtcSupport, pipewire
+, jemallocSupport ? true, jemalloc
## privacy-related options
@@ -90,20 +91,16 @@ let
then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS"
else "/bin";
- # 78 ESR won't build with rustc 1.47
- inherit (if lib.versionAtLeast version "82" then rustPackages else rustPackages_1_45)
- rustc cargo;
+ inherit (rustPackages) rustc cargo;
# Darwin's stdenv provides the default llvmPackages version, match that since
# clang LTO on Darwin is broken so the stdenv is not being changed.
# Target the LLVM version that rustc -Vv reports it is built with for LTO.
- # rustPackages_1_45 -> LLVM 10, rustPackages -> LLVM 11
llvmPackages0 =
- /**/ if stdenv.isDarwin
+ if stdenv.isDarwin
then buildPackages.llvmPackages
- else if lib.versionAtLeast rustc.llvm.version "11"
- then buildPackages.llvmPackages_11
- else buildPackages.llvmPackages_10;
+ else rustc.llvmPackages;
+
# Force the use of lld and other llvm tools for LTO
llvmPackages = llvmPackages0.override {
bootBintoolsNoLibc = null;
@@ -116,10 +113,6 @@ let
then overrideCC stdenv llvmPackages.clangUseLLVM
else stdenv;
- # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY
- # https://github.com/NixOS/nixpkgs/issues/126065
- nss_pkg = if lib.versionOlder version "83" then nss_3_53 else nss.override { useP11kit = false; };
-
# --enable-release adds -ffunction-sections & LTO that require a big amount of
# RAM and the 32-bit memory space cannot handle that linking
# We also disable adding "-g" for easier linking
@@ -136,44 +129,9 @@ buildStdenv.mkDerivation ({
patches = [
] ++
- lib.optional (lib.versionOlder version "86") ./env_var_for_system_dir-ff85.patch ++
lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch ++
- lib.optional (lib.versionOlder version "83") ./no-buildconfig-ffx76.patch ++
lib.optional (lib.versionAtLeast version "90") ./no-buildconfig-ffx90.patch ++
- lib.optional (ltoSupport && lib.versionOlder version "84") ./lto-dependentlibs-generation-ffx83.patch ++
- lib.optional (ltoSupport && lib.versionAtLeast version "84" && lib.versionOlder version "86")
- (fetchpatch {
- url = "https://hg.mozilla.org/mozilla-central/raw-rev/fdff20c37be3";
- sha256 = "135n9brliqy42lj3nqgb9d9if7x6x9nvvn0z4anbyf89bikixw48";
- })
-
- # This patch adds pipewire support for the ESR release
- ++ lib.optional (pipewireSupport && lib.versionOlder version "83")
- (fetchpatch {
- # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch
- url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch";
- sha256 = "0qc62di5823r7ly2lxkclzj9rhg2z7ms81igz44nv0fzv3dszdab";
- })
-
- # These fix Firefox on sway and other non-Gnome wayland WMs. They should be
- # removed whenever the following two patches make it onto a release:
- # 1. https://hg.mozilla.org/mozilla-central/rev/51c13987d1b8
- # 2. https://hg.mozilla.org/integration/autoland/rev/3b856ecc00e4
- # This will probably happen in the next point release, but let's be careful
- # and double check whether it's working on sway on the next v bump.
- ++ lib.optionals (lib.versionAtLeast version "92") [
- (fetchpatch {
- url = "https://hg.mozilla.org/integration/autoland/raw-rev/3b856ecc00e4";
- sha256 = "sha256-d8IRJD6ELC3ZgEs1ES/gy2kTNu/ivoUkUNGMEUoq8r8=";
- })
- (fetchpatch {
- url = "https://hg.mozilla.org/mozilla-central/raw-rev/51c13987d1b8";
- sha256 = "sha256-C2jcoWLuxW0Ic+Mbh3UpEzxTKZInljqVdcuA9WjspoA=";
- })
- ]
-
- ++ patches;
-
+ patches;
# Ignore trivial whitespace changes in patches, this fixes compatibility of
# ./env_var_for_system_dir.patch with Firefox >=65 without having to track
@@ -181,7 +139,7 @@ buildStdenv.mkDerivation ({
patchFlags = [ "-p1" "-l" ];
buildInputs = [
- gtk3 perl zip libjpeg zlib bzip2
+ gnum4 gtk3 perl zip libjpeg zlib bzip2
dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
xorg.pixman yasm libGLU libGL
@@ -189,24 +147,23 @@ buildStdenv.mkDerivation ({
xorg.libXdamage
xorg.libXext
libevent libstartup_notification /* cairo */
- libpng jemalloc glib
+ libpng glib
nasm icu69 libvpx_1_8
# >= 66 requires nasm for the AV1 lib dav1d
# yasm can potentially be removed in future versions
# https://bugzilla.mozilla.org/show_bug.cgi?id=1501796
# https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ
- nspr nss_pkg
+ nspr nss
]
++ lib.optional alsaSupport alsa-lib
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
++ lib.optional gssSupport libkrb5
++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
++ lib.optional pipewireSupport pipewire
- ++ lib.optional (lib.versionAtLeast version "82") gnum4
+ ++ lib.optional jemallocSupport jemalloc
++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
AVFoundation MediaToolbox CoreLocation
- Foundation libobjc AddressBook cups ]
- ++ lib.optional (lib.versionOlder version "90") gtk2;
+ Foundation libobjc AddressBook cups ];
NIX_LDFLAGS = lib.optionalString ltoSupport ''
-rpath ${llvmPackages.libunwind.out}/lib
@@ -218,22 +175,7 @@ buildStdenv.mkDerivation ({
rm -rf obj-x86_64-pc-linux-gnu
substituteInPlace toolkit/xre/glxtest.cpp \
--replace 'dlopen("libpci.so' 'dlopen("${pciutils}/lib/libpci.so'
- '' + lib.optionalString (pipewireSupport && lib.versionOlder version "83") ''
- # substitute the /usr/include/ lines for the libraries that pipewire provides.
- # The patch we pick from fedora only contains the generated moz.build files
- # which hardcode the dependency paths instead of running pkg_config.
- substituteInPlace \
- media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build \
- --replace /usr/include ${pipewire.dev}/include
- '' + lib.optionalString (lib.versionAtLeast version "80" && lib.versionOlder version "81") ''
- substituteInPlace dom/system/IOUtils.h \
- --replace '#include "nspr/prio.h"' '#include "prio.h"'
-
- substituteInPlace dom/system/IOUtils.cpp \
- --replace '#include "nspr/prio.h"' '#include "prio.h"' \
- --replace '#include "nspr/private/pprio.h"' '#include "private/pprio.h"' \
- --replace '#include "nspr/prtypes.h"' '#include "prtypes.h"'
- '';
+ '';
nativeBuildInputs =
[
@@ -263,6 +205,7 @@ buildStdenv.mkDerivation ({
# this will run autoconf213
configureScript="$(realpath ./mach) configure"
export MOZCONFIG=$(pwd)/mozconfig
+ export MOZBUILD_STATE_PATH=$(pwd)/mozbuild
# Set C flags for Rust's bindgen program. Unlike ordinary C
# compilation, bindgen does not invoke $CC directly. Instead it
@@ -309,7 +252,6 @@ buildStdenv.mkDerivation ({
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point
"--disable-updater"
- "--enable-jemalloc"
"--enable-default-toolkit=${default-toolkit}"
"--with-libclang-path=${llvmPackages.libclang.lib}/lib"
"--with-system-nspr"
@@ -329,6 +271,7 @@ buildStdenv.mkDerivation ({
++ flag alsaSupport "alsa"
++ flag pulseaudioSupport "pulseaudio"
++ flag ffmpegSupport "ffmpeg"
+ ++ flag jemallocSupport "jemalloc"
++ flag gssSupport "negotiateauth"
++ flag webrtcSupport "webrtc"
++ flag crashreporterSupport "crashreporter"
diff --git a/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch b/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
deleted file mode 100644
index 18d31356989a..000000000000
--- a/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
+++ /dev/null
@@ -1,6 +0,0 @@
---- a/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:00:14.157543388 +0100
-+++ b/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:01:28.731128320 +0100
-@@ -302 +302,2 @@
-- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
-+ const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR");
-+ rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast(dirname), false, getter_AddRefs(localDir));
diff --git a/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch b/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch
deleted file mode 100644
index b6f1b81fa9fe..000000000000
--- a/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- a/toolkit/library/build/dependentlibs.py
-+++ b/toolkit/library/build/dependentlibs.py
-@@ -36,26 +36,17 @@ def dependentlibs_win32_objdump(lib):
- proc.wait()
- return deps
-
--def dependentlibs_readelf(lib):
-+def dependentlibs_elf_objdump(lib):
- '''Returns the list of dependencies declared in the given ELF .so'''
-- proc = subprocess.Popen([substs.get('TOOLCHAIN_PREFIX', '') + 'readelf', '-d', lib], stdout = subprocess.PIPE,
-+ proc = subprocess.Popen([substs['LLVM_OBJDUMP'], '--private-headers', lib], stdout = subprocess.PIPE,
- universal_newlines=True)
- deps = []
- for line in proc.stdout:
-- # Each line has the following format:
-- # tag (TYPE) value
-- # or with BSD readelf:
-- # tag TYPE value
-- # Looking for NEEDED type entries
-- tmp = line.split(' ', 3)
-- if len(tmp) > 3 and 'NEEDED' in tmp[2]:
-- # NEEDED lines look like:
-- # 0x00000001 (NEEDED) Shared library: [libname]
-- # or with BSD readelf:
-- # 0x00000001 NEEDED Shared library: [libname]
-- match = re.search('\[(.*)\]', tmp[3])
-- if match:
-- deps.append(match.group(1))
-+ # We are looking for lines with the format:
-+ # NEEDED libname
-+ tmp = line.split()
-+ if len(tmp) == 2 and tmp[0] == 'NEEDED':
-+ deps.append(tmp[1])
- proc.wait()
- return deps
-
-@@ -110,7 +101,7 @@ def gen_list(output, lib):
- libpaths = [os.path.join(substs['DIST'], 'bin')]
- binary_type = get_type(lib)
- if binary_type == ELF:
-- func = dependentlibs_readelf
-+ func = dependentlibs_elf_objdump
- elif binary_type == MACHO:
- func = dependentlibs_mac_objdump
- else:
diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
deleted file mode 100644
index 3530954ea5c5..000000000000
--- a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
-diff -ur firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp firefox-65.0/docshell/base/nsAboutRedirector.cpp
---- firefox-76.0.orig/docshell/base/nsAboutRedirector.cpp 2020-05-03 19:01:29.926544735 +0200
-+++ firefox-76.0/docshell/base/nsAboutRedirector.cpp 2020-05-03 19:12:00.845035570 +0200
-@@ -62,8 +62,6 @@
- {"about", "chrome://global/content/aboutAbout.html", 0},
- {"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
- nsIAboutModule::ALLOW_SCRIPT},
-- {"buildconfig", "chrome://global/content/buildconfig.html",
-- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
- {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
- nsIAboutModule::ALLOW_SCRIPT},
-diff -ur firefox-65.0-orig/toolkit/content/jar.mn firefox-65.0/toolkit/content/jar.mn
---- firefox-65.0-orig/toolkit/content/jar.mn 2019-01-23 00:48:35.033372506 +0100
-+++ firefox-65.0/toolkit/content/jar.mn 2019-01-23 00:50:45.126565924 +0100
-@@ -36,7 +36,6 @@
- content/global/plugins.css
- content/global/browser-child.js
- content/global/browser-content.js
--* content/global/buildconfig.html
- content/global/buildconfig.css
- content/global/contentAreaUtils.js
- content/global/datepicker.xhtml
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index ac4a9f9c0e72..689ef8c59154 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
rec {
firefox = common rec {
pname = "firefox";
- version = "92.0";
+ version = "94.0.1";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "1a73cc275ea1790120845f579a7d21713ea78db0867ced767f393dfc25b132292dfbb673290fccdb9dcde86684e0300d56565841985fa3f0115376c91154ba8e";
+ sha512 = "634665ed64f2ef205fad03ba023bc915df110c0d4b0a5e36aa470627808fbb3bce5418ea607f909d4e1eaf7d90c5dcacf398b8a434e26906dcfa366292a18b66";
};
meta = {
@@ -32,10 +32,10 @@ rec {
firefox-esr-91 = common rec {
pname = "firefox-esr";
- version = "91.1.0esr";
+ version = "91.3.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "dad0249eb2ce66eb90ff5daf0dfb63105a19790dd45661d977f7cc889644e86b33b9b0c472f46d4032ae2e4fe02c2cf69d552156fb0ad4cf77a15b3542556ed3";
+ sha512 = "7cf6efd165acc134bf576715580c103a2fc10ab928ede4c18f69908c62a04eb0f60affa8ceafd5883b393c31b85cae6821d0ae063c9e78117456d475947deaa9";
};
meta = {
@@ -54,29 +54,4 @@ rec {
versionSuffix = "esr";
};
};
-
- firefox-esr-78 = common rec {
- pname = "firefox-esr";
- version = "78.14.0esr";
- src = fetchurl {
- url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "5d5e4b1197f87b458a8ab14a62701fa0f3071e9facbb4fba71a64ef69abf31edbb4c5efa6c20198de573216543b5289270b5929c6e917f01bb165ce8c139c1ac";
- };
-
- meta = {
- description = "A web browser built from Firefox Extended Support Release source tree";
- homepage = "http://www.mozilla.com/en-US/firefox/";
- maintainers = with lib.maintainers; [ eelco hexa ];
- platforms = lib.platforms.unix;
- badPlatforms = lib.platforms.darwin;
- broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
- # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
- license = lib.licenses.mpl20;
- };
- tests = [ nixosTests.firefox-esr-78 ];
- updateScript = callPackage ./update.nix {
- attrPath = "firefox-esr-78-unwrapped";
- versionSuffix = "esr";
- };
- };
}
diff --git a/pkgs/applications/networking/browsers/gmni/default.nix b/pkgs/applications/networking/browsers/gmni/default.nix
index 7baca62e6732..4bc4e360120f 100644
--- a/pkgs/applications/networking/browsers/gmni/default.nix
+++ b/pkgs/applications/networking/browsers/gmni/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, lib, fetchFromSourcehut, pkg-config, bearssl, scdoc }:
+{ stdenv, lib, fetchFromSourcehut, bearssl, scdoc }:
stdenv.mkDerivation rec {
pname = "gmni";
- version = "unstable-2021-03-26";
+ version = "1.0";
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "gmni";
- rev = "77b73efbcd3ea7ed9e3e4c0aa19d9247e21d3c87";
- sha256 = "1wvnzyv7vyddcd39y6q5aflpnnsdl4k4y5aj5ssb7vgkld0h1b7r";
+ rev = version;
+ sha256 = "sha256-3MFNAI/SfFigNfitfFs3o9kkz7JeEflMHiH7iJpLfi4=";
};
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ bearssl scdoc ];
+ nativeBuildInputs = [ scdoc ];
+ buildInputs = [ bearssl ];
meta = with lib; {
description = "A Gemini client";
homepage = "https://git.sr.ht/~sircmpwn/gmni";
license = licenses.gpl3Only;
maintainers = with maintainers; [ bsima jb55 ];
- platforms = platforms.all;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index 34cc5bb9160a..03bdb84f4384 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -6,7 +6,7 @@
, alsa-lib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
, dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
, libkrb5, libdrm, mesa
-, libxkbcommon, wayland # ozone/wayland
+, libxkbcommon, pipewire, wayland # ozone/wayland
# Command line programs
, coreutils
@@ -67,7 +67,7 @@ let
flac harfbuzz icu libpng opusWithCustomModes snappy speechd
bzip2 libcap at-spi2-atk at-spi2-core
libkrb5 libdrm mesa coreutils
- libxkbcommon wayland
+ libxkbcommon pipewire wayland
] ++ optional pulseSupport libpulseaudio
++ optional libvaSupport libva
++ optional vulkanSupport vulkan-loader
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index fe156347c93d..6217862eb156 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -7,6 +7,7 @@
, fribidi
, harfbuzz
, libunistring
+, libwebp
, mpg123
, openssl
, pcre
@@ -17,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "lagrange";
- version = "1.6.5";
+ version = "1.7.3";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${version}";
- sha256 = "sha256-ZrpgSst17jjly6UnEWmlIBYjjW9nGFs7GTbVaKpZMrM=";
+ sha256 = "sha256-peBdmz/aucrKO5Vsj8WkHkpGpLm4inQHee133Zph3MM=";
fetchSubmodules = true;
};
@@ -33,7 +34,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ];
- buildInputs = [ fribidi harfbuzz libunistring mpg123 openssl pcre SDL2 zlib ]
+ buildInputs = [ fribidi harfbuzz libunistring libwebp mpg123 openssl pcre SDL2 zlib ]
++ lib.optional stdenv.isDarwin AppKit;
hardeningDisable = lib.optional (!stdenv.cc.isClang) "format";
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index d245e7035a46..e92815476676 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -31,12 +31,12 @@ let
in mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "qutebrowser";
- version = "2.3.1";
+ version = "2.4.0";
# the release tarballs are different from the git checkout!
src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
- sha256 = "05n64mw9lzzxpxr7lhakbkm9ir3x8p0rwk6vbbg01aqg5iaanyj0";
+ sha256 = "8s2auxTrq/ljBXOy+4RHvhkod3h9xOOWThtV9yqFkuw=";
};
# Needs tox
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index ac063cb1a644..0e1f67800a20 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -43,12 +43,11 @@
# Hardening
, graphene-hardened-malloc
-# crashes with intel driver
-, useHardenedMalloc ? false
+# Whether to use graphene-hardened-malloc
+, useHardenedMalloc ? true
-# Whether to disable multiprocess support to work around crashing tabs
-# TODO: fix the underlying problem instead of this terrible work-around
-, disableContentSandbox ? true
+# Whether to disable multiprocess support
+, disableContentSandbox ? false
# Extra preferences
, extraPrefs ? ""
@@ -88,19 +87,25 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source
- version = "10.5.5";
+ version = "11.0";
lang = "en-US";
srcs = {
x86_64-linux = fetchurl {
- url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
- sha256 = "0847lib2z21fgb7x5szwvprc77fhdpmp4z5d6n1sk6d40dd34spn";
+ urls = [
+ "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
+ "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
+ ];
+ sha256 = "0938a9yjfg9qa9rv5acrmbgqq11mc8j0pvl1n64jrdz29crk6sj2";
};
i686-linux = fetchurl {
- url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
- sha256 = "0i26fb0r234nrwnvb2c9vk9yn869qghq0n4qlm1d7mr62dy6prxa";
+ urls = [
+ "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
+ "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
+ ];
+ sha256 = "07v1ca66a69jl238qdq81mw654yffrcyq685y4rvv8xvx11fnzzp";
};
};
in
diff --git a/pkgs/applications/networking/browsers/vieb/default.nix b/pkgs/applications/networking/browsers/vieb/default.nix
index 4c7a1dbb6590..781163050944 100644
--- a/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/pkgs/applications/networking/browsers/vieb/default.nix
@@ -1,14 +1,14 @@
-{ mkYarnPackage, fetchFromGitHub, electron, makeWrapper, makeDesktopItem, lib }:
+{ mkYarnPackage, fetchFromGitHub, electron, makeWrapper, makeDesktopItem, lib, p7zip }:
mkYarnPackage rec {
pname = "vieb";
- version = "6.0.0";
+ version = "6.1.0";
src = fetchFromGitHub {
owner = "Jelmerro";
repo = pname;
rev = version;
- sha256 = "sha256-3mX6z/CRUQdyQxYK50yqCZIrhPgitsyus4oLkbPqNvM=";
+ sha256 = "sha256-MJJeHnwfXouBygRT/wFWFMRHxQVf/3k2c7vp/tkD5co=";
};
packageJSON = ./package.json;
@@ -34,6 +34,11 @@ mkYarnPackage rec {
};
postInstall = ''
+ unlink $out/libexec/vieb/deps/vieb/node_modules
+ ln -s $out/libexec/vieb/node_modules $out/libexec/vieb/deps/vieb/node_modules
+
+ find $out/libexec/vieb/node_modules/7zip-bin -name 7za -exec ln -s -f ${p7zip}/bin/7za {} ';'
+
install -Dm0644 {${desktopItem},$out}/share/applications/vieb.desktop
pushd $out/libexec/vieb/node_modules/vieb/app/img/icons
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 6477f4fbe06e..4e44e5841805 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -18,11 +18,11 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec {
pname = "vivaldi";
- version = "4.1.2369.21-1";
+ version = "4.3.2439.44-1";
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
- sha256 = "03062mik6paqp219jz420jsg762jjrfxmj1daq129z2zgzq0qr8l";
+ sha256 = "1bsx8axs438f4p019mdq66pmpimf575r31rv6cibpgv85366xhh9";
};
unpackPhase = ''
@@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
buildPhase = ''
runHook preBuild
echo "Patching Vivaldi binaries"
- for f in crashpad_handler vivaldi-bin vivaldi-sandbox ; do
+ for f in chrome_crashpad_handler vivaldi-bin vivaldi-sandbox ; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}" \
diff --git a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
index d6703788ed92..0e4236f421a1 100644
--- a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -3,12 +3,12 @@
}:
stdenv.mkDerivation rec {
- name = "chromium-codecs-ffmpeg";
- version = "78.0.3904.70";
+ pname = "chromium-codecs-ffmpeg-extra";
+ version = "94.0.4606.50";
src = fetchurl {
- url = "https://launchpadlibrarian.net/449403909/${name}-extra_${version}-0ubuntu0.16.04.2_amd64.deb";
- sha256 = "00j604nm49z6hbyw7xsxcvmdjf7117kb478plkpizzvmm3w72b9v";
+ url = "https://launchpadlibrarian.net/558847674/${pname}_${version}-0ubuntu0.18.04.1_amd64.deb";
+ sha256 = "sha256-H7Tzd8tkaoLClXtNiwEO5nD4+PPt7Jgs+gtLiag/KN4=";
};
buildInputs = [ dpkg ];
diff --git a/pkgs/applications/networking/browsers/yandex-browser/default.nix b/pkgs/applications/networking/browsers/yandex-browser/default.nix
index 7fa9fb5237a9..a54ccfdf6cc3 100644
--- a/pkgs/applications/networking/browsers/yandex-browser/default.nix
+++ b/pkgs/applications/networking/browsers/yandex-browser/default.nix
@@ -131,5 +131,6 @@ stdenv.mkDerivation rec {
license = licenses.unfree;
maintainers = with maintainers; [ dan4ik605743 ];
platforms = [ "x86_64-linux" ];
+ broken = true;
};
}
diff --git a/pkgs/applications/networking/cawbird/default.nix b/pkgs/applications/networking/cawbird/default.nix
index 08f554503748..74074d23242a 100644
--- a/pkgs/applications/networking/cawbird/default.nix
+++ b/pkgs/applications/networking/cawbird/default.nix
@@ -71,10 +71,10 @@ stdenv.mkDerivation rec {
'';
# supply Twitter API keys
- # use default keys supplied by upstream, see https://github.com/IBBoard/cawbird/blob/master/README.md#preparation
+ # use keys supplied by @SuperSandro2000, see https://github.com/IBBoard/cawbird/blob/master/README.md#preparation
mesonFlags = [
- "-Dconsumer_key_base64=VmY5dG9yRFcyWk93MzJEZmhVdEk5Y3NMOA=="
- "-Dconsumer_secret_base64=MThCRXIxbWRESDQ2Y0podzVtVU13SGUyVGlCRXhPb3BFRHhGYlB6ZkpybG5GdXZaSjI="
+ "-Dconsumer_key_base64=YnJJNm01SE9PbEkzM3pWenZObVhVSHdlTg=="
+ "-Dconsumer_secret_base64=YUc1SkcyYzhsenlKT2VOWWhVSXlJMERDaFh0WEswUG9oTEp4TzhZNEdJb1hXN0hhYlY="
];
meta = with lib; {
@@ -83,6 +83,6 @@ stdenv.mkDerivation rec {
homepage = "https://ibboard.co.uk/cawbird/";
license = licenses.gpl3Plus;
platforms = platforms.linux;
- maintainers = with lib.maintainers; [ jonafato schmittlauch ];
+ maintainers = with lib.maintainers; [ jonafato schmittlauch SuperSandro2000 ];
};
}
diff --git a/pkgs/applications/networking/cisco-packet-tracer/7.nix b/pkgs/applications/networking/cisco-packet-tracer/7.nix
new file mode 100644
index 000000000000..33f35ba12af3
--- /dev/null
+++ b/pkgs/applications/networking/cisco-packet-tracer/7.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, lib
+, buildFHSUserEnvBubblewrap
+, callPackage
+, copyDesktopItems
+, dpkg
+, lndir
+, makeDesktopItem
+, makeWrapper
+, requireFile
+}:
+
+let
+ version = "7.3.1";
+
+ ptFiles = stdenv.mkDerivation {
+ name = "PacketTracer7drv";
+ inherit version;
+
+ dontUnpack = true;
+ src = requireFile {
+ name = "PacketTracer_${builtins.replaceStrings ["."] [""] version}_amd64.deb";
+ sha256 = "c39802d15dd61d00ba27fb8c116da45fd8562ab4b49996555ad66b88deace27f";
+ url = "https://www.netacad.com";
+ };
+
+ nativeBuildInputs = [ dpkg makeWrapper ];
+
+ installPhase = ''
+ dpkg-deb -x $src $out
+ makeWrapper "$out/opt/pt/bin/PacketTracer7" "$out/bin/packettracer7" \
+ --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
+ '';
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "cisco-pt7.desktop";
+ desktopName = "Cisco Packet Tracer 7";
+ icon = "${ptFiles}/opt/pt/art/app.png";
+ exec = "packettracer7 %f";
+ mimeType = "application/x-pkt;application/x-pka;application/x-pkz;";
+ };
+
+ fhs = buildFHSUserEnvBubblewrap {
+ name = "packettracer7";
+ runScript = "${ptFiles}/bin/packettracer7";
+
+ targetPkgs = pkgs: with pkgs; [
+ alsa-lib
+ dbus
+ expat
+ fontconfig
+ glib
+ libglvnd
+ libpulseaudio
+ libudev0-shim
+ libxkbcommon
+ libxml2
+ libxslt
+ nspr
+ nss
+ xorg.libICE
+ xorg.libSM
+ xorg.libX11
+ xorg.libXScrnSaver
+ ];
+ };
+in stdenv.mkDerivation {
+ pname = "ciscoPacketTracer7";
+ inherit version;
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir $out
+ ${lndir}/bin/lndir -silent ${fhs} $out
+ '';
+
+ desktopItems = [ desktopItem ];
+
+ nativeBuildInputs = [ copyDesktopItems ];
+
+ meta = with lib; {
+ description = "Network simulation tool from Cisco";
+ homepage = "https://www.netacad.com/courses/packet-tracer";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ lucasew ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/cisco-packet-tracer/8.nix b/pkgs/applications/networking/cisco-packet-tracer/8.nix
new file mode 100644
index 000000000000..c823dcbb1d35
--- /dev/null
+++ b/pkgs/applications/networking/cisco-packet-tracer/8.nix
@@ -0,0 +1,131 @@
+{ stdenv
+, lib
+, alsa-lib
+, autoPatchelfHook
+, buildFHSUserEnvBubblewrap
+, callPackage
+, copyDesktopItems
+, dbus
+, dpkg
+, expat
+, fontconfig
+, glib
+, libdrm
+, libglvnd
+, libpulseaudio
+, libudev0-shim
+, libxkbcommon
+, libxml2
+, libxslt
+, lndir
+, makeDesktopItem
+, makeWrapper
+, nspr
+, nss
+, requireFile
+, xorg
+}:
+
+let
+ version = "8.0.1";
+
+ ptFiles = stdenv.mkDerivation {
+ name = "PacketTracer8Drv";
+ inherit version;
+
+ dontUnpack = true;
+ src = requireFile {
+ name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb";
+ sha256 = "77a25351b016faed7c78959819c16c7013caa89c6b1872cb888cd96edd259140";
+ url = "https://www.netacad.com";
+ };
+
+ nativeBuildInputs = [
+ alsa-lib
+ autoPatchelfHook
+ dbus
+ dpkg
+ expat
+ fontconfig
+ glib
+ libdrm
+ libglvnd
+ libpulseaudio
+ libudev0-shim
+ libxkbcommon
+ libxml2
+ libxslt
+ makeWrapper
+ nspr
+ nss
+ ] ++ (with xorg; [
+ libICE
+ libSM
+ libX11
+ libxcb
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXScrnSaver
+ xcbutilimage
+ xcbutilkeysyms
+ xcbutilrenderutil
+ xcbutilwm
+ ]);
+
+ installPhase = ''
+ dpkg-deb -x $src $out
+ chmod 755 "$out"
+ makeWrapper "$out/opt/pt/bin/PacketTracer" "$out/bin/packettracer" \
+ --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
+
+ # Keep source archive cached, to avoid re-downloading
+ ln -s $src $out/usr/share/
+ '';
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "cisco-pt8.desktop";
+ desktopName = "Cisco Packet Tracer 8";
+ icon = "${ptFiles}/opt/pt/art/app.png";
+ exec = "packettracer8 %f";
+ mimeType = "application/x-pkt;application/x-pka;application/x-pkz;";
+ };
+
+ fhs = buildFHSUserEnvBubblewrap {
+ name = "packettracer8";
+ runScript = "${ptFiles}/bin/packettracer";
+ targetPkgs = pkgs: [ libudev0-shim ];
+
+ extraInstallCommands = ''
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}"/share/applications/* "$out/share/applications/"
+ '';
+ };
+in stdenv.mkDerivation {
+ pname = "ciscoPacketTracer8";
+ inherit version;
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir $out
+ ${lndir}/bin/lndir -silent ${fhs} $out
+ '';
+
+ desktopItems = [ desktopItem ];
+ nativeBuildInputs = [ copyDesktopItems ];
+
+ meta = with lib; {
+ description = "Network simulation tool from Cisco";
+ homepage = "https://www.netacad.com/courses/packet-tracer";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ lucasew ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index ddaaa6fd0da5..338d0b3b9f34 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cloudflared";
- version = "2021.9.0";
+ version = "2021.10.5";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflared";
rev = version;
- sha256 = "sha256-djgMTCDIVcaPI6to/pPN2hPi1tsKPxRCT30EL0OOEQU=";
+ sha256 = "sha256-vz7S6Qzr10Idy83ogMIHEHrjxGxxjtFnzNsuhbZqUnA=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 91ccf67f5579..38b6467857b8 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,15 +2,15 @@
buildGoModule rec {
pname = "argocd";
- version = "2.1.2";
- commit = "7af9dfb3524c13e941ab604e36e49a617fe47d2e";
+ version = "2.1.6";
+ commit = "a346cf933e10d872eae26bff8e58c5e7ac40db25";
tag = "v${version}";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo-cd";
rev = tag;
- sha256 = "1pr48z1qhv7xxnllr00zz2v0ygxmq2hjdyk0j3zazflnqr2mc596";
+ sha256 = "sha256-8DeVO7Wr1bFZXTp2kaEPizDwNU5ZsA1fykccaDUivh8=";
};
vendorSha256 = "sha256-N45yRlBGZ/c9ve2YPcWA26pylV8hzxjPh6evKtkgnoc=";
@@ -69,6 +69,6 @@ buildGoModule rec {
downloadPage = "https://github.com/argoproj/argo-cd";
homepage = "https://argo-cd.readthedocs.io/en/stable/";
license = licenses.asl20;
- maintainers = with maintainers; [ shahrukh330 superherointj ];
+ maintainers = with maintainers; [ shahrukh330 bryanasdev000 ];
};
}
diff --git a/pkgs/applications/networking/cluster/cilium/default.nix b/pkgs/applications/networking/cluster/cilium/default.nix
index 5984710d8c29..2351b41369eb 100644
--- a/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/pkgs/applications/networking/cluster/cilium/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cilium-cli";
- version = "0.9.0";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "cilium";
repo = pname;
rev = "v${version}";
- sha256 = "05qc1fcf4ahl1zvxv92mq3awiy5b1rq6r9l896b4hkp0m5lx9m3c";
+ sha256 = "sha256-vIm5PkRyh41jtvDrLDxFVzSkhFipYYYEEY0/qxbOXGE=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index 619b2834e5c6..a4b49adb1e20 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -2,25 +2,23 @@
buildGoModule rec {
pname = "cloudfoundry-cli";
- version = "7.3.0";
+ version = "8.0.0";
src = fetchFromGitHub {
owner = "cloudfoundry";
repo = "cli";
rev = "v${version}";
- sha256 = "sha256-I+4tFAMmmsmi5WH9WKXIja1vVWsPHNGkWbvjWGUCmkU=";
+ sha256 = "00cwnfylra0msbb423ad21if98s6smzccsyidqsl4r2mrlkhahwm";
};
- # vendor directory stale
- deleteVendor = true;
- vendorSha256 = null;
+ vendorSha256 = "0fcgyyd11xfhn8i11bqnaw3h51bj1y8s37b4d8wzv31dr8zswqsc";
subPackages = [ "." ];
# upstream have helpfully moved the bash completion script to a separate
# repo which receives no releases or even tags
bashCompletionScript = fetchurl {
- url = "https://raw.githubusercontent.com/cloudfoundry/cli-ci/6087781a0e195465a35c79c8e968ae708c6f6351/ci/installers/completion/cf7";
- sha256 = "1vhg9jcgaxcvvb4pqnhkf27b3qivs4d3w232j0gbh9393m3qxrvy";
+ url = "https://raw.githubusercontent.com/cloudfoundry/cli-ci/5f4f0d5d01e89c6333673f0fa96056749e71b3cd/ci/installers/completion/cf8";
+ sha256 = "06w26kpnjd3f2wdjhb4pp0kaq2gb9kf87v7pjd9n2g7s7qhdqyhy";
};
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix
index ccefd6d3de25..55f3e23ad6c3 100644
--- a/pkgs/applications/networking/cluster/flink/default.nix
+++ b/pkgs/applications/networking/cluster/flink/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "flink";
- version = "1.13.2";
+ version = "1.14.0";
src = fetchurl {
url = "mirror://apache/flink/${pname}-${version}/${pname}-${version}-bin-scala_2.11.tgz";
- sha256 = "sha256-GPiHV19Z2Htt75hCXK2nCeQMIBQFEEUxXlBembenFL0=";
+ sha256 = "149b9ae774022acc0109dced893ca2d73430627a612be17ff12de8734464aff8";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index ea59b5ecf280..0fe3ac021232 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,43 +1,48 @@
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
let
- version = "0.17.2";
+ version = "0.21.1";
+ sha256 = "1sb3912h28z097n7mn3hlh33hnxr9978h04py2m7gh27hmygscj3";
+ manifestsSha256 = "1rrnz50jfn3zgaz5hn7ghmgc31ahm4q49f0rxfagfygvks1h4910";
manifests = fetchzip {
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
- sha256 = "1v6md4xh4sq1vmb5a8qvb66l101fq75lmv2s4j2z3walssb5mmgj";
+ sha256 = manifestsSha256;
stripRoot = false;
};
in
buildGoModule rec {
- inherit version;
-
pname = "fluxcd";
+ inherit version;
src = fetchFromGitHub {
owner = "fluxcd";
repo = "flux2";
rev = "v${version}";
- sha256 = "0kcdx4ldnshk4pqq37a7p08xr5cpsjrbrifk9fc3jbiw39m09mhf";
+ inherit sha256;
};
- vendorSha256 = "sha256-glifJ0V3RwS7E6EWZsCa88m0MK883RhPSXCsAmMggVs=";
-
- nativeBuildInputs = [ installShellFiles ];
-
- subPackages = [ "cmd/flux" ];
-
- ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
+ vendorSha256 = "sha256-m0uVatnV4GIyllZTOkLxXGEiAWXGloFfxSJn51y0AQo=";
postUnpack = ''
cp -r ${manifests} source/cmd/flux/manifests
'';
+ patches = [
+ ./patches/disable-tests-ssh_key.patch
+ ];
+
+ ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
+
+ subPackages = [ "cmd/flux" ];
+
# Required to workaround test error:
# panic: mkdir /homeless-shelter: permission denied
HOME="$TMPDIR";
+ nativeBuildInputs = [ installShellFiles ];
+
doInstallCheck = true;
installCheckPhase = ''
$out/bin/flux --version | grep ${version} > /dev/null
@@ -50,6 +55,8 @@ buildGoModule rec {
done
'';
+ passthru.updateScript = ./update.sh;
+
meta = with lib; {
description = "Open and extensible continuous delivery solution for Kubernetes";
longDescription = ''
@@ -59,6 +66,6 @@ buildGoModule rec {
'';
homepage = "https://fluxcd.io";
license = licenses.asl20;
- maintainers = with maintainers; [ jlesquembre superherointj ];
+ maintainers = with maintainers; [ jlesquembre bryanasdev000 ];
};
}
diff --git a/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch b/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch
new file mode 100644
index 000000000000..5e28589c69cf
--- /dev/null
+++ b/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch
@@ -0,0 +1,21 @@
+diff --git a/cmd/flux/create_secret_git_test.go b/cmd/flux/create_secret_git_test.go
+index afa34ba..0d22cce 100644
+--- a/cmd/flux/create_secret_git_test.go
++++ b/cmd/flux/create_secret_git_test.go
+@@ -20,16 +20,6 @@ func TestCreateGitSecret(t *testing.T) {
+ args: "create secret git podinfo-auth --url=https://github.com/stefanprodan/podinfo --username=my-username --password=my-password --namespace=my-namespace --export",
+ assert: assertGoldenFile("./testdata/create_secret/git/secret-git-basic.yaml"),
+ },
+- {
+- name: "ssh key",
+- args: "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/rsa.private --namespace=my-namespace --export",
+- assert: assertGoldenFile("testdata/create_secret/git/git-ssh-secret.yaml"),
+- },
+- {
+- name: "ssh key with password",
+- args: "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/rsa-password.private --password=password --namespace=my-namespace --export",
+- assert: assertGoldenFile("testdata/create_secret/git/git-ssh-secret-password.yaml"),
+- },
+ }
+
+ for _, tt := range tests {
diff --git a/pkgs/applications/networking/cluster/fluxcd/update.sh b/pkgs/applications/networking/cluster/fluxcd/update.sh
new file mode 100755
index 000000000000..1ded63d4d86c
--- /dev/null
+++ b/pkgs/applications/networking/cluster/fluxcd/update.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused jq
+
+set -x -eu -o pipefail
+
+cd $(dirname "${BASH_SOURCE[0]}")
+
+TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/fluxcd/flux2/releases/latest | jq -r '.tag_name')
+
+VERSION=$(echo ${TAG} | sed 's/^v//')
+
+SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/archive/refs/tags/${TAG}.tar.gz)
+
+SPEC_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/releases/download/${TAG}/manifests.tar.gz)
+
+setKV () {
+ sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix
+}
+
+setKV version ${VERSION}
+setKV sha256 ${SHA256}
+setKV manifestsSha256 ${SPEC_SHA256}
+setKV vendorSha256 "0000000000000000000000000000000000000000000000000000" # The same as lib.fakeSha256
+
+cd ../../../../../
+set +e
+VENDOR_SHA256=$(nix-build --no-out-link -A fluxcd 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
+set -e
+
+cd - > /dev/null
+
+if [ -n "${VENDOR_SHA256:-}" ]; then
+ setKV vendorSha256 ${VENDOR_SHA256}
+else
+ echo "Update failed. VENDOR_SHA256 is empty."
+ exit 1
+fi
+
diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix
index 589ce21fe87b..0e8e652fbb30 100644
--- a/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -1,180 +1,96 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash
-, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2, fetchpatch, libtirpc
+{ lib, stdenv, fetchurl, makeWrapper, autoPatchelfHook
+, jdk8_headless, jdk11_headless
+, bash, coreutils, which
+, bzip2, cyrus_sasl , protobuf3_7, snappy, zlib, zstd
+, openssl
}:
+with lib;
+
let
- maven-jdk8 = maven.override {
- jdk = jdk8;
- };
- common = { version, sha256, dependencies-sha256, maven, tomcat, opensslPkg ? openssl }:
- let
- # compile the hadoop tarball from sources, it requires some patches
- binary-distributon = stdenv.mkDerivation rec {
- name = "hadoop-${version}-bin";
- src = fetchurl {
- url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}-src.tar.gz";
- inherit sha256;
- };
-
- postUnpack = lib.optionalString (tomcat != null) ''
- install -D ${tomcat.src} $sourceRoot/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/apache-tomcat-${tomcat.version}.tar.gz
- install -D ${tomcat.src} $sourceRoot/hadoop-common-project/hadoop-kms/downloads/apache-tomcat-${tomcat.version}.tar.gz
- '';
-
- # perform fake build to make a fixed-output derivation of dependencies downloaded from maven central (~100Mb in ~3000 files)
- fetched-maven-deps = stdenv.mkDerivation {
- name = "hadoop-${version}-maven-deps";
- inherit src postUnpack nativeBuildInputs buildInputs;
- buildPhase = ''
- while mvn package -Dmaven.repo.local=$out/.m2 ${mavenFlags} -Dmaven.wagon.rto=5000; [ $? = 1 ]; do
- echo "timeout, restart maven to continue downloading"
- done
- '';
- # keep only *.{pom,jar,xml,sha1,so,dll,dylib} and delete all ephemeral files with lastModified timestamps inside
- installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
- outputHashAlgo = "sha256";
- outputHashMode = "recursive";
- outputHash = dependencies-sha256;
- };
-
- nativeBuildInputs = [ maven cmake pkg-config ];
- buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 libtirpc ];
- NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
- NIX_LDFLAGS = [ "-ltirpc" ];
-
- # most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated
-
- patches = [
- (fetchpatch {
- url = "https://patch-diff.githubusercontent.com/raw/apache/hadoop/pull/2886.patch";
- sha256 = "1fim1d8va050za5i8a6slphmx015fzvhxkc2wi4rwg7kbj31sv0r";
- })
- ];
-
- postPatch = ''
- for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \
- hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \
- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java \
- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DockerContainerExecutor.java \
- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java \
- hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/MRJobConfig.java; do
- if [ -f "$file" ]; then
- substituteInPlace "$file" \
- --replace '/usr/bin/stat' 'stat' \
- --replace '/bin/bash' 'bash' \
- --replace '/bin/ls' 'ls' \
- --replace '/bin/mv' 'mv'
- fi
- done
- '';
- dontConfigure = true; # do not trigger cmake hook
- mavenFlags = "-Drequire.snappy -Drequire.bzip2 -DskipTests -Pdist,native -e";
- buildPhase = ''
- # 'maven.repo.local' must be writable
- mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetched-maven-deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 ${mavenFlags}
- # remove runtime dependency on $jdk/jre/lib/amd64/server/libjvm.so
- patchelf --set-rpath ${lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhadoop.so.1.0.0
- patchelf --set-rpath ${lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhdfs.so.0.0.0
- '';
- installPhase = "mv hadoop-dist/target/hadoop-${version} $out";
+ common = { pname, version, untarDir ? "${pname}-${version}", sha256, jdk, openssl, nativeLibs ? [ ], libPatches ? "" }:
+ stdenv.mkDerivation rec {
+ inherit pname version jdk libPatches untarDir openssl;
+ src = fetchurl {
+ url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}.tar.gz";
+ inherit sha256;
};
- in
- stdenv.mkDerivation {
- pname = "hadoop";
- inherit version;
-
- src = binary-distributon;
-
- nativeBuildInputs = [ makeWrapper ];
- installPhase = ''
- mkdir -p $out/share/doc/hadoop
- cp -dpR * $out/
- mv $out/*.txt $out/share/doc/hadoop/
-
- #
- # Do not use `wrapProgram` here, script renaming may result to weird things: http://i.imgur.com/0Xee013.png
- #
- mkdir -p $out/bin.wrapped
- for n in $out/bin/*; do
- if [ -f "$n" ]; then # only regular files
- mv $n $out/bin.wrapped/
- makeWrapper $out/bin.wrapped/$(basename $n) $n \
- --prefix PATH : "${lib.makeBinPath [ which jre bash coreutils ]}" \
- --prefix JAVA_LIBRARY_PATH : "${lib.makeLibraryPath [ opensslPkg snappy zlib bzip2 ]}" \
- --set JAVA_HOME "${jre}" \
- --set HADOOP_PREFIX "$out"
- fi
- done
+ nativeBuildInputs = [ makeWrapper ]
+ ++ optional (nativeLibs != [] || libPatches != "") [ autoPatchelfHook ];
+ buildInputs = [ openssl ] ++ nativeLibs;
+
+ installPhase = ''
+ mkdir -p $out/{lib/${untarDir}/conf,bin,lib}
+ mv * $out/lib/${untarDir}
+
+ for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
+ makeWrapper "$n" "$out/bin/$(basename $n)"\
+ --set-default JAVA_HOME ${jdk.home}\
+ --set-default HADOOP_HOME $out/lib/${untarDir}\
+ --set-default HADOOP_CONF_DIR /etc/hadoop-conf/\
+ --prefix PATH : "${makeBinPath [ bash coreutils which]}"\
+ --prefix JAVA_LIBRARY_PATH : "${makeLibraryPath buildInputs}"
+ done
+ '' + libPatches;
+
+ meta = {
+ homepage = "https://hadoop.apache.org/";
+ description = "Framework for distributed processing of large data sets across clusters of computers";
+ license = licenses.asl20;
+
+ longDescription = ''
+ The Apache Hadoop software library is a framework that allows for
+ the distributed processing of large data sets across clusters of
+ computers using a simple programming model. It is designed to
+ scale up from single servers to thousands of machines, each
+ offering local computation and storage. Rather than rely on
+ hardware to deliver high-avaiability, the library itself is
+ designed to detect and handle failures at the application layer,
+ so delivering a highly-availabile service on top of a cluster of
+ computers, each of which may be prone to failures.
'';
-
- meta = with lib; {
- homepage = "https://hadoop.apache.org/";
- description = "Framework for distributed processing of large data sets across clusters of computers";
- license = licenses.asl20;
-
- longDescription = ''
- The Apache Hadoop software library is a framework that allows for
- the distributed processing of large data sets across clusters of
- computers using a simple programming model. It is designed to
- scale up from single servers to thousands of machines, each
- offering local computation and storage. Rather than rely on
- hardware to deliver high-avaiability, the library itself is
- designed to detect and handle failures at the application layer,
- so delivering a highly-availabile service on top of a cluster of
- computers, each of which may be prone to failures.
- '';
- maintainers = with maintainers; [ volth ];
- platforms = [ "x86_64-linux" ];
- };
+ maintainers = with maintainers; [ volth illustris ];
+ platforms = [ "x86_64-linux" ];
};
- tomcat_6_0_48 = rec {
- version = "6.0.48";
- src = fetchurl {
- # do not use "mirror://apache/" here, tomcat-6 is legacy and has been removed from the mirrors
- url = "https://archive.apache.org/dist/tomcat/tomcat-6/v${version}/bin/apache-tomcat-${version}.tar.gz";
- sha256 = "1w4jf28g8p25fmijixw6b02iqlagy2rvr57y3n90hvz341kb0bbc";
};
+in
+{
+ # Different version of hadoop support different java runtime versions
+ # https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions
+ hadoop_3_3 = common rec {
+ pname = "hadoop";
+ version = "3.3.1";
+ sha256 = "1b3v16ihysqaxw8za1r5jlnphy8dwhivdx2d0z64309w57ihlxxd";
+ untarDir = "${pname}-${version}";
+ jdk = jdk11_headless;
+ inherit openssl;
+ # TODO: Package and add Intel Storage Acceleration Library
+ nativeLibs = [ stdenv.cc.cc.lib protobuf3_7 zlib snappy ];
+ libPatches = ''
+ ln -s ${getLib cyrus_sasl}/lib/libsasl2.so $out/lib/${untarDir}/lib/native/libsasl2.so.2
+ ln -s ${getLib openssl}/lib/libcrypto.so $out/lib/${untarDir}/lib/native/
+ ln -s ${getLib zlib}/lib/libz.so.1 $out/lib/${untarDir}/lib/native/
+ ln -s ${getLib zstd}/lib/libzstd.so.1 $out/lib/${untarDir}/lib/native/
+ ln -s ${getLib bzip2}/lib/libbz2.so.1 $out/lib/${untarDir}/lib/native/
+ patchelf --add-rpath ${jdk.home}/lib/server $out/lib/${untarDir}/lib/native/libnativetask.so.1.0.0
+ '';
};
-
-in {
- hadoop_2_7 = common {
- version = "2.7.7";
- sha256 = "1ahv67f3lwak3kbjvnk1gncq56z6dksbajj872iqd0awdsj3p5rf";
- dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r";
- tomcat = tomcat_6_0_48;
- opensslPkg = openssl_1_0_2;
- maven = maven-jdk8;
+ hadoop_3_2 = common rec {
+ pname = "hadoop";
+ version = "3.2.2";
+ sha256 = "1hxq297cqvkfgz2yfdiwa3l28g44i2abv5921k2d6b4pqd33prwp";
+ jdk = jdk8_headless;
+ # not using native libs because of broken openssl_1_0_2 dependency
+ # can be manually overriden
+ openssl = null;
};
- hadoop_2_8 = common {
- version = "2.8.4";
- sha256 = "16c3ljhrzibkjn3y1bmjxdgf0kn60l23ay5hqpp7vpbnqx52x68w";
- dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03";
- tomcat = tomcat_6_0_48;
- opensslPkg = openssl_1_0_2;
- maven = maven-jdk8;
- };
- hadoop_2_9 = common {
- version = "2.9.1";
- sha256 = "0qgmpfbpv7f521fkjy5ldzdb4lwiblhs0hyl8qy041ws17y5x7d7";
- dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x";
- tomcat = tomcat_6_0_48;
- opensslPkg = openssl_1_0_2;
- maven = maven-jdk8;
- };
- hadoop_3_0 = common {
- version = "3.0.3";
- sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5";
- dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m";
- tomcat = null;
- maven = maven-jdk8;
- };
- hadoop_3_1 = common {
- version = "3.1.1";
- sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd";
- dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn";
- tomcat = null;
- maven = maven-jdk8;
+ hadoop2 = common rec {
+ pname = "hadoop";
+ version = "2.10.1";
+ sha256 = "1w31x4bk9f2swnx8qxx0cgwfg8vbpm6cy5lvfnbbpl3rsjhmyg97";
+ jdk = jdk8_headless;
+ openssl = null;
};
}
diff --git a/pkgs/applications/networking/cluster/helm-docs/default.nix b/pkgs/applications/networking/cluster/helm-docs/default.nix
new file mode 100644
index 000000000000..7214530a046d
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "helm-docs";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = "norwoodj";
+ repo = "helm-docs";
+ rev = "v${version}";
+ sha256 = "sha256-eyFuF03rqwfXyjEkqNRkjrJlHBazGYij1EtN0LAKdFk=";
+ };
+
+ vendorSha256 = "sha256-aAn969C4UhFGu5/qXIG/rc1cErQIDtPwEA+f0d43y0w=";
+
+ subPackages = [ "cmd/helm-docs" ];
+ ldflags = [
+ "-w"
+ "-s"
+ "-X main.version=v${version}"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/norwoodj/helm-docs";
+ description = "A tool for automatically generating markdown documentation for Helm charts";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ sagikazarmark ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 8e9d2662ea68..f13c812d604d 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helm";
- version = "3.6.3";
- gitCommit = "ee407bdf364942bcb8e8c665f82e15aa28009b71";
+ version = "3.7.1";
+ gitCommit = "1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${version}";
- sha256 = "sha256-DfMI50eQsMHRX8S5rBzF3qlSfJizlYQyofA7HPkD4EQ=";
+ sha256 = "sha256-NjBG3yLtvnAXziLH/ALRJVaFW327qo7cvnf1Jpq3QlI=";
};
- vendorSha256 = "sha256-PTAyRG6PZK+vaiheUd3oiu4iBGlnFjoCrci0CYbXjBk=";
+ vendorSha256 = "sha256-gmyF/xuf5dTxorgqvW4PNA1l2SQ2oJuZCAFw7d8ufGc=";
doCheck = false;
diff --git a/pkgs/applications/networking/cluster/helm/plugins/default.nix b/pkgs/applications/networking/cluster/helm/plugins/default.nix
index edd19a25f9ba..342fd9e686a2 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/default.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/default.nix
@@ -2,10 +2,12 @@
{
- helm-diff = callPackage ./helm-diff.nix {};
+ helm-diff = callPackage ./helm-diff.nix { };
- helm-s3 = callPackage ./helm-s3.nix {};
+ helm-git = callPackage ./helm-git.nix { };
- helm-secrets = callPackage ./helm-secrets.nix {};
+ helm-s3 = callPackage ./helm-s3.nix { };
+
+ helm-secrets = callPackage ./helm-secrets.nix { };
}
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
new file mode 100644
index 000000000000..05ded10444ba
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, coreutils
+, findutils
+, git
+, gnugrep
+, gnused
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "helm-git";
+ version = "0.10.0";
+
+ src = fetchFromGitHub {
+ owner = "aslafy-z";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0hvycqibmlw2zw3nm8rn73v5x1zcgm2jrfdlljbvc1n4n5vnzdrg";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ # NOTE: helm-git is comprised of shell scripts.
+ dontBuild = true;
+
+ installPhase = ''
+ install -dm755 $out/helm-git
+ install -m644 -Dt $out/helm-git plugin.yaml
+ cp helm-git helm-git-plugin.sh $out/helm-git/
+
+ patchShebangs $out/helm-git/helm-git{,-plugin.sh}
+ wrapProgram $out/helm-git/helm-git \
+ --prefix PATH : ${lib.makeBinPath [ coreutils findutils git gnugrep gnused ]}
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "The Helm downloader plugin that provides GIT protocol support";
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ maintainers = with maintainers; [ flokli ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index c9ce179e236e..d24dff6fb8a9 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -1,31 +1,24 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm }:
+{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "helmfile";
- version = "0.140.1";
+ version = "0.141.0";
src = fetchFromGitHub {
owner = "roboll";
repo = "helmfile";
rev = "v${version}";
- sha256 = "sha256-QnGu/EGzgWva/EA6gKrDzWgjX6OrfZKzWIhRqKbexjU=";
+ sha256 = "sha256-UwjV3xgnZa0Emzw4FP/+gHh1ES6MTihrrlGKUBH6O9Q=";
};
vendorSha256 = "sha256-HKHMeDnIDmQ7AjuS2lYCMphTHGD1JgQuBYDJe2+PEk4=";
doCheck = false;
- nativeBuildInputs = [ makeWrapper ];
-
subPackages = [ "." ];
ldflags = [ "-s" "-w" "-X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ];
- postInstall = ''
- wrapProgram $out/bin/helmfile \
- --prefix PATH : ${lib.makeBinPath [ kubernetes-helm ]}
- '';
-
meta = {
description = "Deploy Kubernetes Helm charts";
homepage = "https://github.com/roboll/helmfile";
diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix
index 2ea7ea8d2455..47da659d7e1f 100644
--- a/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helmsman";
- version = "3.7.3";
+ version = "3.7.7";
src = fetchFromGitHub {
owner = "Praqma";
repo = "helmsman";
rev = "v${version}";
- sha256 = "sha256-7WN4YjhPbsFZfoFuZzsN85a+kdEVlEzQ9CfWh4nxxTs=";
+ sha256 = "sha256-duNkvRMq3CKAGDDsrDWKydFZRt6fxuO0uP2Ff3HA+ek=";
};
- vendorSha256 = "sha256-XHgdVFGIzbPPYgv/T4TtvDDbKAe3niev4S5tu/nwSqg=";
+ vendorSha256 = "sha256-4imZrZfpR/5tw9ZFSTr7Gx4G9O1iHNE9YRYMOJFKvHU=";
doCheck = false;
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 508ea403c5fa..acf9cea24e6b 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
buildGoModule rec {
pname = "istioctl";
- version = "1.11.2";
+ version = "1.11.4";
src = fetchFromGitHub {
owner = "istio";
repo = "istio";
rev = version;
- sha256 = "sha256-4v/2lEq2BJX90P3UpSyDcHkxclMOTK9bmvyq0MyB7Pg=";
+ sha256 = "sha256-DkZRRjnTWziAL6WSPy5V8fgjpRO2g3Ew25j3F47pDnk=";
};
- vendorSha256 = "sha256-TY7l5ttLKC3rqZ2kcy0l2gRXZg3vRrZBNzYsGerPe0k=";
+ vendorSha256 = "sha256-kioicA4vdWuv0mvpjZRH0r1EuosS06Q3hIEkxdV4/1A=";
doCheck = false;
diff --git a/pkgs/applications/networking/cluster/k0sctl/default.nix b/pkgs/applications/networking/cluster/k0sctl/default.nix
index d12042f40784..689922515de5 100644
--- a/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -5,16 +5,23 @@
buildGoModule rec {
pname = "k0sctl";
- version = "0.10.2";
+ version = "0.11.4";
src = fetchFromGitHub {
owner = "k0sproject";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-0vsOZbSQtoWvU81wnT7QWNhvIclwGAu441lTOuZnXho=";
+ sha256 = "sha256-Fk1aYSa3LqzxiHtlzH5pcNtodOprjfnCFh4UMqCa6Rc=";
};
- vendorSha256 = "sha256-3OTkigryWsyCytyNMyumJJtc/BwtdryvDQRan2dzqfg=";
+ vendorSha256 = "sha256-N4cU9wzBRZn71mZHkNDXKgSXvlN2QFS6K4MtlR25DJc=";
+
+ ldflags = [
+ "-s"
+ "-w"
+ "-X github.com/k0sproject/k0sctl/version.Environment=production"
+ "-X github.com/k0sproject/k0sctl/version.Version=${version}"
+ ];
meta = with lib; {
description = "A bootstrapping and management tool for k0s clusters.";
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index 4b60ec6ea2dd..77a9ef70dbe7 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -13,7 +13,6 @@
, pkg-config
, ethtool
, util-linux
-, ipset
, fetchFromGitHub
, fetchurl
, fetchzip
@@ -43,25 +42,31 @@ with lib;
# Those pieces of software we entirely ignore upstream's handling of, and just
# make sure they're in the path if desired.
let
- k3sVersion = "1.21.4+k3s1"; # k3s git tag
- k3sCommit = "3e250fdbab72d88f7e6aae57446023a0567ffc97"; # k3s git commit at the above version
+ k3sVersion = "1.22.2+k3s2"; # k3s git tag
+ k3sCommit = "3f5774b41eb475eb10c93bb0ce58459a6f777c5f"; # k3s git commit at the above version
+ k3sRepoSha256 = "1kjf2zkm5d3s1aj4w9gzsc3ms3a0cm900fyi9899ijczw1cbrc61";
+
+ traefikChartVersion = "10.3.0"; # taken from ./manifests/traefik.yaml at spec.version
+ traefikChartSha256 = "0y6wr64xp7bgx24kqil0x6myr3pnfrg8rw0d1h5zd2n5a8nfd73f";
- traefikChartVersion = "9.18.2"; # taken from ./scripts/download at TRAEFIK_VERSION
k3sRootVersion = "0.9.1"; # taken from ./scripts/download at ROOT_VERSION
- k3sCNIVersion = "0.8.6-k3s1"; # taken from ./scripts/version.sh at VERSION_CNIPLUGINS
+ k3sRootSha256 = "0r2cj4l50cxkrvszpzxfk36lvbjf9vcmp6d5lvxg8qsah8lki3x8";
+
+ k3sCNIVersion = "0.9.1-k3s1"; # taken from ./scripts/version.sh at VERSION_CNIPLUGINS
+ k3sCNISha256 = "1327vmfph7b8i14q05c2xdfzk60caflg1zhycx0mrf3d59f4zsz5";
baseMeta = {
description = "A lightweight Kubernetes distribution";
license = licenses.asl20;
homepage = "https://k3s.io";
- maintainers = with maintainers; [ euank superherointj ];
+ maintainers = with maintainers; [ euank ];
platforms = platforms.linux;
};
# bundled into the k3s binary
traefikChart = fetchurl {
url = "https://helm.traefik.io/traefik/traefik-${traefikChartVersion}.tgz";
- sha256 = "sha256-9d7p0ngyMN27u4OPgz7yI14Zj9y36t9o/HMX5wyDpUI=";
+ sha256 = traefikChartSha256;
};
# so, k3s is a complicated thing to package
# This derivation attempts to avoid including any random binaries from the
@@ -75,7 +80,7 @@ let
k3sRoot = fetchzip {
# Note: marked as apache 2.0 license
url = "https://github.com/k3s-io/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
- sha256 = "sha256-qI84KYJKY/T6pqWZW9lOTq5NzZiu//v1zrMzUCiRTGQ=";
+ sha256 = k3sRootSha256;
stripRoot = false;
};
k3sPlugins = buildGoPackage rec {
@@ -89,7 +94,7 @@ let
owner = "rancher";
repo = "plugins";
rev = "v${version}";
- sha256 = "sha256-uAy17eRRAXPCcnh481KxFMvFQecnnBs24jn5YnVNfY4=";
+ sha256 = k3sCNISha256;
};
meta = baseMeta // {
@@ -101,7 +106,7 @@ let
k3sRepo = fetchgit {
url = "https://github.com/k3s-io/k3s";
rev = "v${k3sVersion}";
- sha256 = "1w7drvk0bmlmqrxh1y6dxjy7dk6bdrl72pkd25lc1ir6wbzb05h9";
+ sha256 = k3sRepoSha256;
};
# Stage 1 of the k3s build:
# Let's talk about how k3s is structured.
@@ -237,6 +242,9 @@ stdenv.mkDerivation rec {
pname = "k3s";
version = k3sVersion;
+ # `src` here is a workaround for the updateScript bot. It couldn't be empty.
+ src = builtins.filterSource (path: type: false) ./.;
+
# Important utilities used by the kubelet, see
# https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
# Note the list in that issue is stale and some aren't relevant for k3s.
@@ -248,7 +256,6 @@ stdenv.mkDerivation rec {
bridge-utils
ethtool
util-linux # kubelet wants 'nsenter' from util-linux: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-705994388
- ipset
conntrack-tools
];
@@ -280,5 +287,7 @@ stdenv.mkDerivation rec {
$out/bin/k3s --version | grep v${k3sVersion} > /dev/null
'';
+ passthru.updateScript = ./update.sh;
+
meta = baseMeta;
}
diff --git a/pkgs/applications/networking/cluster/k3s/update.sh b/pkgs/applications/networking/cluster/k3s/update.sh
new file mode 100755
index 000000000000..01b3434b5bae
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/update.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused jq
+
+set -x -eu -o pipefail
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf ${WORKDIR}" EXIT
+
+cd $(dirname "${BASH_SOURCE[0]}")
+
+LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
+curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+ https://api.github.com/repos/k3s-io/k3s/releases > ${LATEST_TAG_RAWFILE}
+
+LATEST_TAG_NAME=$(jq 'map(.tag_name)' ${LATEST_TAG_RAWFILE} | \
+ grep -v -e rc -e engine | tail -n +2 | head -n -1 | sed 's|[", ]||g' | sort -rV | head -n1)
+
+K3S_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
+
+K3S_COMMIT=$(curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+ https://api.github.com/repos/k3s-io/k3s/tags \
+ | jq -r "map(select(.name == \"${LATEST_TAG_NAME}\")) | .[0] | .commit.sha")
+
+K3S_REPO_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/k3s-io/k3s/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
+
+FILE_SCRIPTS_DOWNLOAD=${WORKDIR}/scripts-download
+curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/download > $FILE_SCRIPTS_DOWNLOAD
+
+FILE_SCRIPTS_VERSION=${WORKDIR}/scripts-version.sh
+curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/version.sh > $FILE_SCRIPTS_VERSION
+
+FILE_MANIFESTS_TRAEFIK=${WORKDIR}/manifests-traefik.yaml
+curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/manifests/traefik.yaml > $FILE_MANIFESTS_TRAEFIK
+
+TRAEFIK_CHART_VERSION=$(awk -F/ '/traefik-([[:digit:]]+\.)/ {sub(/traefik-/, "", $6) ; sub(/\.tgz/, "", $6); print $6}' $FILE_MANIFESTS_TRAEFIK)
+
+TRAEFIK_CHART_SHA256=$(nix-prefetch-url --quiet "https://helm.traefik.io/traefik/traefik-${TRAEFIK_CHART_VERSION}.tgz")
+
+K3S_ROOT_VERSION=$(grep 'ROOT_VERSION=' ${FILE_SCRIPTS_DOWNLOAD} \
+ | cut -d'=' -f2 | cut -d' ' -f1 | sed 's/^v//')
+K3S_ROOT_SHA256=$(nix-prefetch-url --quiet --unpack \
+ "https://github.com/k3s-io/k3s-root/releases/download/v${K3S_ROOT_VERSION}/k3s-root-amd64.tar")
+
+CNIPLUGINS_VERSION=$(grep 'VERSION_CNIPLUGINS=' ${FILE_SCRIPTS_VERSION} \
+ | cut -d'=' -f2 | cut -d' ' -f1 | sed -e 's/"//g' -e 's/^v//')
+CNIPLUGINS_SHA256=$(nix-prefetch-url --quiet --unpack \
+ "https://github.com/rancher/plugins/archive/refs/tags/v${CNIPLUGINS_VERSION}.tar.gz")
+
+setKV () {
+ sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix
+}
+
+setKV k3sVersion ${K3S_VERSION}
+setKV k3sCommit ${K3S_COMMIT}
+setKV k3sRepoSha256 ${K3S_REPO_SHA256}
+
+setKV traefikChartVersion ${TRAEFIK_CHART_VERSION}
+setKV traefikChartSha256 ${TRAEFIK_CHART_SHA256}
+
+setKV k3sRootVersion ${K3S_ROOT_VERSION}
+setKV k3sRootSha256 ${K3S_ROOT_SHA256}
+
+setKV k3sCNIVersion ${CNIPLUGINS_VERSION}
+setKV k3sCNISha256 ${CNIPLUGINS_SHA256}
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
new file mode 100644
index 000000000000..a41c3c0ad35b
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -0,0 +1,44 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "kn";
+ version = "0.26.0";
+
+ src = fetchFromGitHub {
+ owner = "knative";
+ repo = "client";
+ rev = "v${version}";
+ sha256 = "sha256-hquxv1BluR535WvMtJlVyP7JuARDNGDjPAbdSSj2juo=";
+ };
+
+ vendorSha256 = null;
+
+ subPackages = [ "cmd/kn" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ ldflags = [
+ "-X knative.dev/client/pkg/kn/commands/version.Version=v${version}"
+ "-X knative.dev/client/pkg/kn/commands/version.VersionEventing=v${version}"
+ "-X knative.dev/client/pkg/kn/commands/version.VersionServing=v${version}"
+ ];
+
+ postInstall = ''
+ installShellCompletion --cmd kn \
+ --bash <($out/bin/kn completion bash) \
+ --zsh <($out/bin/kn completion zsh)
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/kn version | grep ${version} > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
+ homepage = "https://github.com/knative/client";
+ changelog = "https://github.com/knative/client/releases/tag/v${version}";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ bryanasdev000 ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile b/pkgs/applications/networking/cluster/krane/Gemfile
new file mode 100644
index 000000000000..94ff895ab390
--- /dev/null
+++ b/pkgs/applications/networking/cluster/krane/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'krane'
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile.lock b/pkgs/applications/networking/cluster/krane/Gemfile.lock
new file mode 100644
index 000000000000..7cc11b1af60f
--- /dev/null
+++ b/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -0,0 +1,120 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (6.1.4.1)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ zeitwerk (~> 2.3)
+ addressable (2.8.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ colorize (0.8.1)
+ concurrent-ruby (1.1.9)
+ domain_name (0.5.20190701)
+ unf (>= 0.0.5, < 1.0.0)
+ ejson (1.3.0)
+ faraday (1.8.0)
+ faraday-em_http (~> 1.0)
+ faraday-em_synchrony (~> 1.0)
+ faraday-excon (~> 1.1)
+ faraday-httpclient (~> 1.0.1)
+ faraday-net_http (~> 1.0)
+ faraday-net_http_persistent (~> 1.1)
+ faraday-patron (~> 1.0)
+ faraday-rack (~> 1.0)
+ multipart-post (>= 1.2, < 3)
+ ruby2_keywords (>= 0.0.4)
+ faraday-em_http (1.0.0)
+ faraday-em_synchrony (1.0.0)
+ faraday-excon (1.1.0)
+ faraday-httpclient (1.0.1)
+ faraday-net_http (1.0.1)
+ faraday-net_http_persistent (1.2.0)
+ faraday-patron (1.0.0)
+ faraday-rack (1.0.0)
+ ffi (1.15.4)
+ ffi-compiler (1.0.1)
+ ffi (>= 1.0.0)
+ rake
+ googleauth (0.17.1)
+ faraday (>= 0.17.3, < 2.0)
+ jwt (>= 1.4, < 3.0)
+ memoist (~> 0.16)
+ multi_json (~> 1.11)
+ os (>= 0.9, < 2.0)
+ signet (~> 0.15)
+ http (4.4.1)
+ addressable (~> 2.3)
+ http-cookie (~> 1.0)
+ http-form_data (~> 2.2)
+ http-parser (~> 1.2.0)
+ http-accept (1.7.0)
+ http-cookie (1.0.4)
+ domain_name (~> 0.5)
+ http-form_data (2.3.0)
+ http-parser (1.2.3)
+ ffi-compiler (>= 1.0, < 2.0)
+ i18n (1.8.10)
+ concurrent-ruby (~> 1.0)
+ jsonpath (0.9.9)
+ multi_json
+ to_regexp (~> 0.2.1)
+ jwt (2.3.0)
+ krane (2.3.0)
+ activesupport (>= 5.0)
+ colorize (~> 0.8)
+ concurrent-ruby (~> 1.1)
+ ejson (~> 1.0)
+ googleauth (~> 0.8)
+ jsonpath (~> 0.9.6)
+ kubeclient (~> 4.3)
+ oj (~> 3.0)
+ statsd-instrument (>= 2.8, < 4)
+ thor (>= 1.0, < 2.0)
+ kubeclient (4.7.0)
+ http (>= 3.0, < 5.0)
+ recursive-open-struct (~> 1.1, >= 1.1.1)
+ rest-client (~> 2.0)
+ memoist (0.16.2)
+ mime-types (3.3.1)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2021.0901)
+ minitest (5.14.4)
+ multi_json (1.15.0)
+ multipart-post (2.1.1)
+ netrc (0.11.0)
+ oj (3.13.8)
+ os (1.1.1)
+ public_suffix (4.0.6)
+ rake (13.0.6)
+ recursive-open-struct (1.1.3)
+ rest-client (2.1.0)
+ http-accept (>= 1.7.0, < 2.0)
+ http-cookie (>= 1.0.2, < 2.0)
+ mime-types (>= 1.16, < 4.0)
+ netrc (~> 0.8)
+ ruby2_keywords (0.0.5)
+ signet (0.16.0)
+ addressable (~> 2.8)
+ faraday (>= 0.17.3, < 2.0)
+ jwt (>= 1.5, < 3.0)
+ multi_json (~> 1.10)
+ statsd-instrument (3.1.2)
+ thor (1.1.0)
+ to_regexp (0.2.1)
+ tzinfo (2.0.4)
+ concurrent-ruby (~> 1.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.8)
+ zeitwerk (2.4.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ krane
+
+BUNDLED WITH
+ 2.2.20
diff --git a/pkgs/applications/networking/cluster/krane/default.nix b/pkgs/applications/networking/cluster/krane/default.nix
new file mode 100644
index 000000000000..6d325d6f592e
--- /dev/null
+++ b/pkgs/applications/networking/cluster/krane/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, bundlerApp
+, makeWrapper
+, kubectl
+, bundlerUpdateScript
+}:
+
+bundlerApp {
+ pname = "krane";
+ gemdir = ./.;
+ exes = [ "krane" ];
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram "$out/bin/krane" \
+ --prefix PATH : ${lib.makeBinPath [ kubectl ]}
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "krane";
+
+ meta = with lib; {
+ description = "A command-line tool that helps you ship changes to a Kubernetes namespace and understand the result";
+ homepage = "https://github.com/Shopify/krane";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kira-bruneau ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/krane/gemset.nix b/pkgs/applications/networking/cluster/krane/gemset.nix
new file mode 100644
index 000000000000..13163c193e36
--- /dev/null
+++ b/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -0,0 +1,520 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+ type = "gem";
+ };
+ version = "6.1.4.1";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
+ type = "gem";
+ };
+ version = "2.8.0";
+ };
+ colorize = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+ type = "gem";
+ };
+ version = "1.1.9";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+ type = "gem";
+ };
+ version = "0.5.20190701";
+ };
+ ejson = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09584dhklhnxvgrf1b1lvb1illhzg79rsd9sgbpzrawiir789ksy";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ faraday = {
+ dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ faraday-em_http = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ faraday-em_synchrony = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ faraday-excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ faraday-httpclient = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ faraday-net_http = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ faraday-net_http_persistent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ faraday-patron = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ faraday-rack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
+ type = "gem";
+ };
+ version = "1.15.4";
+ };
+ ffi-compiler = {
+ dependencies = ["ffi" "rake"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ googleauth = {
+ dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08l9qb2an7a60r3xjlkrfna8b8sfnj5c2hlfdygbnpvb1p7cpafl";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ http = {
+ dependencies = ["addressable" "http-cookie" "http-form_data" "http-parser"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z8vmvnkrllkpzsxi94284di9r63g9v561a16an35izwak8g245y";
+ type = "gem";
+ };
+ version = "4.4.1";
+ };
+ http-accept = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ http-cookie = {
+ dependencies = ["domain_name"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19370bc97gsy2j4hanij246hv1ddc85hw0xjb6sj7n1ykqdlx9l9";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ http-form_data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ http-parser = {
+ dependencies = ["ffi-compiler"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18qqvckvqjffh88hfib6c8pl9qwk9gp89w89hl3f2s1x8hgyqka1";
+ type = "gem";
+ };
+ version = "1.2.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+ type = "gem";
+ };
+ version = "1.8.10";
+ };
+ jsonpath = {
+ dependencies = ["multi_json" "to_regexp"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zim5bl7zsbccd502iy63f7c3b6dw0a820z7q8kpv66hncavb7gp";
+ type = "gem";
+ };
+ version = "0.9.9";
+ };
+ jwt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bg8pjx0mpvl10k6d8a6gc8dzlv2z5jkqcjbjcirnk032iriq838";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ krane = {
+ dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r4sfyapdqcgqns4skxwkxd9v7a4f0h7y7zrgyz7za1p56jmx9sr";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ kubeclient = {
+ dependencies = ["http" "recursive-open-struct" "rest-client"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k4w7h6fywhccv7fskwks9p71fvbh00qyvcx8cc4bnvwjn43680w";
+ type = "gem";
+ };
+ version = "4.7.0";
+ };
+ memoist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
+ type = "gem";
+ };
+ version = "3.3.1";
+ };
+ mime-types-data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z5wvk6qi4ws1kjh7xn1rfirqw5m72bwvqacck1fjpbh33pcrwxv";
+ type = "gem";
+ };
+ version = "3.2021.0901";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+ type = "gem";
+ };
+ version = "5.14.4";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ netrc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ oj = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wk5vk0py65aqp3xrs8s8qkj8pw6xny5z5p9dx16qdx6j3zw5a6g";
+ type = "gem";
+ };
+ version = "3.13.8";
+ };
+ os = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+ type = "gem";
+ };
+ version = "4.0.6";
+ };
+ rake = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+ type = "gem";
+ };
+ version = "13.0.6";
+ };
+ recursive-open-struct = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nnyr6qsqrcszf6c10n4zfjs8h9n67zvsmx6mp8brkigamr8llx3";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ rest-client = {
+ dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ ruby2_keywords = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+ type = "gem";
+ };
+ version = "0.0.5";
+ };
+ signet = {
+ dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cgmadrpgkpcklvvm2cga9mnrfqwqlydwpask1wx617h5ha6954k";
+ type = "gem";
+ };
+ version = "0.16.0";
+ };
+ statsd-instrument = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q98rkmgrzb59zmswhr6863z6dk042i90jbp9pflwa2vy2xkfj0y";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ thor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ to_regexp = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rgabfhnql6l4fx09mmj5d0vza924iczqf2blmn82l782b6qqi9v";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ tzinfo = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ unf = {
+ dependencies = ["unf_ext"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ unf_ext = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
+ type = "gem";
+ };
+ version = "0.0.8";
+ };
+ zeitwerk = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+ type = "gem";
+ };
+ version = "2.4.2";
+ };
+}
diff --git a/pkgs/applications/networking/cluster/kube-score/default.nix b/pkgs/applications/networking/cluster/kube-score/default.nix
index 707abd5e2bf4..6ef24ded1a67 100644
--- a/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kube-score";
- version = "1.12.0";
+ version = "1.13.0";
src = fetchFromGitHub {
owner = "zegl";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-FZbq7f8Urx3tlJOBPnPyp1enFsmtrxqNjR42CTNo6GI=";
+ sha256 = "sha256-QAtsXNmR+Sg9xmvP7x6b2jAJkUcL/sMYk8i5CSzjVos=";
};
- vendorSha256 = "sha256-8Rg57Uj/hdNqAj40MKZ/5PObRkdsInbsRT1ZkRqGTfo=";
+ vendorSha256 = "sha256-kPYvkovzQDmoB67TZHCKZ5jtW6pN3gHxBPKAU8prbgo=";
meta = with lib; {
description = "Kubernetes object analysis with recommendations for improved reliability and security";
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index 3652405194f5..b30d6999470c 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,14 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.6-k3s1" }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.22.2-k3s2" }:
buildGoModule rec {
pname = "kube3d";
- version = "4.4.7";
+ version = "5.0.3";
src = fetchFromGitHub {
owner = "rancher";
repo = "k3d";
rev = "v${version}";
- sha256 = "sha256-S1vHmXUCP1ayPo3vvHAbNCqNm1ueJ0jE4NUBvg5P3MU=";
+ sha256 = "sha256-BUQG+Nq5BsL+4oBksL8Im9CtNFvwuaW/HebMp9VoORo=";
};
vendorSha256 = null;
@@ -17,10 +17,9 @@ buildGoModule rec {
excludedPackages = "\\(tools\\|docgen\\)";
- ldflags = let t = "github.com/rancher/k3d/v4/version"; in
- [
- "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}"
- ];
+ ldflags =
+ let t = "github.com/rancher/k3d/v5/version"; in
+ [ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}" ];
doCheck = false;
@@ -35,7 +34,7 @@ buildGoModule rec {
installCheckPhase = ''
runHook preInstallCheck
$out/bin/k3d --help
- $out/bin/k3d version | grep "k3d version v${version}"
+ $out/bin/k3d --version | grep -e "k3d version v${version}" -e "k3s version v${k3sVersion}"
runHook postInstallCheck
'';
diff --git a/pkgs/applications/networking/cluster/kubebuilder/default.nix b/pkgs/applications/networking/cluster/kubebuilder/default.nix
index eb29cba7de88..02c1c834781a 100644
--- a/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -4,19 +4,20 @@
, makeWrapper
, git
, go
+, gnumake
}:
buildGoModule rec {
pname = "kubebuilder";
- version = "3.1.0";
+ version = "3.2.0";
src = fetchFromGitHub {
owner = "kubernetes-sigs";
repo = "kubebuilder";
rev = "v${version}";
- sha256 = "0bl5ff2cplal6hg75800crhyviamk1ws85sq60h4zg21hzf21y68";
+ sha256 = "sha256-V/g2RHnZPa/9hkVG5WVXmbx6hnJAwUEyyUX/Q3OR2DM=";
};
- vendorSha256 = "0zxyd950ksjswja64rfri5v2yaalfg6qmq8215ildgrcavl9974n";
+ vendorSha256 = "sha256-bTCLuAo5xXNoafjGpjKLKlKVKB29PEFwdPu9+qjvufs=";
subPackages = ["cmd"];
@@ -33,7 +34,7 @@ buildGoModule rec {
postInstall = ''
mv $out/bin/cmd $out/bin/kubebuilder
wrapProgram $out/bin/kubebuilder \
- --prefix PATH : ${lib.makeBinPath [ go ]}
+ --prefix PATH : ${lib.makeBinPath [ go gnumake ]}
'';
allowGoReference = true;
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index 7c04f6e9eb94..5efee961b424 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,20 +1,28 @@
-{ lib, buildGoPackage, fetchFromGitHub, ... }:
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
-let version = "0.20.0"; in
-
-buildGoPackage {
+buildGoPackage rec {
pname = "kubecfg";
- inherit version;
+ version = "0.21.0";
src = fetchFromGitHub {
owner = "bitnami";
repo = "kubecfg";
rev = "v${version}";
- sha256 = "sha256-7lBIqaozVBoiYYOTqAxq9h2N+Y3JFwLaunCykILOmPU=";
+ sha256 = "sha256-Wu7+Xmb7ha3OG37DzLg2+/Sr9hB5oD3OIkC9h9Fa4QA=";
};
goPackagePath = "github.com/bitnami/kubecfg";
+ ldflags = [ "-s" "-w" "-X main.version=v${version}" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installShellCompletion --cmd kubecfg \
+ --bash <($out/bin/kubecfg completion --shell=bash) \
+ --zsh <($out/bin/kubecfg completion --shell=zsh)
+ '';
+
meta = {
description = "A tool for managing Kubernetes resources as code";
homepage = "https://github.com/bitnami/kubecfg";
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
index 7249c2a5cef4..29a8388bd5cc 100644
--- a/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubeconform";
- version = "0.4.10";
+ version = "0.4.12";
src = fetchFromGitHub {
owner = "yannh";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-D1/ljIOc5vK6HcYmk0WNnIRGBt1vJk9dGxl5GjhKhuA=";
+ sha256 = "sha256-03eGWuDV/GS2YgDQ7LaqonU7K/ohI8sQD4dXbJGXeXw=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix b/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
new file mode 100644
index 000000000000..bd160db33cb8
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kubectl-evict-pod";
+ version = "0.0.10";
+
+ src = fetchFromGitHub {
+ owner = "rajatjindal";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-Z4fJzU317p7K+klcDQAukXAfZOpHd3PlH5fKO0PgKHA=";
+ };
+
+ vendorSha256 = "sha256-8VTrywlzrzoBEi/xOqkwhGW/R2B2oGqgh01Gv9FcW80=";
+
+ meta = with lib; {
+ description = "This plugin evicts the given pod and is useful for testing pod disruption budget rules";
+ homepage = "https://github.com/rajatjindal/kubectl-evict-pod";
+ license = licenses.asl20;
+ maintainers = [ maintainers.j4m3s ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 13b15da38cde..c974b830344b 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "kubernetes";
- version = "1.22.2";
+ version = "1.22.3";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
rev = "v${version}";
- sha256 = "sha256-O+FY9wJ0fztO7i5qJfw+cfhfBgaMWKX7IBBXJV4uuCk=";
+ sha256 = "sha256-yXis1nq36MO/RnYLxOYBs6xnaTf9lk+VJBzSamrHcEU=";
};
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
diff --git a/pkgs/applications/networking/cluster/kumactl/default.nix b/pkgs/applications/networking/cluster/kumactl/default.nix
new file mode 100644
index 000000000000..d13db27444fb
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kumactl/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "kumactl";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ owner = "kumahq";
+ repo = "kuma";
+ rev = version;
+ sha256 = "0b554cngg2j3wnadpqwhq3dv3la8vvvzyww2diw4il4gl4j6xj0j";
+ };
+
+ vendorSha256 = "0r26h4vp11wbl7nk3y7c22p60q7lspy8nr58khxyczdqjk6wrdjp";
+
+ subPackages = [ "app/kumactl" ];
+
+ ldflags = let
+ prefix = "github.com/kumahq/kuma/pkg/version";
+ in [
+ "-s" "-w"
+ "-X ${prefix}.version=${version}"
+ "-X ${prefix}.gitTag=${version}"
+ "-X ${prefix}.gitCommit=${version}"
+ "-X ${prefix}.buildDate=${version}"
+ ];
+
+ meta = with lib; {
+ description = "Kuma service mesh controller";
+ homepage = "https://kuma.io/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ zbioe ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix
index 6d5d5d1bd4a3..958640af659b 100644
--- a/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -1,71 +1,8 @@
-{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
+{ callPackage }:
-let generic = { channel, version, sha256, vendorSha256 }:
- buildGoModule rec {
- pname = "linkerd-${channel}";
- inherit version vendorSha256;
-
- src = fetchFromGitHub {
- owner = "linkerd";
- repo = "linkerd2";
- rev = "${channel}-${version}";
- inherit sha256;
- };
-
- subPackages = [ "cli" ];
- runVend = true;
-
- preBuild = ''
- env GOFLAGS="" go generate ./pkg/charts/static
- env GOFLAGS="" go generate ./jaeger/static
- env GOFLAGS="" go generate ./multicluster/static
- env GOFLAGS="" go generate ./viz/static
- '';
-
- tags = [
- "prod"
- ];
-
- ldflags = [
- "-s" "-w"
- "-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}"
- ];
-
- nativeBuildInputs = [ installShellFiles ];
-
- postInstall = ''
- mv $out/bin/cli $out/bin/linkerd
- installShellCompletion --cmd linkerd \
- --bash <($out/bin/linkerd completion bash) \
- --zsh <($out/bin/linkerd completion zsh) \
- --fish <($out/bin/linkerd completion fish)
- '';
-
- doInstallCheck = true;
- installCheckPhase = ''
- $out/bin/linkerd version --client | grep ${src.rev} > /dev/null
- '';
-
- meta = with lib; {
- description = "A simple Kubernetes service mesh that improves security, observability and reliability";
- downloadPage = "https://github.com/linkerd/linkerd2/";
- homepage = "https://linkerd.io/";
- license = licenses.asl20;
- maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ];
- };
- };
-in
- {
- stable = generic {
- channel = "stable";
- version = "2.10.2";
- sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0=";
- vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s=";
- };
- edge = generic {
- channel = "edge";
- version = "21.9.3";
- sha256 = "0swqx4myvr24visj39icg8g90kj325pvf22bq447rnm0whq3cnyz";
- vendorSha256 = "sha256-fMtAR66TwMNR/HCVQ9Jg3sJ0XBx2jUKDG7/ts0lEZM4=";
- };
- }
+(callPackage ./generic.nix { }) {
+ channel = "stable";
+ version = "2.11.1";
+ sha256 = "09zwxcaqn537ls737js7rcsqarapw5k25gv41d844k73yvxm882c";
+ vendorSha256 = "sha256-c3EyVrblqtFuoP7+YdbyPN0DdN6TcQ5DTtFQ/frKM0Q=";
+}
diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix
new file mode 100644
index 000000000000..8744c0f1744e
--- /dev/null
+++ b/pkgs/applications/networking/cluster/linkerd/edge.nix
@@ -0,0 +1,8 @@
+{ callPackage }:
+
+(callPackage ./generic.nix { }) {
+ channel = "edge";
+ version = "21.10.3";
+ sha256 = "09k4c0dgn9vvgp6xb20x0vylk6bbd03srk3sra8vnpywwi591mcv";
+ vendorSha256 = "sha256-uGj1sMEa791ZKA7hpJ1A9vtwsmrZDGAYp6HQo6QNAYY=";
+}
diff --git a/pkgs/applications/networking/cluster/linkerd/generic.nix b/pkgs/applications/networking/cluster/linkerd/generic.nix
new file mode 100644
index 000000000000..f2c4183f4793
--- /dev/null
+++ b/pkgs/applications/networking/cluster/linkerd/generic.nix
@@ -0,0 +1,59 @@
+{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
+
+{ channel, version, sha256, vendorSha256 }:
+
+buildGoModule rec {
+ pname = "linkerd-${channel}";
+ inherit version vendorSha256;
+
+ src = fetchFromGitHub {
+ owner = "linkerd";
+ repo = "linkerd2";
+ rev = "${channel}-${version}";
+ inherit sha256;
+ };
+
+ subPackages = [ "cli" ];
+ runVend = true;
+
+ preBuild = ''
+ env GOFLAGS="" go generate ./pkg/charts/static
+ env GOFLAGS="" go generate ./jaeger/static
+ env GOFLAGS="" go generate ./multicluster/static
+ env GOFLAGS="" go generate ./viz/static
+ '';
+
+ tags = [
+ "prod"
+ ];
+
+ ldflags = [
+ "-s" "-w"
+ "-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}"
+ ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ mv $out/bin/cli $out/bin/linkerd
+ installShellCompletion --cmd linkerd \
+ --bash <($out/bin/linkerd completion bash) \
+ --zsh <($out/bin/linkerd completion zsh) \
+ --fish <($out/bin/linkerd completion fish)
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/linkerd version --client | grep ${src.rev} > /dev/null
+ '';
+
+ passthru.updateScript = (./. + "/update-${channel}.sh");
+
+ meta = with lib; {
+ description = "A simple Kubernetes service mesh that improves security, observability and reliability";
+ downloadPage = "https://github.com/linkerd/linkerd2/";
+ homepage = "https://linkerd.io/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Gonzih bryanasdev000 ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/linkerd/update-edge.sh b/pkgs/applications/networking/cluster/linkerd/update-edge.sh
new file mode 100755
index 000000000000..937d41a79423
--- /dev/null
+++ b/pkgs/applications/networking/cluster/linkerd/update-edge.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused jq
+
+set -x -eu -o pipefail
+
+cd $(dirname "$0")
+
+VERSION=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
+ --silent https://api.github.com/repos/linkerd/linkerd2/releases | \
+ jq 'map(.tag_name)' | grep edge | sed 's/["|,| ]//g' | sed 's/edge-//' | sort -V -r | head -n1)
+
+SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/edge-${VERSION}.tar.gz)
+
+setKV () {
+ sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./edge.nix
+}
+
+setKV version ${VERSION}
+setKV sha256 ${SHA256}
+setKV vendorSha256 "0000000000000000000000000000000000000000000000000000" # Necessary to force clean build.
+
+cd ../../../../../
+set +e
+VENDOR_SHA256=$(nix-build --no-out-link -A linkerd_edge 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
+set -e
+cd - > /dev/null
+
+if [ -n "${VENDOR_SHA256:-}" ]; then
+ setKV vendorSha256 ${VENDOR_SHA256}
+else
+ echo "Update failed. VENDOR_SHA256 is empty."
+ exit 1
+fi
diff --git a/pkgs/applications/networking/cluster/linkerd/update-stable.sh b/pkgs/applications/networking/cluster/linkerd/update-stable.sh
new file mode 100755
index 000000000000..5ec96af796c0
--- /dev/null
+++ b/pkgs/applications/networking/cluster/linkerd/update-stable.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused jq
+
+set -x -eu -o pipefail
+
+cd $(dirname "$0")
+
+VERSION=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
+ --silent https://api.github.com/repos/linkerd/linkerd2/releases | \
+ jq 'map(.tag_name)' | grep stable | sed 's/["|,| ]//g' | sed 's/stable-//' | sort -V -r | head -n1)
+
+SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/stable-${VERSION}.tar.gz)
+
+setKV () {
+ sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix
+}
+
+setKV version ${VERSION}
+setKV sha256 ${SHA256}
+setKV vendorSha256 "0000000000000000000000000000000000000000000000000000" # Necessary to force clean build.
+
+cd ../../../../../
+set +e
+VENDOR_SHA256=$(nix-build --no-out-link -A linkerd 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
+set -e
+cd - > /dev/null
+
+if [ -n "${VENDOR_SHA256:-}" ]; then
+ setKV vendorSha256 ${VENDOR_SHA256}
+else
+ echo "Update failed. VENDOR_SHA256 is empty."
+ exit 1
+fi
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index e49d0450d900..f3cb598d246b 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
buildGoModule rec {
pname = "minikube";
- version = "1.23.0";
+ version = "1.23.2";
- vendorSha256 = "sha256-KhUmyQn97rXX49EFqUrR7UEm0J5gIdogUJMVW1Wjrdw=";
+ vendorSha256 = "sha256-Q6DadAmx/8TM+MrdaKgAjn0sVrKqTYoWdsmnN77yfKA=";
doCheck = false;
@@ -21,7 +21,7 @@ buildGoModule rec {
owner = "kubernetes";
repo = "minikube";
rev = "v${version}";
- sha256 = "sha256-Cf77qaAsavkSpSoBJz3kcPzL2SL7X9O9lCTYcm1tFFQ=";
+ sha256 = "sha256-PIgzGikVIno2Gd+kSjF4kLHuUKgPrPHoIJxAGblI8RQ=";
};
nativeBuildInputs = [ installShellFiles pkg-config which ];
diff --git a/pkgs/applications/networking/cluster/multus-cni/default.nix b/pkgs/applications/networking/cluster/multus-cni/default.nix
index 3a8a26af3ff9..ca1ef06a79ec 100644
--- a/pkgs/applications/networking/cluster/multus-cni/default.nix
+++ b/pkgs/applications/networking/cluster/multus-cni/default.nix
@@ -1,25 +1,24 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "multus-cni";
- version = "3.7.2";
+ version = "3.8";
src = fetchFromGitHub {
owner = "k8snetworkplumbingwg";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-eVYRbMijOEa+DNCm4w/+WVrTI9607NF9/l5YKkXJuFs=";
+ sha256 = "sha256-wG6SRts3+bmeMkfScyNorsBvRl/hxe+CUnL0rwfknpc=";
};
- ldflags = let
- multus = "gopkg.in/intel/multus-cni.v3/pkg/multus";
- commit = "f6298a3a294a79f9fbda0b8f175e521799d5f8d7";
- in [
- "-s" "-w" "-X ${multus}.version=v${version}" "-X ${multus}.commit=${commit}"
+ ldflags = [
+ "-s"
+ "-w"
+ "-X=gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/multus.version=${version}"
];
preInstall = ''
- mv $GOPATH/bin/cmd $GOPATH/bin/multus
+ mv $GOPATH/bin/cmd $GOPATH/bin/multus
'';
vendorSha256 = null;
@@ -28,10 +27,11 @@ buildGoModule rec {
doCheck = false;
meta = with lib; {
- description = "Multus CNI is a container network interface (CNI) plugin for Kubernetes that enables attaching multiple network interfaces to pods. ";
+ description = "Multus CNI is a container network interface (CNI) plugin for Kubernetes that enables attaching multiple network interfaces to pods";
homepage = "https://github.com/k8snetworkplumbingwg/multus-cni";
license = licenses.asl20;
platforms = platforms.linux;
maintainers = with maintainers; [ onixie ];
+ mainProgram = "multus";
};
}
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index 7ed122117e52..874a6fdecc4f 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "nerdctl";
- version = "0.11.2";
+ version = "0.13.0";
src = fetchFromGitHub {
owner = "containerd";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-QkUE4oImP0eg5tofGEUonKzffICG4b3SuPJz9S2ZNfE=";
+ sha256 = "sha256-uyLY2yH/6J0rtra0brBATadPqrNyyuCcaGfOrng9h4Y=";
};
- vendorSha256 = "sha256-mPOyF1S/g1FpUHHNc+cy0nxk6rK9txnZPYHOSvvfu70=";
+ vendorSha256 = "sha256-r7xzvntTIJocdYMQpFXunI2XV65eRG+piEEzS5N2xsY=";
nativeBuildInputs = [ makeWrapper installShellFiles ];
@@ -35,7 +35,9 @@ buildGoModule rec {
--prefix CNI_PATH : "${cni-plugins}/bin"
installShellCompletion --cmd nerdctl \
- --bash <($out/bin/nerdctl completion bash)
+ --bash <($out/bin/nerdctl completion bash) \
+ --fish <($out/bin/nerdctl completion fish) \
+ --zsh <($out/bin/nerdctl completion zsh)
'';
doInstallCheck = true;
diff --git a/pkgs/applications/networking/cluster/nixops/default.nix b/pkgs/applications/networking/cluster/nixops/default.nix
index 91f5cb82668e..87c4c2d6b2c8 100644
--- a/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/pkgs/applications/networking/cluster/nixops/default.nix
@@ -1,4 +1,5 @@
-{ pkgs
+{ nixosTests
+, pkgs
, poetry2nix
, lib
, overrides ? (self: super: {})
@@ -22,7 +23,7 @@ let
'';
meta = old.meta // {
- homepage = https://github.com/NixOS/nixops;
+ homepage = "https://github.com/NixOS/nixops";
description = "NixOS cloud provisioning and deployment tool";
maintainers = with lib.maintainers; [ adisbladis aminechikhaoui eelco rob domenkozar ];
platforms = lib.platforms.unix;
@@ -59,10 +60,18 @@ let
}
).python;
-in interpreter.pkgs.nixops.withPlugins(ps: [
- ps.nixops-encrypted-links
- ps.nixops-virtd
- ps.nixops-aws
- ps.nixops-gcp
- ps.nixopsvbox
-])
+ pkg = interpreter.pkgs.nixops.withPlugins(ps: [
+ ps.nixops-encrypted-links
+ ps.nixops-hercules-ci
+ ps.nixops-virtd
+ ps.nixops-aws
+ ps.nixops-gcp
+ ps.nixopsvbox
+ ]) // rec {
+ # Workaround for https://github.com/NixOS/nixpkgs/issues/119407
+ # TODO after #1199407: Use .overrideAttrs(pkg: old: { passthru.tests = .....; })
+ tests = nixosTests.nixops.unstable.override { nixopsPkg = pkg; };
+ # Not strictly necessary, but probably expected somewhere; part of the workaround:
+ passthru.tests = tests;
+ };
+in pkg
diff --git a/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix b/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
index cc40395d6d97..b542a1eff955 100644
--- a/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
+++ b/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
@@ -15,8 +15,8 @@ self: super: {
_: {
src = pkgs.fetchgit {
url = "https://github.com/NixOS/nixops-aws.git";
- rev = "371aedeb7fd53b8978a60dd7c37d3a6c38101c48";
- sha256 = "15jz9x3ra3hsh6xj4cbri1fvvjk2rplnnhnccz7qc6f176b5r01j";
+ rev = "44f774272bd522cc7e87074c056f2225f771ded0";
+ sha256 = "0x9pv186nkcfisr1c1nxw8gpazkrg546dfl95140rif0xzw3pizx";
};
}
);
@@ -41,6 +41,16 @@ self: super: {
}
);
+ nixops-hercules-ci = super.nixops-hercules-ci.overridePythonAttrs (
+ _: {
+ src = pkgs.fetchgit {
+ url = "https://github.com/hercules-ci/nixops-hercules-ci.git";
+ rev = "e601d5baffd003fd5f22deeaea0cb96444b054dc";
+ sha256 = "0rcpv5hc6l9ia8lq8ivwa80b2pwssmdz8an25lhr4i2472mpx1p0";
+ };
+ }
+ );
+
nixops-virtd = super.nixops-virtd.overridePythonAttrs (
_: {
src = pkgs.fetchgit {
diff --git a/pkgs/applications/networking/cluster/nixops/poetry.lock b/pkgs/applications/networking/cluster/nixops/poetry.lock
index bef5bbef4090..642b063368c6 100644
--- a/pkgs/applications/networking/cluster/nixops/poetry.lock
+++ b/pkgs/applications/networking/cluster/nixops/poetry.lock
@@ -38,14 +38,14 @@ python-versions = "*"
[[package]]
name = "boto3"
-version = "1.18.36"
+version = "1.19.9"
description = "The AWS SDK for Python"
category = "main"
optional = false
python-versions = ">= 3.6"
[package.dependencies]
-botocore = ">=1.21.36,<1.22.0"
+botocore = ">=1.22.9,<1.23.0"
jmespath = ">=0.7.1,<1.0.0"
s3transfer = ">=0.5.0,<0.6.0"
@@ -54,7 +54,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
[[package]]
name = "botocore"
-version = "1.21.36"
+version = "1.22.9"
description = "Low-level, data-driven core of boto 3."
category = "main"
optional = false
@@ -66,11 +66,11 @@ python-dateutil = ">=2.1,<3.0.0"
urllib3 = ">=1.25.4,<1.27"
[package.extras]
-crt = ["awscrt (==0.11.24)"]
+crt = ["awscrt (==0.12.5)"]
[[package]]
name = "certifi"
-version = "2021.5.30"
+version = "2021.10.8"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
@@ -78,7 +78,7 @@ python-versions = "*"
[[package]]
name = "cffi"
-version = "1.14.6"
+version = "1.15.0"
description = "Foreign Function Interface for Python calling C code."
category = "main"
optional = false
@@ -89,7 +89,7 @@ pycparser = "*"
[[package]]
name = "charset-normalizer"
-version = "2.0.4"
+version = "2.0.7"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
@@ -135,7 +135,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]]
name = "idna"
-version = "3.2"
+version = "3.3"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
@@ -151,7 +151,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "jinja2"
-version = "3.0.1"
+version = "3.0.2"
description = "A very fast and expressive template engine."
category = "dev"
optional = false
@@ -173,7 +173,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "libvirt-python"
-version = "7.7.0"
+version = "7.9.0"
description = "The libvirt virtualization API python binding"
category = "main"
optional = false
@@ -228,7 +228,7 @@ typing-extensions = "^3.7.4"
type = "git"
url = "https://github.com/NixOS/nixops-aws.git"
reference = "master"
-resolved_reference = "371aedeb7fd53b8978a60dd7c37d3a6c38101c48"
+resolved_reference = "44f774272bd522cc7e87074c056f2225f771ded0"
[[package]]
name = "nixops-encrypted-links"
@@ -269,6 +269,24 @@ url = "https://github.com/nix-community/nixops-gce.git"
reference = "master"
resolved_reference = "712453027486e62e087b9c91e4a8a171eebb6ddd"
+[[package]]
+name = "nixops-hercules-ci"
+version = "0.1.0"
+description = ""
+category = "main"
+optional = false
+python-versions = "^3.8"
+develop = false
+
+[package.dependencies]
+nixops = {git = "https://github.com/NixOS/nixops.git", branch = "master"}
+
+[package.source]
+type = "git"
+url = "https://github.com/hercules-ci/nixops-hercules-ci.git"
+reference = "master"
+resolved_reference = "e601d5baffd003fd5f22deeaea0cb96444b054dc"
+
[[package]]
name = "nixops-virtd"
version = "1.0"
@@ -326,14 +344,14 @@ resolved_reference = "81a1c2ef424dcf596a97b2e46a58ca73a1dd1ff8"
[[package]]
name = "packaging"
-version = "21.0"
+version = "21.2"
description = "Core utilities for Python packages"
category = "dev"
optional = false
python-versions = ">=3.6"
[package.dependencies]
-pyparsing = ">=2.0.2"
+pyparsing = ">=2.0.2,<3"
[[package]]
name = "pluggy"
@@ -391,7 +409,7 @@ six = ">=1.5"
[[package]]
name = "pytz"
-version = "2021.1"
+version = "2021.3"
description = "World timezone definitions, modern and historical"
category = "dev"
optional = false
@@ -549,7 +567,7 @@ test = ["pytest"]
[[package]]
name = "typeguard"
-version = "2.12.1"
+version = "2.13.0"
description = "Run-time type checker for Python"
category = "main"
optional = false
@@ -569,7 +587,7 @@ python-versions = "*"
[[package]]
name = "urllib3"
-version = "1.26.6"
+version = "1.26.7"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
@@ -583,7 +601,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[metadata]
lock-version = "1.1"
python-versions = "^3.8"
-content-hash = "bd064837654a0d4a4691b3df01338b92c95a449ff400a9cd49fee843ab13ee92"
+content-hash = "8a294b2745b271983bac54258b4f3a2ab3b2e5b218440329fa7eea482c63774f"
[metadata.files]
alabaster = [
@@ -603,67 +621,72 @@ boto = [
{file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
]
boto3 = [
- {file = "boto3-1.18.36-py3-none-any.whl", hash = "sha256:a7fccb61d95230322dd812629455df14167307c569077fa89d297eae73605ffb"},
- {file = "boto3-1.18.36.tar.gz", hash = "sha256:4df1085f5c24504a1b1a6584947f27b67c26eda123f29d3cecce9b2fd683e09b"},
+ {file = "boto3-1.19.9-py3-none-any.whl", hash = "sha256:efa4aea4d30e93f8913a5731ab4de7b6d2020ee77cdde7e61bfae56670da1a14"},
+ {file = "boto3-1.19.9.tar.gz", hash = "sha256:2fe4edec0e02705059e6baac52e29f97fae6086bf8b817e6ca0e49b48c0fbbf2"},
]
botocore = [
- {file = "botocore-1.21.36-py3-none-any.whl", hash = "sha256:e3e522fbe0bad1197aa7182451dc05f650310e77cf0a77749f6a5e82794c53de"},
- {file = "botocore-1.21.36.tar.gz", hash = "sha256:5b9a7d30e44b8a0a2bbbde62ae01bf6c349017e836985a0248552b00bbce7fae"},
+ {file = "botocore-1.22.9-py3-none-any.whl", hash = "sha256:612d26b58f790d267cc7714e82262104b681db799655b6dd6b64fcd9caf08bef"},
+ {file = "botocore-1.22.9.tar.gz", hash = "sha256:7b59367bace96595e9feeed9765c7178278c55531b2b9e07b7618911e9f0a00b"},
]
certifi = [
- {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
- {file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
+ {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
+ {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
]
cffi = [
- {file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
- {file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"},
- {file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"},
- {file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"},
- {file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"},
- {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"},
- {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"},
- {file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"},
- {file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"},
- {file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"},
- {file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"},
- {file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"},
- {file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"},
- {file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"},
- {file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"},
- {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"},
- {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"},
- {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"},
- {file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"},
- {file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"},
- {file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"},
- {file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"},
- {file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"},
- {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"},
- {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"},
- {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"},
- {file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"},
- {file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"},
- {file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"},
- {file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"},
- {file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"},
- {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"},
- {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"},
- {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"},
- {file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"},
- {file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"},
- {file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"},
- {file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"},
- {file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"},
- {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"},
- {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"},
- {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"},
- {file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"},
- {file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
- {file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
+ {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"},
+ {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"},
+ {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"},
+ {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"},
+ {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"},
+ {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"},
+ {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"},
+ {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"},
+ {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"},
+ {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"},
+ {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"},
+ {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"},
+ {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"},
+ {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"},
+ {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"},
+ {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"},
+ {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"},
+ {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"},
+ {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"},
+ {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"},
+ {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"},
+ {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"},
+ {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"},
+ {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"},
+ {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
]
charset-normalizer = [
- {file = "charset-normalizer-2.0.4.tar.gz", hash = "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3"},
- {file = "charset_normalizer-2.0.4-py3-none-any.whl", hash = "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b"},
+ {file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"},
+ {file = "charset_normalizer-2.0.7-py3-none-any.whl", hash = "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"},
]
colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
@@ -676,6 +699,8 @@ cryptography = [
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
+ {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"},
+ {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"},
{file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
{file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
{file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
@@ -693,23 +718,23 @@ docutils = [
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
]
idna = [
- {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"},
- {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"},
+ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
+ {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
]
imagesize = [
{file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
{file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
]
jinja2 = [
- {file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"},
- {file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"},
+ {file = "Jinja2-3.0.2-py3-none-any.whl", hash = "sha256:8569982d3f0889eed11dd620c706d39b60c36d6d25843961f33f77fb6bc6b20c"},
+ {file = "Jinja2-3.0.2.tar.gz", hash = "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45"},
]
jmespath = [
{file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
{file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
]
libvirt-python = [
- {file = "libvirt-python-7.7.0.tar.gz", hash = "sha256:cc8d6528cef7cf395c5d97566328f16faef6b5653a500b0e88c9c0fc36b72cdb"},
+ {file = "libvirt-python-7.9.0.tar.gz", hash = "sha256:8535cffa5fbf05185648f9f57a2f71899c3bc12c897d320351c53725a48e5359"},
]
markupsafe = [
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
@@ -717,6 +742,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
@@ -728,6 +756,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
@@ -739,6 +770,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
@@ -751,6 +785,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
@@ -763,6 +800,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
@@ -771,12 +811,13 @@ nixops = []
nixops-aws = []
nixops-encrypted-links = []
nixops-gcp = []
+nixops-hercules-ci = []
nixops-virtd = []
nixopsvbox = []
nixos-modules-contrib = []
packaging = [
- {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"},
- {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"},
+ {file = "packaging-21.2-py3-none-any.whl", hash = "sha256:14317396d1e8cdb122989b916fa2c7e9ca8e2be9e8060a6eff75b6b7b4d8a7e0"},
+ {file = "packaging-21.2.tar.gz", hash = "sha256:096d689d78ca690e4cd8a89568ba06d07ca097e3306a4381635073ca91479966"},
]
pluggy = [
{file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
@@ -804,8 +845,8 @@ python-dateutil = [
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
]
pytz = [
- {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"},
- {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"},
+ {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
+ {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
]
requests = [
{file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
@@ -852,8 +893,8 @@ sphinxcontrib-serializinghtml = [
{file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
]
typeguard = [
- {file = "typeguard-2.12.1-py3-none-any.whl", hash = "sha256:cc15ef2704c9909ef9c80e19c62fb8468c01f75aad12f651922acf4dbe822e02"},
- {file = "typeguard-2.12.1.tar.gz", hash = "sha256:c2af8b9bdd7657f4bd27b45336e7930171aead796711bc4cfc99b4731bb9d051"},
+ {file = "typeguard-2.13.0-py3-none-any.whl", hash = "sha256:0bc44d1ff865b522eda969627868b0e001c8329296ce50aededbea03febc79ee"},
+ {file = "typeguard-2.13.0.tar.gz", hash = "sha256:04e38f92eb59410c9375d3be23df65e0a7643f2e8bcbd421423d808d2f9e99df"},
]
typing-extensions = [
{file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"},
@@ -861,6 +902,6 @@ typing-extensions = [
{file = "typing_extensions-3.10.0.2.tar.gz", hash = "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e"},
]
urllib3 = [
- {file = "urllib3-1.26.6-py2.py3-none-any.whl", hash = "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4"},
- {file = "urllib3-1.26.6.tar.gz", hash = "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"},
+ {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"},
+ {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"},
]
diff --git a/pkgs/applications/networking/cluster/nixops/pyproject.toml b/pkgs/applications/networking/cluster/nixops/pyproject.toml
index 09ffb54fa2bb..3cd3025b1fa5 100644
--- a/pkgs/applications/networking/cluster/nixops/pyproject.toml
+++ b/pkgs/applications/networking/cluster/nixops/pyproject.toml
@@ -11,6 +11,7 @@ nixops-aws = {git = "https://github.com/NixOS/nixops-aws.git"}
nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"}
nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"}
nixops-encrypted-links = {git = "https://github.com/nix-community/nixops-encrypted-links.git"}
+nixops-hercules-ci = {git = "https://github.com/hercules-ci/nixops-hercules-ci.git"}
nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"}
[tool.poetry.dev-dependencies]
diff --git a/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index f89e9f9ff3bd..a584fee3b4c7 100644
--- a/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "node-problem-detector";
- version = "0.8.9";
+ version = "0.8.10";
src = fetchFromGitHub {
owner = "kubernetes";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-P7niTGe0uzg2R1UHrPWbU4tOhOA1OwlP3dslZPwuF0A=";
+ sha256 = "sha256-phuXsioSLO/jl1l5dwV/emoirJfgGXQSmeQHSImxm2U=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/nomad/1.0.nix b/pkgs/applications/networking/cluster/nomad/1.0.nix
index 62034a39bbc0..53430cdf94ed 100644
--- a/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
callPackage ./generic.nix {
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
- version = "1.0.10";
- sha256 = "1yd4j35dmxzg9qapqyq3g3hnhxi5c4f57q43xbim8255bjyn94f0";
+ version = "1.0.12";
+ sha256 = "04fqliz7y4zzs4xraid54mqxwgrzh138nmfcs876vp534slvikpi";
}
diff --git a/pkgs/applications/networking/cluster/nomad/1.1.nix b/pkgs/applications/networking/cluster/nomad/1.1.nix
index 3d34331b57d1..b8c58e9c347c 100644
--- a/pkgs/applications/networking/cluster/nomad/1.1.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.1.nix
@@ -6,7 +6,7 @@
callPackage ./genericModule.nix {
inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
- version = "1.1.4";
- sha256 = "182f3sxw751s8qg16vbssplhl92i9gshgzvflwwvnxraz2795y7l";
- vendorSha256 = "1nddknnsvb05sapbj1c52cv2fmibvdg48f88malxqblzw33wfziq";
+ version = "1.1.6";
+ sha256 = "1q6fqay1s9qwimjwlldc8hr6009cgx3ghz142mdx36jjv9isj9ln";
+ vendorSha256 = "0rfd22rf76mwj489zhswah4g3dhhz6davm336xgm9dbnyaz9d8r0";
}
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index 8c74602465cc..87bde3c2eddb 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "pgo-client";
- version = "4.7.2";
+ version = "4.7.3";
src = fetchFromGitHub {
owner = "CrunchyData";
repo = "postgres-operator";
rev = "v${version}";
- sha256 = "sha256-SUv5896Ao+EQEM3Mb//rTDVXJgbK/cOGKBeazF/USfQ=";
+ sha256 = "sha256-nIflJLHhzEMq4RZUHjZYvBW+cxsi/gc9ZnMoGCesbrc=";
};
vendorSha256 = "sha256-m8b6Lh6it67A6cppdBDX4X0u7Kde4GQz9wln/TrHVwI=";
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
new file mode 100644
index 000000000000..665b2091edc6
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "rancher-cli";
+ version = "2.4.13";
+
+ src = fetchFromGitHub {
+ owner = "rancher";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "sha256-tkAnbQP35P+ZEE/WTpjgjdmvt0eJ0esKJ+I21cWraEI=";
+ };
+
+ ldflags = [
+ "-w"
+ "-s"
+ "-X main.VERSION=${version}"
+ "-extldflags"
+ "-static"
+ ];
+
+ vendorSha256 = "sha256-agXztvvrMEoa6bo/bQr3qhinOSj7bFnZ4kzTx4F0VxQ=";
+
+ postInstall = ''
+ mv $out/bin/cli $out/bin/rancher
+ '';
+
+ doCheck = true;
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/rancher | grep ${version} > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "The Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server";
+ homepage = "https://github.com/rancher/cli";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ bryanasdev000 ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index b82b6cf610de..13d15d0bf618 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,11 +1,11 @@
{ lib, buildGoModule, fetchFromGitHub }:
# SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
-let rev = "981a3ffd4368600eb1a5bca3f12a251e80895d37";
+let rev = "08bb70f407d0334fa80b9dbc6850987f16eb27d3";
in
buildGoModule rec {
pname = "sonobuoy";
- version = "0.53.2"; # Do not forget to update `rev` above
+ version = "0.54.0"; # Do not forget to update `rev` above
ldflags =
let t = "github.com/vmware-tanzu/sonobuoy";
@@ -17,10 +17,10 @@ buildGoModule rec {
];
src = fetchFromGitHub {
- sha256 = "sha256-8bUZsknG1Z2TKWwtuJtnauK8ibikGphl3oiLXT3PZzY=";
- rev = "v${version}";
- repo = "sonobuoy";
owner = "vmware-tanzu";
+ repo = "sonobuoy";
+ rev = "v${version}";
+ sha256 = "sha256-Gtpky+zkFKukIIHF91F4uBZjaguk8KlOEVhSwTj+ccs=";
};
vendorSha256 = "sha256-Lkwv95BZa7nFEXk1KcwXIRVpj9DZmqnWjkdrZkO/k24=";
diff --git a/pkgs/applications/networking/cluster/temporal/default.nix b/pkgs/applications/networking/cluster/temporal/default.nix
index 60fdc6902324..a03f69a9fc0a 100644
--- a/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/pkgs/applications/networking/cluster/temporal/default.nix
@@ -38,6 +38,6 @@ buildGoModule rec {
downloadPage = "https://github.com/temporalio/temporal";
homepage = "https://temporal.io";
license = licenses.mit;
- maintainers = with maintainers; [ superherointj ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 44ceb3f16227..50efacfd62ef 100644
--- a/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -1,16 +1,16 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "terraform-docs";
- version = "0.15.0";
+ version = "0.16.0";
src = fetchFromGitHub {
owner = "terraform-docs";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-PzGlEEhootf2SCOy7+11aST7NMTNhNMQWeZO40mrMYQ=";
+ sha256 = "sha256-zSSK2WfcbD1DvqsFUKdTydLfyApWzm1h+ihSnLUmq2E=";
};
- vendorSha256 = "sha256-T/jgFPBUQMATX7DoWsDR/VFjka7Vxk7F4taE25cdnTk=";
+ vendorSha256 = "sha256-0Bkjx/gq2MAWjxoMSGtBcRzv40SSUVDZBh4PzEtKj5o=";
subPackages = [ "." ];
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 48923330afee..35493aa31b7a 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -39,25 +39,29 @@ let
passthru = data;
};
- # These providers are managed with the ./update-all script
- automated-providers = lib.mapAttrs (_: attrs:
+ # Our generic constructor to build new providers
+ mkProvider = attrs:
(if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else buildWithGoPackage)
- attrs) list;
+ attrs;
+
+ # These providers are managed with the ./update-all script
+ automated-providers = lib.mapAttrs (_: attrs: mkProvider attrs) list;
# These are the providers that don't fall in line with the default model
special-providers = {
# Packages that don't fit the default model
- ansible = callPackage ./ansible {};
- cloudfoundry = callPackage ./cloudfoundry {};
- gandi = callPackage ./gandi {};
- hcloud = callPackage ./hcloud {};
- libvirt = callPackage ./libvirt {};
- linuxbox = callPackage ./linuxbox {};
- lxd = callPackage ./lxd {};
- vpsadmin = callPackage ./vpsadmin {};
- vercel = callPackage ./vercel {};
+ ansible = callPackage ./ansible { };
+ cloudfoundry = callPackage ./cloudfoundry { };
+ gandi = callPackage ./gandi { };
+ hcloud = callPackage ./hcloud { };
+ libvirt = callPackage ./libvirt { };
+ linuxbox = callPackage ./linuxbox { };
+ lxd = callPackage ./lxd { };
+ teleport = callPackage ./teleport { };
+ vpsadmin = callPackage ./vpsadmin { };
+ vercel = callPackage ./vercel { };
} // (lib.optionalAttrs (config.allowAliases or false) {
kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details";
});
in
- automated-providers // special-providers
+automated-providers // special-providers // { inherit mkProvider; }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
index ed2409ead9a3..5e8b0bdc0ab0 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub, fetchpatch, libvirt, pkg-config, makeWrapper, cdrtools }:
+{ buildGoModule, cdrtools, fetchFromGitHub, lib, libvirt, makeWrapper, pkg-config }:
# USAGE:
# install the following package globally or in nix-shell:
@@ -9,33 +9,25 @@
#
# virtualisation.libvirtd.enable = true;
#
-# terraform-provider-libvirt does not manage pools at the moment:
-#
-# $ virsh --connect "qemu:///system" pool-define-as default dir - - - - /var/lib/libvirt/images
-# $ virsh --connect "qemu:///system" pool-start default
-#
# pick an example from (i.e ubuntu):
-# https://github.com/dmacvicar/terraform-provider-libvirt/tree/master/examples
+# https://github.com/dmacvicar/terraform-provider-libvirt/tree/main/examples
+
+let
+ sha256 = "sha256-8GGPd0+qdw7s4cr0RgLoS0Cu4C+RAuuboZzTyYN/kq8=";
+ vendorSha256 = "sha256-fpO2sGM+VUKLmdfJ9CQfTFnCfxVTK2m9Sirj9oerD/I=";
+ version = "0.6.11";
+in buildGoModule {
+ inherit version;
+ inherit vendorSha256;
-buildGoPackage rec {
pname = "terraform-provider-libvirt";
- version = "0.6.3";
-
- goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt";
-
- patches = [
- (fetchpatch {
- name = "base_volume_copy.patch";
- url = "https://github.com/cyril-s/terraform-provider-libvirt/commit/52df264e8a28c40ce26e2b614ee3daea882931c3.patch";
- sha256 = "1fg7ii2fi4c93hl41nhcncy9bpw3avbh6yiq99p1vkf87hhrw72n";
- })
- ];
src = fetchFromGitHub {
+ inherit sha256;
+
owner = "dmacvicar";
repo = "terraform-provider-libvirt";
rev = "v${version}";
- sha256 = "0ak2lpnv6h0i7lzfcggd90jpfhvsasdr6nflkflk2drlcpalggj9";
};
nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -48,7 +40,12 @@ buildGoPackage rec {
# Terraform allow checking the provider versions, but this breaks
# if the versions are not provided via file paths.
- postBuild = "mv go/bin/terraform-provider-libvirt{,_v${version}}";
+ postBuild = "mv $GOPATH/bin/terraform-provider-libvirt{,_v${version}}";
+
+ ldflags = [ "-X main.version=${version}" ];
+ passthru.provider-source-address = "registry.terraform.io/dmacvicar/libvirt";
+
+ doCheck = false;
meta = with lib; {
homepage = "https://github.com/dmacvicar/terraform-provider-libvirt";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
index ab3d07a7f47b..4ea2194a03a3 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "terraform-provider-lxd";
- version = "1.5.0";
+ version = "1.6.0";
src = fetchFromGitHub {
owner = "sl1pm4t";
repo = "terraform-provider-lxd";
rev = "v${version}";
- sha256 = "sha256-ikI8LQ6qawdeUSb1Ee03H409DQw2M4QtsIxAESxXNRI=";
+ sha256 = "sha256-fl9sYoyrVV6LvnIrnyAXy18QLLazQajjcLO1JWsqAR4=";
};
- vendorSha256 = "sha256-IjpC7bFodqdrqVUEQdZBc6N8py5+t2kRYvcQiPr7CHc=";
+ vendorSha256 = "sha256-ervfG/BAaF4M+BXsp0eCDM6nPWQOS3pthClhArsUoYc=";
doCheck = false;
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 3779472fdf10..ffcc0b3d43b1 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -563,10 +563,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
"repo": "terraform-provider-kubernetes",
- "rev": "v2.4.1",
- "sha256": "0mk0f12yy58gjkki7xpf9bjfw9h9zdgby2b4bddqp5csq11payhd",
+ "rev": "v2.6.1",
+ "sha256": "164x0ddgqk3bj0za4h9kz69npgr4cw7w5hnl0pmxsgvsb04vwc0g",
"vendorSha256": null,
- "version": "2.4.1"
+ "version": "2.6.1"
},
"launchdarkly": {
"owner": "terraform-providers",
@@ -664,11 +664,13 @@
"version": "1.2.0"
},
"netlify": {
- "owner": "terraform-providers",
+ "owner": "AegirHealth",
+ "provider-source-address": "registry.terraform.io/AegirHealth/netlify",
"repo": "terraform-provider-netlify",
- "rev": "v0.4.0",
- "sha256": "07xds84k2vgpvn2cy3id7hmzg57sz2603zs4msn3ysxmi28lmqyg",
- "version": "0.4.0"
+ "rev": "v0.6.12",
+ "sha256": "0h3ff1ligjvvlmhghx9g92an79b26nyyq5sq4cdsf6psvwfa2kzd",
+ "vendorSha256": null,
+ "version": "0.6.12"
},
"newrelic": {
"owner": "terraform-providers",
@@ -725,10 +727,10 @@
"owner": "terraform-providers",
"provider-source-address": "registry.terraform.io/hashicorp/oci",
"repo": "terraform-provider-oci",
- "rev": "v4.35.0",
- "sha256": "12acy39cr6pxq8gk483b6i78x463ml9pk10qp9jpz0dr05zcyhqw",
+ "rev": "v4.49.0",
+ "sha256": "1s1gfnj3pi3q11jrdc2qxz9ccdk549nki0qkcnd0s7lxac8xzyfh",
"vendorSha256": null,
- "version": "4.35.0"
+ "version": "4.49.0"
},
"okta": {
"owner": "terraform-providers",
@@ -766,11 +768,13 @@
"version": "0.1.1"
},
"openstack": {
- "owner": "terraform-providers",
+ "owner": "terraform-provider-openstack",
+ "provider-source-address": "registry.terraform.io/terraform-provider-openstack/openstack",
"repo": "terraform-provider-openstack",
- "rev": "v1.28.0",
- "sha256": "1g2nxv312ddvkgpph17m9sh4zmy5ddj8gqwnfb3frbfbbamrgar6",
- "version": "1.28.0"
+ "rev": "v1.43.1",
+ "sha256": "0n6r88p3a6p8p0gjys2r1kcgkwq450jmyd741g45lxmaf3jz2ynb",
+ "vendorSha256": "0k4srszs8xgf8gz4fa7ysqyww52d7kvqy6zf22f1gkcjyiks9pl7",
+ "version": "1.43.1"
},
"opentelekomcloud": {
"owner": "terraform-providers",
@@ -943,6 +947,15 @@
"sha256": "1fs96qd2b4glk8hhn5m9r04ap679g0kf3nnhjx1a2idqwrv71gcl",
"version": "3.3.0"
},
+ "sentry": {
+ "owner": "jianyuan",
+ "provider-source-address": "registry.terraform.io/jianyuan/sentry",
+ "repo": "terraform-provider-sentry",
+ "rev": "v0.6.0",
+ "sha256": "0246hv52kslrzj43dkbk8r8gimwz3sgzxsbv7sxwmk3ll3sl2zrk",
+ "vendorSha256": "1d4c8cg4a81mndrzwrsi1k9ll553csnb0r4avlq9hyc03z60dwdc",
+ "version": "0.6.0"
+ },
"shell": {
"owner": "scottwinkler",
"provider-source-address": "registry.terraform.io/scottwinkler/shell",
@@ -1091,12 +1104,13 @@
"version": "0.1.0"
},
"vault": {
- "owner": "terraform-providers",
+ "owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/vault",
"repo": "terraform-provider-vault",
- "rev": "v2.11.0",
- "sha256": "1yzakc7jp0rs9axnfdqw409asrbjhq0qa7xn4xzpi7m94g1ii12d",
- "version": "2.11.0"
+ "rev": "v2.24.1",
+ "sha256": "1xk14q06js774lqyylkbp53dnlsbgh3vi38mqqmndh80xigs6d99",
+ "version": "2.24.1",
+ "vendorSha256": "1ksla455qfgxpk2dmq3pg52nyyw3v0bg6fm5s60j6cb0lzvjbq48"
},
"vcd": {
"owner": "terraform-providers",
diff --git a/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix b/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix
new file mode 100644
index 000000000000..733d15408746
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "terraform-provider-teleport";
+ version = "7.3.0";
+
+ src = fetchFromGitHub {
+ owner = "gravitational";
+ repo = "teleport-plugins";
+ rev = "v${version}";
+ sha256 = "19zn78nn64gc0nm7ycblzi4549a0asql07pfxvrphi6s9fjr5m3y";
+ };
+ vendorSha256 = null;
+
+ sourceRoot = "source/terraform";
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postBuild = ''
+ mv $NIX_BUILD_TOP/go/bin/{terraform,terraform-provider-teleport_v${version}}
+ '';
+
+ passthru.provider-source-address = "gravitational.com/teleport/teleport";
+
+ meta = with lib; {
+ description = "Provider for managing resources in Teleport, a SSH CA management suite";
+ homepage = "https://github.com/gravitational/teleport-plugins";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ justinas ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 5e2253aaa622..036ee7d8243f 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -114,7 +114,7 @@ let
passthru = {
withPlugins = newplugins:
withPlugins (x: newplugins x ++ actualPlugins);
- full = withPlugins lib.attrValues;
+ full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p));
# Ouch
overrideDerivation = f:
@@ -195,9 +195,9 @@ rec {
};
terraform_1_0 = mkTerraform {
- version = "1.0.7";
- sha256 = "115gb4mqz7lzyb80psbfy10k4h09fbvb1l8iz7kg63ajx69fnasy";
- vendorSha256 = "00cl42w1mzsi9qd09wydfvp5f2h7lxaay6s2dv0mf47k6h7prf42";
+ version = "1.0.11";
+ sha256 = "0k05s4zm16vksq21f1q00y2lzfgi5fhs1ygydm8jk0srs9x8ask7";
+ vendorSha256 = "1brgghl7fb26va4adix443rl1dkjaqrr4jkknxjkcaps0knqp172";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };
};
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index b238e5a4b71b..f2ae9a9490aa 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "terragrunt";
- version = "0.32.2";
+ version = "0.35.5";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-1s6/Xn/NsClG7YvRyzpvzMy8HmDITNCQUJxHaA84470=";
+ sha256 = "sha256-VUB1zZwRZ+TUFDcq/lBB9eAeM7d5zWhFy7nxzH5S6oc=";
};
vendorSha256 = "sha256-y84EFmoJS4SeA5YFIVFU0iWa5NnjU5yvOj7OFE+jGN0=";
diff --git a/pkgs/applications/networking/cluster/terranix/default.nix b/pkgs/applications/networking/cluster/terranix/default.nix
index 89a96cc12ca5..a8541336b3de 100644
--- a/pkgs/applications/networking/cluster/terranix/default.nix
+++ b/pkgs/applications/networking/cluster/terranix/default.nix
@@ -1,29 +1,31 @@
-{ lib, stdenv, fetchFromGitHub, ... }:
+{ stdenv, lib, fetchFromGitHub, jq, nix, makeWrapper }:
stdenv.mkDerivation rec {
-
pname = "terranix";
- version = "2.3.0";
+ version = "2.5.0";
src = fetchFromGitHub {
owner = "mrVanDalo";
repo = "terranix";
rev = version;
- sha256 = "030067h3gjc02llaa7rx5iml0ikvw6szadm0nrss2sqzshsfimm4";
+ sha256 = "sha256-HDiyJGgyDUoLnpL8N+wDm3cM/vEfYYc/p4N1kKH/kLk=";
};
+ nativeBuildInputs = [ makeWrapper ];
+
installPhase = ''
- mkdir -p $out
+ mkdir -p $out/{bin,core,modules,lib}
mv bin core modules lib $out/
+
+ wrapProgram $out/bin/terranix-doc-json \
+ --prefix PATH : ${lib.makeBinPath [ jq nix ]}
'';
meta = with lib; {
description = "A NixOS like terraform-json generator";
homepage = "https://terranix.org";
license = licenses.gpl3;
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = with maintainers; [ mrVanDalo ];
};
-
}
-
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index eee449de53e3..cd8d1f703d2d 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
/* Do not use "dev" as a version. If you do, Tilt will consider itself
running in development environment and try to serve assets from the
source tree, which is not there once build completes. */
- version = "0.22.9";
+ version = "0.22.15";
src = fetchFromGitHub {
owner = "tilt-dev";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-h19Cj4ztgypT/j1gB+PbvgDJ7jlJ3CYPEbK62tJeMss=";
+ sha256 = "sha256-Aim80bg1vGRkiIlVqDa4qOFQ+mwSOL75HOPYQYovYlE=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/velero/default.nix b/pkgs/applications/networking/cluster/velero/default.nix
index 76babadc023c..ecef3650683e 100644
--- a/pkgs/applications/networking/cluster/velero/default.nix
+++ b/pkgs/applications/networking/cluster/velero/default.nix
@@ -3,15 +3,15 @@
buildGoModule rec {
pname = "velero";
# When updating, change the commit underneath
- version = "1.6.3";
- commit = "8c9cdb9603446760452979dc77f93b17054ea1cc";
+ version = "1.7.0";
+ commit = "9e52260568430ecb77ac38a677ce74267a8c2176";
src = fetchFromGitHub {
- rev = "v${version}";
owner = "vmware-tanzu";
repo = "velero";
- sha256 = "sha256-oFDTjpcwlvSiAROG/EKYRCD+qKyZXu1gKotBcD0dfvk=";
+ rev = "v${version}";
+ sha256 = "sha256-n5Rk+Fyb6yAI5sRZi+WE1KyQZyGryZSP4yd/gmmsQxw=";
};
ldflags = [
@@ -21,9 +21,9 @@ buildGoModule rec {
"-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean"
];
- vendorSha256 = "sha256-ypgrdv6nVW+AAwyVsiROXs6jGgDTodGrGqiT2s5elOU=";
+ vendorSha256 = "sha256-qsRbwLKNnuQRIsx0+sfOfR2OQ0+el0vptxz7mMew7zY=";
- excludedPackages = [ "issue-template-gen" "crd-gen" "release-tools" "velero-restic-restore-helper" ];
+ excludedPackages = [ "issue-template-gen" "crd-gen" "release-tools" "velero-restic-restore-helper" "v1" "v1beta1" ];
doCheck = false; # Tests expect a running cluster see https://github.com/vmware-tanzu/velero/tree/main/test/e2e
doInstallCheck = true;
diff --git a/pkgs/applications/networking/cozy-drive/default.nix b/pkgs/applications/networking/cozy-drive/default.nix
new file mode 100644
index 000000000000..57a791d9db4d
--- /dev/null
+++ b/pkgs/applications/networking/cozy-drive/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchurl
+, appimageTools
+}:
+
+let
+ pname = "cozydrive";
+ version = "3.30.1";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/cozy-labs/cozy-desktop/releases/download/v${version}/Cozy-Drive-${version}-x86_64.AppImage";
+ sha256 = "06w305l5iadd4k70jvrvw2scwlfxycign2nz0f2vrwwhqy8bpfqs";
+ };
+ appimageContents = appimageTools.extract { inherit name src; };
+
+in
+appimageTools.wrapType2 {
+ inherit name src;
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/cozydrive.desktop -t $out/share/applications
+ substituteInPlace $out/share/applications/cozydrive.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
+
+ meta = with lib; {
+ description = "Cozy Drive is a synchronization tool for your files and folders with Cozy Cloud.";
+ homepage = "https://cozy.io";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ simarra ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index 845d0f2779c2..9c4340fffedb 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -26,6 +26,7 @@ let
genericName = "File Synchronizer";
categories = "Network;FileTransfer;";
startupNotify = "false";
+ icon = "dropbox";
};
in
diff --git a/pkgs/applications/networking/feedreaders/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 289f631ee8fb..65835aa10cf3 100644
--- a/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec {
pname = "newsboat";
- version = "2.24";
+ version = "2.25";
src = fetchFromGitHub {
owner = "newsboat";
repo = "newsboat";
rev = "r${version}";
- sha256 = "0qb10w7pn9hiczjjpc0xanmc83p22ngcqcrkjwji5rl0sh8v9ii4";
+ sha256 = "sha256-TAnGDxTKYl4niouS6nYdJDaIngAPsPHr9Bw9L3cR2Xk=";
};
- cargoSha256 = "0vhr8qyw4f3lc208mgl1m3z42igkbwly6wcv7g7jrq3c6dcwyhjn";
+ cargoSha256 = "sha256-MxoyYBLbrCuLVa0p8JrYKSKu2oFPnXMwab42lhhAu48=";
# TODO: Check if that's still needed
postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/networking/feedreaders/newsflash/default.nix b/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 012d00026cf5..fdecf62c6a43 100644
--- a/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -21,19 +21,19 @@
stdenv.mkDerivation rec {
pname = "newsflash";
- version = "1.4.3";
+ version = "1.5.1";
src = fetchFromGitLab {
owner = "news-flash";
repo = "news_flash_gtk";
- rev = "v.${version}";
- hash = "sha256-c/zT+FNRDu7jdooNTEYbeG9jLrL+9txe+aC7nSy4bB0=";
+ rev = version;
+ hash = "sha256-fLG7oYt+gdl3Lwnu6c7VLJWSHCFY5LyNeDKoUNGg3Yw=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
- hash = "sha256-yTElaPSoTiJpfIGzuNJCWxVzdWBzim5rt0N2r0ARhvM=";
+ hash = "sha256-dQlbK3SfY6p1xinroXz5wcaBbq2LuDM9sMlfJ6ueTTg=";
};
patches = [
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
description = "A modern feed reader designed for the GNOME desktop";
homepage = "https://gitlab.com/news-flash/news_flash_gtk";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ kira-bruneau ];
+ maintainers = with maintainers; [ kira-bruneau stunkymonkey ];
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/networking/feedreaders/rssguard/default.nix b/pkgs/applications/networking/feedreaders/rssguard/default.nix
index 7fd2a9684ae7..c3c58dc07568 100644
--- a/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "rssguard";
- version = "4.0.2";
+ version = "4.0.4";
src = fetchFromGitHub {
owner = "martinrotter";
repo = pname;
rev = version;
- sha256 = "sha256-Q2yVprIB8YeB8bCAau1H2m8QOidX1RrMIRET/fXyNi4=";
+ sha256 = "sha256-c6+SlZx3ACG0nJRW+zcDDzVd/oSLAdSaq2fHrPpt6zw=";
};
buildInputs = [ qtwebengine qttools ];
diff --git a/pkgs/applications/networking/firehol/default.nix b/pkgs/applications/networking/firehol/default.nix
index 424c67721046..145fae2553a2 100644
--- a/pkgs/applications/networking/firehol/default.nix
+++ b/pkgs/applications/networking/firehol/default.nix
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, pkgs
-, autoconf, automake, curl, iprange, iproute2, ipset, iptables, iputils
+, autoconf, automake, curl, iprange, iproute2, iptables, iputils
, kmod, nettools, procps, tcpdump, traceroute, util-linux, whois
# If true, just install FireQOS without FireHOL
@@ -35,13 +35,14 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoconf automake ];
buildInputs = [
- curl iprange iproute2 ipset iptables iputils kmod
+ curl iprange iproute2 iptables iputils kmod
nettools procps tcpdump traceroute util-linux whois
];
preConfigure = "./autogen.sh";
configureFlags = [ "--localstatedir=/var"
- "--disable-doc" "--disable-man" ] ++
+ "--disable-doc" "--disable-man"
+ "--disable-update-ipsets" ] ++
lib.optional onlyQOS [ "--disable-firehol" ];
meta = with lib; {
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 8b81d1134353..c4f54a756b76 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
- version = "3.1.137";
+ version = "3.1.150";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "v${version}";
- sha256 = "15zl97laijn42rhh524rfb3h1rky461hwfnlny2maa3h61889xrv";
+ sha256 = "sha256-tSA1pDGzIX2uIEWM0xV53jj1vBcJFMNCRakczs7Hue4=";
};
postPatch = ''
@@ -32,38 +32,36 @@ python3Packages.buildPythonApplication rec {
# See https://github.com/Flexget/Flexget/blob/master/requirements.in
APScheduler
beautifulsoup4
- cherrypy
- colorama
- colorclass
feedparser
- flask-compress
- flask-cors
- flask_login
- flask-restful
- flask-restx
- flask
- greenlet
guessit
html5lib
jinja2
jsonschema
loguru
more-itertools
- progressbar
+ psutil
pynzb
- pyparsing
PyRSS2Gen
python-dateutil
pyyaml
rebulk
requests
+ rich
rpyc
- sgmllib3k
sqlalchemy
- terminaltables
+
+ # WebUI requirements
+ cherrypy
+ flask-compress
+ flask-cors
+ flask_login
+ flask-restful
+ flask-restx
+ flask
+ pyparsing
zxcvbn
- psutil
- # plugins
+
+ # Plugins requirements
transmission-rpc
];
diff --git a/pkgs/applications/networking/ftp/taxi/default.nix b/pkgs/applications/networking/ftp/taxi/default.nix
index c6015a669638..411031f605ed 100644
--- a/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/pkgs/applications/networking/ftp/taxi/default.nix
@@ -52,15 +52,16 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru.updateScript = nix-update-script {
+ attrPath = pname;
+ };
+
meta = with lib; {
homepage = "https://github.com/Alecaddd/taxi";
description = "The FTP Client that drives you anywhere";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ AndersonTorres ] ++ teams.pantheon.members;
platforms = platforms.linux;
- };
-
- passthru.updateScript = nix-update-script {
- attrPath = pname;
+ mainProgram = "com.github.alecaddd.taxi";
};
}
diff --git a/pkgs/applications/networking/gmailctl/default.nix b/pkgs/applications/networking/gmailctl/default.nix
index 3e0a20a371c7..8d0b9915d0d7 100644
--- a/pkgs/applications/networking/gmailctl/default.nix
+++ b/pkgs/applications/networking/gmailctl/default.nix
@@ -1,6 +1,7 @@
{ lib
, buildGoModule
, fetchFromGitHub
+, installShellFiles
}:
buildGoModule rec {
@@ -14,6 +15,17 @@ buildGoModule rec {
sha256 = "sha256-1gOixuOvPHEjnnDNNda9sktnhffovOfeG4XDrLRRMlE=";
};
+ nativeBuildInputs = [
+ installShellFiles
+ ];
+
+ postInstall = ''
+ installShellCompletion --cmd gmailctl \
+ --bash <($out/bin/gmailctl completion bash) \
+ --fish <($out/bin/gmailctl completion fish) \
+ --zsh <($out/bin/gmailctl completion zsh)
+ '';
+
vendorSha256 = "sha256-Yv3OGHFOmenst/ujUgvCaSEjwwBf3W9n+55ztVhuWjo=";
doCheck = false;
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
index 4d18f6a4f4a7..64f58daec765 100644
--- a/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchurl, ncurses
+{ lib, stdenv, fetchurl, ncurses, libressl
, patches ? [] # allow users to easily override config.def.h
}:
stdenv.mkDerivation rec {
pname = "sacc";
- version = "1.03";
+ version = "1.04";
src = fetchurl {
url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tgz";
- sha512 = "sha512-vOjAGBM2+080JZv4C4b5dNRTTX45evWFEJfK1DRaWCYrHRCAe07QdEIrHhbaIxhSYfrBd3D1y75rmDnuPC4THA==";
+ sha512 = "1rjxs77a5k2mgpwr2ln1czn64fmss9yw59g0k60r25c2ny2la6ddfcl5zclawcikk346na6m96jrfwssmka0axr2spwpl61wm0lijnk";
};
inherit patches;
- buildInputs = [ ncurses ];
+ buildInputs = [ ncurses libressl ];
CFLAGS = lib.optionals stdenv.isDarwin [
"-D_DARWIN_C_SOURCE"
diff --git a/pkgs/applications/networking/hyprspace/default.nix b/pkgs/applications/networking/hyprspace/default.nix
index 89c04508b70f..037feccca4ed 100644
--- a/pkgs/applications/networking/hyprspace/default.nix
+++ b/pkgs/applications/networking/hyprspace/default.nix
@@ -2,7 +2,7 @@
buildGoModule rec {
pname = "hyprspace";
- version = "0.1.6";
+ version = "0.1.7";
propagatedBuildInputs = lib.optional stdenv.isDarwin iproute2mac;
@@ -10,10 +10,10 @@ buildGoModule rec {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-g0oyI3jnqQADyOrpnK4IvpFQPEwNrpvyDS+DhBDXZGg=";
+ sha256 = "sha256-Ecdxs6see4uexY6DatZ/VSGgWR81zRjo3AeAsXSjJ4A=";
};
- vendorSha256 = "sha256-rw75xNBBV58F+HBVtD/EslPWxZxLbI3/mJVdJF4usKI=";
+ vendorSha256 = "sha256-nFiBHhtvTu9Ya6n1KUF+pOXrksHMOph7ABVtGSWVWlo=";
meta = with lib; {
description = "A Lightweight VPN Built on top of Libp2p for Truly Distributed Networks.";
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index e70d6c187c2e..20623ac31827 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "zeek";
- version = "4.1.0";
+ version = "4.1.1";
src = fetchurl {
url = "https://download.zeek.org/zeek-${version}.tar.gz";
- sha256 = "165kva8dgf152ahizqdk0g2y466ij2gyxja5fjxlkxcxr5p357pj";
+ sha256 = "0wq3kjc3zc5ikzwix7k7gr92v75rg6283kx5fzvc3lcdkaczq2lc";
};
nativeBuildInputs = [ cmake flex bison file ];
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix b/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
index ad68fcb4b79d..997882bbc8bb 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
@@ -1,20 +1,15 @@
-{ lib, stdenv, bitlbee }:
+{ lib, runCommandLocal, bitlbee }:
with lib;
-plugins:
-
-stdenv.mkDerivation {
- inherit bitlbee plugins;
- name = "bitlbee-plugins";
+plugins: runCommandLocal "bitlbee-plugins" {
+ inherit plugins;
buildInputs = [ bitlbee plugins ];
- phases = [ "installPhase" ];
- installPhase = ''
- mkdir -p $out/lib/bitlbee
- for plugin in $plugins; do
- for thing in $(ls $plugin/lib/bitlbee); do
- ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/
- done
+} ''
+ mkdir -p $out/lib/bitlbee
+ for plugin in $plugins; do
+ for thing in $(ls $plugin/lib/bitlbee); do
+ ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/
done
- '';
-}
+ done
+''
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index bca1a1affc0d..bb87bd38dc6b 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -44,11 +44,11 @@ in
stdenv.mkDerivation rec {
pname = "bluejeans";
- version = "2.23.0.39";
+ version = "2.24.0.89";
src = fetchurl {
url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm";
- sha256 = "sha256-LGg14KJ/hEnSaSrdTltY9YXv7Nekkfo66uLkxjMx8AI=";
+ sha256 = "sha256-rneX8ys/oKfVLavAZk5RJouOZkVsp+9BIAReSeYiKJc=";
};
nativeBuildInputs = [ rpmextract makeWrapper ];
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/update.sh b/pkgs/applications/networking/instant-messengers/bluejeans/update.sh
index 2c527462003e..3bb7d309e875 100755
--- a/pkgs/applications/networking/instant-messengers/bluejeans/update.sh
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/update.sh
@@ -3,10 +3,10 @@
set -eu -o pipefail
-version="$(curl -Ls https://www.bluejeans.com/download | \
- pup 'a[aria-label~="Linux"] attr{href}' | \
- #output contains *.deb and *.rpm
- grep "\.rpm" | \
+version="$(curl -Ls https://www.bluejeans.com/downloads | \
+ pup 'a[href$=".rpm"] attr{href}' | \
+ # output contains app and events
+ grep "desktop-app" | \
awk -F'[ ._ ]' '{printf $6"."$7"."$8"."$9"\n"}')"
update-source-version bluejeans-gui "$version"
diff --git a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 075fd5b3a20a..7a2415199375 100644
--- a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -2,12 +2,12 @@
mkDerivation rec {
pname = "chatterino2";
- version = "2.3.0";
+ version = "2.3.4";
src = fetchFromGitHub {
owner = "Chatterino";
repo = pname;
rev = "v${version}";
- sha256 = "0x12zcrbkxn2nn0hqkj1amrxv4q032id282cajzsx7by970r1shd";
+ sha256 = "sha256-ZmUM56+YNH98J3XE/mWOOIfb0qBld2n4iuHpImbrU4o=";
fetchSubmodules = true;
};
nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
@@ -16,9 +16,6 @@ mkDerivation rec {
mkdir -p "$out/Applications"
mv bin/chatterino.app "$out/Applications/"
'';
- postFixup = lib.optionalString stdenv.isDarwin ''
- wrapQtApp "$out/Applications/chatterino.app/Contents/MacOS/chatterino"
- '';
meta = with lib; {
description = "A chat client for Twitch chat";
longDescription = ''
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index 07ac0730face..a359f0a4ac0f 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -20,13 +20,13 @@ let
"${electron}/bin/electron";
in nodePackages.deltachat-desktop.override rec {
pname = "deltachat-desktop";
- version = "1.21.1";
+ version = "1.22.2";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-desktop";
rev = "v${version}";
- sha256 = "0d59z0mvi70i26d79s4h0sssclwcakidhvhq56zi78bkfqlx7xf1";
+ sha256 = "0in6w2vl4ypgjb9gfhyh77vg05ni5p3z24lah7wvvhywcpv1jp2n";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index 19cb53f6daa0..41bcdeca1864 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,6 +1,6 @@
{
"name": "deltachat-desktop",
- "version": "1.21.1",
+ "version": "1.22.2",
"dependencies": {
"@blueprintjs/core": "^3.22.3",
"@mapbox/geojson-extent": "^1.0.0",
diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix
index 7f0127c28fd8..18f73de2fd5b 100644
--- a/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "dino";
- version = "0.2.1";
+ version = "0.2.2";
src = fetchFromGitHub {
owner = "dino";
repo = "dino";
rev = "v${version}";
- sha256 = "11m38syqzb1z92wmdaf45gryl6gjxwbcnk32j4p984ipqj2vdzd8";
+ sha256 = "sha256-uYP3D2uyvfRP91fq/1jKOaKgp/+How0SUwmxSrLLH4c=";
};
nativeBuildInputs = [
@@ -81,8 +81,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Modern Jabber/XMPP Client using GTK/Vala";
homepage = "https://github.com/dino/dino";
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
- maintainers = with maintainers; [ mic92 qyliss ];
+ maintainers = with maintainers; [ qyliss ];
};
}
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index ab1704681299..b499f01d88fd 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -1,5 +1,4 @@
{ branch ? "stable", pkgs }:
-# Generated by ./update-discord.sh
let
inherit (pkgs) callPackage fetchurl;
in {
@@ -7,30 +6,30 @@ in {
pname = "discord";
binaryName = "Discord";
desktopName = "Discord";
- version = "0.0.15";
+ version = "0.0.16";
src = fetchurl {
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
- sha256 = "0pn2qczim79hqk2limgh88fsn93sa8wvana74mpdk5n6x5afkvdd";
+ sha256 = "UTVKjs/i7C/m8141bXBsakQRFd/c//EmqqhKhkr1OOk=";
};
};
ptb = callPackage ./base.nix rec {
pname = "discord-ptb";
binaryName = "DiscordPTB";
desktopName = "Discord PTB";
- version = "0.0.25";
+ version = "0.0.26";
src = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
- sha256 = "082ygmsycicddpkv5s03vw3rjkrk4lgprq29z8b1hdjifvw93b21";
+ sha256 = "1rlj76yhxjwwfmdln3azjr69hvfx1bjqdg9jhdn4fp6mlirkrcq4";
};
};
canary = callPackage ./base.nix rec {
pname = "discord-canary";
binaryName = "DiscordCanary";
desktopName = "Discord Canary";
- version = "0.0.130";
+ version = "0.0.131";
src = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
- sha256 = "sha256-UamSiwjR68Pfm3uyHaI871VaGwIKJ5DShl8uE3rvX+U=";
+ sha256 = "087rzyivk0grhc73v7ldxxghks0n16ifrvpmk95vzaw99l9xv0v5";
};
};
}.${branch}
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 65093878da2d..fbc61c23b5c4 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
"name": "element-desktop",
"productName": "Element",
"main": "lib/electron-main.js",
- "version": "1.8.5",
+ "version": "1.9.3",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
@@ -57,7 +57,7 @@
"allchange": "^1.0.2",
"asar": "^2.0.1",
"chokidar": "^3.5.2",
- "electron": "^13.1.9",
+ "electron": "13.5",
"electron-builder": "22.11.4",
"electron-builder-squirrel-windows": "22.11.4",
"electron-devtools-installer": "^3.1.1",
@@ -83,7 +83,7 @@
},
"build": {
"appId": "im.riot.app",
- "electronVersion": "13.2.2",
+ "electronVersion": "13.5.1",
"files": [
"package.json",
{
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
deleted file mode 100644
index 45f2a5638ed7..000000000000
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
+++ /dev/null
@@ -1,5493 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
- offline_cache = linkFarm "offline" packages;
- packages = [
- {
- name = "7zip_bin___7zip_bin_5.1.1.tgz";
- path = fetchurl {
- name = "7zip_bin___7zip_bin_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz";
- sha1 = "9274ec7460652f9c632c59addf24efb1684ef876";
- };
- }
- {
- name = "_actions_core___core_1.5.0.tgz";
- path = fetchurl {
- name = "_actions_core___core_1.5.0.tgz";
- url = "https://registry.yarnpkg.com/@actions/core/-/core-1.5.0.tgz";
- sha1 = "885b864700001a1b9a6fba247833a036e75ad9d3";
- };
- }
- {
- name = "_actions_github___github_5.0.0.tgz";
- path = fetchurl {
- name = "_actions_github___github_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/@actions/github/-/github-5.0.0.tgz";
- sha1 = "1754127976c50bd88b2e905f10d204d76d1472f8";
- };
- }
- {
- name = "_actions_http_client___http_client_1.0.11.tgz";
- path = fetchurl {
- name = "_actions_http_client___http_client_1.0.11.tgz";
- url = "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz";
- sha1 = "c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0";
- };
- }
- {
- name = "_babel_code_frame___code_frame_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_code_frame___code_frame_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz";
- sha1 = "23b08d740e83f49c5e59945fbf1b43e80bbf4edb";
- };
- }
- {
- name = "_babel_generator___generator_7.15.0.tgz";
- path = fetchurl {
- name = "_babel_generator___generator_7.15.0.tgz";
- url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz";
- sha1 = "a7d0c172e0d814974bad5aa77ace543b97917f15";
- };
- }
- {
- name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz";
- sha1 = "89e2c474972f15d8e233b52ee8c480e2cfcd50c4";
- };
- }
- {
- name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz";
- sha1 = "25fbfa579b0937eee1f3b805ece4ce398c431815";
- };
- }
- {
- name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz";
- sha1 = "e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d";
- };
- }
- {
- name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz";
- sha1 = "22b23a54ef51c2b7605d851930c1976dd0bc693a";
- };
- }
- {
- name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.9.tgz";
- path = fetchurl {
- name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.9.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz";
- sha1 = "6654d171b2024f6d8ee151bf2509699919131d48";
- };
- }
- {
- name = "_babel_highlight___highlight_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_highlight___highlight_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz";
- sha1 = "6861a52f03966405001f6aa534a01a24d99e8cd9";
- };
- }
- {
- name = "_babel_parser___parser_7.15.3.tgz";
- path = fetchurl {
- name = "_babel_parser___parser_7.15.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz";
- sha1 = "3416d9bea748052cfcb63dbcc27368105b1ed862";
- };
- }
- {
- name = "_babel_runtime___runtime_7.15.3.tgz";
- path = fetchurl {
- name = "_babel_runtime___runtime_7.15.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz";
- sha1 = "2e1c2880ca118e5b2f9988322bd8a7656a32502b";
- };
- }
- {
- name = "_babel_template___template_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_template___template_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz";
- sha1 = "a9bc9d8b33354ff6e55a9c60d1109200a68974f4";
- };
- }
- {
- name = "_babel_traverse___traverse_7.15.0.tgz";
- path = fetchurl {
- name = "_babel_traverse___traverse_7.15.0.tgz";
- url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz";
- sha1 = "4cca838fd1b2a03283c1f38e141f639d60b3fc98";
- };
- }
- {
- name = "_babel_types___types_7.15.0.tgz";
- path = fetchurl {
- name = "_babel_types___types_7.15.0.tgz";
- url = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz";
- sha1 = "61af11f2286c4e9c69ca8deb5f4375a73c72dcbd";
- };
- }
- {
- name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
- path = fetchurl {
- name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
- url = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz";
- sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
- };
- }
- {
- name = "_electron_get___get_1.13.0.tgz";
- path = fetchurl {
- name = "_electron_get___get_1.13.0.tgz";
- url = "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz";
- sha1 = "95c6bcaff4f9a505ea46792424f451efea89228c";
- };
- }
- {
- name = "_electron_universal___universal_1.0.5.tgz";
- path = fetchurl {
- name = "_electron_universal___universal_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz";
- sha1 = "b812340e4ef21da2b3ee77b2b4d35c9b86defe37";
- };
- }
- {
- name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
- path = fetchurl {
- name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
- sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
- };
- }
- {
- name = "_jimp_bmp___bmp_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_bmp___bmp_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.1.tgz";
- sha1 = "6e2da655b2ba22e721df0795423f34e92ef13768";
- };
- }
- {
- name = "_jimp_core___core_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_core___core_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.1.tgz";
- sha1 = "68c4288f6ef7f31a0f6b859ba3fb28dae930d39d";
- };
- }
- {
- name = "_jimp_custom___custom_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_custom___custom_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.1.tgz";
- sha1 = "28b659c59e20a1d75a0c46067bd3f4bd302cf9c5";
- };
- }
- {
- name = "_jimp_gif___gif_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_gif___gif_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.1.tgz";
- sha1 = "d1f7c3a58f4666482750933af8b8f4666414f3ca";
- };
- }
- {
- name = "_jimp_jpeg___jpeg_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_jpeg___jpeg_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.1.tgz";
- sha1 = "3b7bb08a4173f2f6d81f3049b251df3ee2ac8175";
- };
- }
- {
- name = "_jimp_plugin_blit___plugin_blit_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_blit___plugin_blit_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz";
- sha1 = "09ea919f9d326de3b9c2826fe4155da37dde8edb";
- };
- }
- {
- name = "_jimp_plugin_blur___plugin_blur_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_blur___plugin_blur_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz";
- sha1 = "e614fa002797dcd662e705d4cea376e7db968bf5";
- };
- }
- {
- name = "_jimp_plugin_circle___plugin_circle_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_circle___plugin_circle_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz";
- sha1 = "20e3194a67ca29740aba2630fd4d0a89afa27491";
- };
- }
- {
- name = "_jimp_plugin_color___plugin_color_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_color___plugin_color_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.16.1.tgz";
- sha1 = "0f298ba74dee818b663834cd80d53e56f3755233";
- };
- }
- {
- name = "_jimp_plugin_contain___plugin_contain_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_contain___plugin_contain_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz";
- sha1 = "3c5f5c495fd9bb08a970739d83694934f58123f2";
- };
- }
- {
- name = "_jimp_plugin_cover___plugin_cover_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_cover___plugin_cover_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz";
- sha1 = "0e8caec16a40abe15b1b32e5383a603a3306dc41";
- };
- }
- {
- name = "_jimp_plugin_crop___plugin_crop_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_crop___plugin_crop_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz";
- sha1 = "b362497c873043fe47ba881ab08604bf7226f50f";
- };
- }
- {
- name = "_jimp_plugin_displace___plugin_displace_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_displace___plugin_displace_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz";
- sha1 = "4dd9db518c3e78de9d723f86a234bf98922afe8d";
- };
- }
- {
- name = "_jimp_plugin_dither___plugin_dither_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_dither___plugin_dither_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz";
- sha1 = "b47de2c0bb09608bed228b41c3cd01a85ec2d45b";
- };
- }
- {
- name = "_jimp_plugin_fisheye___plugin_fisheye_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_fisheye___plugin_fisheye_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz";
- sha1 = "f625047b6cdbe1b83b89e9030fd025ab19cdb1a4";
- };
- }
- {
- name = "_jimp_plugin_flip___plugin_flip_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_flip___plugin_flip_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz";
- sha1 = "7a99ea22bde802641017ed0f2615870c144329bb";
- };
- }
- {
- name = "_jimp_plugin_gaussian___plugin_gaussian_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_gaussian___plugin_gaussian_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz";
- sha1 = "0845e314085ccd52e34fad9a83949bc0d81a68e8";
- };
- }
- {
- name = "_jimp_plugin_invert___plugin_invert_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_invert___plugin_invert_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz";
- sha1 = "7e6f5a15707256f3778d06921675bbcf18545c97";
- };
- }
- {
- name = "_jimp_plugin_mask___plugin_mask_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_mask___plugin_mask_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz";
- sha1 = "e7f2460e05c3cda7af5e76f33ccb0579f66f90df";
- };
- }
- {
- name = "_jimp_plugin_normalize___plugin_normalize_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_normalize___plugin_normalize_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz";
- sha1 = "032dfd88eefbc4dedc8b1b2d243832e4f3af30c8";
- };
- }
- {
- name = "_jimp_plugin_print___plugin_print_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_print___plugin_print_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.16.1.tgz";
- sha1 = "66b803563f9d109825970714466e6ab9ae639ff6";
- };
- }
- {
- name = "_jimp_plugin_resize___plugin_resize_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_resize___plugin_resize_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz";
- sha1 = "65e39d848ed13ba2d6c6faf81d5d590396571d10";
- };
- }
- {
- name = "_jimp_plugin_rotate___plugin_rotate_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_rotate___plugin_rotate_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz";
- sha1 = "53fb5d51a4b3d05af9c91c2a8fffe5d7a1a47c8c";
- };
- }
- {
- name = "_jimp_plugin_scale___plugin_scale_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_scale___plugin_scale_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz";
- sha1 = "89f6ba59feed3429847ed226aebda33a240cc647";
- };
- }
- {
- name = "_jimp_plugin_shadow___plugin_shadow_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_shadow___plugin_shadow_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz";
- sha1 = "a7af892a740febf41211e10a5467c3c5c521a04c";
- };
- }
- {
- name = "_jimp_plugin_threshold___plugin_threshold_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugin_threshold___plugin_threshold_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz";
- sha1 = "34f3078f9965145b7ae26c53a32ad74b1195bbf5";
- };
- }
- {
- name = "_jimp_plugins___plugins_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_plugins___plugins_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.16.1.tgz";
- sha1 = "9f08544c97226d6460a16ced79f57e85bec3257b";
- };
- }
- {
- name = "_jimp_png___png_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_png___png_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.1.tgz";
- sha1 = "f24cfc31529900b13a2dd9d4fdb4460c1e4d814e";
- };
- }
- {
- name = "_jimp_tiff___tiff_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_tiff___tiff_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.1.tgz";
- sha1 = "0e8756695687d7574b6bc73efab0acd4260b7a12";
- };
- }
- {
- name = "_jimp_types___types_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_types___types_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.1.tgz";
- sha1 = "0dbab37b3202315c91010f16c31766d35a2322cc";
- };
- }
- {
- name = "_jimp_utils___utils_0.16.1.tgz";
- path = fetchurl {
- name = "_jimp_utils___utils_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.1.tgz";
- sha1 = "2f51e6f14ff8307c4aa83d5e1a277da14a9fe3f7";
- };
- }
- {
- name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz";
- path = fetchurl {
- name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz";
- sha1 = "504af200af6b98e198bce768bc1730c6936ae01d";
- };
- }
- {
- name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz";
- path = fetchurl {
- name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz";
- sha1 = "e8a32c30a95d20c2b1bb635cc580981a06389858";
- };
- }
- {
- name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz";
- path = fetchurl {
- name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz";
- url = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz";
- sha1 = "7619c2eb21b25483f6d167548b4cfd5a7488c3d5";
- };
- }
- {
- name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz";
- path = fetchurl {
- name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz";
- sha1 = "5bd262af94e9d25bd1e71b05deed44876a222e8b";
- };
- }
- {
- name = "_nodelib_fs.walk___fs.walk_1.2.8.tgz";
- path = fetchurl {
- name = "_nodelib_fs.walk___fs.walk_1.2.8.tgz";
- url = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz";
- sha1 = "e95737e8bb6746ddedf69c556953494f196fe69a";
- };
- }
- {
- name = "_npmcli_git___git_2.1.0.tgz";
- path = fetchurl {
- name = "_npmcli_git___git_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz";
- sha1 = "2fbd77e147530247d37f325930d457b3ebe894f6";
- };
- }
- {
- name = "_npmcli_installed_package_contents___installed_package_contents_1.0.7.tgz";
- path = fetchurl {
- name = "_npmcli_installed_package_contents___installed_package_contents_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz";
- sha1 = "ab7408c6147911b970a8abe261ce512232a3f4fa";
- };
- }
- {
- name = "_npmcli_move_file___move_file_1.1.2.tgz";
- path = fetchurl {
- name = "_npmcli_move_file___move_file_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz";
- sha1 = "1a82c3e372f7cae9253eb66d72543d6b8685c674";
- };
- }
- {
- name = "_npmcli_node_gyp___node_gyp_1.0.2.tgz";
- path = fetchurl {
- name = "_npmcli_node_gyp___node_gyp_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz";
- sha1 = "3cdc1f30e9736dbc417373ed803b42b1a0a29ede";
- };
- }
- {
- name = "_npmcli_promise_spawn___promise_spawn_1.3.2.tgz";
- path = fetchurl {
- name = "_npmcli_promise_spawn___promise_spawn_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz";
- sha1 = "42d4e56a8e9274fba180dabc0aea6e38f29274f5";
- };
- }
- {
- name = "_npmcli_run_script___run_script_1.8.6.tgz";
- path = fetchurl {
- name = "_npmcli_run_script___run_script_1.8.6.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz";
- sha1 = "18314802a6660b0d4baa4c3afe7f1ad39d8c28b7";
- };
- }
- {
- name = "_octokit_auth_token___auth_token_2.4.5.tgz";
- path = fetchurl {
- name = "_octokit_auth_token___auth_token_2.4.5.tgz";
- url = "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz";
- sha1 = "568ccfb8cb46f36441fac094ce34f7a875b197f3";
- };
- }
- {
- name = "_octokit_core___core_3.5.1.tgz";
- path = fetchurl {
- name = "_octokit_core___core_3.5.1.tgz";
- url = "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz";
- sha1 = "8601ceeb1ec0e1b1b8217b960a413ed8e947809b";
- };
- }
- {
- name = "_octokit_endpoint___endpoint_6.0.12.tgz";
- path = fetchurl {
- name = "_octokit_endpoint___endpoint_6.0.12.tgz";
- url = "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz";
- sha1 = "3b4d47a4b0e79b1027fb8d75d4221928b2d05658";
- };
- }
- {
- name = "_octokit_graphql___graphql_4.6.4.tgz";
- path = fetchurl {
- name = "_octokit_graphql___graphql_4.6.4.tgz";
- url = "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.4.tgz";
- sha1 = "0c3f5bed440822182e972317122acb65d311a5ed";
- };
- }
- {
- name = "_octokit_openapi_types___openapi_types_9.7.0.tgz";
- path = fetchurl {
- name = "_octokit_openapi_types___openapi_types_9.7.0.tgz";
- url = "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.7.0.tgz";
- sha1 = "9897cdefd629cd88af67b8dbe2e5fb19c63426b2";
- };
- }
- {
- name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.15.1.tgz";
- path = fetchurl {
- name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.15.1.tgz";
- url = "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.15.1.tgz";
- sha1 = "264189dd3ce881c6c33758824aac05a4002e056a";
- };
- }
- {
- name = "_octokit_plugin_request_log___plugin_request_log_1.0.4.tgz";
- path = fetchurl {
- name = "_octokit_plugin_request_log___plugin_request_log_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz";
- sha1 = "5e50ed7083a613816b1e4a28aeec5fb7f1462e85";
- };
- }
- {
- name = "_octokit_plugin_rest_endpoint_methods___plugin_rest_endpoint_methods_5.8.0.tgz";
- path = fetchurl {
- name = "_octokit_plugin_rest_endpoint_methods___plugin_rest_endpoint_methods_5.8.0.tgz";
- url = "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.8.0.tgz";
- sha1 = "33b342fe41f2603fdf8b958e6652103bb3ea3f3b";
- };
- }
- {
- name = "_octokit_request_error___request_error_2.1.0.tgz";
- path = fetchurl {
- name = "_octokit_request_error___request_error_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz";
- sha1 = "9e150357831bfc788d13a4fd4b1913d60c74d677";
- };
- }
- {
- name = "_octokit_request___request_5.6.1.tgz";
- path = fetchurl {
- name = "_octokit_request___request_5.6.1.tgz";
- url = "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.1.tgz";
- sha1 = "f97aff075c37ab1d427c49082fefeef0dba2d8ce";
- };
- }
- {
- name = "_octokit_rest___rest_18.9.1.tgz";
- path = fetchurl {
- name = "_octokit_rest___rest_18.9.1.tgz";
- url = "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.9.1.tgz";
- sha1 = "db1d7ac1d7b10e908f7d4b78fe35a392554ccb26";
- };
- }
- {
- name = "_octokit_types___types_6.25.0.tgz";
- path = fetchurl {
- name = "_octokit_types___types_6.25.0.tgz";
- url = "https://registry.yarnpkg.com/@octokit/types/-/types-6.25.0.tgz";
- sha1 = "c8e37e69dbe7ce55ed98ee63f75054e7e808bf1a";
- };
- }
- {
- name = "_sindresorhus_is___is_0.14.0.tgz";
- path = fetchurl {
- name = "_sindresorhus_is___is_0.14.0.tgz";
- url = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz";
- sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea";
- };
- }
- {
- name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
- path = fetchurl {
- name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
- sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
- };
- }
- {
- name = "_tootallnate_once___once_1.1.2.tgz";
- path = fetchurl {
- name = "_tootallnate_once___once_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz";
- sha1 = "ccb91445360179a04e7fe6aff78c00ffc1eeaf82";
- };
- }
- {
- name = "_types_auto_launch___auto_launch_5.0.2.tgz";
- path = fetchurl {
- name = "_types_auto_launch___auto_launch_5.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/auto-launch/-/auto-launch-5.0.2.tgz";
- sha1 = "4970f01e5dd27572489b7fe77590204a19f86bd0";
- };
- }
- {
- name = "_types_counterpart___counterpart_0.18.1.tgz";
- path = fetchurl {
- name = "_types_counterpart___counterpart_0.18.1.tgz";
- url = "https://registry.yarnpkg.com/@types/counterpart/-/counterpart-0.18.1.tgz";
- sha1 = "b1b784d9e54d9879f0a8cb12f2caedab65430fe8";
- };
- }
- {
- name = "_types_debug___debug_4.1.7.tgz";
- path = fetchurl {
- name = "_types_debug___debug_4.1.7.tgz";
- url = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz";
- sha1 = "7cc0ea761509124709b8b2d1090d8f6c17aadb82";
- };
- }
- {
- name = "_types_fs_extra___fs_extra_9.0.12.tgz";
- path = fetchurl {
- name = "_types_fs_extra___fs_extra_9.0.12.tgz";
- url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz";
- sha1 = "9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf";
- };
- }
- {
- name = "_types_glob___glob_7.1.4.tgz";
- path = fetchurl {
- name = "_types_glob___glob_7.1.4.tgz";
- url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz";
- sha1 = "ea59e21d2ee5c517914cb4bc8e4153b99e566672";
- };
- }
- {
- name = "_types_json_schema___json_schema_7.0.9.tgz";
- path = fetchurl {
- name = "_types_json_schema___json_schema_7.0.9.tgz";
- url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz";
- sha1 = "97edc9037ea0c38585320b28964dde3b39e4660d";
- };
- }
- {
- name = "_types_minimatch___minimatch_3.0.5.tgz";
- path = fetchurl {
- name = "_types_minimatch___minimatch_3.0.5.tgz";
- url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz";
- sha1 = "1001cc5e6a3704b83c236027e77f2f58ea010f40";
- };
- }
- {
- name = "_types_minimist___minimist_1.2.2.tgz";
- path = fetchurl {
- name = "_types_minimist___minimist_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz";
- sha1 = "ee771e2ba4b3dc5b372935d549fd9617bf345b8c";
- };
- }
- {
- name = "_types_ms___ms_0.7.31.tgz";
- path = fetchurl {
- name = "_types_ms___ms_0.7.31.tgz";
- url = "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz";
- sha1 = "31b7ca6407128a3d2bbc27fe2d21b345397f6197";
- };
- }
- {
- name = "_types_node___node_16.7.1.tgz";
- path = fetchurl {
- name = "_types_node___node_16.7.1.tgz";
- url = "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz";
- sha1 = "c6b9198178da504dfca1fd0be9b2e1002f1586f0";
- };
- }
- {
- name = "_types_node___node_14.17.11.tgz";
- path = fetchurl {
- name = "_types_node___node_14.17.11.tgz";
- url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.11.tgz";
- sha1 = "82d266d657aec5ff01ca59f2ffaff1bb43f7bf0f";
- };
- }
- {
- name = "_types_plist___plist_3.0.2.tgz";
- path = fetchurl {
- name = "_types_plist___plist_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz";
- sha1 = "61b3727bba0f5c462fe333542534a0c3e19ccb01";
- };
- }
- {
- name = "_types_verror___verror_1.10.5.tgz";
- path = fetchurl {
- name = "_types_verror___verror_1.10.5.tgz";
- url = "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.5.tgz";
- sha1 = "2a1413aded46e67a1fe2386800e291123ed75eb1";
- };
- }
- {
- name = "_types_yargs_parser___yargs_parser_20.2.1.tgz";
- path = fetchurl {
- name = "_types_yargs_parser___yargs_parser_20.2.1.tgz";
- url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz";
- sha1 = "3b9ce2489919d9e4fea439b76916abc34b2df129";
- };
- }
- {
- name = "_types_yargs___yargs_16.0.4.tgz";
- path = fetchurl {
- name = "_types_yargs___yargs_16.0.4.tgz";
- url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz";
- sha1 = "26aad98dd2c2a38e421086ea9ad42b9e51642977";
- };
- }
- {
- name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz";
- sha1 = "95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa";
- };
- }
- {
- name = "_typescript_eslint_experimental_utils___experimental_utils_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_experimental_utils___experimental_utils_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz";
- sha1 = "52e437a689ccdef73e83c5106b34240a706f15e1";
- };
- }
- {
- name = "_typescript_eslint_parser___parser_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_parser___parser_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz";
- sha1 = "2ac25535f34c0e98f50c0e6b28c679c2357d45f2";
- };
- }
- {
- name = "_typescript_eslint_scope_manager___scope_manager_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_scope_manager___scope_manager_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz";
- sha1 = "497dec66f3a22e459f6e306cf14021e40ec86e19";
- };
- }
- {
- name = "_typescript_eslint_types___types_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_types___types_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz";
- sha1 = "d7980c49aef643d0af8954c9f14f656b7fd16017";
- };
- }
- {
- name = "_typescript_eslint_typescript_estree___typescript_estree_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_typescript_estree___typescript_estree_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz";
- sha1 = "1bafad610015c4ded35c85a70b6222faad598b40";
- };
- }
- {
- name = "_typescript_eslint_visitor_keys___visitor_keys_4.29.3.tgz";
- path = fetchurl {
- name = "_typescript_eslint_visitor_keys___visitor_keys_4.29.3.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz";
- sha1 = "c691760a00bd86bf8320d2a90a93d86d322f1abf";
- };
- }
- {
- name = "abbrev___abbrev_1.1.1.tgz";
- path = fetchurl {
- name = "abbrev___abbrev_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
- sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
- };
- }
- {
- name = "acorn_jsx___acorn_jsx_5.3.2.tgz";
- path = fetchurl {
- name = "acorn_jsx___acorn_jsx_5.3.2.tgz";
- url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz";
- sha1 = "7ed5bb55908b3b2f1bc55c6af1653bada7f07937";
- };
- }
- {
- name = "acorn___acorn_7.4.1.tgz";
- path = fetchurl {
- name = "acorn___acorn_7.4.1.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
- sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
- };
- }
- {
- name = "agent_base___agent_base_6.0.2.tgz";
- path = fetchurl {
- name = "agent_base___agent_base_6.0.2.tgz";
- url = "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz";
- sha1 = "49fff58577cfee3f37176feab4c22e00f86d7f77";
- };
- }
- {
- name = "agentkeepalive___agentkeepalive_4.1.4.tgz";
- path = fetchurl {
- name = "agentkeepalive___agentkeepalive_4.1.4.tgz";
- url = "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz";
- sha1 = "d928028a4862cb11718e55227872e842a44c945b";
- };
- }
- {
- name = "aggregate_error___aggregate_error_3.1.0.tgz";
- path = fetchurl {
- name = "aggregate_error___aggregate_error_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz";
- sha1 = "92670ff50f5359bdb7a3e0d40d0ec30c5737687a";
- };
- }
- {
- name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
- path = fetchurl {
- name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
- url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
- sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
- };
- }
- {
- name = "ajv___ajv_6.12.6.tgz";
- path = fetchurl {
- name = "ajv___ajv_6.12.6.tgz";
- url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
- sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
- };
- }
- {
- name = "ajv___ajv_8.6.2.tgz";
- path = fetchurl {
- name = "ajv___ajv_8.6.2.tgz";
- url = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz";
- sha1 = "2fb45e0e5fcbc0813326c1c3da535d1881bb0571";
- };
- }
- {
- name = "allchange___allchange_1.0.2.tgz";
- path = fetchurl {
- name = "allchange___allchange_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/allchange/-/allchange-1.0.2.tgz";
- sha1 = "86b9190e12b7ede4f230ae763cbd504c48fd907b";
- };
- }
- {
- name = "ansi_align___ansi_align_3.0.0.tgz";
- path = fetchurl {
- name = "ansi_align___ansi_align_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
- sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
- };
- }
- {
- name = "ansi_colors___ansi_colors_4.1.1.tgz";
- path = fetchurl {
- name = "ansi_colors___ansi_colors_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
- sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
- };
- }
- {
- name = "ansi_regex___ansi_regex_2.1.1.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
- sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
- };
- }
- {
- name = "ansi_regex___ansi_regex_3.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
- sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
- };
- }
- {
- name = "ansi_regex___ansi_regex_4.1.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
- sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
- };
- }
- {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
- sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
- };
- }
- {
- name = "ansi_styles___ansi_styles_3.2.1.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_3.2.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
- sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
- };
- }
- {
- name = "ansi_styles___ansi_styles_4.3.0.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
- sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
- };
- }
- {
- name = "any_base___any_base_1.1.0.tgz";
- path = fetchurl {
- name = "any_base___any_base_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz";
- sha1 = "ae101a62bc08a597b4c9ab5b7089d456630549fe";
- };
- }
- {
- name = "anymatch___anymatch_3.1.2.tgz";
- path = fetchurl {
- name = "anymatch___anymatch_3.1.2.tgz";
- url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
- sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
- };
- }
- {
- name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
- path = fetchurl {
- name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
- url = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz";
- sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e";
- };
- }
- {
- name = "app_builder_lib___app_builder_lib_22.11.4.tgz";
- path = fetchurl {
- name = "app_builder_lib___app_builder_lib_22.11.4.tgz";
- url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.4.tgz";
- sha1 = "f476e8f1c843d2bcce0348d60e2deae3a71b3474";
- };
- }
- {
- name = "applescript___applescript_1.0.0.tgz";
- path = fetchurl {
- name = "applescript___applescript_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz";
- sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317";
- };
- }
- {
- name = "aproba___aproba_1.2.0.tgz";
- path = fetchurl {
- name = "aproba___aproba_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
- sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
- };
- }
- {
- name = "archiver_utils___archiver_utils_2.1.0.tgz";
- path = fetchurl {
- name = "archiver_utils___archiver_utils_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz";
- sha1 = "e8a460e94b693c3e3da182a098ca6285ba9249e2";
- };
- }
- {
- name = "archiver___archiver_5.3.0.tgz";
- path = fetchurl {
- name = "archiver___archiver_5.3.0.tgz";
- url = "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz";
- sha1 = "dd3e097624481741df626267564f7dd8640a45ba";
- };
- }
- {
- name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
- path = fetchurl {
- name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
- url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
- sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
- };
- }
- {
- name = "argparse___argparse_1.0.10.tgz";
- path = fetchurl {
- name = "argparse___argparse_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
- sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
- };
- }
- {
- name = "argparse___argparse_2.0.1.tgz";
- path = fetchurl {
- name = "argparse___argparse_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
- sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
- };
- }
- {
- name = "array_union___array_union_2.1.0.tgz";
- path = fetchurl {
- name = "array_union___array_union_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
- sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
- };
- }
- {
- name = "asar___asar_2.1.0.tgz";
- path = fetchurl {
- name = "asar___asar_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/asar/-/asar-2.1.0.tgz";
- sha1 = "97c6a570408c4e38a18d4a3fb748a621b5a7844e";
- };
- }
- {
- name = "asar___asar_3.0.3.tgz";
- path = fetchurl {
- name = "asar___asar_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz";
- sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b";
- };
- }
- {
- name = "asn1___asn1_0.2.4.tgz";
- path = fetchurl {
- name = "asn1___asn1_0.2.4.tgz";
- url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
- sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
- };
- }
- {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- path = fetchurl {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
- sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
- };
- }
- {
- name = "astral_regex___astral_regex_2.0.0.tgz";
- path = fetchurl {
- name = "astral_regex___astral_regex_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
- sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
- };
- }
- {
- name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
- path = fetchurl {
- name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz";
- sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3";
- };
- }
- {
- name = "async___async_0.9.2.tgz";
- path = fetchurl {
- name = "async___async_0.9.2.tgz";
- url = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
- sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
- };
- }
- {
- name = "async___async_3.2.1.tgz";
- path = fetchurl {
- name = "async___async_3.2.1.tgz";
- url = "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz";
- sha1 = "d3274ec66d107a47476a4c49136aacdb00665fc8";
- };
- }
- {
- name = "asynckit___asynckit_0.4.0.tgz";
- path = fetchurl {
- name = "asynckit___asynckit_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
- sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
- };
- }
- {
- name = "at_least_node___at_least_node_1.0.0.tgz";
- path = fetchurl {
- name = "at_least_node___at_least_node_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
- sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
- };
- }
- {
- name = "atomically___atomically_1.7.0.tgz";
- path = fetchurl {
- name = "atomically___atomically_1.7.0.tgz";
- url = "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz";
- sha1 = "c07a0458432ea6dbc9a3506fffa424b48bccaafe";
- };
- }
- {
- name = "auto_launch___auto_launch_5.0.5.tgz";
- path = fetchurl {
- name = "auto_launch___auto_launch_5.0.5.tgz";
- url = "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz";
- sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0";
- };
- }
- {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- path = fetchurl {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
- sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
- };
- }
- {
- name = "aws4___aws4_1.11.0.tgz";
- path = fetchurl {
- name = "aws4___aws4_1.11.0.tgz";
- url = "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz";
- sha1 = "d61f46d83b2519250e2784daf5b09479a8b41c59";
- };
- }
- {
- name = "balanced_match___balanced_match_1.0.2.tgz";
- path = fetchurl {
- name = "balanced_match___balanced_match_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
- sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
- };
- }
- {
- name = "base64_js___base64_js_1.5.1.tgz";
- path = fetchurl {
- name = "base64_js___base64_js_1.5.1.tgz";
- url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz";
- sha1 = "1b1b440160a5bf7ad40b650f095963481903930a";
- };
- }
- {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- path = fetchurl {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
- sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
- };
- }
- {
- name = "before_after_hook___before_after_hook_2.2.2.tgz";
- path = fetchurl {
- name = "before_after_hook___before_after_hook_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz";
- sha1 = "a6e8ca41028d90ee2c24222f201c90956091613e";
- };
- }
- {
- name = "binary_extensions___binary_extensions_2.2.0.tgz";
- path = fetchurl {
- name = "binary_extensions___binary_extensions_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
- sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
- };
- }
- {
- name = "bl___bl_4.1.0.tgz";
- path = fetchurl {
- name = "bl___bl_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz";
- sha1 = "451535264182bec2fbbc83a62ab98cf11d9f7b3a";
- };
- }
- {
- name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
- path = fetchurl {
- name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
- url = "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz";
- sha1 = "a64a0e4365658b9ab5fe875eb9dfb694189bb41c";
- };
- }
- {
- name = "bluebird___bluebird_3.7.2.tgz";
- path = fetchurl {
- name = "bluebird___bluebird_3.7.2.tgz";
- url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
- sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
- };
- }
- {
- name = "bmp_js___bmp_js_0.1.0.tgz";
- path = fetchurl {
- name = "bmp_js___bmp_js_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz";
- sha1 = "e05a63f796a6c1ff25f4771ec7adadc148c07233";
- };
- }
- {
- name = "boolean___boolean_3.1.4.tgz";
- path = fetchurl {
- name = "boolean___boolean_3.1.4.tgz";
- url = "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz";
- sha1 = "f51a2fb5838a99e06f9b6ec1edb674de67026435";
- };
- }
- {
- name = "boxen___boxen_5.0.1.tgz";
- path = fetchurl {
- name = "boxen___boxen_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz";
- sha1 = "657528bdd3f59a772b8279b831f27ec2c744664b";
- };
- }
- {
- name = "brace_expansion___brace_expansion_1.1.11.tgz";
- path = fetchurl {
- name = "brace_expansion___brace_expansion_1.1.11.tgz";
- url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
- sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
- };
- }
- {
- name = "braces___braces_3.0.2.tgz";
- path = fetchurl {
- name = "braces___braces_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
- sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
- };
- }
- {
- name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
- path = fetchurl {
- name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
- url = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
- sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
- };
- }
- {
- name = "buffer_equal___buffer_equal_0.0.1.tgz";
- path = fetchurl {
- name = "buffer_equal___buffer_equal_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz";
- sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
- };
- }
- {
- name = "buffer_equal___buffer_equal_1.0.0.tgz";
- path = fetchurl {
- name = "buffer_equal___buffer_equal_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz";
- sha1 = "59616b498304d556abd466966b22eeda3eca5fbe";
- };
- }
- {
- name = "buffer_from___buffer_from_1.1.2.tgz";
- path = fetchurl {
- name = "buffer_from___buffer_from_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz";
- sha1 = "2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5";
- };
- }
- {
- name = "buffer___buffer_5.7.1.tgz";
- path = fetchurl {
- name = "buffer___buffer_5.7.1.tgz";
- url = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz";
- sha1 = "ba62e7c13133053582197160851a8f648e99eed0";
- };
- }
- {
- name = "builder_util_runtime___builder_util_runtime_8.7.5.tgz";
- path = fetchurl {
- name = "builder_util_runtime___builder_util_runtime_8.7.5.tgz";
- url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz";
- sha1 = "fbe59e274818885e0d2e358d5b7017c34ae6b0f5";
- };
- }
- {
- name = "builder_util___builder_util_22.11.4.tgz";
- path = fetchurl {
- name = "builder_util___builder_util_22.11.4.tgz";
- url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.4.tgz";
- sha1 = "5deee8e067d6e3248791977ce2928b98fe514342";
- };
- }
- {
- name = "builtins___builtins_1.0.3.tgz";
- path = fetchurl {
- name = "builtins___builtins_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz";
- sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
- };
- }
- {
- name = "cacache___cacache_15.2.0.tgz";
- path = fetchurl {
- name = "cacache___cacache_15.2.0.tgz";
- url = "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz";
- sha1 = "73af75f77c58e72d8c630a7a2858cb18ef523389";
- };
- }
- {
- name = "cacheable_request___cacheable_request_6.1.0.tgz";
- path = fetchurl {
- name = "cacheable_request___cacheable_request_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz";
- sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912";
- };
- }
- {
- name = "callsites___callsites_3.1.0.tgz";
- path = fetchurl {
- name = "callsites___callsites_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
- sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
- };
- }
- {
- name = "camelcase___camelcase_6.2.0.tgz";
- path = fetchurl {
- name = "camelcase___camelcase_6.2.0.tgz";
- url = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz";
- sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809";
- };
- }
- {
- name = "caseless___caseless_0.12.0.tgz";
- path = fetchurl {
- name = "caseless___caseless_0.12.0.tgz";
- url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
- sha1 = "1b681c21ff84033c826543090689420d187151dc";
- };
- }
- {
- name = "chalk___chalk_2.4.2.tgz";
- path = fetchurl {
- name = "chalk___chalk_2.4.2.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
- sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
- };
- }
- {
- name = "chalk___chalk_4.1.2.tgz";
- path = fetchurl {
- name = "chalk___chalk_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz";
- sha1 = "aac4e2b7734a740867aeb16bf02aad556a1e7a01";
- };
- }
- {
- name = "chokidar___chokidar_3.5.2.tgz";
- path = fetchurl {
- name = "chokidar___chokidar_3.5.2.tgz";
- url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz";
- sha1 = "dba3976fcadb016f66fd365021d91600d01c1e75";
- };
- }
- {
- name = "chownr___chownr_1.1.4.tgz";
- path = fetchurl {
- name = "chownr___chownr_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
- sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
- };
- }
- {
- name = "chownr___chownr_2.0.0.tgz";
- path = fetchurl {
- name = "chownr___chownr_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
- sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece";
- };
- }
- {
- name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
- path = fetchurl {
- name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz";
- sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
- };
- }
- {
- name = "ci_info___ci_info_2.0.0.tgz";
- path = fetchurl {
- name = "ci_info___ci_info_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
- sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
- };
- }
- {
- name = "ci_info___ci_info_3.2.0.tgz";
- path = fetchurl {
- name = "ci_info___ci_info_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz";
- sha1 = "2876cb948a498797b5236f0095bc057d0dca38b6";
- };
- }
- {
- name = "clean_stack___clean_stack_2.2.0.tgz";
- path = fetchurl {
- name = "clean_stack___clean_stack_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz";
- sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b";
- };
- }
- {
- name = "cli_boxes___cli_boxes_2.2.1.tgz";
- path = fetchurl {
- name = "cli_boxes___cli_boxes_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz";
- sha1 = "ddd5035d25094fce220e9cab40a45840a440318f";
- };
- }
- {
- name = "cli_color___cli_color_2.0.0.tgz";
- path = fetchurl {
- name = "cli_color___cli_color_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.0.tgz";
- sha1 = "11ecfb58a79278cf6035a60c54e338f9d837897c";
- };
- }
- {
- name = "cli_truncate___cli_truncate_1.1.0.tgz";
- path = fetchurl {
- name = "cli_truncate___cli_truncate_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz";
- sha1 = "2b2dfd83c53cfd3572b87fc4d430a808afb04086";
- };
- }
- {
- name = "cliui___cliui_7.0.4.tgz";
- path = fetchurl {
- name = "cliui___cliui_7.0.4.tgz";
- url = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz";
- sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f";
- };
- }
- {
- name = "clone_response___clone_response_1.0.2.tgz";
- path = fetchurl {
- name = "clone_response___clone_response_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
- sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
- };
- }
- {
- name = "code_point_at___code_point_at_1.1.0.tgz";
- path = fetchurl {
- name = "code_point_at___code_point_at_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
- sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
- };
- }
- {
- name = "color_convert___color_convert_1.9.3.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_1.9.3.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
- sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
- };
- }
- {
- name = "color_convert___color_convert_2.0.1.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
- sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
- };
- }
- {
- name = "color_name___color_name_1.1.3.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
- sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
- };
- }
- {
- name = "color_name___color_name_1.1.4.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
- sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
- };
- }
- {
- name = "colors___colors_1.0.3.tgz";
- path = fetchurl {
- name = "colors___colors_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz";
- sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
- };
- }
- {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- path = fetchurl {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
- sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
- };
- }
- {
- name = "commander___commander_2.9.0.tgz";
- path = fetchurl {
- name = "commander___commander_2.9.0.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
- sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
- };
- }
- {
- name = "commander___commander_2.20.3.tgz";
- path = fetchurl {
- name = "commander___commander_2.20.3.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
- sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
- };
- }
- {
- name = "commander___commander_5.1.0.tgz";
- path = fetchurl {
- name = "commander___commander_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz";
- sha1 = "46abbd1652f8e059bddaef99bbdcb2ad9cf179ae";
- };
- }
- {
- name = "compress_commons___compress_commons_4.1.1.tgz";
- path = fetchurl {
- name = "compress_commons___compress_commons_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz";
- sha1 = "df2a09a7ed17447642bad10a85cc9a19e5c42a7d";
- };
- }
- {
- name = "concat_map___concat_map_0.0.1.tgz";
- path = fetchurl {
- name = "concat_map___concat_map_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
- sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
- };
- }
- {
- name = "concat_stream___concat_stream_1.6.2.tgz";
- path = fetchurl {
- name = "concat_stream___concat_stream_1.6.2.tgz";
- url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
- sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
- };
- }
- {
- name = "conf___conf_7.1.2.tgz";
- path = fetchurl {
- name = "conf___conf_7.1.2.tgz";
- url = "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz";
- sha1 = "d9678a9d8f04de8bf5cd475105da8fdae49c2ec4";
- };
- }
- {
- name = "config_chain___config_chain_1.1.13.tgz";
- path = fetchurl {
- name = "config_chain___config_chain_1.1.13.tgz";
- url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz";
- sha1 = "fad0795aa6a6cdaff9ed1b68e9dff94372c232f4";
- };
- }
- {
- name = "configstore___configstore_5.0.1.tgz";
- path = fetchurl {
- name = "configstore___configstore_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz";
- sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96";
- };
- }
- {
- name = "console_control_strings___console_control_strings_1.1.0.tgz";
- path = fetchurl {
- name = "console_control_strings___console_control_strings_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
- sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
- };
- }
- {
- name = "core_js___core_js_3.16.3.tgz";
- path = fetchurl {
- name = "core_js___core_js_3.16.3.tgz";
- url = "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz";
- sha1 = "1f2d43c51a9ed014cc6c83440af14697ae4b75f2";
- };
- }
- {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- path = fetchurl {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
- sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
- };
- }
- {
- name = "counterpart___counterpart_0.18.6.tgz";
- path = fetchurl {
- name = "counterpart___counterpart_0.18.6.tgz";
- url = "https://registry.yarnpkg.com/counterpart/-/counterpart-0.18.6.tgz";
- sha1 = "cf6b60d8ef99a4b44b8bf6445fa99b4bd1b2f9dd";
- };
- }
- {
- name = "crc_32___crc_32_1.2.0.tgz";
- path = fetchurl {
- name = "crc_32___crc_32_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz";
- sha1 = "cb2db6e29b88508e32d9dd0ec1693e7b41a18208";
- };
- }
- {
- name = "crc32_stream___crc32_stream_4.0.2.tgz";
- path = fetchurl {
- name = "crc32_stream___crc32_stream_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz";
- sha1 = "c922ad22b38395abe9d3870f02fa8134ed709007";
- };
- }
- {
- name = "crc___crc_3.8.0.tgz";
- path = fetchurl {
- name = "crc___crc_3.8.0.tgz";
- url = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz";
- sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6";
- };
- }
- {
- name = "cross_spawn___cross_spawn_7.0.3.tgz";
- path = fetchurl {
- name = "cross_spawn___cross_spawn_7.0.3.tgz";
- url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
- sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
- };
- }
- {
- name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
- path = fetchurl {
- name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
- sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5";
- };
- }
- {
- name = "cuint___cuint_0.2.2.tgz";
- path = fetchurl {
- name = "cuint___cuint_0.2.2.tgz";
- url = "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz";
- sha1 = "408086d409550c2631155619e9fa7bcadc3b991b";
- };
- }
- {
- name = "d___d_1.0.1.tgz";
- path = fetchurl {
- name = "d___d_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz";
- sha1 = "8698095372d58dbee346ffd0c7093f99f8f9eb5a";
- };
- }
- {
- name = "dashdash___dashdash_1.14.1.tgz";
- path = fetchurl {
- name = "dashdash___dashdash_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
- sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
- };
- }
- {
- name = "date_names___date_names_0.1.13.tgz";
- path = fetchurl {
- name = "date_names___date_names_0.1.13.tgz";
- url = "https://registry.yarnpkg.com/date-names/-/date-names-0.1.13.tgz";
- sha1 = "c4358f6f77c8056e2f5ea68fdbb05f0bf1e53bd0";
- };
- }
- {
- name = "debounce_fn___debounce_fn_4.0.0.tgz";
- path = fetchurl {
- name = "debounce_fn___debounce_fn_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz";
- sha1 = "ed76d206d8a50e60de0dd66d494d82835ffe61c7";
- };
- }
- {
- name = "debug___debug_4.3.2.tgz";
- path = fetchurl {
- name = "debug___debug_4.3.2.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
- sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
- };
- }
- {
- name = "debug___debug_2.6.9.tgz";
- path = fetchurl {
- name = "debug___debug_2.6.9.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
- sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
- };
- }
- {
- name = "debug___debug_3.2.7.tgz";
- path = fetchurl {
- name = "debug___debug_3.2.7.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
- sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
- };
- }
- {
- name = "decompress_response___decompress_response_3.3.0.tgz";
- path = fetchurl {
- name = "decompress_response___decompress_response_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
- sha1 = "80a4dd323748384bfa248083622aedec982adff3";
- };
- }
- {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- path = fetchurl {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
- sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
- };
- }
- {
- name = "deep_is___deep_is_0.1.3.tgz";
- path = fetchurl {
- name = "deep_is___deep_is_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
- sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
- };
- }
- {
- name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
- path = fetchurl {
- name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
- sha1 = "331ae050c08dcf789f8c83a7b81f0ed94f4ac591";
- };
- }
- {
- name = "define_properties___define_properties_1.1.3.tgz";
- path = fetchurl {
- name = "define_properties___define_properties_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
- sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
- };
- }
- {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- path = fetchurl {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
- sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
- };
- }
- {
- name = "delegates___delegates_1.0.0.tgz";
- path = fetchurl {
- name = "delegates___delegates_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
- sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
- };
- }
- {
- name = "depd___depd_1.1.2.tgz";
- path = fetchurl {
- name = "depd___depd_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
- sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
- };
- }
- {
- name = "deprecation___deprecation_2.3.1.tgz";
- path = fetchurl {
- name = "deprecation___deprecation_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz";
- sha1 = "6368cbdb40abf3373b525ac87e4a260c3a700919";
- };
- }
- {
- name = "detect_libc___detect_libc_1.0.3.tgz";
- path = fetchurl {
- name = "detect_libc___detect_libc_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
- sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
- };
- }
- {
- name = "detect_node___detect_node_2.1.0.tgz";
- path = fetchurl {
- name = "detect_node___detect_node_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz";
- sha1 = "c9c70775a49c3d03bc2c06d9a73be550f978f8b1";
- };
- }
- {
- name = "dir_compare___dir_compare_2.4.0.tgz";
- path = fetchurl {
- name = "dir_compare___dir_compare_2.4.0.tgz";
- url = "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz";
- sha1 = "785c41dc5f645b34343a4eafc50b79bac7f11631";
- };
- }
- {
- name = "dir_glob___dir_glob_3.0.1.tgz";
- path = fetchurl {
- name = "dir_glob___dir_glob_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
- sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
- };
- }
- {
- name = "dmg_builder___dmg_builder_22.11.4.tgz";
- path = fetchurl {
- name = "dmg_builder___dmg_builder_22.11.4.tgz";
- url = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.4.tgz";
- sha1 = "8e3a31bd835d51d3b686d1a6be6c0d08d3e7b1f4";
- };
- }
- {
- name = "dmg_license___dmg_license_1.0.9.tgz";
- path = fetchurl {
- name = "dmg_license___dmg_license_1.0.9.tgz";
- url = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz";
- sha1 = "a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f";
- };
- }
- {
- name = "doctrine___doctrine_3.0.0.tgz";
- path = fetchurl {
- name = "doctrine___doctrine_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
- sha1 = "addebead72a6574db783639dc87a121773973961";
- };
- }
- {
- name = "dom_walk___dom_walk_0.1.2.tgz";
- path = fetchurl {
- name = "dom_walk___dom_walk_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz";
- sha1 = "0c548bef048f4d1f2a97249002236060daa3fd84";
- };
- }
- {
- name = "dot_prop___dot_prop_5.3.0.tgz";
- path = fetchurl {
- name = "dot_prop___dot_prop_5.3.0.tgz";
- url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz";
- sha1 = "90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88";
- };
- }
- {
- name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
- path = fetchurl {
- name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz";
- sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0";
- };
- }
- {
- name = "dotenv___dotenv_9.0.2.tgz";
- path = fetchurl {
- name = "dotenv___dotenv_9.0.2.tgz";
- url = "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz";
- sha1 = "dacc20160935a37dea6364aa1bef819fb9b6ab05";
- };
- }
- {
- name = "duplexer3___duplexer3_0.1.4.tgz";
- path = fetchurl {
- name = "duplexer3___duplexer3_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
- sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
- };
- }
- {
- name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
- path = fetchurl {
- name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
- sha1 = "3a83a904e54353287874c564b7549386849a98c9";
- };
- }
- {
- name = "ejs___ejs_3.1.6.tgz";
- path = fetchurl {
- name = "ejs___ejs_3.1.6.tgz";
- url = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz";
- sha1 = "5bfd0a0689743bb5268b3550cceeebbc1702822a";
- };
- }
- {
- name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.11.4.tgz";
- path = fetchurl {
- name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.11.4.tgz";
- url = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.11.4.tgz";
- sha1 = "6dc50a26396d813f58a4d8e5b90ee3cedb56f4d8";
- };
- }
- {
- name = "electron_builder___electron_builder_22.11.4.tgz";
- path = fetchurl {
- name = "electron_builder___electron_builder_22.11.4.tgz";
- url = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.4.tgz";
- sha1 = "aadb57a4fc90863e82ebdbc66131400fc3bb4c82";
- };
- }
- {
- name = "electron_devtools_installer___electron_devtools_installer_3.2.0.tgz";
- path = fetchurl {
- name = "electron_devtools_installer___electron_devtools_installer_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz";
- sha1 = "acc48d24eb7033fe5af284a19667e73b78d406d0";
- };
- }
- {
- name = "electron_notarize___electron_notarize_1.1.0.tgz";
- path = fetchurl {
- name = "electron_notarize___electron_notarize_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.1.0.tgz";
- sha1 = "00ed0182366b97f5593cb5ccdcf1120f1de37179";
- };
- }
- {
- name = "electron_publish___electron_publish_22.11.4.tgz";
- path = fetchurl {
- name = "electron_publish___electron_publish_22.11.4.tgz";
- url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.4.tgz";
- sha1 = "0f526edb7e0c3f0155103ff3b8a2e363a3a392f1";
- };
- }
- {
- name = "electron_store___electron_store_6.0.1.tgz";
- path = fetchurl {
- name = "electron_store___electron_store_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz";
- sha1 = "2178b9dc37aeb749d99cf9d1d1bc090890b922dc";
- };
- }
- {
- name = "electron_window_state___electron_window_state_5.0.3.tgz";
- path = fetchurl {
- name = "electron_window_state___electron_window_state_5.0.3.tgz";
- url = "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-5.0.3.tgz";
- sha1 = "4f36d09e3f953d87aff103bf010f460056050aa8";
- };
- }
- {
- name = "electron___electron_13.2.2.tgz";
- path = fetchurl {
- name = "electron___electron_13.2.2.tgz";
- url = "https://registry.yarnpkg.com/electron/-/electron-13.2.2.tgz";
- sha1 = "332d91891d0db4f9a1d22d4d0bc3b500e59dc051";
- };
- }
- {
- name = "emoji_regex___emoji_regex_7.0.3.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_7.0.3.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
- sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
- };
- }
- {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
- sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
- };
- }
- {
- name = "encodeurl___encodeurl_1.0.2.tgz";
- path = fetchurl {
- name = "encodeurl___encodeurl_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
- sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
- };
- }
- {
- name = "encoding___encoding_0.1.13.tgz";
- path = fetchurl {
- name = "encoding___encoding_0.1.13.tgz";
- url = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz";
- sha1 = "56574afdd791f54a8e9b2785c0582a2d26210fa9";
- };
- }
- {
- name = "end_of_stream___end_of_stream_1.4.4.tgz";
- path = fetchurl {
- name = "end_of_stream___end_of_stream_1.4.4.tgz";
- url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
- sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
- };
- }
- {
- name = "enquirer___enquirer_2.3.6.tgz";
- path = fetchurl {
- name = "enquirer___enquirer_2.3.6.tgz";
- url = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
- sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
- };
- }
- {
- name = "env_paths___env_paths_2.2.1.tgz";
- path = fetchurl {
- name = "env_paths___env_paths_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz";
- sha1 = "420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2";
- };
- }
- {
- name = "err_code___err_code_2.0.3.tgz";
- path = fetchurl {
- name = "err_code___err_code_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz";
- sha1 = "23c2f3b756ffdfc608d30e27c9a941024807e7f9";
- };
- }
- {
- name = "es5_ext___es5_ext_0.10.53.tgz";
- path = fetchurl {
- name = "es5_ext___es5_ext_0.10.53.tgz";
- url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz";
- sha1 = "93c5a3acfdbef275220ad72644ad02ee18368de1";
- };
- }
- {
- name = "es6_error___es6_error_4.1.1.tgz";
- path = fetchurl {
- name = "es6_error___es6_error_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz";
- sha1 = "9e3af407459deed47e9a91f9b885a84eb05c561d";
- };
- }
- {
- name = "es6_iterator___es6_iterator_2.0.3.tgz";
- path = fetchurl {
- name = "es6_iterator___es6_iterator_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
- sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
- };
- }
- {
- name = "es6_symbol___es6_symbol_3.1.3.tgz";
- path = fetchurl {
- name = "es6_symbol___es6_symbol_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz";
- sha1 = "bad5d3c1bcdac28269f4cb331e431c78ac705d18";
- };
- }
- {
- name = "es6_weak_map___es6_weak_map_2.0.3.tgz";
- path = fetchurl {
- name = "es6_weak_map___es6_weak_map_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz";
- sha1 = "b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53";
- };
- }
- {
- name = "escalade___escalade_3.1.1.tgz";
- path = fetchurl {
- name = "escalade___escalade_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
- sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
- };
- }
- {
- name = "escape_goat___escape_goat_2.1.1.tgz";
- path = fetchurl {
- name = "escape_goat___escape_goat_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz";
- sha1 = "1b2dc77003676c457ec760b2dc68edb648188675";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
- sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
- sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
- };
- }
- {
- name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
- path = fetchurl {
- name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
- sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a";
- };
- }
- {
- name = "2306b3d4da4eba908b256014b979f1d3d43d2945";
- path = fetchurl {
- name = "2306b3d4da4eba908b256014b979f1d3d43d2945";
- url = "https://codeload.github.com/matrix-org/eslint-plugin-matrix-org/tar.gz/2306b3d4da4eba908b256014b979f1d3d43d2945";
- sha1 = "e82e07e6163d15ee5243d8df073947540bf0efc9";
- };
- }
- {
- name = "eslint_scope___eslint_scope_5.1.1.tgz";
- path = fetchurl {
- name = "eslint_scope___eslint_scope_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
- sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
- };
- }
- {
- name = "eslint_utils___eslint_utils_2.1.0.tgz";
- path = fetchurl {
- name = "eslint_utils___eslint_utils_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
- sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
- };
- }
- {
- name = "eslint_utils___eslint_utils_3.0.0.tgz";
- path = fetchurl {
- name = "eslint_utils___eslint_utils_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz";
- sha1 = "8aebaface7345bb33559db0a1f13a1d2d48c3672";
- };
- }
- {
- name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
- path = fetchurl {
- name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
- sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
- };
- }
- {
- name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
- path = fetchurl {
- name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
- sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
- };
- }
- {
- name = "eslint___eslint_7.18.0.tgz";
- path = fetchurl {
- name = "eslint___eslint_7.18.0.tgz";
- url = "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz";
- sha1 = "7fdcd2f3715a41fe6295a16234bd69aed2c75e67";
- };
- }
- {
- name = "espree___espree_7.3.1.tgz";
- path = fetchurl {
- name = "espree___espree_7.3.1.tgz";
- url = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
- sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
- };
- }
- {
- name = "esprima___esprima_4.0.1.tgz";
- path = fetchurl {
- name = "esprima___esprima_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
- sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
- };
- }
- {
- name = "esquery___esquery_1.4.0.tgz";
- path = fetchurl {
- name = "esquery___esquery_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
- sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
- };
- }
- {
- name = "esrecurse___esrecurse_4.3.0.tgz";
- path = fetchurl {
- name = "esrecurse___esrecurse_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
- sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
- };
- }
- {
- name = "estraverse___estraverse_4.3.0.tgz";
- path = fetchurl {
- name = "estraverse___estraverse_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
- sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
- };
- }
- {
- name = "estraverse___estraverse_5.2.0.tgz";
- path = fetchurl {
- name = "estraverse___estraverse_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
- sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
- };
- }
- {
- name = "esutils___esutils_2.0.3.tgz";
- path = fetchurl {
- name = "esutils___esutils_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
- sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
- };
- }
- {
- name = "event_emitter___event_emitter_0.3.5.tgz";
- path = fetchurl {
- name = "event_emitter___event_emitter_0.3.5.tgz";
- url = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz";
- sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
- };
- }
- {
- name = "except___except_0.1.3.tgz";
- path = fetchurl {
- name = "except___except_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/except/-/except-0.1.3.tgz";
- sha1 = "98261c91958551536b44482238e9783fb73d292a";
- };
- }
- {
- name = "exif_parser___exif_parser_0.1.12.tgz";
- path = fetchurl {
- name = "exif_parser___exif_parser_0.1.12.tgz";
- url = "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz";
- sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922";
- };
- }
- {
- name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz";
- path = fetchurl {
- name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz";
- sha1 = "0bdd92e87d5285d267daa8171d0eb06159689692";
- };
- }
- {
- name = "ext___ext_1.5.0.tgz";
- path = fetchurl {
- name = "ext___ext_1.5.0.tgz";
- url = "https://registry.yarnpkg.com/ext/-/ext-1.5.0.tgz";
- sha1 = "e93b97ae0cb23f8370380f6107d2d2b7887687ad";
- };
- }
- {
- name = "extend___extend_3.0.2.tgz";
- path = fetchurl {
- name = "extend___extend_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
- sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
- };
- }
- {
- name = "extract_zip___extract_zip_1.7.0.tgz";
- path = fetchurl {
- name = "extract_zip___extract_zip_1.7.0.tgz";
- url = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz";
- sha1 = "556cc3ae9df7f452c493a0cfb51cc30277940927";
- };
- }
- {
- name = "extsprintf___extsprintf_1.3.0.tgz";
- path = fetchurl {
- name = "extsprintf___extsprintf_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
- sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
- };
- }
- {
- name = "extsprintf___extsprintf_1.4.0.tgz";
- path = fetchurl {
- name = "extsprintf___extsprintf_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
- sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
- };
- }
- {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- path = fetchurl {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
- sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
- };
- }
- {
- name = "fast_glob___fast_glob_3.2.7.tgz";
- path = fetchurl {
- name = "fast_glob___fast_glob_3.2.7.tgz";
- url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz";
- sha1 = "fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1";
- };
- }
- {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
- path = fetchurl {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
- sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
- };
- }
- {
- name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
- path = fetchurl {
- name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
- sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
- };
- }
- {
- name = "fastq___fastq_1.12.0.tgz";
- path = fetchurl {
- name = "fastq___fastq_1.12.0.tgz";
- url = "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz";
- sha1 = "ed7b6ab5d62393fb2cc591c853652a5c318bf794";
- };
- }
- {
- name = "fd_slicer___fd_slicer_1.1.0.tgz";
- path = fetchurl {
- name = "fd_slicer___fd_slicer_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
- sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
- };
- }
- {
- name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
- path = fetchurl {
- name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
- sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
- };
- }
- {
- name = "file_type___file_type_9.0.0.tgz";
- path = fetchurl {
- name = "file_type___file_type_9.0.0.tgz";
- url = "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz";
- sha1 = "a68d5ad07f486414dfb2c8866f73161946714a18";
- };
- }
- {
- name = "filelist___filelist_1.0.2.tgz";
- path = fetchurl {
- name = "filelist___filelist_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz";
- sha1 = "80202f21462d4d1c2e214119b1807c1bc0380e5b";
- };
- }
- {
- name = "fill_range___fill_range_7.0.1.tgz";
- path = fetchurl {
- name = "fill_range___fill_range_7.0.1.tgz";
- url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
- sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
- };
- }
- {
- name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
- path = fetchurl {
- name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz";
- sha1 = "8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf";
- };
- }
- {
- name = "find_up___find_up_3.0.0.tgz";
- path = fetchurl {
- name = "find_up___find_up_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
- sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
- };
- }
- {
- name = "flat_cache___flat_cache_3.0.4.tgz";
- path = fetchurl {
- name = "flat_cache___flat_cache_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
- sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
- };
- }
- {
- name = "flatted___flatted_3.2.2.tgz";
- path = fetchurl {
- name = "flatted___flatted_3.2.2.tgz";
- url = "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz";
- sha1 = "64bfed5cb68fe3ca78b3eb214ad97b63bedce561";
- };
- }
- {
- name = "foreachasync___foreachasync_3.0.0.tgz";
- path = fetchurl {
- name = "foreachasync___foreachasync_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz";
- sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
- };
- }
- {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- path = fetchurl {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
- sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
- };
- }
- {
- name = "form_data___form_data_2.3.3.tgz";
- path = fetchurl {
- name = "form_data___form_data_2.3.3.tgz";
- url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
- sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
- };
- }
- {
- name = "fs_constants___fs_constants_1.0.0.tgz";
- path = fetchurl {
- name = "fs_constants___fs_constants_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
- sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
- };
- }
- {
- name = "fs_extra___fs_extra_10.0.0.tgz";
- path = fetchurl {
- name = "fs_extra___fs_extra_10.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz";
- sha1 = "9ff61b655dde53fb34a82df84bb214ce802e17c1";
- };
- }
- {
- name = "fs_extra___fs_extra_8.1.0.tgz";
- path = fetchurl {
- name = "fs_extra___fs_extra_8.1.0.tgz";
- url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
- sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
- };
- }
- {
- name = "fs_extra___fs_extra_9.1.0.tgz";
- path = fetchurl {
- name = "fs_extra___fs_extra_9.1.0.tgz";
- url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz";
- sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d";
- };
- }
- {
- name = "fs_minipass___fs_minipass_1.2.7.tgz";
- path = fetchurl {
- name = "fs_minipass___fs_minipass_1.2.7.tgz";
- url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz";
- sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7";
- };
- }
- {
- name = "fs_minipass___fs_minipass_2.1.0.tgz";
- path = fetchurl {
- name = "fs_minipass___fs_minipass_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz";
- sha1 = "7f5036fdbf12c63c169190cbe4199c852271f9fb";
- };
- }
- {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- path = fetchurl {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
- sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
- };
- }
- {
- name = "fsevents___fsevents_2.3.2.tgz";
- path = fetchurl {
- name = "fsevents___fsevents_2.3.2.tgz";
- url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
- sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
- };
- }
- {
- name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
- path = fetchurl {
- name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
- sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
- };
- }
- {
- name = "gauge___gauge_2.7.4.tgz";
- path = fetchurl {
- name = "gauge___gauge_2.7.4.tgz";
- url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
- sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
- };
- }
- {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- path = fetchurl {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
- sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
- };
- }
- {
- name = "get_stream___get_stream_4.1.0.tgz";
- path = fetchurl {
- name = "get_stream___get_stream_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
- sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
- };
- }
- {
- name = "get_stream___get_stream_5.2.0.tgz";
- path = fetchurl {
- name = "get_stream___get_stream_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
- sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
- };
- }
- {
- name = "getpass___getpass_0.1.7.tgz";
- path = fetchurl {
- name = "getpass___getpass_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
- sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
- };
- }
- {
- name = "gifwrap___gifwrap_0.9.2.tgz";
- path = fetchurl {
- name = "gifwrap___gifwrap_0.9.2.tgz";
- url = "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz";
- sha1 = "348e286e67d7cf57942172e1e6f05a71cee78489";
- };
- }
- {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- path = fetchurl {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
- sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
- };
- }
- {
- name = "glob___glob_7.1.7.tgz";
- path = fetchurl {
- name = "glob___glob_7.1.7.tgz";
- url = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
- sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
- };
- }
- {
- name = "global_agent___global_agent_2.2.0.tgz";
- path = fetchurl {
- name = "global_agent___global_agent_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz";
- sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc";
- };
- }
- {
- name = "global_dirs___global_dirs_3.0.0.tgz";
- path = fetchurl {
- name = "global_dirs___global_dirs_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz";
- sha1 = "70a76fe84ea315ab37b1f5576cbde7d48ef72686";
- };
- }
- {
- name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz";
- path = fetchurl {
- name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz";
- url = "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz";
- sha1 = "d03b5102dfde3a69914f5ee7d86761ca35d57d8f";
- };
- }
- {
- name = "global___global_4.4.0.tgz";
- path = fetchurl {
- name = "global___global_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz";
- sha1 = "3e7b105179006a323ed71aafca3e9c57a5cc6406";
- };
- }
- {
- name = "globals___globals_11.12.0.tgz";
- path = fetchurl {
- name = "globals___globals_11.12.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
- sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
- };
- }
- {
- name = "globals___globals_12.4.0.tgz";
- path = fetchurl {
- name = "globals___globals_12.4.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
- sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
- };
- }
- {
- name = "globalthis___globalthis_1.0.2.tgz";
- path = fetchurl {
- name = "globalthis___globalthis_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz";
- sha1 = "2a235d34f4d8036219f7e34929b5de9e18166b8b";
- };
- }
- {
- name = "globby___globby_11.0.4.tgz";
- path = fetchurl {
- name = "globby___globby_11.0.4.tgz";
- url = "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz";
- sha1 = "2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5";
- };
- }
- {
- name = "got___got_9.6.0.tgz";
- path = fetchurl {
- name = "got___got_9.6.0.tgz";
- url = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz";
- sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85";
- };
- }
- {
- name = "graceful_fs___graceful_fs_4.2.8.tgz";
- path = fetchurl {
- name = "graceful_fs___graceful_fs_4.2.8.tgz";
- url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz";
- sha1 = "e412b8d33f5e006593cbd3cee6df9f2cebbe802a";
- };
- }
- {
- name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
- path = fetchurl {
- name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
- sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
- };
- }
- {
- name = "har_schema___har_schema_2.0.0.tgz";
- path = fetchurl {
- name = "har_schema___har_schema_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
- sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
- };
- }
- {
- name = "har_validator___har_validator_5.1.5.tgz";
- path = fetchurl {
- name = "har_validator___har_validator_5.1.5.tgz";
- url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
- sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
- };
- }
- {
- name = "has_flag___has_flag_3.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
- sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
- };
- }
- {
- name = "has_flag___has_flag_4.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
- sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
- };
- }
- {
- name = "has_unicode___has_unicode_2.0.1.tgz";
- path = fetchurl {
- name = "has_unicode___has_unicode_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
- sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
- };
- }
- {
- name = "has_yarn___has_yarn_2.1.0.tgz";
- path = fetchurl {
- name = "has_yarn___has_yarn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz";
- sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77";
- };
- }
- {
- name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
- path = fetchurl {
- name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
- sha1 = "5e425507eede4fea846b7262f0838456c4209961";
- };
- }
- {
- name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
- path = fetchurl {
- name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
- sha1 = "49e91c5cbf36c9b94bcfcd71c23d5249ec74e390";
- };
- }
- {
- name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
- path = fetchurl {
- name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz";
- sha1 = "8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a";
- };
- }
- {
- name = "http_signature___http_signature_1.2.0.tgz";
- path = fetchurl {
- name = "http_signature___http_signature_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
- sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
- };
- }
- {
- name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
- path = fetchurl {
- name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
- sha1 = "e2a90542abb68a762e0a0850f6c9edadfd8506b2";
- };
- }
- {
- name = "humanize_ms___humanize_ms_1.2.1.tgz";
- path = fetchurl {
- name = "humanize_ms___humanize_ms_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz";
- sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
- };
- }
- {
- name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz";
- path = fetchurl {
- name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz";
- url = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz";
- sha1 = "27c135470237f6f8d13462fa1f5eaf250523c29a";
- };
- }
- {
- name = "iconv_lite___iconv_lite_0.4.24.tgz";
- path = fetchurl {
- name = "iconv_lite___iconv_lite_0.4.24.tgz";
- url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
- sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
- };
- }
- {
- name = "iconv_lite___iconv_lite_0.6.3.tgz";
- path = fetchurl {
- name = "iconv_lite___iconv_lite_0.6.3.tgz";
- url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz";
- sha1 = "a52f80bf38da1952eb5c681790719871a1a72501";
- };
- }
- {
- name = "ieee754___ieee754_1.2.1.tgz";
- path = fetchurl {
- name = "ieee754___ieee754_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
- sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
- };
- }
- {
- name = "ignore_walk___ignore_walk_3.0.4.tgz";
- path = fetchurl {
- name = "ignore_walk___ignore_walk_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz";
- sha1 = "c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335";
- };
- }
- {
- name = "ignore___ignore_4.0.6.tgz";
- path = fetchurl {
- name = "ignore___ignore_4.0.6.tgz";
- url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
- sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
- };
- }
- {
- name = "ignore___ignore_5.1.8.tgz";
- path = fetchurl {
- name = "ignore___ignore_5.1.8.tgz";
- url = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
- sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
- };
- }
- {
- name = "image_q___image_q_1.1.1.tgz";
- path = fetchurl {
- name = "image_q___image_q_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz";
- sha1 = "fc84099664460b90ca862d9300b6bfbbbfbf8056";
- };
- }
- {
- name = "immediate___immediate_3.0.6.tgz";
- path = fetchurl {
- name = "immediate___immediate_3.0.6.tgz";
- url = "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz";
- sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
- };
- }
- {
- name = "import_fresh___import_fresh_3.3.0.tgz";
- path = fetchurl {
- name = "import_fresh___import_fresh_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
- sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
- };
- }
- {
- name = "import_lazy___import_lazy_2.1.0.tgz";
- path = fetchurl {
- name = "import_lazy___import_lazy_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
- sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
- };
- }
- {
- name = "imurmurhash___imurmurhash_0.1.4.tgz";
- path = fetchurl {
- name = "imurmurhash___imurmurhash_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
- sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
- };
- }
- {
- name = "indent_string___indent_string_4.0.0.tgz";
- path = fetchurl {
- name = "indent_string___indent_string_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz";
- sha1 = "624f8f4497d619b2d9768531d58f4122854d7251";
- };
- }
- {
- name = "indexof___indexof_0.0.1.tgz";
- path = fetchurl {
- name = "indexof___indexof_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
- sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
- };
- }
- {
- name = "infer_owner___infer_owner_1.0.4.tgz";
- path = fetchurl {
- name = "infer_owner___infer_owner_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
- sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
- };
- }
- {
- name = "inflight___inflight_1.0.6.tgz";
- path = fetchurl {
- name = "inflight___inflight_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
- sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
- };
- }
- {
- name = "inherits___inherits_2.0.4.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
- sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
- };
- }
- {
- name = "ini___ini_2.0.0.tgz";
- path = fetchurl {
- name = "ini___ini_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz";
- sha1 = "e5fd556ecdd5726be978fa1001862eacb0a94bc5";
- };
- }
- {
- name = "ini___ini_1.3.8.tgz";
- path = fetchurl {
- name = "ini___ini_1.3.8.tgz";
- url = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
- sha1 = "a29da425b48806f34767a4efce397269af28432c";
- };
- }
- {
- name = "ip___ip_1.1.5.tgz";
- path = fetchurl {
- name = "ip___ip_1.1.5.tgz";
- url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
- sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
- };
- }
- {
- name = "is_binary_path___is_binary_path_2.1.0.tgz";
- path = fetchurl {
- name = "is_binary_path___is_binary_path_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
- sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
- };
- }
- {
- name = "is_ci___is_ci_2.0.0.tgz";
- path = fetchurl {
- name = "is_ci___is_ci_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
- sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
- };
- }
- {
- name = "is_ci___is_ci_3.0.0.tgz";
- path = fetchurl {
- name = "is_ci___is_ci_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz";
- sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994";
- };
- }
- {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- path = fetchurl {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
- sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
- sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
- sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
- sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
- };
- }
- {
- name = "is_function___is_function_1.0.2.tgz";
- path = fetchurl {
- name = "is_function___is_function_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz";
- sha1 = "4f097f30abf6efadac9833b17ca5dc03f8144e08";
- };
- }
- {
- name = "is_glob___is_glob_4.0.1.tgz";
- path = fetchurl {
- name = "is_glob___is_glob_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
- sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
- };
- }
- {
- name = "is_installed_globally___is_installed_globally_0.4.0.tgz";
- path = fetchurl {
- name = "is_installed_globally___is_installed_globally_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz";
- sha1 = "9a0fd407949c30f86eb6959ef1b7994ed0b7b520";
- };
- }
- {
- name = "is_lambda___is_lambda_1.0.1.tgz";
- path = fetchurl {
- name = "is_lambda___is_lambda_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz";
- sha1 = "3d9877899e6a53efc0160504cde15f82e6f061d5";
- };
- }
- {
- name = "is_npm___is_npm_5.0.0.tgz";
- path = fetchurl {
- name = "is_npm___is_npm_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz";
- sha1 = "43e8d65cc56e1b67f8d47262cf667099193f45a8";
- };
- }
- {
- name = "is_number___is_number_7.0.0.tgz";
- path = fetchurl {
- name = "is_number___is_number_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
- sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
- };
- }
- {
- name = "is_obj___is_obj_2.0.0.tgz";
- path = fetchurl {
- name = "is_obj___is_obj_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
- sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
- };
- }
- {
- name = "is_path_inside___is_path_inside_3.0.3.tgz";
- path = fetchurl {
- name = "is_path_inside___is_path_inside_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz";
- sha1 = "d231362e53a07ff2b0e0ea7fed049161ffd16283";
- };
- }
- {
- name = "is_plain_object___is_plain_object_5.0.0.tgz";
- path = fetchurl {
- name = "is_plain_object___is_plain_object_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz";
- sha1 = "4427f50ab3429e9025ea7d52e9043a9ef4159344";
- };
- }
- {
- name = "is_promise___is_promise_2.2.2.tgz";
- path = fetchurl {
- name = "is_promise___is_promise_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz";
- sha1 = "39ab959ccbf9a774cf079f7b40c7a26f763135f1";
- };
- }
- {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- path = fetchurl {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
- sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
- };
- }
- {
- name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
- path = fetchurl {
- name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
- sha1 = "d502d3382590ea3004893746754c89139973e232";
- };
- }
- {
- name = "isarray___isarray_1.0.0.tgz";
- path = fetchurl {
- name = "isarray___isarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
- sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
- };
- }
- {
- name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
- path = fetchurl {
- name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
- url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz";
- sha1 = "5d34b94865bd4946633ecc78a026fc76c5b11fcf";
- };
- }
- {
- name = "isexe___isexe_2.0.0.tgz";
- path = fetchurl {
- name = "isexe___isexe_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
- sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
- };
- }
- {
- name = "isstream___isstream_0.1.2.tgz";
- path = fetchurl {
- name = "isstream___isstream_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
- sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
- };
- }
- {
- name = "jake___jake_10.8.2.tgz";
- path = fetchurl {
- name = "jake___jake_10.8.2.tgz";
- url = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
- sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
- };
- }
- {
- name = "jimp___jimp_0.16.1.tgz";
- path = fetchurl {
- name = "jimp___jimp_0.16.1.tgz";
- url = "https://registry.yarnpkg.com/jimp/-/jimp-0.16.1.tgz";
- sha1 = "192f851a30e5ca11112a3d0aa53137659a78ca7a";
- };
- }
- {
- name = "jpeg_js___jpeg_js_0.4.2.tgz";
- path = fetchurl {
- name = "jpeg_js___jpeg_js_0.4.2.tgz";
- url = "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz";
- sha1 = "8b345b1ae4abde64c2da2fe67ea216a114ac279d";
- };
- }
- {
- name = "js_tokens___js_tokens_4.0.0.tgz";
- path = fetchurl {
- name = "js_tokens___js_tokens_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
- sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
- };
- }
- {
- name = "js_yaml___js_yaml_3.14.1.tgz";
- path = fetchurl {
- name = "js_yaml___js_yaml_3.14.1.tgz";
- url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
- sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
- };
- }
- {
- name = "js_yaml___js_yaml_4.1.0.tgz";
- path = fetchurl {
- name = "js_yaml___js_yaml_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
- sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602";
- };
- }
- {
- name = "jsbn___jsbn_0.1.1.tgz";
- path = fetchurl {
- name = "jsbn___jsbn_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
- sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
- };
- }
- {
- name = "jsesc___jsesc_2.5.2.tgz";
- path = fetchurl {
- name = "jsesc___jsesc_2.5.2.tgz";
- url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
- sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
- };
- }
- {
- name = "json_buffer___json_buffer_3.0.0.tgz";
- path = fetchurl {
- name = "json_buffer___json_buffer_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz";
- sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
- };
- }
- {
- name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
- path = fetchurl {
- name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
- sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
- };
- }
- {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- path = fetchurl {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
- sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
- };
- }
- {
- name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
- path = fetchurl {
- name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
- sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
- };
- }
- {
- name = "json_schema_typed___json_schema_typed_7.0.3.tgz";
- path = fetchurl {
- name = "json_schema_typed___json_schema_typed_7.0.3.tgz";
- url = "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz";
- sha1 = "23ff481b8b4eebcd2ca123b4fa0409e66469a2d9";
- };
- }
- {
- name = "json_schema___json_schema_0.2.3.tgz";
- path = fetchurl {
- name = "json_schema___json_schema_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
- sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
- };
- }
- {
- name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
- path = fetchurl {
- name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
- sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
- };
- }
- {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- path = fetchurl {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
- sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
- };
- }
- {
- name = "json5___json5_2.2.0.tgz";
- path = fetchurl {
- name = "json5___json5_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
- sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
- };
- }
- {
- name = "jsonfile___jsonfile_4.0.0.tgz";
- path = fetchurl {
- name = "jsonfile___jsonfile_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
- sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
- };
- }
- {
- name = "jsonfile___jsonfile_6.1.0.tgz";
- path = fetchurl {
- name = "jsonfile___jsonfile_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz";
- sha1 = "bc55b2634793c679ec6403094eb13698a6ec0aae";
- };
- }
- {
- name = "jsonparse___jsonparse_1.3.1.tgz";
- path = fetchurl {
- name = "jsonparse___jsonparse_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
- sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
- };
- }
- {
- name = "jsprim___jsprim_1.4.1.tgz";
- path = fetchurl {
- name = "jsprim___jsprim_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
- sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
- };
- }
- {
- name = "jszip___jszip_3.7.1.tgz";
- path = fetchurl {
- name = "jszip___jszip_3.7.1.tgz";
- url = "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz";
- sha1 = "bd63401221c15625a1228c556ca8a68da6fda3d9";
- };
- }
- {
- name = "keyv___keyv_3.1.0.tgz";
- path = fetchurl {
- name = "keyv___keyv_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz";
- sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9";
- };
- }
- {
- name = "latest_version___latest_version_5.1.0.tgz";
- path = fetchurl {
- name = "latest_version___latest_version_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz";
- sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face";
- };
- }
- {
- name = "lazy_val___lazy_val_1.0.5.tgz";
- path = fetchurl {
- name = "lazy_val___lazy_val_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz";
- sha1 = "6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d";
- };
- }
- {
- name = "lazystream___lazystream_1.0.0.tgz";
- path = fetchurl {
- name = "lazystream___lazystream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz";
- sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
- };
- }
- {
- name = "levn___levn_0.4.1.tgz";
- path = fetchurl {
- name = "levn___levn_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
- sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
- };
- }
- {
- name = "lie___lie_3.3.0.tgz";
- path = fetchurl {
- name = "lie___lie_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz";
- sha1 = "dcf82dee545f46074daf200c7c1c5a08e0f40f6a";
- };
- }
- {
- name = "load_bmfont___load_bmfont_1.4.1.tgz";
- path = fetchurl {
- name = "load_bmfont___load_bmfont_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz";
- sha1 = "c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9";
- };
- }
- {
- name = "locate_path___locate_path_3.0.0.tgz";
- path = fetchurl {
- name = "locate_path___locate_path_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
- sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
- };
- }
- {
- name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
- sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
- };
- }
- {
- name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
- path = fetchurl {
- name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
- sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
- };
- }
- {
- name = "lodash.difference___lodash.difference_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.difference___lodash.difference_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
- sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
- };
- }
- {
- name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
- path = fetchurl {
- name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
- sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
- };
- }
- {
- name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
- path = fetchurl {
- name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
- url = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
- sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
- };
- }
- {
- name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
- path = fetchurl {
- name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
- url = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
- sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
- };
- }
- {
- name = "lodash.union___lodash.union_4.6.0.tgz";
- path = fetchurl {
- name = "lodash.union___lodash.union_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz";
- sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
- };
- }
- {
- name = "lodash___lodash_4.17.21.tgz";
- path = fetchurl {
- name = "lodash___lodash_4.17.21.tgz";
- url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
- sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
- };
- }
- {
- name = "loglevel___loglevel_1.7.1.tgz";
- path = fetchurl {
- name = "loglevel___loglevel_1.7.1.tgz";
- url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz";
- sha1 = "005fde2f5e6e47068f935ff28573e125ef72f197";
- };
- }
- {
- name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
- path = fetchurl {
- name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
- sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
- };
- }
- {
- name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
- path = fetchurl {
- name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
- sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
- };
- }
- {
- name = "lru_cache___lru_cache_6.0.0.tgz";
- path = fetchurl {
- name = "lru_cache___lru_cache_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
- sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
- };
- }
- {
- name = "lru_queue___lru_queue_0.1.0.tgz";
- path = fetchurl {
- name = "lru_queue___lru_queue_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz";
- sha1 = "2738bd9f0d3cf4f84490c5736c48699ac632cda3";
- };
- }
- {
- name = "make_dir___make_dir_3.1.0.tgz";
- path = fetchurl {
- name = "make_dir___make_dir_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
- sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
- };
- }
- {
- name = "make_fetch_happen___make_fetch_happen_9.1.0.tgz";
- path = fetchurl {
- name = "make_fetch_happen___make_fetch_happen_9.1.0.tgz";
- url = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz";
- sha1 = "53085a09e7971433e6765f7971bf63f4e05cb968";
- };
- }
- {
- name = "matcher___matcher_3.0.0.tgz";
- path = fetchurl {
- name = "matcher___matcher_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz";
- sha1 = "bd9060f4c5b70aa8041ccc6f80368760994f30ca";
- };
- }
- {
- name = "e5c7071e0cdf715de87ef39dc8260e11d7add2f8";
- path = fetchurl {
- name = "e5c7071e0cdf715de87ef39dc8260e11d7add2f8";
- url = "https://codeload.github.com/matrix-org/matrix-web-i18n/tar.gz/e5c7071e0cdf715de87ef39dc8260e11d7add2f8";
- sha1 = "efbc392e3523669d20b812a6dae2f6efb49b888d";
- };
- }
- {
- name = "memoizee___memoizee_0.4.15.tgz";
- path = fetchurl {
- name = "memoizee___memoizee_0.4.15.tgz";
- url = "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz";
- sha1 = "e6f3d2da863f318d02225391829a6c5956555b72";
- };
- }
- {
- name = "merge2___merge2_1.4.1.tgz";
- path = fetchurl {
- name = "merge2___merge2_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
- sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
- };
- }
- {
- name = "micromatch___micromatch_4.0.4.tgz";
- path = fetchurl {
- name = "micromatch___micromatch_4.0.4.tgz";
- url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
- sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
- };
- }
- {
- name = "mime_db___mime_db_1.49.0.tgz";
- path = fetchurl {
- name = "mime_db___mime_db_1.49.0.tgz";
- url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz";
- sha1 = "f3dfde60c99e9cf3bc9701d687778f537001cbed";
- };
- }
- {
- name = "mime_types___mime_types_2.1.32.tgz";
- path = fetchurl {
- name = "mime_types___mime_types_2.1.32.tgz";
- url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz";
- sha1 = "1d00e89e7de7fe02008db61001d9e02852670fd5";
- };
- }
- {
- name = "mime___mime_1.6.0.tgz";
- path = fetchurl {
- name = "mime___mime_1.6.0.tgz";
- url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
- sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
- };
- }
- {
- name = "mime___mime_2.5.2.tgz";
- path = fetchurl {
- name = "mime___mime_2.5.2.tgz";
- url = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
- sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
- };
- }
- {
- name = "mimic_fn___mimic_fn_2.1.0.tgz";
- path = fetchurl {
- name = "mimic_fn___mimic_fn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
- sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
- };
- }
- {
- name = "mimic_fn___mimic_fn_3.1.0.tgz";
- path = fetchurl {
- name = "mimic_fn___mimic_fn_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz";
- sha1 = "65755145bbf3e36954b949c16450427451d5ca74";
- };
- }
- {
- name = "mimic_response___mimic_response_1.0.1.tgz";
- path = fetchurl {
- name = "mimic_response___mimic_response_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
- sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
- };
- }
- {
- name = "min_document___min_document_2.19.0.tgz";
- path = fetchurl {
- name = "min_document___min_document_2.19.0.tgz";
- url = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz";
- sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
- };
- }
- {
- name = "minimatch___minimatch_3.0.4.tgz";
- path = fetchurl {
- name = "minimatch___minimatch_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
- sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
- };
- }
- {
- name = "minimist___minimist_1.2.5.tgz";
- path = fetchurl {
- name = "minimist___minimist_1.2.5.tgz";
- url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
- sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
- };
- }
- {
- name = "minipass_collect___minipass_collect_1.0.2.tgz";
- path = fetchurl {
- name = "minipass_collect___minipass_collect_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz";
- sha1 = "22b813bf745dc6edba2576b940022ad6edc8c617";
- };
- }
- {
- name = "minipass_fetch___minipass_fetch_1.3.4.tgz";
- path = fetchurl {
- name = "minipass_fetch___minipass_fetch_1.3.4.tgz";
- url = "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz";
- sha1 = "63f5af868a38746ca7b33b03393ddf8c291244fe";
- };
- }
- {
- name = "minipass_flush___minipass_flush_1.0.5.tgz";
- path = fetchurl {
- name = "minipass_flush___minipass_flush_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz";
- sha1 = "82e7135d7e89a50ffe64610a787953c4c4cbb373";
- };
- }
- {
- name = "minipass_json_stream___minipass_json_stream_1.0.1.tgz";
- path = fetchurl {
- name = "minipass_json_stream___minipass_json_stream_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz";
- sha1 = "7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7";
- };
- }
- {
- name = "minipass_pipeline___minipass_pipeline_1.2.4.tgz";
- path = fetchurl {
- name = "minipass_pipeline___minipass_pipeline_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
- sha1 = "68472f79711c084657c067c5c6ad93cddea8214c";
- };
- }
- {
- name = "minipass_sized___minipass_sized_1.0.3.tgz";
- path = fetchurl {
- name = "minipass_sized___minipass_sized_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz";
- sha1 = "70ee5a7c5052070afacfbc22977ea79def353b70";
- };
- }
- {
- name = "minipass___minipass_2.9.0.tgz";
- path = fetchurl {
- name = "minipass___minipass_2.9.0.tgz";
- url = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz";
- sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6";
- };
- }
- {
- name = "minipass___minipass_3.1.3.tgz";
- path = fetchurl {
- name = "minipass___minipass_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz";
- sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd";
- };
- }
- {
- name = "minizlib___minizlib_1.3.3.tgz";
- path = fetchurl {
- name = "minizlib___minizlib_1.3.3.tgz";
- url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz";
- sha1 = "2290de96818a34c29551c8a8d301216bd65a861d";
- };
- }
- {
- name = "minizlib___minizlib_2.1.2.tgz";
- path = fetchurl {
- name = "minizlib___minizlib_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
- sha1 = "e90d3466ba209b932451508a11ce3d3632145931";
- };
- }
- {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
- sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
- };
- }
- {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
- sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
- };
- }
- {
- name = "ms___ms_2.0.0.tgz";
- path = fetchurl {
- name = "ms___ms_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
- sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
- };
- }
- {
- name = "ms___ms_2.1.2.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
- sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
- };
- }
- {
- name = "ms___ms_2.1.3.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
- sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
- };
- }
- {
- name = "natural_compare___natural_compare_1.4.0.tgz";
- path = fetchurl {
- name = "natural_compare___natural_compare_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
- sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
- };
- }
- {
- name = "needle___needle_2.9.0.tgz";
- path = fetchurl {
- name = "needle___needle_2.9.0.tgz";
- url = "https://registry.yarnpkg.com/needle/-/needle-2.9.0.tgz";
- sha1 = "c680e401f99b6c3d8d1f315756052edf3dc3bdff";
- };
- }
- {
- name = "negotiator___negotiator_0.6.2.tgz";
- path = fetchurl {
- name = "negotiator___negotiator_0.6.2.tgz";
- url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
- sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
- };
- }
- {
- name = "next_tick___next_tick_1.1.0.tgz";
- path = fetchurl {
- name = "next_tick___next_tick_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz";
- sha1 = "1836ee30ad56d67ef281b22bd199f709449b35eb";
- };
- }
- {
- name = "next_tick___next_tick_1.0.0.tgz";
- path = fetchurl {
- name = "next_tick___next_tick_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
- sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
- };
- }
- {
- name = "node_addon_api___node_addon_api_1.7.2.tgz";
- path = fetchurl {
- name = "node_addon_api___node_addon_api_1.7.2.tgz";
- url = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz";
- sha1 = "3df30b95720b53c24e59948b49532b662444f54d";
- };
- }
- {
- name = "node_fetch___node_fetch_2.6.1.tgz";
- path = fetchurl {
- name = "node_fetch___node_fetch_2.6.1.tgz";
- url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
- sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
- };
- }
- {
- name = "node_gyp___node_gyp_7.1.2.tgz";
- path = fetchurl {
- name = "node_gyp___node_gyp_7.1.2.tgz";
- url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz";
- sha1 = "21a810aebb187120251c3bcec979af1587b188ae";
- };
- }
- {
- name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
- path = fetchurl {
- name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
- url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
- sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087";
- };
- }
- {
- name = "nopt___nopt_4.0.3.tgz";
- path = fetchurl {
- name = "nopt___nopt_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
- sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
- };
- }
- {
- name = "nopt___nopt_5.0.0.tgz";
- path = fetchurl {
- name = "nopt___nopt_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz";
- sha1 = "530942bb58a512fccafe53fe210f13a25355dc88";
- };
- }
- {
- name = "normalize_path___normalize_path_3.0.0.tgz";
- path = fetchurl {
- name = "normalize_path___normalize_path_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
- sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
- };
- }
- {
- name = "normalize_url___normalize_url_4.5.1.tgz";
- path = fetchurl {
- name = "normalize_url___normalize_url_4.5.1.tgz";
- url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz";
- sha1 = "0dd90cf1288ee1d1313b87081c9a5932ee48518a";
- };
- }
- {
- name = "npm_bundled___npm_bundled_1.1.2.tgz";
- path = fetchurl {
- name = "npm_bundled___npm_bundled_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz";
- sha1 = "944c78789bd739035b70baa2ca5cc32b8d860bc1";
- };
- }
- {
- name = "npm_conf___npm_conf_1.1.3.tgz";
- path = fetchurl {
- name = "npm_conf___npm_conf_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz";
- sha1 = "256cc47bd0e218c259c4e9550bf413bc2192aff9";
- };
- }
- {
- name = "npm_install_checks___npm_install_checks_4.0.0.tgz";
- path = fetchurl {
- name = "npm_install_checks___npm_install_checks_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz";
- sha1 = "a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4";
- };
- }
- {
- name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz";
- path = fetchurl {
- name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
- sha1 = "6e79a41f23fd235c0623218228da7d9c23b8f6e2";
- };
- }
- {
- name = "npm_package_arg___npm_package_arg_8.1.5.tgz";
- path = fetchurl {
- name = "npm_package_arg___npm_package_arg_8.1.5.tgz";
- url = "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz";
- sha1 = "3369b2d5fe8fdc674baa7f1786514ddc15466e44";
- };
- }
- {
- name = "npm_packlist___npm_packlist_1.4.8.tgz";
- path = fetchurl {
- name = "npm_packlist___npm_packlist_1.4.8.tgz";
- url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz";
- sha1 = "56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e";
- };
- }
- {
- name = "npm_packlist___npm_packlist_2.2.2.tgz";
- path = fetchurl {
- name = "npm_packlist___npm_packlist_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz";
- sha1 = "076b97293fa620f632833186a7a8f65aaa6148c8";
- };
- }
- {
- name = "npm_pick_manifest___npm_pick_manifest_6.1.1.tgz";
- path = fetchurl {
- name = "npm_pick_manifest___npm_pick_manifest_6.1.1.tgz";
- url = "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz";
- sha1 = "7b5484ca2c908565f43b7f27644f36bb816f5148";
- };
- }
- {
- name = "npm_registry_fetch___npm_registry_fetch_11.0.0.tgz";
- path = fetchurl {
- name = "npm_registry_fetch___npm_registry_fetch_11.0.0.tgz";
- url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz";
- sha1 = "68c1bb810c46542760d62a6a965f85a702d43a76";
- };
- }
- {
- name = "npmlog___npmlog_4.1.2.tgz";
- path = fetchurl {
- name = "npmlog___npmlog_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
- sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
- };
- }
- {
- name = "number_is_nan___number_is_nan_1.0.1.tgz";
- path = fetchurl {
- name = "number_is_nan___number_is_nan_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
- sha1 = "097b602b53422a522c1afb8790318336941a011d";
- };
- }
- {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- path = fetchurl {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
- sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
- };
- }
- {
- name = "object_assign___object_assign_4.1.1.tgz";
- path = fetchurl {
- name = "object_assign___object_assign_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
- sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
- };
- }
- {
- name = "object_keys___object_keys_1.1.1.tgz";
- path = fetchurl {
- name = "object_keys___object_keys_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
- sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
- };
- }
- {
- name = "omggif___omggif_1.0.10.tgz";
- path = fetchurl {
- name = "omggif___omggif_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz";
- sha1 = "ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19";
- };
- }
- {
- name = "once___once_1.4.0.tgz";
- path = fetchurl {
- name = "once___once_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
- sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
- };
- }
- {
- name = "onetime___onetime_5.1.2.tgz";
- path = fetchurl {
- name = "onetime___onetime_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz";
- sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e";
- };
- }
- {
- name = "optionator___optionator_0.9.1.tgz";
- path = fetchurl {
- name = "optionator___optionator_0.9.1.tgz";
- url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
- sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
- };
- }
- {
- name = "os_homedir___os_homedir_1.0.2.tgz";
- path = fetchurl {
- name = "os_homedir___os_homedir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
- sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
- };
- }
- {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- path = fetchurl {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
- sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
- };
- }
- {
- name = "osenv___osenv_0.1.5.tgz";
- path = fetchurl {
- name = "osenv___osenv_0.1.5.tgz";
- url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
- sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
- };
- }
- {
- name = "p_cancelable___p_cancelable_1.1.0.tgz";
- path = fetchurl {
- name = "p_cancelable___p_cancelable_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz";
- sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc";
- };
- }
- {
- name = "p_limit___p_limit_2.3.0.tgz";
- path = fetchurl {
- name = "p_limit___p_limit_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
- sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
- };
- }
- {
- name = "p_locate___p_locate_3.0.0.tgz";
- path = fetchurl {
- name = "p_locate___p_locate_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
- sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
- };
- }
- {
- name = "p_map___p_map_4.0.0.tgz";
- path = fetchurl {
- name = "p_map___p_map_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz";
- sha1 = "bb2f95a5eda2ec168ec9274e06a747c3e2904d2b";
- };
- }
- {
- name = "p_try___p_try_2.2.0.tgz";
- path = fetchurl {
- name = "p_try___p_try_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
- sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
- };
- }
- {
- name = "package_json___package_json_6.5.0.tgz";
- path = fetchurl {
- name = "package_json___package_json_6.5.0.tgz";
- url = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz";
- sha1 = "6feedaca35e75725876d0b0e64974697fed145b0";
- };
- }
- {
- name = "pacote___pacote_11.3.5.tgz";
- path = fetchurl {
- name = "pacote___pacote_11.3.5.tgz";
- url = "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz";
- sha1 = "73cf1fc3772b533f575e39efa96c50be8c3dc9d2";
- };
- }
- {
- name = "pako___pako_1.0.11.tgz";
- path = fetchurl {
- name = "pako___pako_1.0.11.tgz";
- url = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz";
- sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf";
- };
- }
- {
- name = "parent_module___parent_module_1.0.1.tgz";
- path = fetchurl {
- name = "parent_module___parent_module_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
- sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
- };
- }
- {
- name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
- path = fetchurl {
- name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz";
- sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285";
- };
- }
- {
- name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
- path = fetchurl {
- name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz";
- sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006";
- };
- }
- {
- name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
- path = fetchurl {
- name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz";
- sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389";
- };
- }
- {
- name = "parse_headers___parse_headers_2.0.4.tgz";
- path = fetchurl {
- name = "parse_headers___parse_headers_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz";
- sha1 = "9eaf2d02bed2d1eff494331ce3df36d7924760bf";
- };
- }
- {
- name = "path_exists___path_exists_3.0.0.tgz";
- path = fetchurl {
- name = "path_exists___path_exists_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
- sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
- };
- }
- {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- path = fetchurl {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
- sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
- };
- }
- {
- name = "path_key___path_key_3.1.1.tgz";
- path = fetchurl {
- name = "path_key___path_key_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
- sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
- };
- }
- {
- name = "path_type___path_type_4.0.0.tgz";
- path = fetchurl {
- name = "path_type___path_type_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
- sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
- };
- }
- {
- name = "pend___pend_1.2.0.tgz";
- path = fetchurl {
- name = "pend___pend_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz";
- sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
- };
- }
- {
- name = "performance_now___performance_now_2.1.0.tgz";
- path = fetchurl {
- name = "performance_now___performance_now_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
- sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
- };
- }
- {
- name = "phin___phin_2.9.3.tgz";
- path = fetchurl {
- name = "phin___phin_2.9.3.tgz";
- url = "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz";
- sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c";
- };
- }
- {
- name = "picomatch___picomatch_2.3.0.tgz";
- path = fetchurl {
- name = "picomatch___picomatch_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz";
- sha1 = "f1f061de8f6a4bf022892e2d128234fb98302972";
- };
- }
- {
- name = "pify___pify_3.0.0.tgz";
- path = fetchurl {
- name = "pify___pify_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
- sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
- };
- }
- {
- name = "pixelmatch___pixelmatch_4.0.2.tgz";
- path = fetchurl {
- name = "pixelmatch___pixelmatch_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
- sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
- };
- }
- {
- name = "pkg_up___pkg_up_3.1.0.tgz";
- path = fetchurl {
- name = "pkg_up___pkg_up_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz";
- sha1 = "100ec235cc150e4fd42519412596a28512a0def5";
- };
- }
- {
- name = "plist___plist_3.0.3.tgz";
- path = fetchurl {
- name = "plist___plist_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/plist/-/plist-3.0.3.tgz";
- sha1 = "007df34c7be0e2c3dcfcf460d623e6485457857d";
- };
- }
- {
- name = "pluralizers___pluralizers_0.1.7.tgz";
- path = fetchurl {
- name = "pluralizers___pluralizers_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/pluralizers/-/pluralizers-0.1.7.tgz";
- sha1 = "8d38dd0a1b660e739b10ab2eab10b684c9d50142";
- };
- }
- {
- name = "png_to_ico___png_to_ico_2.1.2.tgz";
- path = fetchurl {
- name = "png_to_ico___png_to_ico_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-2.1.2.tgz";
- sha1 = "9787178b849f1a7b3aa3e5f2d57ac4cbfabc7c24";
- };
- }
- {
- name = "pngjs___pngjs_3.4.0.tgz";
- path = fetchurl {
- name = "pngjs___pngjs_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz";
- sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f";
- };
- }
- {
- name = "prelude_ls___prelude_ls_1.2.1.tgz";
- path = fetchurl {
- name = "prelude_ls___prelude_ls_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
- sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
- };
- }
- {
- name = "prepend_http___prepend_http_2.0.0.tgz";
- path = fetchurl {
- name = "prepend_http___prepend_http_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz";
- sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
- };
- }
- {
- name = "printj___printj_1.1.2.tgz";
- path = fetchurl {
- name = "printj___printj_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz";
- sha1 = "d90deb2975a8b9f600fb3a1c94e3f4c53c78a222";
- };
- }
- {
- name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
- path = fetchurl {
- name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
- sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
- };
- }
- {
- name = "process___process_0.11.10.tgz";
- path = fetchurl {
- name = "process___process_0.11.10.tgz";
- url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
- sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
- };
- }
- {
- name = "progress___progress_2.0.3.tgz";
- path = fetchurl {
- name = "progress___progress_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
- sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
- };
- }
- {
- name = "promise_inflight___promise_inflight_1.0.1.tgz";
- path = fetchurl {
- name = "promise_inflight___promise_inflight_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
- sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
- };
- }
- {
- name = "promise_retry___promise_retry_2.0.1.tgz";
- path = fetchurl {
- name = "promise_retry___promise_retry_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz";
- sha1 = "ff747a13620ab57ba688f5fc67855410c370da22";
- };
- }
- {
- name = "proto_list___proto_list_1.2.4.tgz";
- path = fetchurl {
- name = "proto_list___proto_list_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
- sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
- };
- }
- {
- name = "psl___psl_1.8.0.tgz";
- path = fetchurl {
- name = "psl___psl_1.8.0.tgz";
- url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
- sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
- };
- }
- {
- name = "pump___pump_3.0.0.tgz";
- path = fetchurl {
- name = "pump___pump_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
- sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
- };
- }
- {
- name = "punycode___punycode_2.1.1.tgz";
- path = fetchurl {
- name = "punycode___punycode_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
- sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
- };
- }
- {
- name = "pupa___pupa_2.1.1.tgz";
- path = fetchurl {
- name = "pupa___pupa_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz";
- sha1 = "f5e8fd4afc2c5d97828faa523549ed8744a20d62";
- };
- }
- {
- name = "qs___qs_6.5.2.tgz";
- path = fetchurl {
- name = "qs___qs_6.5.2.tgz";
- url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
- sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
- };
- }
- {
- name = "queue_microtask___queue_microtask_1.2.3.tgz";
- path = fetchurl {
- name = "queue_microtask___queue_microtask_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz";
- sha1 = "4929228bbc724dfac43e0efb058caf7b6cfb6243";
- };
- }
- {
- name = "rc___rc_1.2.8.tgz";
- path = fetchurl {
- name = "rc___rc_1.2.8.tgz";
- url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
- sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
- };
- }
- {
- name = "read_config_file___read_config_file_6.2.0.tgz";
- path = fetchurl {
- name = "read_config_file___read_config_file_6.2.0.tgz";
- url = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz";
- sha1 = "71536072330bcd62ba814f91458b12add9fc7ade";
- };
- }
- {
- name = "read_package_json_fast___read_package_json_fast_2.0.3.tgz";
- path = fetchurl {
- name = "read_package_json_fast___read_package_json_fast_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz";
- sha1 = "323ca529630da82cb34b36cc0b996693c98c2b83";
- };
- }
- {
- name = "readable_stream___readable_stream_2.3.7.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_2.3.7.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
- sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
- };
- }
- {
- name = "readable_stream___readable_stream_3.6.0.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
- sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
- };
- }
- {
- name = "readdir_glob___readdir_glob_1.1.1.tgz";
- path = fetchurl {
- name = "readdir_glob___readdir_glob_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz";
- sha1 = "f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4";
- };
- }
- {
- name = "readdirp___readdirp_3.6.0.tgz";
- path = fetchurl {
- name = "readdirp___readdirp_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz";
- sha1 = "74a370bd857116e245b29cc97340cd431a02a6c7";
- };
- }
- {
- name = "regenerator_runtime___regenerator_runtime_0.13.9.tgz";
- path = fetchurl {
- name = "regenerator_runtime___regenerator_runtime_0.13.9.tgz";
- url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz";
- sha1 = "8925742a98ffd90814988d7566ad30ca3b263b52";
- };
- }
- {
- name = "regexpp___regexpp_3.2.0.tgz";
- path = fetchurl {
- name = "regexpp___regexpp_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz";
- sha1 = "0425a2768d8f23bad70ca4b90461fa2f1213e1b2";
- };
- }
- {
- name = "registry_auth_token___registry_auth_token_4.2.1.tgz";
- path = fetchurl {
- name = "registry_auth_token___registry_auth_token_4.2.1.tgz";
- url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz";
- sha1 = "6d7b4006441918972ccd5fedcd41dc322c79b250";
- };
- }
- {
- name = "registry_url___registry_url_5.1.0.tgz";
- path = fetchurl {
- name = "registry_url___registry_url_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz";
- sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009";
- };
- }
- {
- name = "request___request_2.88.2.tgz";
- path = fetchurl {
- name = "request___request_2.88.2.tgz";
- url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
- sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
- };
- }
- {
- name = "require_directory___require_directory_2.1.1.tgz";
- path = fetchurl {
- name = "require_directory___require_directory_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
- sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
- };
- }
- {
- name = "require_from_string___require_from_string_2.0.2.tgz";
- path = fetchurl {
- name = "require_from_string___require_from_string_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
- sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
- };
- }
- {
- name = "resolve_from___resolve_from_4.0.0.tgz";
- path = fetchurl {
- name = "resolve_from___resolve_from_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
- sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
- };
- }
- {
- name = "responselike___responselike_1.0.2.tgz";
- path = fetchurl {
- name = "responselike___responselike_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz";
- sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
- };
- }
- {
- name = "retry___retry_0.12.0.tgz";
- path = fetchurl {
- name = "retry___retry_0.12.0.tgz";
- url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
- sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
- };
- }
- {
- name = "reusify___reusify_1.0.4.tgz";
- path = fetchurl {
- name = "reusify___reusify_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
- sha1 = "90da382b1e126efc02146e90845a88db12925d76";
- };
- }
- {
- name = "rimraf___rimraf_2.7.1.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_2.7.1.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
- sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
- };
- }
- {
- name = "rimraf___rimraf_3.0.2.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
- sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
- };
- }
- {
- name = "roarr___roarr_2.15.4.tgz";
- path = fetchurl {
- name = "roarr___roarr_2.15.4.tgz";
- url = "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz";
- sha1 = "f5fe795b7b838ccfe35dc608e0282b9eba2e7afd";
- };
- }
- {
- name = "run_parallel___run_parallel_1.2.0.tgz";
- path = fetchurl {
- name = "run_parallel___run_parallel_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz";
- sha1 = "66d1368da7bdf921eb9d95bd1a9229e7f21a43ee";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.2.1.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.2.1.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
- sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.1.2.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
- sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
- };
- }
- {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- path = fetchurl {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
- sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
- };
- }
- {
- name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
- path = fetchurl {
- name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
- url = "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz";
- sha1 = "755ebd752045931977e30b2025d340d7c9090378";
- };
- }
- {
- name = "sax___sax_1.2.4.tgz";
- path = fetchurl {
- name = "sax___sax_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
- sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
- };
- }
- {
- name = "semver_compare___semver_compare_1.0.0.tgz";
- path = fetchurl {
- name = "semver_compare___semver_compare_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
- sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
- };
- }
- {
- name = "semver_diff___semver_diff_3.1.1.tgz";
- path = fetchurl {
- name = "semver_diff___semver_diff_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz";
- sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b";
- };
- }
- {
- name = "semver___semver_5.7.1.tgz";
- path = fetchurl {
- name = "semver___semver_5.7.1.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
- sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
- };
- }
- {
- name = "semver___semver_6.3.0.tgz";
- path = fetchurl {
- name = "semver___semver_6.3.0.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
- sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
- };
- }
- {
- name = "semver___semver_7.3.5.tgz";
- path = fetchurl {
- name = "semver___semver_7.3.5.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
- sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
- };
- }
- {
- name = "serialize_error___serialize_error_7.0.1.tgz";
- path = fetchurl {
- name = "serialize_error___serialize_error_7.0.1.tgz";
- url = "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz";
- sha1 = "f1360b0447f61ffb483ec4157c737fab7d778e18";
- };
- }
- {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- path = fetchurl {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
- sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
- };
- }
- {
- name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz";
- path = fetchurl {
- name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz";
- sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61";
- };
- }
- {
- name = "shebang_command___shebang_command_2.0.0.tgz";
- path = fetchurl {
- name = "shebang_command___shebang_command_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
- sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
- };
- }
- {
- name = "shebang_regex___shebang_regex_3.0.0.tgz";
- path = fetchurl {
- name = "shebang_regex___shebang_regex_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
- sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
- };
- }
- {
- name = "signal_exit___signal_exit_3.0.3.tgz";
- path = fetchurl {
- name = "signal_exit___signal_exit_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
- sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
- };
- }
- {
- name = "slash___slash_3.0.0.tgz";
- path = fetchurl {
- name = "slash___slash_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz";
- sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
- };
- }
- {
- name = "slice_ansi___slice_ansi_1.0.0.tgz";
- path = fetchurl {
- name = "slice_ansi___slice_ansi_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz";
- sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d";
- };
- }
- {
- name = "slice_ansi___slice_ansi_4.0.0.tgz";
- path = fetchurl {
- name = "slice_ansi___slice_ansi_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
- sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
- };
- }
- {
- name = "smart_buffer___smart_buffer_4.2.0.tgz";
- path = fetchurl {
- name = "smart_buffer___smart_buffer_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz";
- sha1 = "6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae";
- };
- }
- {
- name = "socks_proxy_agent___socks_proxy_agent_6.0.0.tgz";
- path = fetchurl {
- name = "socks_proxy_agent___socks_proxy_agent_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz";
- sha1 = "9f8749cdc05976505fa9f9a958b1818d0e60573b";
- };
- }
- {
- name = "socks___socks_2.6.1.tgz";
- path = fetchurl {
- name = "socks___socks_2.6.1.tgz";
- url = "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz";
- sha1 = "989e6534a07cf337deb1b1c94aaa44296520d30e";
- };
- }
- {
- name = "source_map_support___source_map_support_0.5.19.tgz";
- path = fetchurl {
- name = "source_map_support___source_map_support_0.5.19.tgz";
- url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
- sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
- };
- }
- {
- name = "source_map___source_map_0.5.7.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.5.7.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
- sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
- };
- }
- {
- name = "source_map___source_map_0.6.1.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
- sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
- };
- }
- {
- name = "sprintf_js___sprintf_js_1.1.2.tgz";
- path = fetchurl {
- name = "sprintf_js___sprintf_js_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz";
- sha1 = "da1765262bf8c0f571749f2ad6c26300207ae673";
- };
- }
- {
- name = "sprintf_js___sprintf_js_1.0.3.tgz";
- path = fetchurl {
- name = "sprintf_js___sprintf_js_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
- sha1 = "04e6926f662895354f3dd015203633b857297e2c";
- };
- }
- {
- name = "sshpk___sshpk_1.16.1.tgz";
- path = fetchurl {
- name = "sshpk___sshpk_1.16.1.tgz";
- url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
- sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
- };
- }
- {
- name = "ssri___ssri_8.0.1.tgz";
- path = fetchurl {
- name = "ssri___ssri_8.0.1.tgz";
- url = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz";
- sha1 = "638e4e439e2ffbd2cd289776d5ca457c4f51a2af";
- };
- }
- {
- name = "stat_mode___stat_mode_1.0.0.tgz";
- path = fetchurl {
- name = "stat_mode___stat_mode_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz";
- sha1 = "68b55cb61ea639ff57136f36b216a291800d1465";
- };
- }
- {
- name = "string_width___string_width_1.0.2.tgz";
- path = fetchurl {
- name = "string_width___string_width_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
- sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
- };
- }
- {
- name = "string_width___string_width_2.1.1.tgz";
- path = fetchurl {
- name = "string_width___string_width_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
- sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
- };
- }
- {
- name = "string_width___string_width_3.1.0.tgz";
- path = fetchurl {
- name = "string_width___string_width_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
- sha1 = "22767be21b62af1081574306f69ac51b62203961";
- };
- }
- {
- name = "string_width___string_width_4.2.2.tgz";
- path = fetchurl {
- name = "string_width___string_width_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
- sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
- };
- }
- {
- name = "string_decoder___string_decoder_1.3.0.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
- sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
- };
- }
- {
- name = "string_decoder___string_decoder_1.1.1.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
- sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
- };
- }
- {
- name = "strip_ansi___strip_ansi_3.0.1.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
- sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
- };
- }
- {
- name = "strip_ansi___strip_ansi_4.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
- sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
- };
- }
- {
- name = "strip_ansi___strip_ansi_5.2.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
- sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
- };
- }
- {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
- sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
- sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
- sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
- };
- }
- {
- name = "sumchecker___sumchecker_3.0.1.tgz";
- path = fetchurl {
- name = "sumchecker___sumchecker_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz";
- sha1 = "6377e996795abb0b6d348e9b3e1dfb24345a8e42";
- };
- }
- {
- name = "supports_color___supports_color_5.5.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_5.5.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
- sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
- };
- }
- {
- name = "supports_color___supports_color_7.2.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_7.2.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
- sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
- };
- }
- {
- name = "table___table_6.7.1.tgz";
- path = fetchurl {
- name = "table___table_6.7.1.tgz";
- url = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz";
- sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2";
- };
- }
- {
- name = "tar_stream___tar_stream_2.2.0.tgz";
- path = fetchurl {
- name = "tar_stream___tar_stream_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz";
- sha1 = "acad84c284136b060dc3faa64474aa9aebd77287";
- };
- }
- {
- name = "tar___tar_4.4.19.tgz";
- path = fetchurl {
- name = "tar___tar_4.4.19.tgz";
- url = "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz";
- sha1 = "2e4d7263df26f2b914dee10c825ab132123742f3";
- };
- }
- {
- name = "tar___tar_6.1.10.tgz";
- path = fetchurl {
- name = "tar___tar_6.1.10.tgz";
- url = "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz";
- sha1 = "8a320a74475fba54398fa136cd9883aa8ad11175";
- };
- }
- {
- name = "temp_file___temp_file_3.4.0.tgz";
- path = fetchurl {
- name = "temp_file___temp_file_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz";
- sha1 = "766ea28911c683996c248ef1a20eea04d51652c7";
- };
- }
- {
- name = "text_table___text_table_0.2.0.tgz";
- path = fetchurl {
- name = "text_table___text_table_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
- sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
- };
- }
- {
- name = "timers_ext___timers_ext_0.1.7.tgz";
- path = fetchurl {
- name = "timers_ext___timers_ext_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz";
- sha1 = "6f57ad8578e07a3fb9f91d9387d65647555e25c6";
- };
- }
- {
- name = "timm___timm_1.7.1.tgz";
- path = fetchurl {
- name = "timm___timm_1.7.1.tgz";
- url = "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz";
- sha1 = "96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f";
- };
- }
- {
- name = "tinycolor2___tinycolor2_1.4.2.tgz";
- path = fetchurl {
- name = "tinycolor2___tinycolor2_1.4.2.tgz";
- url = "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz";
- sha1 = "3f6a4d1071ad07676d7fa472e1fac40a719d8803";
- };
- }
- {
- name = "tmp_promise___tmp_promise_1.1.0.tgz";
- path = fetchurl {
- name = "tmp_promise___tmp_promise_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz";
- sha1 = "bb924d239029157b9bc1d506a6aa341f8b13e64c";
- };
- }
- {
- name = "tmp_promise___tmp_promise_3.0.2.tgz";
- path = fetchurl {
- name = "tmp_promise___tmp_promise_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz";
- sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a";
- };
- }
- {
- name = "tmp___tmp_0.1.0.tgz";
- path = fetchurl {
- name = "tmp___tmp_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz";
- sha1 = "ee434a4e22543082e294ba6201dcc6eafefa2877";
- };
- }
- {
- name = "tmp___tmp_0.2.1.tgz";
- path = fetchurl {
- name = "tmp___tmp_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz";
- sha1 = "8457fc3037dcf4719c251367a1af6500ee1ccf14";
- };
- }
- {
- name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
- path = fetchurl {
- name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
- sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
- };
- }
- {
- name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
- path = fetchurl {
- name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
- sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
- };
- }
- {
- name = "to_regex_range___to_regex_range_5.0.1.tgz";
- path = fetchurl {
- name = "to_regex_range___to_regex_range_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
- sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
- };
- }
- {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- path = fetchurl {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
- sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
- };
- }
- {
- name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
- path = fetchurl {
- name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz";
- sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
- };
- }
- {
- name = "tslib___tslib_1.14.1.tgz";
- path = fetchurl {
- name = "tslib___tslib_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
- sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
- };
- }
- {
- name = "tslib___tslib_2.3.1.tgz";
- path = fetchurl {
- name = "tslib___tslib_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz";
- sha1 = "e8a335add5ceae51aa261d32a490158ef042ef01";
- };
- }
- {
- name = "tsutils___tsutils_3.21.0.tgz";
- path = fetchurl {
- name = "tsutils___tsutils_3.21.0.tgz";
- url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz";
- sha1 = "b48717d394cea6c1e096983eed58e9d61715b623";
- };
- }
- {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- path = fetchurl {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
- sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
- };
- }
- {
- name = "tunnel___tunnel_0.0.6.tgz";
- path = fetchurl {
- name = "tunnel___tunnel_0.0.6.tgz";
- url = "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz";
- sha1 = "72f1314b34a5b192db012324df2cc587ca47f92c";
- };
- }
- {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- path = fetchurl {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
- sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
- };
- }
- {
- name = "type_check___type_check_0.4.0.tgz";
- path = fetchurl {
- name = "type_check___type_check_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
- sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
- };
- }
- {
- name = "type_fest___type_fest_0.13.1.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.13.1.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz";
- sha1 = "0172cb5bce80b0bd542ea348db50c7e21834d934";
- };
- }
- {
- name = "type_fest___type_fest_0.16.0.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.16.0.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz";
- sha1 = "3240b891a78b0deae910dbeb86553e552a148860";
- };
- }
- {
- name = "type_fest___type_fest_0.20.2.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.20.2.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
- sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
- };
- }
- {
- name = "type_fest___type_fest_0.8.1.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.8.1.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
- sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
- };
- }
- {
- name = "type___type_1.2.0.tgz";
- path = fetchurl {
- name = "type___type_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz";
- sha1 = "848dd7698dafa3e54a6c479e759c4bc3f18847a0";
- };
- }
- {
- name = "type___type_2.5.0.tgz";
- path = fetchurl {
- name = "type___type_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz";
- sha1 = "0a2e78c2e77907b252abe5f298c1b01c63f0db3d";
- };
- }
- {
- name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
- path = fetchurl {
- name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
- url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
- sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
- };
- }
- {
- name = "typedarray___typedarray_0.0.6.tgz";
- path = fetchurl {
- name = "typedarray___typedarray_0.0.6.tgz";
- url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
- sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
- };
- }
- {
- name = "typescript___typescript_4.3.5.tgz";
- path = fetchurl {
- name = "typescript___typescript_4.3.5.tgz";
- url = "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz";
- sha1 = "4d1c37cc16e893973c45a06886b7113234f119f4";
- };
- }
- {
- name = "unique_filename___unique_filename_1.1.1.tgz";
- path = fetchurl {
- name = "unique_filename___unique_filename_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
- sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
- };
- }
- {
- name = "unique_slug___unique_slug_2.0.2.tgz";
- path = fetchurl {
- name = "unique_slug___unique_slug_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz";
- sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c";
- };
- }
- {
- name = "unique_string___unique_string_2.0.0.tgz";
- path = fetchurl {
- name = "unique_string___unique_string_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz";
- sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d";
- };
- }
- {
- name = "universal_user_agent___universal_user_agent_6.0.0.tgz";
- path = fetchurl {
- name = "universal_user_agent___universal_user_agent_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz";
- sha1 = "3381f8503b251c0d9cd21bc1de939ec9df5480ee";
- };
- }
- {
- name = "universalify___universalify_0.1.2.tgz";
- path = fetchurl {
- name = "universalify___universalify_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
- sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
- };
- }
- {
- name = "universalify___universalify_2.0.0.tgz";
- path = fetchurl {
- name = "universalify___universalify_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz";
- sha1 = "75a4984efedc4b08975c5aeb73f530d02df25717";
- };
- }
- {
- name = "untildify___untildify_3.0.3.tgz";
- path = fetchurl {
- name = "untildify___untildify_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz";
- sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9";
- };
- }
- {
- name = "unzip_crx_3___unzip_crx_3_0.2.0.tgz";
- path = fetchurl {
- name = "unzip_crx_3___unzip_crx_3_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz";
- sha1 = "d5324147b104a8aed9ae8639c95521f6f7cda292";
- };
- }
- {
- name = "update_notifier___update_notifier_5.1.0.tgz";
- path = fetchurl {
- name = "update_notifier___update_notifier_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz";
- sha1 = "4ab0d7c7f36a231dd7316cf7729313f0214d9ad9";
- };
- }
- {
- name = "uri_js___uri_js_4.4.1.tgz";
- path = fetchurl {
- name = "uri_js___uri_js_4.4.1.tgz";
- url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
- sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
- };
- }
- {
- name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
- path = fetchurl {
- name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
- sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
- };
- }
- {
- name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
- path = fetchurl {
- name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz";
- sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61";
- };
- }
- {
- name = "utif___utif_2.0.1.tgz";
- path = fetchurl {
- name = "utif___utif_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz";
- sha1 = "9e1582d9bbd20011a6588548ed3266298e711759";
- };
- }
- {
- name = "util_deprecate___util_deprecate_1.0.2.tgz";
- path = fetchurl {
- name = "util_deprecate___util_deprecate_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
- sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
- };
- }
- {
- name = "uuid___uuid_3.4.0.tgz";
- path = fetchurl {
- name = "uuid___uuid_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
- sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
- };
- }
- {
- name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
- path = fetchurl {
- name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
- sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
- };
- }
- {
- name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
- path = fetchurl {
- name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
- sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
- };
- }
- {
- name = "verror___verror_1.10.0.tgz";
- path = fetchurl {
- name = "verror___verror_1.10.0.tgz";
- url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
- sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
- };
- }
- {
- name = "walk___walk_2.3.14.tgz";
- path = fetchurl {
- name = "walk___walk_2.3.14.tgz";
- url = "https://registry.yarnpkg.com/walk/-/walk-2.3.14.tgz";
- sha1 = "60ec8631cfd23276ae1e7363ce11d626452e1ef3";
- };
- }
- {
- name = "which___which_2.0.2.tgz";
- path = fetchurl {
- name = "which___which_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
- sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
- };
- }
- {
- name = "wide_align___wide_align_1.1.3.tgz";
- path = fetchurl {
- name = "wide_align___wide_align_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
- sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
- };
- }
- {
- name = "widest_line___widest_line_3.1.0.tgz";
- path = fetchurl {
- name = "widest_line___widest_line_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz";
- sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca";
- };
- }
- {
- name = "winreg___winreg_1.2.4.tgz";
- path = fetchurl {
- name = "winreg___winreg_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz";
- sha1 = "ba065629b7a925130e15779108cf540990e98d1b";
- };
- }
- {
- name = "word_wrap___word_wrap_1.2.3.tgz";
- path = fetchurl {
- name = "word_wrap___word_wrap_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
- sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
- };
- }
- {
- name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
- path = fetchurl {
- name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
- sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43";
- };
- }
- {
- name = "wrappy___wrappy_1.0.2.tgz";
- path = fetchurl {
- name = "wrappy___wrappy_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
- sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
- };
- }
- {
- name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
- path = fetchurl {
- name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
- sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
- };
- }
- {
- name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
- path = fetchurl {
- name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
- sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13";
- };
- }
- {
- name = "xhr___xhr_2.6.0.tgz";
- path = fetchurl {
- name = "xhr___xhr_2.6.0.tgz";
- url = "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz";
- sha1 = "b69d4395e792b4173d6b7df077f0fc5e4e2b249d";
- };
- }
- {
- name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
- path = fetchurl {
- name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz";
- sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28";
- };
- }
- {
- name = "xml2js___xml2js_0.4.23.tgz";
- path = fetchurl {
- name = "xml2js___xml2js_0.4.23.tgz";
- url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz";
- sha1 = "a0c69516752421eb2ac758ee4d4ccf58843eac66";
- };
- }
- {
- name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
- path = fetchurl {
- name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
- url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz";
- sha1 = "9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5";
- };
- }
- {
- name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
- path = fetchurl {
- name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
- url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
- sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
- };
- }
- {
- name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
- path = fetchurl {
- name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
- url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
- sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3";
- };
- }
- {
- name = "xmldom___xmldom_0.6.0.tgz";
- path = fetchurl {
- name = "xmldom___xmldom_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz";
- sha1 = "43a96ecb8beece991cef382c08397d82d4d0c46f";
- };
- }
- {
- name = "xtend___xtend_4.0.2.tgz";
- path = fetchurl {
- name = "xtend___xtend_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
- sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
- };
- }
- {
- name = "y18n___y18n_5.0.8.tgz";
- path = fetchurl {
- name = "y18n___y18n_5.0.8.tgz";
- url = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz";
- sha1 = "7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55";
- };
- }
- {
- name = "yaku___yaku_0.16.7.tgz";
- path = fetchurl {
- name = "yaku___yaku_0.16.7.tgz";
- url = "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz";
- sha1 = "1d195c78aa9b5bf8479c895b9504fd4f0847984e";
- };
- }
- {
- name = "yallist___yallist_3.1.1.tgz";
- path = fetchurl {
- name = "yallist___yallist_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
- sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
- };
- }
- {
- name = "yallist___yallist_4.0.0.tgz";
- path = fetchurl {
- name = "yallist___yallist_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
- sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
- };
- }
- {
- name = "yargs_parser___yargs_parser_20.2.9.tgz";
- path = fetchurl {
- name = "yargs_parser___yargs_parser_20.2.9.tgz";
- url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz";
- sha1 = "2eb7dc3b0289718fc295f362753845c41a0c94ee";
- };
- }
- {
- name = "yargs___yargs_17.1.1.tgz";
- path = fetchurl {
- name = "yargs___yargs_17.1.1.tgz";
- url = "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz";
- sha1 = "c2a8091564bdb196f7c0a67c1d12e5b85b8067ba";
- };
- }
- {
- name = "yauzl___yauzl_2.10.0.tgz";
- path = fetchurl {
- name = "yauzl___yauzl_2.10.0.tgz";
- url = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
- sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
- };
- }
- {
- name = "zip_stream___zip_stream_4.1.0.tgz";
- path = fetchurl {
- name = "zip_stream___zip_stream_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz";
- sha1 = "51dd326571544e36aa3f756430b313576dc8fc79";
- };
- }
- ];
-}
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 27a5204e9e96..bce13052e5ac 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -4,6 +4,7 @@
, makeWrapper
, makeDesktopItem
, mkYarnPackage
+, fetchYarnDeps
, electron
, element-web
, callPackage
@@ -13,27 +14,28 @@
, useWayland ? false
}:
-# Notes for maintainers:
-# * versions of `element-web` and `element-desktop` should be kept in sync.
-# * the Yarn dependency expression must be updated with `./update-element-desktop.sh `
let
+ pinData = lib.importJSON ./pin.json;
executableName = "element-desktop";
- version = "1.8.5";
+ electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
+in
+mkYarnPackage rec {
+ pname = "element-desktop";
+ inherit (pinData) version;
+ name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "vector-im";
repo = "element-desktop";
rev = "v${version}";
- sha256 = "sha256-i9PWGEcf+EOn6j++GuYt6xmwYycmW5hE5xhpRMOFBGM=";
+ sha256 = pinData.desktopSrcHash;
};
- electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
-in
-mkYarnPackage rec {
- name = "element-desktop-${version}";
- inherit version src;
packageJSON = ./element-desktop-package.json;
- yarnNix = ./element-desktop-yarndeps.nix;
+ offlineCache = fetchYarnDeps {
+ yarnLock = src + "/yarn.lock";
+ sha256 = pinData.desktopYarnHash;
+ };
nativeBuildInputs = [ makeWrapper ];
@@ -102,6 +104,8 @@ mkYarnPackage rec {
'';
};
+ passthru.updateScript = ./update.sh;
+
meta = with lib; {
description = "A feature-rich client for Matrix.org";
homepage = "https://element.io/";
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 05c5e732ced5..fae96e8e5e7a 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -1,9 +1,7 @@
{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
-# Note for maintainers:
-# Versions of `element-web` and `element-desktop` should be kept in sync.
-
let
+ pinData = lib.importJSON ./pin.json;
noPhoningHome = {
disable_guests = true; # disable automatic guest account registration at matrix.org
piwik = false; # disable analytics
@@ -12,11 +10,11 @@ let
in stdenv.mkDerivation rec {
pname = "element-web";
- version = "1.8.5";
+ inherit (pinData) version;
src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
- sha256 = "sha256-E3H6iXBRi4mnhu0mu96ly9f8AYOiMFf9zTcpjDmfHy4=";
+ sha256 = pinData.webHash;
};
installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
index f848601874a4..ae9627afe30d 100644
--- a/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
+++ b/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
@@ -1,15 +1,18 @@
{ lib, stdenv, fetchFromGitHub, nodejs-14_x, python3, callPackage
-, fixup_yarn_lock, yarn, pkg-config, libsecret, xcbuild, Security, AppKit }:
+, fixup_yarn_lock, yarn, pkg-config, libsecret, xcbuild, Security, AppKit, fetchYarnDeps }:
-stdenv.mkDerivation rec {
+let
+ pinData = lib.importJSON ./pin.json;
+
+in stdenv.mkDerivation rec {
pname = "keytar";
- version = "7.7.0";
+ inherit (pinData) version;
src = fetchFromGitHub {
owner = "atom";
repo = "node-keytar";
rev = "v${version}";
- sha256 = "0ajvr4kjbyw2shb1y14c0dsghdlnq30f19hk2sbzj6n9y3xa3pmi";
+ sha256 = pinData.srcHash;
};
nativeBuildInputs = [ nodejs-14_x python3 yarn pkg-config ]
@@ -19,7 +22,10 @@ stdenv.mkDerivation rec {
npm_config_nodedir = nodejs-14_x;
- yarnOfflineCache = (callPackage ./yarn.nix {}).offline_cache;
+ yarnOfflineCache = fetchYarnDeps {
+ yarnLock = ./yarn.lock;
+ sha256 = pinData.yarnHash;
+ };
buildPhase = ''
cp ${./yarn.lock} ./yarn.lock
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/pin.json b/pkgs/applications/networking/instant-messengers/element/keytar/pin.json
new file mode 100644
index 000000000000..fa2e95d4e1a0
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/keytar/pin.json
@@ -0,0 +1,5 @@
+{
+ "version": "7.7.0",
+ "srcHash": "sd6h+vDJGvmXFhOm4MDAljb4dAOMBB8W1IL7JSfJWyo=",
+ "yarnHash": "1m75hvl06mcj260hicbmv75p94h73gw5d24zpm5wxwc0q8v8wzfl"
+}
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/update.sh b/pkgs/applications/networking/instant-messengers/element/keytar/update.sh
index 11d986f4fdac..8ac65ea45d3e 100755
--- a/pkgs/applications/networking/instant-messengers/element/keytar/update.sh
+++ b/pkgs/applications/networking/instant-messengers/element/keytar/update.sh
@@ -1,19 +1,38 @@
#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../ -i bash -p wget yarn2nix yarn
+#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-yarn-deps yarn
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
- echo "Regenerates the Yarn dependency lock files."
- echo "Usage: $0 "
+if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
+ echo "Regenerates packaging data for the seshat package."
+ echo "Usage: $0 [git release tag]"
exit 1
fi
-SRC="https://raw.githubusercontent.com/atom/node-keytar/$1"
+version="$1"
+
+set -euo pipefail
+
+if [ -z "$version" ]; then
+ version="$(wget -O- "https://api.github.com/repos/atom/node-keytar/releases?per_page=1" | jq -r '.[0].tag_name')"
+fi
+
+# strip leading "v"
+version="${version#v}"
+
+SRC="https://raw.githubusercontent.com/atom/node-keytar/v$version"
wget "$SRC/package-lock.json"
wget "$SRC/package.json"
rm -f yarn.lock
yarn import
-yarn2nix > yarn.nix
rm -rf node_modules package.json package-lock.json
+yarn_hash=$(prefetch-yarn-deps yarn.lock)
+
+src_hash=$(nix-prefetch-github atom node-keytar --rev v${version} | jq -r .sha256)
+
+cat > pin.json << EOF
+{
+ "version": "$version",
+ "srcHash": "$src_hash",
+ "yarnHash": "$yarn_hash"
+}
+EOF
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/yarn.nix b/pkgs/applications/networking/instant-messengers/element/keytar/yarn.nix
deleted file mode 100644
index d6b1b99da84d..000000000000
--- a/pkgs/applications/networking/instant-messengers/element/keytar/yarn.nix
+++ /dev/null
@@ -1,2869 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
- offline_cache = linkFarm "offline" packages;
- packages = [
- {
- name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
- path = fetchurl {
- name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
- sha1 = "aa58042711d6e3275dd37dc597e5d31e8c290a44";
- };
- }
- {
- name = "abbrev___abbrev_1.1.0.tgz";
- path = fetchurl {
- name = "abbrev___abbrev_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz";
- sha1 = "d0554c2256636e2f56e7c2e5ad183f859428d81f";
- };
- }
- {
- name = "after___after_0.8.2.tgz";
- path = fetchurl {
- name = "after___after_0.8.2.tgz";
- url = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
- sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
- };
- }
- {
- name = "ajv___ajv_6.12.4.tgz";
- path = fetchurl {
- name = "ajv___ajv_6.12.4.tgz";
- url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz";
- sha1 = "0614facc4522127fa713445c6bfd3ebd376e2234";
- };
- }
- {
- name = "amdefine___amdefine_1.0.1.tgz";
- path = fetchurl {
- name = "amdefine___amdefine_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
- sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
- };
- }
- {
- name = "ansi_colors___ansi_colors_4.1.1.tgz";
- path = fetchurl {
- name = "ansi_colors___ansi_colors_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
- sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
- };
- }
- {
- name = "ansi_regex___ansi_regex_2.1.1.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
- sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
- };
- }
- {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
- sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
- };
- }
- {
- name = "ansi_styles___ansi_styles_2.2.1.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
- sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
- };
- }
- {
- name = "ansi_styles___ansi_styles_4.3.0.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
- sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
- };
- }
- {
- name = "ansi___ansi_0.3.1.tgz";
- path = fetchurl {
- name = "ansi___ansi_0.3.1.tgz";
- url = "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz";
- sha1 = "0c42d4fb17160d5a9af1e484bace1c66922c1b21";
- };
- }
- {
- name = "anymatch___anymatch_3.1.1.tgz";
- path = fetchurl {
- name = "anymatch___anymatch_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
- sha1 = "c55ecf02185e2469259399310c173ce31233b142";
- };
- }
- {
- name = "aproba___aproba_1.1.2.tgz";
- path = fetchurl {
- name = "aproba___aproba_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz";
- sha1 = "45c6629094de4e96f693ef7eab74ae079c240fc1";
- };
- }
- {
- name = "are_we_there_yet___are_we_there_yet_1.0.6.tgz";
- path = fetchurl {
- name = "are_we_there_yet___are_we_there_yet_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz";
- sha1 = "a2d28c93102aa6cc96245a26cb954de06ec53f0c";
- };
- }
- {
- name = "are_we_there_yet___are_we_there_yet_1.1.4.tgz";
- path = fetchurl {
- name = "are_we_there_yet___are_we_there_yet_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz";
- sha1 = "bb5dca382bb94f05e15194373d16fd3ba1ca110d";
- };
- }
- {
- name = "argparse___argparse_2.0.1.tgz";
- path = fetchurl {
- name = "argparse___argparse_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
- sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
- };
- }
- {
- name = "array_index___array_index_1.0.0.tgz";
- path = fetchurl {
- name = "array_index___array_index_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/array-index/-/array-index-1.0.0.tgz";
- sha1 = "ec56a749ee103e4e08c790b9c353df16055b97f9";
- };
- }
- {
- name = "asn1___asn1_0.2.3.tgz";
- path = fetchurl {
- name = "asn1___asn1_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz";
- sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
- };
- }
- {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- path = fetchurl {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
- sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
- };
- }
- {
- name = "assertion_error___assertion_error_1.1.0.tgz";
- path = fetchurl {
- name = "assertion_error___assertion_error_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz";
- sha1 = "e60b6b0e8f301bd97e5375215bda406c85118c0b";
- };
- }
- {
- name = "asynckit___asynckit_0.4.0.tgz";
- path = fetchurl {
- name = "asynckit___asynckit_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
- sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
- };
- }
- {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- path = fetchurl {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
- sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
- };
- }
- {
- name = "aws4___aws4_1.10.1.tgz";
- path = fetchurl {
- name = "aws4___aws4_1.10.1.tgz";
- url = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
- sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
- };
- }
- {
- name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
- path = fetchurl {
- name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
- url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
- sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
- };
- }
- {
- name = "babel_core___babel_core_6.26.3.tgz";
- path = fetchurl {
- name = "babel_core___babel_core_6.26.3.tgz";
- url = "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz";
- sha1 = "b2e2f09e342d0f0c88e2f02e067794125e75c207";
- };
- }
- {
- name = "babel_generator___babel_generator_6.26.1.tgz";
- path = fetchurl {
- name = "babel_generator___babel_generator_6.26.1.tgz";
- url = "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz";
- sha1 = "1844408d3b8f0d35a404ea7ac180f087a601bd90";
- };
- }
- {
- name = "babel_helper_function_name___babel_helper_function_name_6.24.1.tgz";
- path = fetchurl {
- name = "babel_helper_function_name___babel_helper_function_name_6.24.1.tgz";
- url = "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz";
- sha1 = "d3475b8c03ed98242a25b48351ab18399d3580a9";
- };
- }
- {
- name = "babel_helper_get_function_arity___babel_helper_get_function_arity_6.24.1.tgz";
- path = fetchurl {
- name = "babel_helper_get_function_arity___babel_helper_get_function_arity_6.24.1.tgz";
- url = "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz";
- sha1 = "8f7782aa93407c41d3aa50908f89b031b1b6853d";
- };
- }
- {
- name = "babel_helper_remap_async_to_generator___babel_helper_remap_async_to_generator_6.24.1.tgz";
- path = fetchurl {
- name = "babel_helper_remap_async_to_generator___babel_helper_remap_async_to_generator_6.24.1.tgz";
- url = "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz";
- sha1 = "5ec581827ad723fecdd381f1c928390676e4551b";
- };
- }
- {
- name = "babel_helpers___babel_helpers_6.24.1.tgz";
- path = fetchurl {
- name = "babel_helpers___babel_helpers_6.24.1.tgz";
- url = "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz";
- sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2";
- };
- }
- {
- name = "babel_messages___babel_messages_6.23.0.tgz";
- path = fetchurl {
- name = "babel_messages___babel_messages_6.23.0.tgz";
- url = "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz";
- sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e";
- };
- }
- {
- name = "babel_plugin_syntax_async_functions___babel_plugin_syntax_async_functions_6.13.0.tgz";
- path = fetchurl {
- name = "babel_plugin_syntax_async_functions___babel_plugin_syntax_async_functions_6.13.0.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz";
- sha1 = "cad9cad1191b5ad634bf30ae0872391e0647be95";
- };
- }
- {
- name = "babel_plugin_transform_async_to_generator___babel_plugin_transform_async_to_generator_6.24.1.tgz";
- path = fetchurl {
- name = "babel_plugin_transform_async_to_generator___babel_plugin_transform_async_to_generator_6.24.1.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz";
- sha1 = "6536e378aff6cb1d5517ac0e40eb3e9fc8d08761";
- };
- }
- {
- name = "babel_register___babel_register_6.26.0.tgz";
- path = fetchurl {
- name = "babel_register___babel_register_6.26.0.tgz";
- url = "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz";
- sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071";
- };
- }
- {
- name = "babel_runtime___babel_runtime_6.23.0.tgz";
- path = fetchurl {
- name = "babel_runtime___babel_runtime_6.23.0.tgz";
- url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz";
- sha1 = "0a9489f144de70efb3ce4300accdb329e2fc543b";
- };
- }
- {
- name = "babel_runtime___babel_runtime_6.26.0.tgz";
- path = fetchurl {
- name = "babel_runtime___babel_runtime_6.26.0.tgz";
- url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
- sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
- };
- }
- {
- name = "babel_template___babel_template_6.26.0.tgz";
- path = fetchurl {
- name = "babel_template___babel_template_6.26.0.tgz";
- url = "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz";
- sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02";
- };
- }
- {
- name = "babel_traverse___babel_traverse_6.26.0.tgz";
- path = fetchurl {
- name = "babel_traverse___babel_traverse_6.26.0.tgz";
- url = "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz";
- sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee";
- };
- }
- {
- name = "babel_types___babel_types_6.25.0.tgz";
- path = fetchurl {
- name = "babel_types___babel_types_6.25.0.tgz";
- url = "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz";
- sha1 = "70afb248d5660e5d18f811d91c8303b54134a18e";
- };
- }
- {
- name = "babel_types___babel_types_6.26.0.tgz";
- path = fetchurl {
- name = "babel_types___babel_types_6.26.0.tgz";
- url = "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz";
- sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
- };
- }
- {
- name = "babylon___babylon_6.18.0.tgz";
- path = fetchurl {
- name = "babylon___babylon_6.18.0.tgz";
- url = "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz";
- sha1 = "af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3";
- };
- }
- {
- name = "balanced_match___balanced_match_1.0.0.tgz";
- path = fetchurl {
- name = "balanced_match___balanced_match_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
- sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
- };
- }
- {
- name = "base64_js___base64_js_1.5.1.tgz";
- path = fetchurl {
- name = "base64_js___base64_js_1.5.1.tgz";
- url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz";
- sha1 = "1b1b440160a5bf7ad40b650f095963481903930a";
- };
- }
- {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- path = fetchurl {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
- sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
- };
- }
- {
- name = "big_integer___big_integer_1.6.48.tgz";
- path = fetchurl {
- name = "big_integer___big_integer_1.6.48.tgz";
- url = "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz";
- sha1 = "8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e";
- };
- }
- {
- name = "binary_extensions___binary_extensions_2.2.0.tgz";
- path = fetchurl {
- name = "binary_extensions___binary_extensions_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
- sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
- };
- }
- {
- name = "binary___binary_0.3.0.tgz";
- path = fetchurl {
- name = "binary___binary_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz";
- sha1 = "9f60553bc5ce8c3386f3b553cff47462adecaa79";
- };
- }
- {
- name = "bl___bl_4.0.3.tgz";
- path = fetchurl {
- name = "bl___bl_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
- sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
- };
- }
- {
- name = "bl___bl_3.0.1.tgz";
- path = fetchurl {
- name = "bl___bl_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/bl/-/bl-3.0.1.tgz";
- sha1 = "1cbb439299609e419b5a74d7fce2f8b37d8e5c6f";
- };
- }
- {
- name = "block_stream___block_stream_0.0.9.tgz";
- path = fetchurl {
- name = "block_stream___block_stream_0.0.9.tgz";
- url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
- sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
- };
- }
- {
- name = "bluebird___bluebird_3.7.2.tgz";
- path = fetchurl {
- name = "bluebird___bluebird_3.7.2.tgz";
- url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
- sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
- };
- }
- {
- name = "bluebird___bluebird_3.4.7.tgz";
- path = fetchurl {
- name = "bluebird___bluebird_3.4.7.tgz";
- url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz";
- sha1 = "f72d760be09b7f76d08ed8fae98b289a8d05fab3";
- };
- }
- {
- name = "brace_expansion___brace_expansion_1.1.8.tgz";
- path = fetchurl {
- name = "brace_expansion___brace_expansion_1.1.8.tgz";
- url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz";
- sha1 = "c07b211c7c952ec1f8efd51a77ef0d1d3990a292";
- };
- }
- {
- name = "braces___braces_3.0.2.tgz";
- path = fetchurl {
- name = "braces___braces_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
- sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
- };
- }
- {
- name = "browser_stdout___browser_stdout_1.3.1.tgz";
- path = fetchurl {
- name = "browser_stdout___browser_stdout_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz";
- sha1 = "baa559ee14ced73452229bad7326467c61fabd60";
- };
- }
- {
- name = "buffer_from___buffer_from_0.1.2.tgz";
- path = fetchurl {
- name = "buffer_from___buffer_from_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz";
- sha1 = "15f4b9bcef012044df31142c14333caf6e0260d0";
- };
- }
- {
- name = "buffer_indexof_polyfill___buffer_indexof_polyfill_1.0.2.tgz";
- path = fetchurl {
- name = "buffer_indexof_polyfill___buffer_indexof_polyfill_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz";
- sha1 = "d2732135c5999c64b277fcf9b1abe3498254729c";
- };
- }
- {
- name = "buffer_shims___buffer_shims_1.0.0.tgz";
- path = fetchurl {
- name = "buffer_shims___buffer_shims_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz";
- sha1 = "9978ce317388c649ad8793028c3477ef044a8b51";
- };
- }
- {
- name = "buffer___buffer_5.7.1.tgz";
- path = fetchurl {
- name = "buffer___buffer_5.7.1.tgz";
- url = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz";
- sha1 = "ba62e7c13133053582197160851a8f648e99eed0";
- };
- }
- {
- name = "buffers___buffers_0.1.1.tgz";
- path = fetchurl {
- name = "buffers___buffers_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz";
- sha1 = "b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb";
- };
- }
- {
- name = "camelcase___camelcase_2.1.1.tgz";
- path = fetchurl {
- name = "camelcase___camelcase_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz";
- sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
- };
- }
- {
- name = "camelcase___camelcase_6.2.0.tgz";
- path = fetchurl {
- name = "camelcase___camelcase_6.2.0.tgz";
- url = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz";
- sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809";
- };
- }
- {
- name = "caseless___caseless_0.12.0.tgz";
- path = fetchurl {
- name = "caseless___caseless_0.12.0.tgz";
- url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
- sha1 = "1b681c21ff84033c826543090689420d187151dc";
- };
- }
- {
- name = "chai___chai_4.3.4.tgz";
- path = fetchurl {
- name = "chai___chai_4.3.4.tgz";
- url = "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz";
- sha1 = "b55e655b31e1eac7099be4c08c21964fce2e6c49";
- };
- }
- {
- name = "chainsaw___chainsaw_0.1.0.tgz";
- path = fetchurl {
- name = "chainsaw___chainsaw_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz";
- sha1 = "5eab50b28afe58074d0d58291388828b5e5fbc98";
- };
- }
- {
- name = "chalk___chalk_1.1.3.tgz";
- path = fetchurl {
- name = "chalk___chalk_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
- sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
- };
- }
- {
- name = "chalk___chalk_4.1.0.tgz";
- path = fetchurl {
- name = "chalk___chalk_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
- sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
- };
- }
- {
- name = "check_error___check_error_1.0.2.tgz";
- path = fetchurl {
- name = "check_error___check_error_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz";
- sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
- };
- }
- {
- name = "chokidar___chokidar_3.5.1.tgz";
- path = fetchurl {
- name = "chokidar___chokidar_3.5.1.tgz";
- url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
- sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
- };
- }
- {
- name = "chownr___chownr_1.1.4.tgz";
- path = fetchurl {
- name = "chownr___chownr_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
- sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
- };
- }
- {
- name = "chownr___chownr_2.0.0.tgz";
- path = fetchurl {
- name = "chownr___chownr_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
- sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece";
- };
- }
- {
- name = "cliui___cliui_3.2.0.tgz";
- path = fetchurl {
- name = "cliui___cliui_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
- sha1 = "120601537a916d29940f934da3b48d585a39213d";
- };
- }
- {
- name = "cliui___cliui_7.0.4.tgz";
- path = fetchurl {
- name = "cliui___cliui_7.0.4.tgz";
- url = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz";
- sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f";
- };
- }
- {
- name = "cmake_js___cmake_js_5.2.0.tgz";
- path = fetchurl {
- name = "cmake_js___cmake_js_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/cmake-js/-/cmake-js-5.2.0.tgz";
- sha1 = "6d72014269a5d23a754a6d170cde9ed2d75eb411";
- };
- }
- {
- name = "code_point_at___code_point_at_1.1.0.tgz";
- path = fetchurl {
- name = "code_point_at___code_point_at_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
- sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
- };
- }
- {
- name = "color_convert___color_convert_2.0.1.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
- sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
- };
- }
- {
- name = "color_name___color_name_1.1.4.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
- sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
- };
- }
- {
- name = "colors___colors_0.6.2.tgz";
- path = fetchurl {
- name = "colors___colors_0.6.2.tgz";
- url = "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz";
- sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
- };
- }
- {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- path = fetchurl {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
- sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
- };
- }
- {
- name = "commander___commander_2.9.0.tgz";
- path = fetchurl {
- name = "commander___commander_2.9.0.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
- sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
- };
- }
- {
- name = "commander___commander_2.2.0.tgz";
- path = fetchurl {
- name = "commander___commander_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-2.2.0.tgz";
- sha1 = "175ad4b9317f3ff615f201c1e57224f55a3e91df";
- };
- }
- {
- name = "concat_map___concat_map_0.0.1.tgz";
- path = fetchurl {
- name = "concat_map___concat_map_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
- sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
- };
- }
- {
- name = "console_control_strings___console_control_strings_1.1.0.tgz";
- path = fetchurl {
- name = "console_control_strings___console_control_strings_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
- sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
- };
- }
- {
- name = "convert_source_map___convert_source_map_1.5.1.tgz";
- path = fetchurl {
- name = "convert_source_map___convert_source_map_1.5.1.tgz";
- url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz";
- sha1 = "b8278097b9bc229365de5c62cf5fcaed8b5599e5";
- };
- }
- {
- name = "core_js___core_js_2.4.1.tgz";
- path = fetchurl {
- name = "core_js___core_js_2.4.1.tgz";
- url = "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz";
- sha1 = "4de911e667b0eae9124e34254b53aea6fc618d3e";
- };
- }
- {
- name = "core_js___core_js_2.5.7.tgz";
- path = fetchurl {
- name = "core_js___core_js_2.5.7.tgz";
- url = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz";
- sha1 = "f972608ff0cead68b841a16a932d0b183791814e";
- };
- }
- {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- path = fetchurl {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
- sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
- };
- }
- {
- name = "d___d_1.0.1.tgz";
- path = fetchurl {
- name = "d___d_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz";
- sha1 = "8698095372d58dbee346ffd0c7093f99f8f9eb5a";
- };
- }
- {
- name = "dashdash___dashdash_1.14.1.tgz";
- path = fetchurl {
- name = "dashdash___dashdash_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
- sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
- };
- }
- {
- name = "debug___debug_4.3.1.tgz";
- path = fetchurl {
- name = "debug___debug_4.3.1.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
- sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
- };
- }
- {
- name = "debug___debug_2.6.9.tgz";
- path = fetchurl {
- name = "debug___debug_2.6.9.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
- sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
- };
- }
- {
- name = "debug___debug_4.2.0.tgz";
- path = fetchurl {
- name = "debug___debug_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
- sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
- };
- }
- {
- name = "decamelize___decamelize_1.2.0.tgz";
- path = fetchurl {
- name = "decamelize___decamelize_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
- sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
- };
- }
- {
- name = "decamelize___decamelize_4.0.0.tgz";
- path = fetchurl {
- name = "decamelize___decamelize_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz";
- sha1 = "aa472d7bf660eb15f3494efd531cab7f2a709837";
- };
- }
- {
- name = "decompress_response___decompress_response_4.2.1.tgz";
- path = fetchurl {
- name = "decompress_response___decompress_response_4.2.1.tgz";
- url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz";
- sha1 = "414023cc7a302da25ce2ec82d0d5238ccafd8986";
- };
- }
- {
- name = "deep_eql___deep_eql_3.0.1.tgz";
- path = fetchurl {
- name = "deep_eql___deep_eql_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz";
- sha1 = "dfc9404400ad1c8fe023e7da1df1c147c4b444df";
- };
- }
- {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- path = fetchurl {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
- sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
- };
- }
- {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- path = fetchurl {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
- sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
- };
- }
- {
- name = "delegates___delegates_1.0.0.tgz";
- path = fetchurl {
- name = "delegates___delegates_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
- sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
- };
- }
- {
- name = "detect_indent___detect_indent_4.0.0.tgz";
- path = fetchurl {
- name = "detect_indent___detect_indent_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz";
- sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208";
- };
- }
- {
- name = "detect_libc___detect_libc_1.0.3.tgz";
- path = fetchurl {
- name = "detect_libc___detect_libc_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
- sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
- };
- }
- {
- name = "diff___diff_5.0.0.tgz";
- path = fetchurl {
- name = "diff___diff_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz";
- sha1 = "7ed6ad76d859d030787ec35855f5b1daf31d852b";
- };
- }
- {
- name = "duplexer2___duplexer2_0.0.2.tgz";
- path = fetchurl {
- name = "duplexer2___duplexer2_0.0.2.tgz";
- url = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz";
- sha1 = "c614dcf67e2fb14995a91711e5a617e8a60a31db";
- };
- }
- {
- name = "duplexer2___duplexer2_0.1.4.tgz";
- path = fetchurl {
- name = "duplexer2___duplexer2_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz";
- sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
- };
- }
- {
- name = "each_series_async___each_series_async_1.0.1.tgz";
- path = fetchurl {
- name = "each_series_async___each_series_async_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/each-series-async/-/each-series-async-1.0.1.tgz";
- sha1 = "7e3f8dfa5af934663960e5a17561362909b34328";
- };
- }
- {
- name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz";
- path = fetchurl {
- name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
- sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
- };
- }
- {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
- sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
- };
- }
- {
- name = "end_of_stream___end_of_stream_1.4.4.tgz";
- path = fetchurl {
- name = "end_of_stream___end_of_stream_1.4.4.tgz";
- url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
- sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
- };
- }
- {
- name = "env_paths___env_paths_2.2.0.tgz";
- path = fetchurl {
- name = "env_paths___env_paths_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz";
- sha1 = "cdca557dc009152917d6166e2febe1f039685e43";
- };
- }
- {
- name = "es5_ext___es5_ext_0.10.53.tgz";
- path = fetchurl {
- name = "es5_ext___es5_ext_0.10.53.tgz";
- url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz";
- sha1 = "93c5a3acfdbef275220ad72644ad02ee18368de1";
- };
- }
- {
- name = "es6_iterator___es6_iterator_2.0.3.tgz";
- path = fetchurl {
- name = "es6_iterator___es6_iterator_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
- sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
- };
- }
- {
- name = "es6_symbol___es6_symbol_3.1.3.tgz";
- path = fetchurl {
- name = "es6_symbol___es6_symbol_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz";
- sha1 = "bad5d3c1bcdac28269f4cb331e431c78ac705d18";
- };
- }
- {
- name = "escalade___escalade_3.1.1.tgz";
- path = fetchurl {
- name = "escalade___escalade_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
- sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
- sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
- sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
- };
- }
- {
- name = "esutils___esutils_2.0.2.tgz";
- path = fetchurl {
- name = "esutils___esutils_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
- sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
- };
- }
- {
- name = "execspawn___execspawn_1.0.1.tgz";
- path = fetchurl {
- name = "execspawn___execspawn_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/execspawn/-/execspawn-1.0.1.tgz";
- sha1 = "8286f9dde7cecde7905fbdc04e24f368f23f8da6";
- };
- }
- {
- name = "expand_template___expand_template_2.0.3.tgz";
- path = fetchurl {
- name = "expand_template___expand_template_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz";
- sha1 = "6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
- };
- }
- {
- name = "ext___ext_1.4.0.tgz";
- path = fetchurl {
- name = "ext___ext_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz";
- sha1 = "89ae7a07158f79d35517882904324077e4379244";
- };
- }
- {
- name = "extend___extend_3.0.2.tgz";
- path = fetchurl {
- name = "extend___extend_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
- sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
- };
- }
- {
- name = "extsprintf___extsprintf_1.0.2.tgz";
- path = fetchurl {
- name = "extsprintf___extsprintf_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz";
- sha1 = "e1080e0658e300b06294990cc70e1502235fd550";
- };
- }
- {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- path = fetchurl {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
- sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
- };
- }
- {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
- path = fetchurl {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
- sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
- };
- }
- {
- name = "fill_range___fill_range_7.0.1.tgz";
- path = fetchurl {
- name = "fill_range___fill_range_7.0.1.tgz";
- url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
- sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
- };
- }
- {
- name = "find_up___find_up_5.0.0.tgz";
- path = fetchurl {
- name = "find_up___find_up_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz";
- sha1 = "4c92819ecb7083561e4f4a240a86be5198f536fc";
- };
- }
- {
- name = "flat___flat_5.0.2.tgz";
- path = fetchurl {
- name = "flat___flat_5.0.2.tgz";
- url = "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz";
- sha1 = "8ca6fe332069ffa9d324c327198c598259ceb241";
- };
- }
- {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- path = fetchurl {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
- sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
- };
- }
- {
- name = "form_data___form_data_2.3.3.tgz";
- path = fetchurl {
- name = "form_data___form_data_2.3.3.tgz";
- url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
- sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
- };
- }
- {
- name = "fs_constants___fs_constants_1.0.0.tgz";
- path = fetchurl {
- name = "fs_constants___fs_constants_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
- sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
- };
- }
- {
- name = "fs_extra___fs_extra_5.0.0.tgz";
- path = fetchurl {
- name = "fs_extra___fs_extra_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz";
- sha1 = "414d0110cdd06705734d055652c5411260c31abd";
- };
- }
- {
- name = "fs_minipass___fs_minipass_1.2.7.tgz";
- path = fetchurl {
- name = "fs_minipass___fs_minipass_1.2.7.tgz";
- url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz";
- sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7";
- };
- }
- {
- name = "fs_minipass___fs_minipass_2.1.0.tgz";
- path = fetchurl {
- name = "fs_minipass___fs_minipass_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz";
- sha1 = "7f5036fdbf12c63c169190cbe4199c852271f9fb";
- };
- }
- {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- path = fetchurl {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
- sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
- };
- }
- {
- name = "fsevents___fsevents_2.3.2.tgz";
- path = fetchurl {
- name = "fsevents___fsevents_2.3.2.tgz";
- url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
- sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
- };
- }
- {
- name = "fstream___fstream_1.0.12.tgz";
- path = fetchurl {
- name = "fstream___fstream_1.0.12.tgz";
- url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz";
- sha1 = "4e8ba8ee2d48be4f7d0de505455548eae5932045";
- };
- }
- {
- name = "gauge___gauge_1.2.7.tgz";
- path = fetchurl {
- name = "gauge___gauge_1.2.7.tgz";
- url = "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz";
- sha1 = "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93";
- };
- }
- {
- name = "gauge___gauge_2.7.4.tgz";
- path = fetchurl {
- name = "gauge___gauge_2.7.4.tgz";
- url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
- sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
- };
- }
- {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- path = fetchurl {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
- sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
- };
- }
- {
- name = "get_func_name___get_func_name_2.0.0.tgz";
- path = fetchurl {
- name = "get_func_name___get_func_name_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz";
- sha1 = "ead774abee72e20409433a066366023dd6887a41";
- };
- }
- {
- name = "getpass___getpass_0.1.7.tgz";
- path = fetchurl {
- name = "getpass___getpass_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
- sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
- };
- }
- {
- name = "ghreleases___ghreleases_3.0.2.tgz";
- path = fetchurl {
- name = "ghreleases___ghreleases_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/ghreleases/-/ghreleases-3.0.2.tgz";
- sha1 = "1bdb6d31ec03a24a0d80f58f5e9a84a4db725818";
- };
- }
- {
- name = "ghrepos___ghrepos_2.1.0.tgz";
- path = fetchurl {
- name = "ghrepos___ghrepos_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/ghrepos/-/ghrepos-2.1.0.tgz";
- sha1 = "abaf558b690b722c70c7ad45076f6f9be8e495e1";
- };
- }
- {
- name = "ghutils___ghutils_3.2.6.tgz";
- path = fetchurl {
- name = "ghutils___ghutils_3.2.6.tgz";
- url = "https://registry.yarnpkg.com/ghutils/-/ghutils-3.2.6.tgz";
- sha1 = "d43986e267da02787464d97a6489659e4609bb1f";
- };
- }
- {
- name = "github_from_package___github_from_package_0.0.0.tgz";
- path = fetchurl {
- name = "github_from_package___github_from_package_0.0.0.tgz";
- url = "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz";
- sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
- };
- }
- {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- path = fetchurl {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
- sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
- };
- }
- {
- name = "glob___glob_7.1.6.tgz";
- path = fetchurl {
- name = "glob___glob_7.1.6.tgz";
- url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
- sha1 = "141f33b81a7c2492e125594307480c46679278a6";
- };
- }
- {
- name = "glob___glob_5.0.15.tgz";
- path = fetchurl {
- name = "glob___glob_5.0.15.tgz";
- url = "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz";
- sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1";
- };
- }
- {
- name = "globals___globals_9.18.0.tgz";
- path = fetchurl {
- name = "globals___globals_9.18.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz";
- sha1 = "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a";
- };
- }
- {
- name = "graceful_fs___graceful_fs_4.2.3.tgz";
- path = fetchurl {
- name = "graceful_fs___graceful_fs_4.2.3.tgz";
- url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
- sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
- };
- }
- {
- name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
- path = fetchurl {
- name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
- sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
- };
- }
- {
- name = "growl___growl_1.10.5.tgz";
- path = fetchurl {
- name = "growl___growl_1.10.5.tgz";
- url = "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz";
- sha1 = "f2735dc2283674fa67478b10181059355c369e5e";
- };
- }
- {
- name = "har_schema___har_schema_2.0.0.tgz";
- path = fetchurl {
- name = "har_schema___har_schema_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
- sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
- };
- }
- {
- name = "har_validator___har_validator_5.1.5.tgz";
- path = fetchurl {
- name = "har_validator___har_validator_5.1.5.tgz";
- url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
- sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
- };
- }
- {
- name = "has_ansi___has_ansi_2.0.0.tgz";
- path = fetchurl {
- name = "has_ansi___has_ansi_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
- sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
- };
- }
- {
- name = "has_flag___has_flag_4.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
- sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
- };
- }
- {
- name = "has_unicode___has_unicode_2.0.1.tgz";
- path = fetchurl {
- name = "has_unicode___has_unicode_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
- sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
- };
- }
- {
- name = "he___he_1.2.0.tgz";
- path = fetchurl {
- name = "he___he_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
- sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
- };
- }
- {
- name = "home_or_tmp___home_or_tmp_2.0.0.tgz";
- path = fetchurl {
- name = "home_or_tmp___home_or_tmp_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz";
- sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8";
- };
- }
- {
- name = "http_signature___http_signature_1.2.0.tgz";
- path = fetchurl {
- name = "http_signature___http_signature_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
- sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
- };
- }
- {
- name = "hyperquest___hyperquest_2.1.3.tgz";
- path = fetchurl {
- name = "hyperquest___hyperquest_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/hyperquest/-/hyperquest-2.1.3.tgz";
- sha1 = "523127d7a343181b40bf324e231d2576edf52633";
- };
- }
- {
- name = "ieee754___ieee754_1.2.1.tgz";
- path = fetchurl {
- name = "ieee754___ieee754_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
- sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
- };
- }
- {
- name = "inflight___inflight_1.0.6.tgz";
- path = fetchurl {
- name = "inflight___inflight_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
- sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
- };
- }
- {
- name = "inherits___inherits_2.0.3.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
- sha1 = "633c2c83e3da42a502f52466022480f4208261de";
- };
- }
- {
- name = "inherits___inherits_2.0.4.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
- sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
- };
- }
- {
- name = "ini___ini_1.3.7.tgz";
- path = fetchurl {
- name = "ini___ini_1.3.7.tgz";
- url = "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz";
- sha1 = "a09363e1911972ea16d7a8851005d84cf09a9a84";
- };
- }
- {
- name = "invariant___invariant_2.2.2.tgz";
- path = fetchurl {
- name = "invariant___invariant_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz";
- sha1 = "9e1f56ac0acdb6bf303306f338be3b204ae60360";
- };
- }
- {
- name = "invert_kv___invert_kv_1.0.0.tgz";
- path = fetchurl {
- name = "invert_kv___invert_kv_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
- sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
- };
- }
- {
- name = "is_binary_path___is_binary_path_2.1.0.tgz";
- path = fetchurl {
- name = "is_binary_path___is_binary_path_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
- sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
- };
- }
- {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- path = fetchurl {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
- sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
- };
- }
- {
- name = "is_finite___is_finite_1.0.2.tgz";
- path = fetchurl {
- name = "is_finite___is_finite_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz";
- sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
- sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
- sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
- };
- }
- {
- name = "is_glob___is_glob_4.0.1.tgz";
- path = fetchurl {
- name = "is_glob___is_glob_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
- sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
- };
- }
- {
- name = "is_iojs___is_iojs_1.1.0.tgz";
- path = fetchurl {
- name = "is_iojs___is_iojs_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-iojs/-/is-iojs-1.1.0.tgz";
- sha1 = "4c11033b5d5d94d6eab3775dedc9be7d008325f1";
- };
- }
- {
- name = "is_number___is_number_7.0.0.tgz";
- path = fetchurl {
- name = "is_number___is_number_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
- sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
- };
- }
- {
- name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
- path = fetchurl {
- name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
- sha1 = "45e42e37fccf1f40da8e5f76ee21515840c09287";
- };
- }
- {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- path = fetchurl {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
- sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
- };
- }
- {
- name = "isarray___isarray_0.0.1.tgz";
- path = fetchurl {
- name = "isarray___isarray_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
- sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
- };
- }
- {
- name = "isarray___isarray_1.0.0.tgz";
- path = fetchurl {
- name = "isarray___isarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
- sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
- };
- }
- {
- name = "isexe___isexe_2.0.0.tgz";
- path = fetchurl {
- name = "isexe___isexe_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
- sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
- };
- }
- {
- name = "isstream___isstream_0.1.2.tgz";
- path = fetchurl {
- name = "isstream___isstream_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
- sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
- };
- }
- {
- name = "js_tokens___js_tokens_3.0.2.tgz";
- path = fetchurl {
- name = "js_tokens___js_tokens_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
- sha1 = "9866df395102130e38f7f996bceb65443209c25b";
- };
- }
- {
- name = "js_yaml___js_yaml_4.0.0.tgz";
- path = fetchurl {
- name = "js_yaml___js_yaml_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz";
- sha1 = "f426bc0ff4b4051926cd588c71113183409a121f";
- };
- }
- {
- name = "jsbn___jsbn_0.1.1.tgz";
- path = fetchurl {
- name = "jsbn___jsbn_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
- sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
- };
- }
- {
- name = "jsesc___jsesc_1.3.0.tgz";
- path = fetchurl {
- name = "jsesc___jsesc_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz";
- sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
- };
- }
- {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- path = fetchurl {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
- sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
- };
- }
- {
- name = "json_schema___json_schema_0.2.3.tgz";
- path = fetchurl {
- name = "json_schema___json_schema_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
- sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
- };
- }
- {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- path = fetchurl {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
- sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
- };
- }
- {
- name = "json5___json5_0.5.1.tgz";
- path = fetchurl {
- name = "json5___json5_0.5.1.tgz";
- url = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz";
- sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
- };
- }
- {
- name = "jsonfile___jsonfile_4.0.0.tgz";
- path = fetchurl {
- name = "jsonfile___jsonfile_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
- sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
- };
- }
- {
- name = "jsonist___jsonist_2.1.2.tgz";
- path = fetchurl {
- name = "jsonist___jsonist_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/jsonist/-/jsonist-2.1.2.tgz";
- sha1 = "c1377311e8fc857abe7aa3df197116a911f95324";
- };
- }
- {
- name = "jsprim___jsprim_1.4.0.tgz";
- path = fetchurl {
- name = "jsprim___jsprim_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz";
- sha1 = "a3b87e40298d8c380552d8cc7628a0bb95a22918";
- };
- }
- {
- name = "lcid___lcid_1.0.0.tgz";
- path = fetchurl {
- name = "lcid___lcid_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
- sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
- };
- }
- {
- name = "listenercount___listenercount_1.0.1.tgz";
- path = fetchurl {
- name = "listenercount___listenercount_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz";
- sha1 = "84c8a72ab59c4725321480c975e6508342e70937";
- };
- }
- {
- name = "locate_path___locate_path_6.0.0.tgz";
- path = fetchurl {
- name = "locate_path___locate_path_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz";
- sha1 = "55321eb309febbc59c4801d931a72452a681d286";
- };
- }
- {
- name = "lodash.pad___lodash.pad_4.5.1.tgz";
- path = fetchurl {
- name = "lodash.pad___lodash.pad_4.5.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz";
- sha1 = "4330949a833a7c8da22cc20f6a26c4d59debba70";
- };
- }
- {
- name = "lodash.padend___lodash.padend_4.6.1.tgz";
- path = fetchurl {
- name = "lodash.padend___lodash.padend_4.6.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz";
- sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e";
- };
- }
- {
- name = "lodash.padstart___lodash.padstart_4.6.1.tgz";
- path = fetchurl {
- name = "lodash.padstart___lodash.padstart_4.6.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz";
- sha1 = "d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b";
- };
- }
- {
- name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
- sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
- };
- }
- {
- name = "lodash___lodash_4.17.19.tgz";
- path = fetchurl {
- name = "lodash___lodash_4.17.19.tgz";
- url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
- sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
- };
- }
- {
- name = "log_symbols___log_symbols_4.0.0.tgz";
- path = fetchurl {
- name = "log_symbols___log_symbols_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
- sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
- };
- }
- {
- name = "loose_envify___loose_envify_1.3.1.tgz";
- path = fetchurl {
- name = "loose_envify___loose_envify_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz";
- sha1 = "d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848";
- };
- }
- {
- name = "memory_stream___memory_stream_0.0.3.tgz";
- path = fetchurl {
- name = "memory_stream___memory_stream_0.0.3.tgz";
- url = "https://registry.yarnpkg.com/memory-stream/-/memory-stream-0.0.3.tgz";
- sha1 = "ebe8dd1c3b8bc38c0e7941e9ddd5aebe6b4de83f";
- };
- }
- {
- name = "mime_db___mime_db_1.44.0.tgz";
- path = fetchurl {
- name = "mime_db___mime_db_1.44.0.tgz";
- url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
- sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
- };
- }
- {
- name = "mime_types___mime_types_2.1.27.tgz";
- path = fetchurl {
- name = "mime_types___mime_types_2.1.27.tgz";
- url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
- sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
- };
- }
- {
- name = "mimic_response___mimic_response_2.1.0.tgz";
- path = fetchurl {
- name = "mimic_response___mimic_response_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz";
- sha1 = "d13763d35f613d09ec37ebb30bac0469c0ee8f43";
- };
- }
- {
- name = "minimatch___minimatch_3.0.4.tgz";
- path = fetchurl {
- name = "minimatch___minimatch_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
- sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
- };
- }
- {
- name = "minimist___minimist_1.2.5.tgz";
- path = fetchurl {
- name = "minimist___minimist_1.2.5.tgz";
- url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
- sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
- };
- }
- {
- name = "minipass___minipass_2.9.0.tgz";
- path = fetchurl {
- name = "minipass___minipass_2.9.0.tgz";
- url = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz";
- sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6";
- };
- }
- {
- name = "minipass___minipass_3.1.3.tgz";
- path = fetchurl {
- name = "minipass___minipass_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz";
- sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd";
- };
- }
- {
- name = "minizlib___minizlib_1.3.3.tgz";
- path = fetchurl {
- name = "minizlib___minizlib_1.3.3.tgz";
- url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz";
- sha1 = "2290de96818a34c29551c8a8d301216bd65a861d";
- };
- }
- {
- name = "minizlib___minizlib_2.1.2.tgz";
- path = fetchurl {
- name = "minizlib___minizlib_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
- sha1 = "e90d3466ba209b932451508a11ce3d3632145931";
- };
- }
- {
- name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
- path = fetchurl {
- name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
- sha1 = "fa10c9115cc6d8865be221ba47ee9bed78601113";
- };
- }
- {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
- sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
- };
- }
- {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
- sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
- };
- }
- {
- name = "mocha___mocha_8.3.2.tgz";
- path = fetchurl {
- name = "mocha___mocha_8.3.2.tgz";
- url = "https://registry.yarnpkg.com/mocha/-/mocha-8.3.2.tgz";
- sha1 = "53406f195fa86fbdebe71f8b1c6fb23221d69fcc";
- };
- }
- {
- name = "ms___ms_2.0.0.tgz";
- path = fetchurl {
- name = "ms___ms_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
- sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
- };
- }
- {
- name = "ms___ms_2.1.2.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
- sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
- };
- }
- {
- name = "ms___ms_2.1.3.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
- sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
- };
- }
- {
- name = "nanoid___nanoid_3.1.20.tgz";
- path = fetchurl {
- name = "nanoid___nanoid_3.1.20.tgz";
- url = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz";
- sha1 = "badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788";
- };
- }
- {
- name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
- path = fetchurl {
- name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
- sha1 = "b1fddc0b2c46e380a0b7a76f984dd47c41a13806";
- };
- }
- {
- name = "next_tick___next_tick_1.0.0.tgz";
- path = fetchurl {
- name = "next_tick___next_tick_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
- sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
- };
- }
- {
- name = "node_abi___node_abi_2.21.0.tgz";
- path = fetchurl {
- name = "node_abi___node_abi_2.21.0.tgz";
- url = "https://registry.yarnpkg.com/node-abi/-/node-abi-2.21.0.tgz";
- sha1 = "c2dc9ebad6f4f53d6ea9b531e7b8faad81041d48";
- };
- }
- {
- name = "node_addon_api___node_addon_api_3.1.0.tgz";
- path = fetchurl {
- name = "node_addon_api___node_addon_api_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz";
- sha1 = "98b21931557466c6729e51cb77cd39c965f42239";
- };
- }
- {
- name = "node_cpplint___node_cpplint_0.4.0.tgz";
- path = fetchurl {
- name = "node_cpplint___node_cpplint_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/node-cpplint/-/node-cpplint-0.4.0.tgz";
- sha1 = "35827fe7b95ccceff0cd7f46ede4cba44b8ef88c";
- };
- }
- {
- name = "node_gyp___node_gyp_6.1.0.tgz";
- path = fetchurl {
- name = "node_gyp___node_gyp_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-6.1.0.tgz";
- sha1 = "64e31c61a4695ad304c1d5b82cf6b7c79cc79f3f";
- };
- }
- {
- name = "node_gyp___node_gyp_7.1.2.tgz";
- path = fetchurl {
- name = "node_gyp___node_gyp_7.1.2.tgz";
- url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz";
- sha1 = "21a810aebb187120251c3bcec979af1587b188ae";
- };
- }
- {
- name = "node_ninja___node_ninja_1.0.2.tgz";
- path = fetchurl {
- name = "node_ninja___node_ninja_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/node-ninja/-/node-ninja-1.0.2.tgz";
- sha1 = "20a09e57b92e2df591993d4bf098ac3e727062b6";
- };
- }
- {
- name = "noop_logger___noop_logger_0.1.1.tgz";
- path = fetchurl {
- name = "noop_logger___noop_logger_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz";
- sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
- };
- }
- {
- name = "nopt___nopt_3.0.6.tgz";
- path = fetchurl {
- name = "nopt___nopt_3.0.6.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
- sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
- };
- }
- {
- name = "nopt___nopt_4.0.3.tgz";
- path = fetchurl {
- name = "nopt___nopt_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
- sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
- };
- }
- {
- name = "nopt___nopt_5.0.0.tgz";
- path = fetchurl {
- name = "nopt___nopt_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz";
- sha1 = "530942bb58a512fccafe53fe210f13a25355dc88";
- };
- }
- {
- name = "normalize_path___normalize_path_3.0.0.tgz";
- path = fetchurl {
- name = "normalize_path___normalize_path_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
- sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
- };
- }
- {
- name = "npm_path___npm_path_2.0.4.tgz";
- path = fetchurl {
- name = "npm_path___npm_path_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz";
- sha1 = "c641347a5ff9d6a09e4d9bce5580c4f505278e64";
- };
- }
- {
- name = "npm_which___npm_which_3.0.1.tgz";
- path = fetchurl {
- name = "npm_which___npm_which_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz";
- sha1 = "9225f26ec3a285c209cae67c3b11a6b4ab7140aa";
- };
- }
- {
- name = "npmlog___npmlog_2.0.4.tgz";
- path = fetchurl {
- name = "npmlog___npmlog_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz";
- sha1 = "98b52530f2514ca90d09ec5b22c8846722375692";
- };
- }
- {
- name = "npmlog___npmlog_4.1.2.tgz";
- path = fetchurl {
- name = "npmlog___npmlog_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
- sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
- };
- }
- {
- name = "npmlog___npmlog_1.2.1.tgz";
- path = fetchurl {
- name = "npmlog___npmlog_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/npmlog/-/npmlog-1.2.1.tgz";
- sha1 = "28e7be619609b53f7ad1dd300a10d64d716268b6";
- };
- }
- {
- name = "number_is_nan___number_is_nan_1.0.1.tgz";
- path = fetchurl {
- name = "number_is_nan___number_is_nan_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
- sha1 = "097b602b53422a522c1afb8790318336941a011d";
- };
- }
- {
- name = "nw_gyp___nw_gyp_3.6.5.tgz";
- path = fetchurl {
- name = "nw_gyp___nw_gyp_3.6.5.tgz";
- url = "https://registry.yarnpkg.com/nw-gyp/-/nw-gyp-3.6.5.tgz";
- sha1 = "ccce42182229e44e7689da70675b4b8dd0ab0ab3";
- };
- }
- {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- path = fetchurl {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
- sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
- };
- }
- {
- name = "object_assign___object_assign_4.1.1.tgz";
- path = fetchurl {
- name = "object_assign___object_assign_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
- sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
- };
- }
- {
- name = "once___once_1.4.0.tgz";
- path = fetchurl {
- name = "once___once_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
- sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
- };
- }
- {
- name = "os_homedir___os_homedir_1.0.2.tgz";
- path = fetchurl {
- name = "os_homedir___os_homedir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
- sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
- };
- }
- {
- name = "os_locale___os_locale_1.4.0.tgz";
- path = fetchurl {
- name = "os_locale___os_locale_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz";
- sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
- };
- }
- {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- path = fetchurl {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
- sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
- };
- }
- {
- name = "osenv___osenv_0.1.5.tgz";
- path = fetchurl {
- name = "osenv___osenv_0.1.5.tgz";
- url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
- sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
- };
- }
- {
- name = "p_limit___p_limit_3.1.0.tgz";
- path = fetchurl {
- name = "p_limit___p_limit_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz";
- sha1 = "e1daccbe78d0d1388ca18c64fea38e3e57e3706b";
- };
- }
- {
- name = "p_locate___p_locate_5.0.0.tgz";
- path = fetchurl {
- name = "p_locate___p_locate_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz";
- sha1 = "83c8315c6785005e3bd021839411c9e110e6d834";
- };
- }
- {
- name = "path_array___path_array_1.0.1.tgz";
- path = fetchurl {
- name = "path_array___path_array_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-array/-/path-array-1.0.1.tgz";
- sha1 = "7e2f0f35f07a2015122b868b7eac0eb2c4fec271";
- };
- }
- {
- name = "path_exists___path_exists_4.0.0.tgz";
- path = fetchurl {
- name = "path_exists___path_exists_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
- sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
- };
- }
- {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- path = fetchurl {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
- sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
- };
- }
- {
- name = "pathval___pathval_1.1.1.tgz";
- path = fetchurl {
- name = "pathval___pathval_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz";
- sha1 = "8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d";
- };
- }
- {
- name = "performance_now___performance_now_2.1.0.tgz";
- path = fetchurl {
- name = "performance_now___performance_now_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
- sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
- };
- }
- {
- name = "picomatch___picomatch_2.2.2.tgz";
- path = fetchurl {
- name = "picomatch___picomatch_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
- sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
- };
- }
- {
- name = "prebuild_install___prebuild_install_6.1.1.tgz";
- path = fetchurl {
- name = "prebuild_install___prebuild_install_6.1.1.tgz";
- url = "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.1.tgz";
- sha1 = "6754fa6c0d55eced7f9e14408ff9e4cba6f097b4";
- };
- }
- {
- name = "prebuild___prebuild_10.0.1.tgz";
- path = fetchurl {
- name = "prebuild___prebuild_10.0.1.tgz";
- url = "https://registry.yarnpkg.com/prebuild/-/prebuild-10.0.1.tgz";
- sha1 = "9d46a00f42b60ad1718479cc5e3d1ef4882b7f33";
- };
- }
- {
- name = "private___private_0.1.8.tgz";
- path = fetchurl {
- name = "private___private_0.1.8.tgz";
- url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
- sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
- };
- }
- {
- name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
- path = fetchurl {
- name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
- sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
- };
- }
- {
- name = "psl___psl_1.1.29.tgz";
- path = fetchurl {
- name = "psl___psl_1.1.29.tgz";
- url = "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz";
- sha1 = "60f580d360170bb722a797cc704411e6da850c67";
- };
- }
- {
- name = "pump___pump_3.0.0.tgz";
- path = fetchurl {
- name = "pump___pump_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
- sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
- };
- }
- {
- name = "punycode___punycode_2.1.1.tgz";
- path = fetchurl {
- name = "punycode___punycode_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
- sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
- };
- }
- {
- name = "qs___qs_6.5.2.tgz";
- path = fetchurl {
- name = "qs___qs_6.5.2.tgz";
- url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
- sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
- };
- }
- {
- name = "randombytes___randombytes_2.1.0.tgz";
- path = fetchurl {
- name = "randombytes___randombytes_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
- sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
- };
- }
- {
- name = "rc___rc_1.2.8.tgz";
- path = fetchurl {
- name = "rc___rc_1.2.8.tgz";
- url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
- sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
- };
- }
- {
- name = "readable_stream___readable_stream_1.0.34.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_1.0.34.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
- sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
- };
- }
- {
- name = "readable_stream___readable_stream_2.3.3.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_2.3.3.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz";
- sha1 = "368f2512d79f9d46fdfc71349ae7878bbc1eb95c";
- };
- }
- {
- name = "readable_stream___readable_stream_3.6.0.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
- sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
- };
- }
- {
- name = "readable_stream___readable_stream_1.1.14.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_1.1.14.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
- sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
- };
- }
- {
- name = "readable_stream___readable_stream_2.1.5.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_2.1.5.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz";
- sha1 = "66fa8b720e1438b364681f2ad1a63c618448c9d0";
- };
- }
- {
- name = "readdirp___readdirp_3.5.0.tgz";
- path = fetchurl {
- name = "readdirp___readdirp_3.5.0.tgz";
- url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
- sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
- };
- }
- {
- name = "regenerator_runtime___regenerator_runtime_0.10.5.tgz";
- path = fetchurl {
- name = "regenerator_runtime___regenerator_runtime_0.10.5.tgz";
- url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz";
- sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658";
- };
- }
- {
- name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
- path = fetchurl {
- name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
- url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
- sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
- };
- }
- {
- name = "repeating___repeating_2.0.1.tgz";
- path = fetchurl {
- name = "repeating___repeating_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
- sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
- };
- }
- {
- name = "request___request_2.88.2.tgz";
- path = fetchurl {
- name = "request___request_2.88.2.tgz";
- url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
- sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
- };
- }
- {
- name = "require_directory___require_directory_2.1.1.tgz";
- path = fetchurl {
- name = "require_directory___require_directory_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
- sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
- };
- }
- {
- name = "rimraf___rimraf_2.7.1.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_2.7.1.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
- sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
- };
- }
- {
- name = "rimraf___rimraf_3.0.2.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
- sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
- };
- }
- {
- name = "rsvp___rsvp_3.6.2.tgz";
- path = fetchurl {
- name = "rsvp___rsvp_3.6.2.tgz";
- url = "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz";
- sha1 = "2e96491599a96cde1b515d5674a8f7a91452926a";
- };
- }
- {
- name = "run_waterfall___run_waterfall_1.1.7.tgz";
- path = fetchurl {
- name = "run_waterfall___run_waterfall_1.1.7.tgz";
- url = "https://registry.yarnpkg.com/run-waterfall/-/run-waterfall-1.1.7.tgz";
- sha1 = "ae368b549b2f5171f86c2924492cab3352a6e9c5";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.1.1.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz";
- sha1 = "893312af69b2123def71f57889001671eeb2c853";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.2.1.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.2.1.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
- sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
- };
- }
- {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- path = fetchurl {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
- sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
- };
- }
- {
- name = "semver___semver_5.7.1.tgz";
- path = fetchurl {
- name = "semver___semver_5.7.1.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
- sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
- };
- }
- {
- name = "semver___semver_4.3.6.tgz";
- path = fetchurl {
- name = "semver___semver_4.3.6.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz";
- sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da";
- };
- }
- {
- name = "semver___semver_7.3.2.tgz";
- path = fetchurl {
- name = "semver___semver_7.3.2.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
- sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
- };
- }
- {
- name = "semver___semver_5.3.0.tgz";
- path = fetchurl {
- name = "semver___semver_5.3.0.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
- sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
- };
- }
- {
- name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
- path = fetchurl {
- name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
- sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
- };
- }
- {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- path = fetchurl {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
- sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
- };
- }
- {
- name = "setimmediate___setimmediate_1.0.5.tgz";
- path = fetchurl {
- name = "setimmediate___setimmediate_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
- sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
- };
- }
- {
- name = "signal_exit___signal_exit_3.0.2.tgz";
- path = fetchurl {
- name = "signal_exit___signal_exit_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
- sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
- };
- }
- {
- name = "simple_concat___simple_concat_1.0.1.tgz";
- path = fetchurl {
- name = "simple_concat___simple_concat_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz";
- sha1 = "f46976082ba35c2263f1c8ab5edfe26c41c9552f";
- };
- }
- {
- name = "simple_get___simple_get_3.1.0.tgz";
- path = fetchurl {
- name = "simple_get___simple_get_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz";
- sha1 = "b45be062435e50d159540b576202ceec40b9c6b3";
- };
- }
- {
- name = "simple_mime___simple_mime_0.1.0.tgz";
- path = fetchurl {
- name = "simple_mime___simple_mime_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/simple-mime/-/simple-mime-0.1.0.tgz";
- sha1 = "95f517c4f466d7cff561a71fc9dab2596ea9ef2e";
- };
- }
- {
- name = "slash___slash_1.0.0.tgz";
- path = fetchurl {
- name = "slash___slash_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
- sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
- };
- }
- {
- name = "source_map_support___source_map_support_0.4.18.tgz";
- path = fetchurl {
- name = "source_map_support___source_map_support_0.4.18.tgz";
- url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz";
- sha1 = "0286a6de8be42641338594e97ccea75f0a2c585f";
- };
- }
- {
- name = "source_map_support___source_map_support_0.2.10.tgz";
- path = fetchurl {
- name = "source_map_support___source_map_support_0.2.10.tgz";
- url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz";
- sha1 = "ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc";
- };
- }
- {
- name = "source_map___source_map_0.1.32.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.1.32.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz";
- sha1 = "c8b6c167797ba4740a8ea33252162ff08591b266";
- };
- }
- {
- name = "source_map___source_map_0.5.7.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.5.7.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
- sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
- };
- }
- {
- name = "splitargs___splitargs_0.0.7.tgz";
- path = fetchurl {
- name = "splitargs___splitargs_0.0.7.tgz";
- url = "https://registry.yarnpkg.com/splitargs/-/splitargs-0.0.7.tgz";
- sha1 = "fe9f7ae657371b33b10cb80da143cf8249cf6b3b";
- };
- }
- {
- name = "sshpk___sshpk_1.14.2.tgz";
- path = fetchurl {
- name = "sshpk___sshpk_1.14.2.tgz";
- url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz";
- sha1 = "c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98";
- };
- }
- {
- name = "string_width___string_width_1.0.2.tgz";
- path = fetchurl {
- name = "string_width___string_width_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
- sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
- };
- }
- {
- name = "string_width___string_width_4.2.2.tgz";
- path = fetchurl {
- name = "string_width___string_width_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
- sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
- };
- }
- {
- name = "string_decoder___string_decoder_1.3.0.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
- sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
- };
- }
- {
- name = "string_decoder___string_decoder_0.10.31.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_0.10.31.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
- sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
- };
- }
- {
- name = "string_decoder___string_decoder_1.0.3.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz";
- sha1 = "0fc67d7c141825de94282dd536bec6b9bce860ab";
- };
- }
- {
- name = "strip_ansi___strip_ansi_3.0.1.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
- sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
- };
- }
- {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
- sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
- sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
- sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
- };
- }
- {
- name = "supports_color___supports_color_8.1.1.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_8.1.1.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz";
- sha1 = "cd6fc17e28500cff56c1b86c0a7fd4a54a73005c";
- };
- }
- {
- name = "supports_color___supports_color_2.0.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
- sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
- };
- }
- {
- name = "supports_color___supports_color_7.2.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_7.2.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
- sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
- };
- }
- {
- name = "tar_fs___tar_fs_2.1.1.tgz";
- path = fetchurl {
- name = "tar_fs___tar_fs_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz";
- sha1 = "489a15ab85f1f0befabb370b7de4f9eb5cbe8784";
- };
- }
- {
- name = "tar_stream___tar_stream_2.1.4.tgz";
- path = fetchurl {
- name = "tar_stream___tar_stream_2.1.4.tgz";
- url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz";
- sha1 = "c4fb1a11eb0da29b893a5b25476397ba2d053bfa";
- };
- }
- {
- name = "tar___tar_2.2.2.tgz";
- path = fetchurl {
- name = "tar___tar_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz";
- sha1 = "0ca8848562c7299b8b446ff6a4d60cdbb23edc40";
- };
- }
- {
- name = "tar___tar_4.4.13.tgz";
- path = fetchurl {
- name = "tar___tar_4.4.13.tgz";
- url = "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz";
- sha1 = "43b364bc52888d555298637b10d60790254ab525";
- };
- }
- {
- name = "tar___tar_6.0.5.tgz";
- path = fetchurl {
- name = "tar___tar_6.0.5.tgz";
- url = "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz";
- sha1 = "bde815086e10b39f1dcd298e89d596e1535e200f";
- };
- }
- {
- name = "through2___through2_0.6.5.tgz";
- path = fetchurl {
- name = "through2___through2_0.6.5.tgz";
- url = "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz";
- sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
- };
- }
- {
- name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
- path = fetchurl {
- name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
- sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
- };
- }
- {
- name = "to_regex_range___to_regex_range_5.0.1.tgz";
- path = fetchurl {
- name = "to_regex_range___to_regex_range_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
- sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
- };
- }
- {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- path = fetchurl {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
- sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
- };
- }
- {
- name = "traceur___traceur_0.0.111.tgz";
- path = fetchurl {
- name = "traceur___traceur_0.0.111.tgz";
- url = "https://registry.yarnpkg.com/traceur/-/traceur-0.0.111.tgz";
- sha1 = "c04de74d14696c3373427de4fc08ecaf913fc3a1";
- };
- }
- {
- name = "traverse___traverse_0.3.9.tgz";
- path = fetchurl {
- name = "traverse___traverse_0.3.9.tgz";
- url = "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz";
- sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
- };
- }
- {
- name = "trim_right___trim_right_1.0.1.tgz";
- path = fetchurl {
- name = "trim_right___trim_right_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
- sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
- };
- }
- {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- path = fetchurl {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
- sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
- };
- }
- {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- path = fetchurl {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
- sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
- };
- }
- {
- name = "type_detect___type_detect_4.0.8.tgz";
- path = fetchurl {
- name = "type_detect___type_detect_4.0.8.tgz";
- url = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
- sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
- };
- }
- {
- name = "type___type_1.2.0.tgz";
- path = fetchurl {
- name = "type___type_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz";
- sha1 = "848dd7698dafa3e54a6c479e759c4bc3f18847a0";
- };
- }
- {
- name = "type___type_2.1.0.tgz";
- path = fetchurl {
- name = "type___type_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz";
- sha1 = "9bdc22c648cf8cf86dd23d32336a41cfb6475e3f";
- };
- }
- {
- name = "universalify___universalify_0.1.2.tgz";
- path = fetchurl {
- name = "universalify___universalify_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
- sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
- };
- }
- {
- name = "unzipper___unzipper_0.8.14.tgz";
- path = fetchurl {
- name = "unzipper___unzipper_0.8.14.tgz";
- url = "https://registry.yarnpkg.com/unzipper/-/unzipper-0.8.14.tgz";
- sha1 = "ade0524cd2fc14d11b8de258be22f9d247d3f79b";
- };
- }
- {
- name = "uri_js___uri_js_4.2.2.tgz";
- path = fetchurl {
- name = "uri_js___uri_js_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
- sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
- };
- }
- {
- name = "url_join___url_join_0.0.1.tgz";
- path = fetchurl {
- name = "url_join___url_join_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz";
- sha1 = "1db48ad422d3402469a87f7d97bdebfe4fb1e3c8";
- };
- }
- {
- name = "url_template___url_template_2.0.8.tgz";
- path = fetchurl {
- name = "url_template___url_template_2.0.8.tgz";
- url = "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz";
- sha1 = "fc565a3cccbff7730c775f5641f9555791439f21";
- };
- }
- {
- name = "util_deprecate___util_deprecate_1.0.2.tgz";
- path = fetchurl {
- name = "util_deprecate___util_deprecate_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
- sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
- };
- }
- {
- name = "util_extend___util_extend_1.0.3.tgz";
- path = fetchurl {
- name = "util_extend___util_extend_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
- sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
- };
- }
- {
- name = "uuid___uuid_3.4.0.tgz";
- path = fetchurl {
- name = "uuid___uuid_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
- sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
- };
- }
- {
- name = "verror___verror_1.3.6.tgz";
- path = fetchurl {
- name = "verror___verror_1.3.6.tgz";
- url = "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz";
- sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c";
- };
- }
- {
- name = "which___which_1.3.1.tgz";
- path = fetchurl {
- name = "which___which_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
- sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
- };
- }
- {
- name = "which___which_2.0.2.tgz";
- path = fetchurl {
- name = "which___which_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
- sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
- };
- }
- {
- name = "wide_align___wide_align_1.1.3.tgz";
- path = fetchurl {
- name = "wide_align___wide_align_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
- sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
- };
- }
- {
- name = "wide_align___wide_align_1.1.2.tgz";
- path = fetchurl {
- name = "wide_align___wide_align_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz";
- sha1 = "571e0f1b0604636ebc0dfc21b0339bbe31341710";
- };
- }
- {
- name = "window_size___window_size_0.1.4.tgz";
- path = fetchurl {
- name = "window_size___window_size_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz";
- sha1 = "f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876";
- };
- }
- {
- name = "workerpool___workerpool_6.1.0.tgz";
- path = fetchurl {
- name = "workerpool___workerpool_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz";
- sha1 = "a8e038b4c94569596852de7a8ea4228eefdeb37b";
- };
- }
- {
- name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
- path = fetchurl {
- name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
- sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
- };
- }
- {
- name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
- path = fetchurl {
- name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
- sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43";
- };
- }
- {
- name = "wrappy___wrappy_1.0.2.tgz";
- path = fetchurl {
- name = "wrappy___wrappy_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
- sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
- };
- }
- {
- name = "xtend___xtend_4.0.2.tgz";
- path = fetchurl {
- name = "xtend___xtend_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
- sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
- };
- }
- {
- name = "y18n___y18n_3.2.2.tgz";
- path = fetchurl {
- name = "y18n___y18n_3.2.2.tgz";
- url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz";
- sha1 = "85c901bd6470ce71fc4bb723ad209b70f7f28696";
- };
- }
- {
- name = "y18n___y18n_5.0.5.tgz";
- path = fetchurl {
- name = "y18n___y18n_5.0.5.tgz";
- url = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz";
- sha1 = "8769ec08d03b1ea2df2500acef561743bbb9ab18";
- };
- }
- {
- name = "yallist___yallist_3.1.1.tgz";
- path = fetchurl {
- name = "yallist___yallist_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
- sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
- };
- }
- {
- name = "yallist___yallist_4.0.0.tgz";
- path = fetchurl {
- name = "yallist___yallist_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
- sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
- };
- }
- {
- name = "yargs_parser___yargs_parser_20.2.4.tgz";
- path = fetchurl {
- name = "yargs_parser___yargs_parser_20.2.4.tgz";
- url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
- sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
- };
- }
- {
- name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
- path = fetchurl {
- name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
- sha1 = "f131f9226911ae5d9ad38c432fe809366c2325eb";
- };
- }
- {
- name = "yargs___yargs_16.2.0.tgz";
- path = fetchurl {
- name = "yargs___yargs_16.2.0.tgz";
- url = "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz";
- sha1 = "1c82bf0f6b6a66eafce7ef30e376f49a12477f66";
- };
- }
- {
- name = "yargs___yargs_3.32.0.tgz";
- path = fetchurl {
- name = "yargs___yargs_3.32.0.tgz";
- url = "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz";
- sha1 = "03088e9ebf9e756b69751611d2a5ef591482c995";
- };
- }
- {
- name = "yocto_queue___yocto_queue_0.1.0.tgz";
- path = fetchurl {
- name = "yocto_queue___yocto_queue_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz";
- sha1 = "0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b";
- };
- }
- ];
-}
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.json b/pkgs/applications/networking/instant-messengers/element/pin.json
new file mode 100644
index 000000000000..dfb9791b3aa9
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -0,0 +1,6 @@
+{
+ "version": "1.9.3",
+ "desktopSrcHash": "Pb9iiCYtmuD6DzdvgY8c6pCFdVAxIIUZTWLCa7y5RMI=",
+ "desktopYarnHash": "0iwbszhaxaxggymixljzjb2gqrsij67fwakxhd3yj9g1zds49ghh",
+ "webHash": "06lpb8i7fyimm06y6h3ngh19bx416if9lvs2ah2112vx28hs14zp"
+}
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
index ae9dd96228b5..de38c7a90bad 100644
--- a/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
@@ -1,14 +1,17 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs-14_x, python3, yarn, fixup_yarn_lock, CoreServices }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs-14_x, python3, yarn, fixup_yarn_lock, CoreServices, fetchYarnDeps }:
-rustPlatform.buildRustPackage rec {
+let
+ pinData = lib.importJSON ./pin.json;
+
+in rustPlatform.buildRustPackage rec {
pname = "seshat-node";
- version = "2.3.0";
+ inherit (pinData) version;
src = fetchFromGitHub {
owner = "matrix-org";
repo = "seshat";
rev = version;
- sha256 = "0zigrz59mhih9asmbbh38z2fg0sii2342q6q0500qil2a0rssai7";
+ sha256 = pinData.srcHash;
};
sourceRoot = "source/seshat-node/native";
@@ -18,7 +21,10 @@ rustPlatform.buildRustPackage rec {
npm_config_nodedir = nodejs-14_x;
- yarnOfflineCache = (callPackage ./yarn.nix {}).offline_cache;
+ yarnOfflineCache = fetchYarnDeps {
+ yarnLock = src + "/seshat-node/yarn.lock";
+ sha256 = pinData.yarnHash;
+ };
buildPhase = ''
cd ..
@@ -42,5 +48,5 @@ rustPlatform.buildRustPackage rec {
cp -r . $out
'';
- cargoSha256 = "0habjf85mzqxwf8k15msm4cavd7ldq4zpxddkwd4inl2lkvlffqj";
+ cargoSha256 = pinData.cargoHash;
}
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/pin.json b/pkgs/applications/networking/instant-messengers/element/seshat/pin.json
new file mode 100644
index 000000000000..fdb5afe67a25
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/seshat/pin.json
@@ -0,0 +1,6 @@
+{
+ "version": "2.3.0",
+ "srcHash": "JyqtM1CCRgxAAdhgQYaIUYPnxEcDrlW1SjDCmsrPL34=",
+ "yarnHash": "0bym6i1f0i3bs4fncbiwzwmbxp7j14rz1v4kyvsl02qs97qw1jac",
+ "cargoHash": "sha256-EjtH96SC2kgan631+wlu9LStGKm6ljCR4x3/WpCTS0E="
+}
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/update.sh b/pkgs/applications/networking/instant-messengers/element/seshat/update.sh
index b201501e1c43..1315715ac049 100755
--- a/pkgs/applications/networking/instant-messengers/element/seshat/update.sh
+++ b/pkgs/applications/networking/instant-messengers/element/seshat/update.sh
@@ -1,16 +1,49 @@
#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../ -i bash -p wget yarn2nix
+#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-yarn-deps yarn nix-prefetch
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
- echo "Regenerates the Yarn dependency lock files."
- echo "Usage: $0 "
+if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
+ echo "Regenerates packaging data for the seshat package."
+ echo "Usage: $0 [git release tag]"
exit 1
fi
-SRC="https://raw.githubusercontent.com/matrix-org/seshat/$1"
+version="$1"
+set -euo pipefail
+
+if [ -z "$version" ]; then
+ version="$(wget -O- "https://api.github.com/repos/matrix-org/seshat/tags" | jq -r '.[] | .name' | sort --version-sort | tail -1)"
+fi
+
+SRC="https://raw.githubusercontent.com/matrix-org/seshat/$version"
+
+tmpdir=$(mktemp -d)
+trap 'rm -rf "$tmpdir"' EXIT
+
+pushd $tmpdir
wget "$SRC/seshat-node/yarn.lock"
-yarn2nix > yarn.nix
-rm yarn.lock
+yarn_hash=$(prefetch-yarn-deps yarn.lock)
+popd
+
+src_hash=$(nix-prefetch-github matrix-org seshat --rev ${version} | jq -r .sha256)
+
+cat > pin.json << EOF
+{
+ "version": "$version",
+ "srcHash": "$src_hash",
+ "yarnHash": "$yarn_hash",
+ "cargoHash": "0000000000000000000000000000000000000000000000000000"
+}
+EOF
+
+cargo_hash=$(nix-prefetch "{ sha256 }: (import ../../../../../.. {}).element-desktop.seshat.cargoDeps")
+
+cat > pin.json << EOF
+{
+ "version": "$version",
+ "srcHash": "$src_hash",
+ "yarnHash": "$yarn_hash",
+ "cargoHash": "$cargo_hash"
+}
+EOF
+
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/yarn.nix b/pkgs/applications/networking/instant-messengers/element/seshat/yarn.nix
deleted file mode 100644
index b861502bf719..000000000000
--- a/pkgs/applications/networking/instant-messengers/element/seshat/yarn.nix
+++ /dev/null
@@ -1,4557 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
- offline_cache = linkFarm "offline" packages;
- packages = [
- {
- name = "_babel_code_frame___code_frame_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_code_frame___code_frame_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz";
- sha1 = "23b08d740e83f49c5e59945fbf1b43e80bbf4edb";
- };
- }
- {
- name = "_babel_compat_data___compat_data_7.14.7.tgz";
- path = fetchurl {
- name = "_babel_compat_data___compat_data_7.14.7.tgz";
- url = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz";
- sha1 = "7b047d7a3a89a67d2258dc61f604f098f1bc7e08";
- };
- }
- {
- name = "_babel_core___core_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_core___core_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz";
- sha1 = "20cdf7c84b5d86d83fac8710a8bc605a7ba3f010";
- };
- }
- {
- name = "_babel_generator___generator_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_generator___generator_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.8.tgz";
- sha1 = "bf86fd6af96cf3b74395a8ca409515f89423e070";
- };
- }
- {
- name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz";
- sha1 = "7a99c5d0967911e972fe2c3411f7d5b498498ecf";
- };
- }
- {
- name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz";
- sha1 = "89e2c474972f15d8e233b52ee8c480e2cfcd50c4";
- };
- }
- {
- name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz";
- sha1 = "25fbfa579b0937eee1f3b805ece4ce398c431815";
- };
- }
- {
- name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz";
- sha1 = "e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d";
- };
- }
- {
- name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.14.7.tgz";
- path = fetchurl {
- name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.14.7.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz";
- sha1 = "97e56244beb94211fe277bd818e3a329c66f7970";
- };
- }
- {
- name = "_babel_helper_module_imports___helper_module_imports_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_module_imports___helper_module_imports_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz";
- sha1 = "6d1a44df6a38c957aa7c312da076429f11b422f3";
- };
- }
- {
- name = "_babel_helper_module_transforms___helper_module_transforms_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_helper_module_transforms___helper_module_transforms_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz";
- sha1 = "d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49";
- };
- }
- {
- name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz";
- sha1 = "f27395a8619e0665b3f0364cddb41c25d71b499c";
- };
- }
- {
- name = "_babel_helper_plugin_utils___helper_plugin_utils_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_plugin_utils___helper_plugin_utils_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
- sha1 = "5ac822ce97eec46741ab70a517971e443a70c5a9";
- };
- }
- {
- name = "_babel_helper_replace_supers___helper_replace_supers_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_replace_supers___helper_replace_supers_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz";
- sha1 = "0ecc0b03c41cd567b4024ea016134c28414abb94";
- };
- }
- {
- name = "_babel_helper_simple_access___helper_simple_access_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_helper_simple_access___helper_simple_access_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz";
- sha1 = "82e1fec0644a7e775c74d305f212c39f8fe73924";
- };
- }
- {
- name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz";
- sha1 = "22b23a54ef51c2b7605d851930c1976dd0bc693a";
- };
- }
- {
- name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz";
- sha1 = "32be33a756f29e278a0d644fa08a2c9e0f88a34c";
- };
- }
- {
- name = "_babel_helper_validator_option___helper_validator_option_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_helper_validator_option___helper_validator_option_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz";
- sha1 = "6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3";
- };
- }
- {
- name = "_babel_helpers___helpers_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_helpers___helpers_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz";
- sha1 = "839f88f463025886cff7f85a35297007e2da1b77";
- };
- }
- {
- name = "_babel_highlight___highlight_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_highlight___highlight_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz";
- sha1 = "6861a52f03966405001f6aa534a01a24d99e8cd9";
- };
- }
- {
- name = "_babel_parser___parser_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_parser___parser_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz";
- sha1 = "66fd41666b2d7b840bd5ace7f7416d5ac60208d4";
- };
- }
- {
- name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
- sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871";
- };
- }
- {
- name = "_babel_template___template_7.14.5.tgz";
- path = fetchurl {
- name = "_babel_template___template_7.14.5.tgz";
- url = "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz";
- sha1 = "a9bc9d8b33354ff6e55a9c60d1109200a68974f4";
- };
- }
- {
- name = "_babel_traverse___traverse_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_traverse___traverse_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.8.tgz";
- sha1 = "c0253f02677c5de1a8ff9df6b0aacbec7da1a8ce";
- };
- }
- {
- name = "_babel_types___types_7.14.8.tgz";
- path = fetchurl {
- name = "_babel_types___types_7.14.8.tgz";
- url = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz";
- sha1 = "38109de8fcadc06415fbd9b74df0065d4d41c728";
- };
- }
- {
- name = "_cnakazawa_watch___watch_1.0.4.tgz";
- path = fetchurl {
- name = "_cnakazawa_watch___watch_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz";
- sha1 = "f864ae85004d0fcab6f50be9141c4da368d1656a";
- };
- }
- {
- name = "_jest_console___console_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_console___console_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz";
- sha1 = "79b1bc06fb74a8cfb01cbdedf945584b1b9707f0";
- };
- }
- {
- name = "_jest_core___core_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_core___core_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz";
- sha1 = "2ceccd0b93181f9c4850e74f2a9ad43d351369c4";
- };
- }
- {
- name = "_jest_environment___environment_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_environment___environment_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz";
- sha1 = "21e3afa2d65c0586cbd6cbefe208bafade44ab18";
- };
- }
- {
- name = "_jest_fake_timers___fake_timers_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_fake_timers___fake_timers_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz";
- sha1 = "ba3e6bf0eecd09a636049896434d306636540c93";
- };
- }
- {
- name = "_jest_reporters___reporters_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_reporters___reporters_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz";
- sha1 = "86660eff8e2b9661d042a8e98a028b8d631a5b43";
- };
- }
- {
- name = "_jest_source_map___source_map_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_source_map___source_map_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz";
- sha1 = "0e263a94430be4b41da683ccc1e6bffe2a191714";
- };
- }
- {
- name = "_jest_test_result___test_result_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_test_result___test_result_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz";
- sha1 = "11796e8aa9dbf88ea025757b3152595ad06ba0ca";
- };
- }
- {
- name = "_jest_test_sequencer___test_sequencer_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_test_sequencer___test_sequencer_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz";
- sha1 = "f8f334f35b625a4f2f355f2fe7e6036dad2e6b31";
- };
- }
- {
- name = "_jest_transform___transform_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_transform___transform_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz";
- sha1 = "4ae2768b296553fadab09e9ec119543c90b16c56";
- };
- }
- {
- name = "_jest_types___types_24.9.0.tgz";
- path = fetchurl {
- name = "_jest_types___types_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz";
- sha1 = "63cb26cb7500d069e5a389441a7c6ab5e909fc59";
- };
- }
- {
- name = "_types_babel__core___babel__core_7.1.15.tgz";
- path = fetchurl {
- name = "_types_babel__core___babel__core_7.1.15.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz";
- sha1 = "2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024";
- };
- }
- {
- name = "_types_babel__generator___babel__generator_7.6.3.tgz";
- path = fetchurl {
- name = "_types_babel__generator___babel__generator_7.6.3.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz";
- sha1 = "f456b4b2ce79137f768aa130d2423d2f0ccfaba5";
- };
- }
- {
- name = "_types_babel__template___babel__template_7.4.1.tgz";
- path = fetchurl {
- name = "_types_babel__template___babel__template_7.4.1.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz";
- sha1 = "3d1a48fd9d6c0edfd56f2ff578daed48f36c8969";
- };
- }
- {
- name = "_types_babel__traverse___babel__traverse_7.14.2.tgz";
- path = fetchurl {
- name = "_types_babel__traverse___babel__traverse_7.14.2.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz";
- sha1 = "ffcd470bbb3f8bf30481678fb5502278ca833a43";
- };
- }
- {
- name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
- path = fetchurl {
- name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz";
- sha1 = "4ba8ddb720221f432e443bd5f9117fd22cfd4762";
- };
- }
- {
- name = "_types_istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
- path = fetchurl {
- name = "_types_istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
- sha1 = "c14c24f18ea8190c118ee7562b7ff99a36552686";
- };
- }
- {
- name = "_types_istanbul_reports___istanbul_reports_1.1.2.tgz";
- path = fetchurl {
- name = "_types_istanbul_reports___istanbul_reports_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz";
- sha1 = "e875cc689e47bce549ec81f3df5e6f6f11cfaeb2";
- };
- }
- {
- name = "_types_stack_utils___stack_utils_1.0.1.tgz";
- path = fetchurl {
- name = "_types_stack_utils___stack_utils_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz";
- sha1 = "0a851d3bd96498fa25c33ab7278ed3bd65f06c3e";
- };
- }
- {
- name = "_types_yargs_parser___yargs_parser_20.2.1.tgz";
- path = fetchurl {
- name = "_types_yargs_parser___yargs_parser_20.2.1.tgz";
- url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz";
- sha1 = "3b9ce2489919d9e4fea439b76916abc34b2df129";
- };
- }
- {
- name = "_types_yargs___yargs_13.0.12.tgz";
- path = fetchurl {
- name = "_types_yargs___yargs_13.0.12.tgz";
- url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz";
- sha1 = "d895a88c703b78af0465a9de88aa92c61430b092";
- };
- }
- {
- name = "abab___abab_2.0.5.tgz";
- path = fetchurl {
- name = "abab___abab_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz";
- sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a";
- };
- }
- {
- name = "acorn_globals___acorn_globals_4.3.4.tgz";
- path = fetchurl {
- name = "acorn_globals___acorn_globals_4.3.4.tgz";
- url = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz";
- sha1 = "9fa1926addc11c97308c4e66d7add0d40c3272e7";
- };
- }
- {
- name = "acorn_jsx___acorn_jsx_5.3.2.tgz";
- path = fetchurl {
- name = "acorn_jsx___acorn_jsx_5.3.2.tgz";
- url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz";
- sha1 = "7ed5bb55908b3b2f1bc55c6af1653bada7f07937";
- };
- }
- {
- name = "acorn_walk___acorn_walk_6.2.0.tgz";
- path = fetchurl {
- name = "acorn_walk___acorn_walk_6.2.0.tgz";
- url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
- sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
- };
- }
- {
- name = "acorn___acorn_5.7.4.tgz";
- path = fetchurl {
- name = "acorn___acorn_5.7.4.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz";
- sha1 = "3e8d8a9947d0599a1796d10225d7432f4a4acf5e";
- };
- }
- {
- name = "acorn___acorn_6.4.2.tgz";
- path = fetchurl {
- name = "acorn___acorn_6.4.2.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
- sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
- };
- }
- {
- name = "acorn___acorn_7.4.1.tgz";
- path = fetchurl {
- name = "acorn___acorn_7.4.1.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
- sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
- };
- }
- {
- name = "ajv___ajv_6.12.6.tgz";
- path = fetchurl {
- name = "ajv___ajv_6.12.6.tgz";
- url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
- sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
- };
- }
- {
- name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
- path = fetchurl {
- name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
- sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
- };
- }
- {
- name = "ansi_escapes___ansi_escapes_4.3.2.tgz";
- path = fetchurl {
- name = "ansi_escapes___ansi_escapes_4.3.2.tgz";
- url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz";
- sha1 = "6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e";
- };
- }
- {
- name = "ansi_regex___ansi_regex_3.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
- sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
- };
- }
- {
- name = "ansi_regex___ansi_regex_4.1.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
- sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
- };
- }
- {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
- sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
- };
- }
- {
- name = "ansi_styles___ansi_styles_3.2.1.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_3.2.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
- sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
- };
- }
- {
- name = "ansi_styles___ansi_styles_4.3.0.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
- sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
- };
- }
- {
- name = "anymatch___anymatch_2.0.0.tgz";
- path = fetchurl {
- name = "anymatch___anymatch_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
- sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
- };
- }
- {
- name = "argparse___argparse_1.0.10.tgz";
- path = fetchurl {
- name = "argparse___argparse_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
- sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
- };
- }
- {
- name = "arr_diff___arr_diff_4.0.0.tgz";
- path = fetchurl {
- name = "arr_diff___arr_diff_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
- sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
- };
- }
- {
- name = "arr_flatten___arr_flatten_1.1.0.tgz";
- path = fetchurl {
- name = "arr_flatten___arr_flatten_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
- sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
- };
- }
- {
- name = "arr_union___arr_union_3.1.0.tgz";
- path = fetchurl {
- name = "arr_union___arr_union_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
- sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
- };
- }
- {
- name = "array_back___array_back_3.1.0.tgz";
- path = fetchurl {
- name = "array_back___array_back_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz";
- sha1 = "b8859d7a508871c9a7b2cf42f99428f65e96bfb0";
- };
- }
- {
- name = "array_back___array_back_4.0.2.tgz";
- path = fetchurl {
- name = "array_back___array_back_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz";
- sha1 = "8004e999a6274586beeb27342168652fdb89fa1e";
- };
- }
- {
- name = "array_equal___array_equal_1.0.0.tgz";
- path = fetchurl {
- name = "array_equal___array_equal_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz";
- sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
- };
- }
- {
- name = "array_unique___array_unique_0.3.2.tgz";
- path = fetchurl {
- name = "array_unique___array_unique_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
- sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
- };
- }
- {
- name = "asn1___asn1_0.2.4.tgz";
- path = fetchurl {
- name = "asn1___asn1_0.2.4.tgz";
- url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
- sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
- };
- }
- {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- path = fetchurl {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
- sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
- };
- }
- {
- name = "assign_symbols___assign_symbols_1.0.0.tgz";
- path = fetchurl {
- name = "assign_symbols___assign_symbols_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
- sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
- };
- }
- {
- name = "astral_regex___astral_regex_1.0.0.tgz";
- path = fetchurl {
- name = "astral_regex___astral_regex_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
- sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
- };
- }
- {
- name = "async_limiter___async_limiter_1.0.1.tgz";
- path = fetchurl {
- name = "async_limiter___async_limiter_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz";
- sha1 = "dd379e94f0db8310b08291f9d64c3209766617fd";
- };
- }
- {
- name = "asynckit___asynckit_0.4.0.tgz";
- path = fetchurl {
- name = "asynckit___asynckit_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
- sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
- };
- }
- {
- name = "atob___atob_2.1.2.tgz";
- path = fetchurl {
- name = "atob___atob_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
- sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
- };
- }
- {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- path = fetchurl {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
- sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
- };
- }
- {
- name = "aws4___aws4_1.11.0.tgz";
- path = fetchurl {
- name = "aws4___aws4_1.11.0.tgz";
- url = "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz";
- sha1 = "d61f46d83b2519250e2784daf5b09479a8b41c59";
- };
- }
- {
- name = "babel_jest___babel_jest_24.9.0.tgz";
- path = fetchurl {
- name = "babel_jest___babel_jest_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz";
- sha1 = "3fc327cb8467b89d14d7bc70e315104a783ccd54";
- };
- }
- {
- name = "babel_plugin_istanbul___babel_plugin_istanbul_5.2.0.tgz";
- path = fetchurl {
- name = "babel_plugin_istanbul___babel_plugin_istanbul_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
- sha1 = "df4ade83d897a92df069c4d9a25cf2671293c854";
- };
- }
- {
- name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.9.0.tgz";
- path = fetchurl {
- name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz";
- sha1 = "4f837091eb407e01447c8843cbec546d0002d756";
- };
- }
- {
- name = "babel_preset_jest___babel_preset_jest_24.9.0.tgz";
- path = fetchurl {
- name = "babel_preset_jest___babel_preset_jest_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz";
- sha1 = "192b521e2217fb1d1f67cf73f70c336650ad3cdc";
- };
- }
- {
- name = "balanced_match___balanced_match_1.0.2.tgz";
- path = fetchurl {
- name = "balanced_match___balanced_match_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
- sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
- };
- }
- {
- name = "base___base_0.11.2.tgz";
- path = fetchurl {
- name = "base___base_0.11.2.tgz";
- url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
- sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
- };
- }
- {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- path = fetchurl {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
- sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
- };
- }
- {
- name = "bindings___bindings_1.5.0.tgz";
- path = fetchurl {
- name = "bindings___bindings_1.5.0.tgz";
- url = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
- sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
- };
- }
- {
- name = "bluebird___bluebird_3.7.2.tgz";
- path = fetchurl {
- name = "bluebird___bluebird_3.7.2.tgz";
- url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
- sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
- };
- }
- {
- name = "brace_expansion___brace_expansion_1.1.11.tgz";
- path = fetchurl {
- name = "brace_expansion___brace_expansion_1.1.11.tgz";
- url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
- sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
- };
- }
- {
- name = "braces___braces_2.3.2.tgz";
- path = fetchurl {
- name = "braces___braces_2.3.2.tgz";
- url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
- sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
- };
- }
- {
- name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
- path = fetchurl {
- name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
- sha1 = "3c9b4b7d782c8121e56f10106d84c0d0ffc94626";
- };
- }
- {
- name = "browser_resolve___browser_resolve_1.11.3.tgz";
- path = fetchurl {
- name = "browser_resolve___browser_resolve_1.11.3.tgz";
- url = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz";
- sha1 = "9b7cbb3d0f510e4cb86bdbd796124d28b5890af6";
- };
- }
- {
- name = "browserslist___browserslist_4.16.6.tgz";
- path = fetchurl {
- name = "browserslist___browserslist_4.16.6.tgz";
- url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
- sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
- };
- }
- {
- name = "bser___bser_2.1.1.tgz";
- path = fetchurl {
- name = "bser___bser_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz";
- sha1 = "e6787da20ece9d07998533cfd9de6f5c38f4bc05";
- };
- }
- {
- name = "buffer_from___buffer_from_1.1.1.tgz";
- path = fetchurl {
- name = "buffer_from___buffer_from_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
- sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
- };
- }
- {
- name = "builtins___builtins_1.0.3.tgz";
- path = fetchurl {
- name = "builtins___builtins_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz";
- sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
- };
- }
- {
- name = "cache_base___cache_base_1.0.1.tgz";
- path = fetchurl {
- name = "cache_base___cache_base_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
- sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
- };
- }
- {
- name = "call_bind___call_bind_1.0.2.tgz";
- path = fetchurl {
- name = "call_bind___call_bind_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
- sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
- };
- }
- {
- name = "callsites___callsites_3.1.0.tgz";
- path = fetchurl {
- name = "callsites___callsites_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
- sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
- };
- }
- {
- name = "camelcase___camelcase_5.3.1.tgz";
- path = fetchurl {
- name = "camelcase___camelcase_5.3.1.tgz";
- url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
- sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
- };
- }
- {
- name = "caniuse_lite___caniuse_lite_1.0.30001246.tgz";
- path = fetchurl {
- name = "caniuse_lite___caniuse_lite_1.0.30001246.tgz";
- url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz";
- sha1 = "fe17d9919f87124d6bb416ef7b325356d69dc76c";
- };
- }
- {
- name = "capture_exit___capture_exit_2.0.0.tgz";
- path = fetchurl {
- name = "capture_exit___capture_exit_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
- sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
- };
- }
- {
- name = "caseless___caseless_0.12.0.tgz";
- path = fetchurl {
- name = "caseless___caseless_0.12.0.tgz";
- url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
- sha1 = "1b681c21ff84033c826543090689420d187151dc";
- };
- }
- {
- name = "catharsis___catharsis_0.9.0.tgz";
- path = fetchurl {
- name = "catharsis___catharsis_0.9.0.tgz";
- url = "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz";
- sha1 = "40382a168be0e6da308c277d3a2b3eb40c7d2121";
- };
- }
- {
- name = "chalk___chalk_2.4.2.tgz";
- path = fetchurl {
- name = "chalk___chalk_2.4.2.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
- sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
- };
- }
- {
- name = "chalk___chalk_4.1.1.tgz";
- path = fetchurl {
- name = "chalk___chalk_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
- sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
- };
- }
- {
- name = "chardet___chardet_0.7.0.tgz";
- path = fetchurl {
- name = "chardet___chardet_0.7.0.tgz";
- url = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
- sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
- };
- }
- {
- name = "ci_info___ci_info_2.0.0.tgz";
- path = fetchurl {
- name = "ci_info___ci_info_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
- sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
- };
- }
- {
- name = "class_utils___class_utils_0.3.6.tgz";
- path = fetchurl {
- name = "class_utils___class_utils_0.3.6.tgz";
- url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
- sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
- };
- }
- {
- name = "cli_cursor___cli_cursor_3.1.0.tgz";
- path = fetchurl {
- name = "cli_cursor___cli_cursor_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
- sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
- };
- }
- {
- name = "cli_width___cli_width_3.0.0.tgz";
- path = fetchurl {
- name = "cli_width___cli_width_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
- sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
- };
- }
- {
- name = "cliui___cliui_5.0.0.tgz";
- path = fetchurl {
- name = "cliui___cliui_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
- sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
- };
- }
- {
- name = "co___co_4.6.0.tgz";
- path = fetchurl {
- name = "co___co_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
- sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
- };
- }
- {
- name = "collection_visit___collection_visit_1.0.0.tgz";
- path = fetchurl {
- name = "collection_visit___collection_visit_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
- sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
- };
- }
- {
- name = "color_convert___color_convert_1.9.3.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_1.9.3.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
- sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
- };
- }
- {
- name = "color_convert___color_convert_2.0.1.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
- sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
- };
- }
- {
- name = "color_name___color_name_1.1.3.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
- sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
- };
- }
- {
- name = "color_name___color_name_1.1.4.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
- sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
- };
- }
- {
- name = "colorette___colorette_1.2.2.tgz";
- path = fetchurl {
- name = "colorette___colorette_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
- sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
- };
- }
- {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- path = fetchurl {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
- sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
- };
- }
- {
- name = "command_line_args___command_line_args_5.1.3.tgz";
- path = fetchurl {
- name = "command_line_args___command_line_args_5.1.3.tgz";
- url = "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.3.tgz";
- sha1 = "1e57d2816f28804073bb5e75cd24e02e2aa321e7";
- };
- }
- {
- name = "command_line_commands___command_line_commands_3.0.2.tgz";
- path = fetchurl {
- name = "command_line_commands___command_line_commands_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/command-line-commands/-/command-line-commands-3.0.2.tgz";
- sha1 = "53872a1181db837f21906b1228e260a4eeb42ee4";
- };
- }
- {
- name = "command_line_usage___command_line_usage_6.1.1.tgz";
- path = fetchurl {
- name = "command_line_usage___command_line_usage_6.1.1.tgz";
- url = "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.1.tgz";
- sha1 = "c908e28686108917758a49f45efb4f02f76bc03f";
- };
- }
- {
- name = "component_emitter___component_emitter_1.3.0.tgz";
- path = fetchurl {
- name = "component_emitter___component_emitter_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
- sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
- };
- }
- {
- name = "concat_map___concat_map_0.0.1.tgz";
- path = fetchurl {
- name = "concat_map___concat_map_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
- sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
- };
- }
- {
- name = "convert_source_map___convert_source_map_1.8.0.tgz";
- path = fetchurl {
- name = "convert_source_map___convert_source_map_1.8.0.tgz";
- url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz";
- sha1 = "f3373c32d21b4d780dd8004514684fb791ca4369";
- };
- }
- {
- name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
- path = fetchurl {
- name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
- sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
- };
- }
- {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- path = fetchurl {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
- sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
- };
- }
- {
- name = "cross_spawn___cross_spawn_6.0.5.tgz";
- path = fetchurl {
- name = "cross_spawn___cross_spawn_6.0.5.tgz";
- url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
- sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
- };
- }
- {
- name = "cssom___cssom_0.3.8.tgz";
- path = fetchurl {
- name = "cssom___cssom_0.3.8.tgz";
- url = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz";
- sha1 = "9f1276f5b2b463f2114d3f2c75250af8c1a36f4a";
- };
- }
- {
- name = "cssstyle___cssstyle_1.4.0.tgz";
- path = fetchurl {
- name = "cssstyle___cssstyle_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz";
- sha1 = "9d31328229d3c565c61e586b02041a28fccdccf1";
- };
- }
- {
- name = "dashdash___dashdash_1.14.1.tgz";
- path = fetchurl {
- name = "dashdash___dashdash_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
- sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
- };
- }
- {
- name = "data_urls___data_urls_1.1.0.tgz";
- path = fetchurl {
- name = "data_urls___data_urls_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz";
- sha1 = "15ee0582baa5e22bb59c77140da8f9c76963bbfe";
- };
- }
- {
- name = "debug___debug_2.6.9.tgz";
- path = fetchurl {
- name = "debug___debug_2.6.9.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
- sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
- };
- }
- {
- name = "debug___debug_4.3.2.tgz";
- path = fetchurl {
- name = "debug___debug_4.3.2.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
- sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
- };
- }
- {
- name = "decamelize___decamelize_1.2.0.tgz";
- path = fetchurl {
- name = "decamelize___decamelize_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
- sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
- };
- }
- {
- name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
- path = fetchurl {
- name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
- sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
- };
- }
- {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- path = fetchurl {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
- sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
- };
- }
- {
- name = "deep_is___deep_is_0.1.3.tgz";
- path = fetchurl {
- name = "deep_is___deep_is_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
- sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
- };
- }
- {
- name = "define_properties___define_properties_1.1.3.tgz";
- path = fetchurl {
- name = "define_properties___define_properties_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
- sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
- };
- }
- {
- name = "define_property___define_property_0.2.5.tgz";
- path = fetchurl {
- name = "define_property___define_property_0.2.5.tgz";
- url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
- sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
- };
- }
- {
- name = "define_property___define_property_1.0.0.tgz";
- path = fetchurl {
- name = "define_property___define_property_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
- sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
- };
- }
- {
- name = "define_property___define_property_2.0.2.tgz";
- path = fetchurl {
- name = "define_property___define_property_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
- sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
- };
- }
- {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- path = fetchurl {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
- sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
- };
- }
- {
- name = "detect_newline___detect_newline_2.1.0.tgz";
- path = fetchurl {
- name = "detect_newline___detect_newline_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
- sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
- };
- }
- {
- name = "diff_sequences___diff_sequences_24.9.0.tgz";
- path = fetchurl {
- name = "diff_sequences___diff_sequences_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz";
- sha1 = "5715d6244e2aa65f48bba0bc972db0b0b11e95b5";
- };
- }
- {
- name = "doctrine___doctrine_3.0.0.tgz";
- path = fetchurl {
- name = "doctrine___doctrine_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
- sha1 = "addebead72a6574db783639dc87a121773973961";
- };
- }
- {
- name = "domexception___domexception_1.0.1.tgz";
- path = fetchurl {
- name = "domexception___domexception_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz";
- sha1 = "937442644ca6a31261ef36e3ec677fe805582c90";
- };
- }
- {
- name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
- path = fetchurl {
- name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
- sha1 = "3a83a904e54353287874c564b7549386849a98c9";
- };
- }
- {
- name = "electron_to_chromium___electron_to_chromium_1.3.782.tgz";
- path = fetchurl {
- name = "electron_to_chromium___electron_to_chromium_1.3.782.tgz";
- url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz";
- sha1 = "522740fe6b4b5255ca754c68d9c406a17b0998e2";
- };
- }
- {
- name = "emoji_regex___emoji_regex_7.0.3.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_7.0.3.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
- sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
- };
- }
- {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
- sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
- };
- }
- {
- name = "end_of_stream___end_of_stream_1.4.4.tgz";
- path = fetchurl {
- name = "end_of_stream___end_of_stream_1.4.4.tgz";
- url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
- sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
- };
- }
- {
- name = "entities___entities_2.0.3.tgz";
- path = fetchurl {
- name = "entities___entities_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
- sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
- };
- }
- {
- name = "error_ex___error_ex_1.3.2.tgz";
- path = fetchurl {
- name = "error_ex___error_ex_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
- sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
- };
- }
- {
- name = "es_abstract___es_abstract_1.18.3.tgz";
- path = fetchurl {
- name = "es_abstract___es_abstract_1.18.3.tgz";
- url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz";
- sha1 = "25c4c3380a27aa203c44b2b685bba94da31b63e0";
- };
- }
- {
- name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
- path = fetchurl {
- name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
- sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
- };
- }
- {
- name = "escalade___escalade_3.1.1.tgz";
- path = fetchurl {
- name = "escalade___escalade_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
- sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
- sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
- sha1 = "a30304e99daa32e23b2fd20f51babd07cffca344";
- };
- }
- {
- name = "escodegen___escodegen_1.14.3.tgz";
- path = fetchurl {
- name = "escodegen___escodegen_1.14.3.tgz";
- url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
- sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
- };
- }
- {
- name = "eslint_config_google___eslint_config_google_0.13.0.tgz";
- path = fetchurl {
- name = "eslint_config_google___eslint_config_google_0.13.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.13.0.tgz";
- sha1 = "e277d16d2cb25c1ffd3fd13fb0035ad7421382fe";
- };
- }
- {
- name = "eslint_scope___eslint_scope_5.1.1.tgz";
- path = fetchurl {
- name = "eslint_scope___eslint_scope_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
- sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
- };
- }
- {
- name = "eslint_utils___eslint_utils_1.4.3.tgz";
- path = fetchurl {
- name = "eslint_utils___eslint_utils_1.4.3.tgz";
- url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
- sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
- };
- }
- {
- name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
- path = fetchurl {
- name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
- sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
- };
- }
- {
- name = "eslint___eslint_6.8.0.tgz";
- path = fetchurl {
- name = "eslint___eslint_6.8.0.tgz";
- url = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
- sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
- };
- }
- {
- name = "espree___espree_6.2.1.tgz";
- path = fetchurl {
- name = "espree___espree_6.2.1.tgz";
- url = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
- sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
- };
- }
- {
- name = "esprima___esprima_4.0.1.tgz";
- path = fetchurl {
- name = "esprima___esprima_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
- sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
- };
- }
- {
- name = "esquery___esquery_1.4.0.tgz";
- path = fetchurl {
- name = "esquery___esquery_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
- sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
- };
- }
- {
- name = "esrecurse___esrecurse_4.3.0.tgz";
- path = fetchurl {
- name = "esrecurse___esrecurse_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
- sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
- };
- }
- {
- name = "estraverse___estraverse_4.3.0.tgz";
- path = fetchurl {
- name = "estraverse___estraverse_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
- sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
- };
- }
- {
- name = "estraverse___estraverse_5.2.0.tgz";
- path = fetchurl {
- name = "estraverse___estraverse_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
- sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
- };
- }
- {
- name = "esutils___esutils_2.0.3.tgz";
- path = fetchurl {
- name = "esutils___esutils_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
- sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
- };
- }
- {
- name = "exec_sh___exec_sh_0.3.6.tgz";
- path = fetchurl {
- name = "exec_sh___exec_sh_0.3.6.tgz";
- url = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz";
- sha1 = "ff264f9e325519a60cb5e273692943483cca63bc";
- };
- }
- {
- name = "execa___execa_1.0.0.tgz";
- path = fetchurl {
- name = "execa___execa_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
- sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
- };
- }
- {
- name = "exit___exit_0.1.2.tgz";
- path = fetchurl {
- name = "exit___exit_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
- sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
- };
- }
- {
- name = "expand_brackets___expand_brackets_2.1.4.tgz";
- path = fetchurl {
- name = "expand_brackets___expand_brackets_2.1.4.tgz";
- url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
- sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
- };
- }
- {
- name = "expect___expect_24.9.0.tgz";
- path = fetchurl {
- name = "expect___expect_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz";
- sha1 = "b75165b4817074fa4a157794f46fe9f1ba15b6ca";
- };
- }
- {
- name = "extend_shallow___extend_shallow_2.0.1.tgz";
- path = fetchurl {
- name = "extend_shallow___extend_shallow_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
- sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
- };
- }
- {
- name = "extend_shallow___extend_shallow_3.0.2.tgz";
- path = fetchurl {
- name = "extend_shallow___extend_shallow_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
- sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
- };
- }
- {
- name = "extend___extend_3.0.2.tgz";
- path = fetchurl {
- name = "extend___extend_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
- sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
- };
- }
- {
- name = "external_editor___external_editor_3.1.0.tgz";
- path = fetchurl {
- name = "external_editor___external_editor_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
- sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
- };
- }
- {
- name = "extglob___extglob_2.0.4.tgz";
- path = fetchurl {
- name = "extglob___extglob_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
- sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
- };
- }
- {
- name = "extsprintf___extsprintf_1.3.0.tgz";
- path = fetchurl {
- name = "extsprintf___extsprintf_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
- sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
- };
- }
- {
- name = "extsprintf___extsprintf_1.4.0.tgz";
- path = fetchurl {
- name = "extsprintf___extsprintf_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
- sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
- };
- }
- {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- path = fetchurl {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
- sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
- };
- }
- {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
- path = fetchurl {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
- sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
- };
- }
- {
- name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
- path = fetchurl {
- name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
- sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
- };
- }
- {
- name = "fb_watchman___fb_watchman_2.0.1.tgz";
- path = fetchurl {
- name = "fb_watchman___fb_watchman_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz";
- sha1 = "fc84fb39d2709cf3ff6d743706157bb5708a8a85";
- };
- }
- {
- name = "figures___figures_3.2.0.tgz";
- path = fetchurl {
- name = "figures___figures_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
- sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
- };
- }
- {
- name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
- path = fetchurl {
- name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
- sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
- };
- }
- {
- name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
- path = fetchurl {
- name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
- sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
- };
- }
- {
- name = "fill_range___fill_range_4.0.0.tgz";
- path = fetchurl {
- name = "fill_range___fill_range_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
- sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
- };
- }
- {
- name = "find_replace___find_replace_3.0.0.tgz";
- path = fetchurl {
- name = "find_replace___find_replace_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz";
- sha1 = "3e7e23d3b05167a76f770c9fbd5258b0def68c38";
- };
- }
- {
- name = "find_up___find_up_3.0.0.tgz";
- path = fetchurl {
- name = "find_up___find_up_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
- sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
- };
- }
- {
- name = "flat_cache___flat_cache_2.0.1.tgz";
- path = fetchurl {
- name = "flat_cache___flat_cache_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
- sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
- };
- }
- {
- name = "flatted___flatted_2.0.2.tgz";
- path = fetchurl {
- name = "flatted___flatted_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz";
- sha1 = "4575b21e2bcee7434aa9be662f4b7b5f9c2b5138";
- };
- }
- {
- name = "for_each___for_each_0.3.3.tgz";
- path = fetchurl {
- name = "for_each___for_each_0.3.3.tgz";
- url = "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz";
- sha1 = "69b447e88a0a5d32c3e7084f3f1710034b21376e";
- };
- }
- {
- name = "for_in___for_in_1.0.2.tgz";
- path = fetchurl {
- name = "for_in___for_in_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
- sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
- };
- }
- {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- path = fetchurl {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
- sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
- };
- }
- {
- name = "form_data___form_data_2.3.3.tgz";
- path = fetchurl {
- name = "form_data___form_data_2.3.3.tgz";
- url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
- sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
- };
- }
- {
- name = "fragment_cache___fragment_cache_0.2.1.tgz";
- path = fetchurl {
- name = "fragment_cache___fragment_cache_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
- sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
- };
- }
- {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- path = fetchurl {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
- sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
- };
- }
- {
- name = "fsevents___fsevents_1.2.13.tgz";
- path = fetchurl {
- name = "fsevents___fsevents_1.2.13.tgz";
- url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz";
- sha1 = "f325cb0455592428bcf11b383370ef70e3bfcc38";
- };
- }
- {
- name = "function_bind___function_bind_1.1.1.tgz";
- path = fetchurl {
- name = "function_bind___function_bind_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
- sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
- };
- }
- {
- name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
- path = fetchurl {
- name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
- sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
- };
- }
- {
- name = "gensync___gensync_1.0.0_beta.2.tgz";
- path = fetchurl {
- name = "gensync___gensync_1.0.0_beta.2.tgz";
- url = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz";
- sha1 = "32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0";
- };
- }
- {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- path = fetchurl {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
- sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
- };
- }
- {
- name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
- path = fetchurl {
- name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
- sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
- };
- }
- {
- name = "get_stream___get_stream_4.1.0.tgz";
- path = fetchurl {
- name = "get_stream___get_stream_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
- sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
- };
- }
- {
- name = "get_value___get_value_2.0.6.tgz";
- path = fetchurl {
- name = "get_value___get_value_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
- sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
- };
- }
- {
- name = "getpass___getpass_0.1.7.tgz";
- path = fetchurl {
- name = "getpass___getpass_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
- sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
- };
- }
- {
- name = "git_config___git_config_0.0.7.tgz";
- path = fetchurl {
- name = "git_config___git_config_0.0.7.tgz";
- url = "https://registry.yarnpkg.com/git-config/-/git-config-0.0.7.tgz";
- sha1 = "a9c8a3ef07a776c3d72261356d8b727b62202b28";
- };
- }
- {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- path = fetchurl {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
- sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
- };
- }
- {
- name = "glob___glob_7.1.7.tgz";
- path = fetchurl {
- name = "glob___glob_7.1.7.tgz";
- url = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
- sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
- };
- }
- {
- name = "globals___globals_11.12.0.tgz";
- path = fetchurl {
- name = "globals___globals_11.12.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
- sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
- };
- }
- {
- name = "globals___globals_12.4.0.tgz";
- path = fetchurl {
- name = "globals___globals_12.4.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
- sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
- };
- }
- {
- name = "graceful_fs___graceful_fs_4.2.6.tgz";
- path = fetchurl {
- name = "graceful_fs___graceful_fs_4.2.6.tgz";
- url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
- sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
- };
- }
- {
- name = "growly___growly_1.3.0.tgz";
- path = fetchurl {
- name = "growly___growly_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
- sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
- };
- }
- {
- name = "handlebars___handlebars_4.7.7.tgz";
- path = fetchurl {
- name = "handlebars___handlebars_4.7.7.tgz";
- url = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz";
- sha1 = "9ce33416aad02dbd6c8fafa8240d5d98004945a1";
- };
- }
- {
- name = "har_schema___har_schema_2.0.0.tgz";
- path = fetchurl {
- name = "har_schema___har_schema_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
- sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
- };
- }
- {
- name = "har_validator___har_validator_5.1.5.tgz";
- path = fetchurl {
- name = "har_validator___har_validator_5.1.5.tgz";
- url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
- sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
- };
- }
- {
- name = "has_bigints___has_bigints_1.0.1.tgz";
- path = fetchurl {
- name = "has_bigints___has_bigints_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz";
- sha1 = "64fe6acb020673e3b78db035a5af69aa9d07b113";
- };
- }
- {
- name = "has_flag___has_flag_3.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
- sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
- };
- }
- {
- name = "has_flag___has_flag_4.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
- sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
- };
- }
- {
- name = "has_symbols___has_symbols_1.0.2.tgz";
- path = fetchurl {
- name = "has_symbols___has_symbols_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
- sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
- };
- }
- {
- name = "has_value___has_value_0.3.1.tgz";
- path = fetchurl {
- name = "has_value___has_value_0.3.1.tgz";
- url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
- sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
- };
- }
- {
- name = "has_value___has_value_1.0.0.tgz";
- path = fetchurl {
- name = "has_value___has_value_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
- sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
- };
- }
- {
- name = "has_values___has_values_0.1.4.tgz";
- path = fetchurl {
- name = "has_values___has_values_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
- sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
- };
- }
- {
- name = "has_values___has_values_1.0.0.tgz";
- path = fetchurl {
- name = "has_values___has_values_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
- sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
- };
- }
- {
- name = "has___has_1.0.3.tgz";
- path = fetchurl {
- name = "has___has_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
- sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
- };
- }
- {
- name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
- path = fetchurl {
- name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
- url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
- sha1 = "dffc0bf9a21c02209090f2aa69429e1414daf3f9";
- };
- }
- {
- name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
- path = fetchurl {
- name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
- sha1 = "e70d84b94da53aa375e11fe3a351be6642ca46f8";
- };
- }
- {
- name = "html_escaper___html_escaper_2.0.2.tgz";
- path = fetchurl {
- name = "html_escaper___html_escaper_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz";
- sha1 = "dfd60027da36a36dfcbe236262c00a5822681453";
- };
- }
- {
- name = "http_signature___http_signature_1.2.0.tgz";
- path = fetchurl {
- name = "http_signature___http_signature_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
- sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
- };
- }
- {
- name = "iconv_lite___iconv_lite_0.4.24.tgz";
- path = fetchurl {
- name = "iconv_lite___iconv_lite_0.4.24.tgz";
- url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
- sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
- };
- }
- {
- name = "ignore___ignore_4.0.6.tgz";
- path = fetchurl {
- name = "ignore___ignore_4.0.6.tgz";
- url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
- sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
- };
- }
- {
- name = "import_fresh___import_fresh_3.3.0.tgz";
- path = fetchurl {
- name = "import_fresh___import_fresh_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
- sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
- };
- }
- {
- name = "import_local___import_local_2.0.0.tgz";
- path = fetchurl {
- name = "import_local___import_local_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
- sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
- };
- }
- {
- name = "imurmurhash___imurmurhash_0.1.4.tgz";
- path = fetchurl {
- name = "imurmurhash___imurmurhash_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
- sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
- };
- }
- {
- name = "inflight___inflight_1.0.6.tgz";
- path = fetchurl {
- name = "inflight___inflight_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
- sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
- };
- }
- {
- name = "inherits___inherits_2.0.4.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
- sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
- };
- }
- {
- name = "iniparser___iniparser_1.0.5.tgz";
- path = fetchurl {
- name = "iniparser___iniparser_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/iniparser/-/iniparser-1.0.5.tgz";
- sha1 = "836d6befe6dfbfcee0bccf1cf9f2acc7027f783d";
- };
- }
- {
- name = "inquirer___inquirer_7.3.3.tgz";
- path = fetchurl {
- name = "inquirer___inquirer_7.3.3.tgz";
- url = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz";
- sha1 = "04d176b2af04afc157a83fd7c100e98ee0aad003";
- };
- }
- {
- name = "invariant___invariant_2.2.4.tgz";
- path = fetchurl {
- name = "invariant___invariant_2.2.4.tgz";
- url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
- sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
- };
- }
- {
- name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
- path = fetchurl {
- name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
- url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
- sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
- };
- }
- {
- name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
- path = fetchurl {
- name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
- sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
- };
- }
- {
- name = "is_arrayish___is_arrayish_0.2.1.tgz";
- path = fetchurl {
- name = "is_arrayish___is_arrayish_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
- sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
- };
- }
- {
- name = "is_bigint___is_bigint_1.0.2.tgz";
- path = fetchurl {
- name = "is_bigint___is_bigint_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz";
- sha1 = "ffb381442503235ad245ea89e45b3dbff040ee5a";
- };
- }
- {
- name = "is_boolean_object___is_boolean_object_1.1.1.tgz";
- path = fetchurl {
- name = "is_boolean_object___is_boolean_object_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz";
- sha1 = "3c0878f035cb821228d350d2e1e36719716a3de8";
- };
- }
- {
- name = "is_buffer___is_buffer_1.1.6.tgz";
- path = fetchurl {
- name = "is_buffer___is_buffer_1.1.6.tgz";
- url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
- sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
- };
- }
- {
- name = "is_callable___is_callable_1.2.3.tgz";
- path = fetchurl {
- name = "is_callable___is_callable_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
- sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
- };
- }
- {
- name = "is_ci___is_ci_2.0.0.tgz";
- path = fetchurl {
- name = "is_ci___is_ci_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
- sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
- };
- }
- {
- name = "is_core_module___is_core_module_2.5.0.tgz";
- path = fetchurl {
- name = "is_core_module___is_core_module_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz";
- sha1 = "f754843617c70bfd29b7bd87327400cda5c18491";
- };
- }
- {
- name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
- path = fetchurl {
- name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
- sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
- };
- }
- {
- name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
- path = fetchurl {
- name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
- sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
- };
- }
- {
- name = "is_date_object___is_date_object_1.0.4.tgz";
- path = fetchurl {
- name = "is_date_object___is_date_object_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz";
- sha1 = "550cfcc03afada05eea3dd30981c7b09551f73e5";
- };
- }
- {
- name = "is_descriptor___is_descriptor_0.1.6.tgz";
- path = fetchurl {
- name = "is_descriptor___is_descriptor_0.1.6.tgz";
- url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
- sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
- };
- }
- {
- name = "is_descriptor___is_descriptor_1.0.2.tgz";
- path = fetchurl {
- name = "is_descriptor___is_descriptor_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
- sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
- };
- }
- {
- name = "is_extendable___is_extendable_0.1.1.tgz";
- path = fetchurl {
- name = "is_extendable___is_extendable_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
- sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
- };
- }
- {
- name = "is_extendable___is_extendable_1.0.1.tgz";
- path = fetchurl {
- name = "is_extendable___is_extendable_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
- sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
- };
- }
- {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- path = fetchurl {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
- sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
- sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
- sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
- };
- }
- {
- name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
- path = fetchurl {
- name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
- sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118";
- };
- }
- {
- name = "is_glob___is_glob_4.0.1.tgz";
- path = fetchurl {
- name = "is_glob___is_glob_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
- sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
- };
- }
- {
- name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
- path = fetchurl {
- name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
- sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
- };
- }
- {
- name = "is_number_object___is_number_object_1.0.5.tgz";
- path = fetchurl {
- name = "is_number_object___is_number_object_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz";
- sha1 = "6edfaeed7950cff19afedce9fbfca9ee6dd289eb";
- };
- }
- {
- name = "is_number___is_number_3.0.0.tgz";
- path = fetchurl {
- name = "is_number___is_number_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
- sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
- };
- }
- {
- name = "is_plain_object___is_plain_object_2.0.4.tgz";
- path = fetchurl {
- name = "is_plain_object___is_plain_object_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
- sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
- };
- }
- {
- name = "is_regex___is_regex_1.1.3.tgz";
- path = fetchurl {
- name = "is_regex___is_regex_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz";
- sha1 = "d029f9aff6448b93ebbe3f33dac71511fdcbef9f";
- };
- }
- {
- name = "is_stream___is_stream_1.1.0.tgz";
- path = fetchurl {
- name = "is_stream___is_stream_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
- sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
- };
- }
- {
- name = "is_string___is_string_1.0.6.tgz";
- path = fetchurl {
- name = "is_string___is_string_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz";
- sha1 = "3fe5d5992fb0d93404f32584d4b0179a71b54a5f";
- };
- }
- {
- name = "is_symbol___is_symbol_1.0.4.tgz";
- path = fetchurl {
- name = "is_symbol___is_symbol_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz";
- sha1 = "a6dac93b635b063ca6872236de88910a57af139c";
- };
- }
- {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- path = fetchurl {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
- sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
- };
- }
- {
- name = "is_windows___is_windows_1.0.2.tgz";
- path = fetchurl {
- name = "is_windows___is_windows_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
- sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
- };
- }
- {
- name = "is_wsl___is_wsl_1.1.0.tgz";
- path = fetchurl {
- name = "is_wsl___is_wsl_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
- sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
- };
- }
- {
- name = "isarray___isarray_1.0.0.tgz";
- path = fetchurl {
- name = "isarray___isarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
- sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
- };
- }
- {
- name = "isexe___isexe_2.0.0.tgz";
- path = fetchurl {
- name = "isexe___isexe_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
- sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
- };
- }
- {
- name = "isobject___isobject_2.1.0.tgz";
- path = fetchurl {
- name = "isobject___isobject_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
- sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
- };
- }
- {
- name = "isobject___isobject_3.0.1.tgz";
- path = fetchurl {
- name = "isobject___isobject_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
- sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
- };
- }
- {
- name = "isstream___isstream_0.1.2.tgz";
- path = fetchurl {
- name = "isstream___isstream_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
- sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
- };
- }
- {
- name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
- path = fetchurl {
- name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
- sha1 = "675f0ab69503fad4b1d849f736baaca803344f49";
- };
- }
- {
- name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
- path = fetchurl {
- name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
- sha1 = "a5f63d91f0bbc0c3e479ef4c5de027335ec6d630";
- };
- }
- {
- name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
- path = fetchurl {
- name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
- sha1 = "5a8113cd746d43c4889eba36ab10e7d50c9b4f33";
- };
- }
- {
- name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
- path = fetchurl {
- name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
- sha1 = "284997c48211752ec486253da97e3879defba8c8";
- };
- }
- {
- name = "istanbul_reports___istanbul_reports_2.2.7.tgz";
- path = fetchurl {
- name = "istanbul_reports___istanbul_reports_2.2.7.tgz";
- url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz";
- sha1 = "5d939f6237d7b48393cc0959eab40cd4fd056931";
- };
- }
- {
- name = "jest_changed_files___jest_changed_files_24.9.0.tgz";
- path = fetchurl {
- name = "jest_changed_files___jest_changed_files_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz";
- sha1 = "08d8c15eb79a7fa3fc98269bc14b451ee82f8039";
- };
- }
- {
- name = "jest_cli___jest_cli_24.9.0.tgz";
- path = fetchurl {
- name = "jest_cli___jest_cli_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz";
- sha1 = "ad2de62d07472d419c6abc301fc432b98b10d2af";
- };
- }
- {
- name = "jest_config___jest_config_24.9.0.tgz";
- path = fetchurl {
- name = "jest_config___jest_config_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz";
- sha1 = "fb1bbc60c73a46af03590719efa4825e6e4dd1b5";
- };
- }
- {
- name = "jest_diff___jest_diff_24.9.0.tgz";
- path = fetchurl {
- name = "jest_diff___jest_diff_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz";
- sha1 = "931b7d0d5778a1baf7452cb816e325e3724055da";
- };
- }
- {
- name = "jest_docblock___jest_docblock_24.9.0.tgz";
- path = fetchurl {
- name = "jest_docblock___jest_docblock_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz";
- sha1 = "7970201802ba560e1c4092cc25cbedf5af5a8ce2";
- };
- }
- {
- name = "jest_each___jest_each_24.9.0.tgz";
- path = fetchurl {
- name = "jest_each___jest_each_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz";
- sha1 = "eb2da602e2a610898dbc5f1f6df3ba86b55f8b05";
- };
- }
- {
- name = "jest_environment_jsdom___jest_environment_jsdom_24.9.0.tgz";
- path = fetchurl {
- name = "jest_environment_jsdom___jest_environment_jsdom_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz";
- sha1 = "4b0806c7fc94f95edb369a69cc2778eec2b7375b";
- };
- }
- {
- name = "jest_environment_node___jest_environment_node_24.9.0.tgz";
- path = fetchurl {
- name = "jest_environment_node___jest_environment_node_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz";
- sha1 = "333d2d2796f9687f2aeebf0742b519f33c1cbfd3";
- };
- }
- {
- name = "jest_get_type___jest_get_type_24.9.0.tgz";
- path = fetchurl {
- name = "jest_get_type___jest_get_type_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz";
- sha1 = "1684a0c8a50f2e4901b6644ae861f579eed2ef0e";
- };
- }
- {
- name = "jest_haste_map___jest_haste_map_24.9.0.tgz";
- path = fetchurl {
- name = "jest_haste_map___jest_haste_map_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz";
- sha1 = "b38a5d64274934e21fa417ae9a9fbeb77ceaac7d";
- };
- }
- {
- name = "jest_jasmine2___jest_jasmine2_24.9.0.tgz";
- path = fetchurl {
- name = "jest_jasmine2___jest_jasmine2_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz";
- sha1 = "1f7b1bd3242c1774e62acabb3646d96afc3be6a0";
- };
- }
- {
- name = "jest_leak_detector___jest_leak_detector_24.9.0.tgz";
- path = fetchurl {
- name = "jest_leak_detector___jest_leak_detector_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz";
- sha1 = "b665dea7c77100c5c4f7dfcb153b65cf07dcf96a";
- };
- }
- {
- name = "jest_matcher_utils___jest_matcher_utils_24.9.0.tgz";
- path = fetchurl {
- name = "jest_matcher_utils___jest_matcher_utils_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz";
- sha1 = "f5b3661d5e628dffe6dd65251dfdae0e87c3a073";
- };
- }
- {
- name = "jest_message_util___jest_message_util_24.9.0.tgz";
- path = fetchurl {
- name = "jest_message_util___jest_message_util_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz";
- sha1 = "527f54a1e380f5e202a8d1149b0ec872f43119e3";
- };
- }
- {
- name = "jest_mock___jest_mock_24.9.0.tgz";
- path = fetchurl {
- name = "jest_mock___jest_mock_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz";
- sha1 = "c22835541ee379b908673ad51087a2185c13f1c6";
- };
- }
- {
- name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
- path = fetchurl {
- name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz";
- sha1 = "b704ac0ae028a89108a4d040b3f919dfddc8e33c";
- };
- }
- {
- name = "jest_regex_util___jest_regex_util_24.9.0.tgz";
- path = fetchurl {
- name = "jest_regex_util___jest_regex_util_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz";
- sha1 = "c13fb3380bde22bf6575432c493ea8fe37965636";
- };
- }
- {
- name = "jest_resolve_dependencies___jest_resolve_dependencies_24.9.0.tgz";
- path = fetchurl {
- name = "jest_resolve_dependencies___jest_resolve_dependencies_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz";
- sha1 = "ad055198959c4cfba8a4f066c673a3f0786507ab";
- };
- }
- {
- name = "jest_resolve___jest_resolve_24.9.0.tgz";
- path = fetchurl {
- name = "jest_resolve___jest_resolve_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz";
- sha1 = "dff04c7687af34c4dd7e524892d9cf77e5d17321";
- };
- }
- {
- name = "jest_runner___jest_runner_24.9.0.tgz";
- path = fetchurl {
- name = "jest_runner___jest_runner_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz";
- sha1 = "574fafdbd54455c2b34b4bdf4365a23857fcdf42";
- };
- }
- {
- name = "jest_runtime___jest_runtime_24.9.0.tgz";
- path = fetchurl {
- name = "jest_runtime___jest_runtime_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz";
- sha1 = "9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac";
- };
- }
- {
- name = "jest_serializer___jest_serializer_24.9.0.tgz";
- path = fetchurl {
- name = "jest_serializer___jest_serializer_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz";
- sha1 = "e6d7d7ef96d31e8b9079a714754c5d5c58288e73";
- };
- }
- {
- name = "jest_snapshot___jest_snapshot_24.9.0.tgz";
- path = fetchurl {
- name = "jest_snapshot___jest_snapshot_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz";
- sha1 = "ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba";
- };
- }
- {
- name = "jest_util___jest_util_24.9.0.tgz";
- path = fetchurl {
- name = "jest_util___jest_util_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz";
- sha1 = "7396814e48536d2e85a37de3e4c431d7cb140162";
- };
- }
- {
- name = "jest_validate___jest_validate_24.9.0.tgz";
- path = fetchurl {
- name = "jest_validate___jest_validate_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz";
- sha1 = "0775c55360d173cd854e40180756d4ff52def8ab";
- };
- }
- {
- name = "jest_watcher___jest_watcher_24.9.0.tgz";
- path = fetchurl {
- name = "jest_watcher___jest_watcher_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz";
- sha1 = "4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b";
- };
- }
- {
- name = "jest_worker___jest_worker_24.9.0.tgz";
- path = fetchurl {
- name = "jest_worker___jest_worker_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz";
- sha1 = "5dbfdb5b2d322e98567898238a9697bcce67b3e5";
- };
- }
- {
- name = "jest___jest_24.9.0.tgz";
- path = fetchurl {
- name = "jest___jest_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz";
- sha1 = "987d290c05a08b52c56188c1002e368edb007171";
- };
- }
- {
- name = "js_tokens___js_tokens_4.0.0.tgz";
- path = fetchurl {
- name = "js_tokens___js_tokens_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
- sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
- };
- }
- {
- name = "js_yaml___js_yaml_3.14.1.tgz";
- path = fetchurl {
- name = "js_yaml___js_yaml_3.14.1.tgz";
- url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
- sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
- };
- }
- {
- name = "js2xmlparser___js2xmlparser_4.0.1.tgz";
- path = fetchurl {
- name = "js2xmlparser___js2xmlparser_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.1.tgz";
- sha1 = "670ef71bc5661f089cc90481b99a05a1227ae3bd";
- };
- }
- {
- name = "jsbn___jsbn_0.1.1.tgz";
- path = fetchurl {
- name = "jsbn___jsbn_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
- sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
- };
- }
- {
- name = "jsdoc___jsdoc_3.6.7.tgz";
- path = fetchurl {
- name = "jsdoc___jsdoc_3.6.7.tgz";
- url = "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.7.tgz";
- sha1 = "00431e376bed7f9de4716c6f15caa80e64492b89";
- };
- }
- {
- name = "jsdom___jsdom_11.12.0.tgz";
- path = fetchurl {
- name = "jsdom___jsdom_11.12.0.tgz";
- url = "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz";
- sha1 = "1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8";
- };
- }
- {
- name = "jsesc___jsesc_2.5.2.tgz";
- path = fetchurl {
- name = "jsesc___jsesc_2.5.2.tgz";
- url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
- sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
- };
- }
- {
- name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
- path = fetchurl {
- name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
- sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
- };
- }
- {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- path = fetchurl {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
- sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
- };
- }
- {
- name = "json_schema___json_schema_0.2.3.tgz";
- path = fetchurl {
- name = "json_schema___json_schema_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
- sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
- };
- }
- {
- name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
- path = fetchurl {
- name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
- sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
- };
- }
- {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- path = fetchurl {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
- sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
- };
- }
- {
- name = "json5___json5_2.2.0.tgz";
- path = fetchurl {
- name = "json5___json5_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
- sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
- };
- }
- {
- name = "jsprim___jsprim_1.4.1.tgz";
- path = fetchurl {
- name = "jsprim___jsprim_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
- sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
- };
- }
- {
- name = "kind_of___kind_of_3.2.2.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_3.2.2.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
- sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
- };
- }
- {
- name = "kind_of___kind_of_4.0.0.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
- sha1 = "20813df3d712928b207378691a45066fae72dd57";
- };
- }
- {
- name = "kind_of___kind_of_5.1.0.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
- sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
- };
- }
- {
- name = "kind_of___kind_of_6.0.3.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_6.0.3.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
- sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
- };
- }
- {
- name = "klaw___klaw_3.0.0.tgz";
- path = fetchurl {
- name = "klaw___klaw_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz";
- sha1 = "b11bec9cf2492f06756d6e809ab73a2910259146";
- };
- }
- {
- name = "kleur___kleur_3.0.3.tgz";
- path = fetchurl {
- name = "kleur___kleur_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz";
- sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e";
- };
- }
- {
- name = "left_pad___left_pad_1.3.0.tgz";
- path = fetchurl {
- name = "left_pad___left_pad_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz";
- sha1 = "5b8a3a7765dfe001261dde915589e782f8c94d1e";
- };
- }
- {
- name = "leven___leven_3.1.0.tgz";
- path = fetchurl {
- name = "leven___leven_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz";
- sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2";
- };
- }
- {
- name = "levn___levn_0.3.0.tgz";
- path = fetchurl {
- name = "levn___levn_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
- sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
- };
- }
- {
- name = "linkify_it___linkify_it_2.2.0.tgz";
- path = fetchurl {
- name = "linkify_it___linkify_it_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz";
- sha1 = "e3b54697e78bf915c70a38acd78fd09e0058b1cf";
- };
- }
- {
- name = "load_json_file___load_json_file_4.0.0.tgz";
- path = fetchurl {
- name = "load_json_file___load_json_file_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
- sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
- };
- }
- {
- name = "locate_path___locate_path_3.0.0.tgz";
- path = fetchurl {
- name = "locate_path___locate_path_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
- sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
- };
- }
- {
- name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
- path = fetchurl {
- name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
- sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
- };
- }
- {
- name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
- path = fetchurl {
- name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
- sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
- };
- }
- {
- name = "lodash___lodash_4.17.21.tgz";
- path = fetchurl {
- name = "lodash___lodash_4.17.21.tgz";
- url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
- sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
- };
- }
- {
- name = "loose_envify___loose_envify_1.4.0.tgz";
- path = fetchurl {
- name = "loose_envify___loose_envify_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
- sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
- };
- }
- {
- name = "lru_cache___lru_cache_6.0.0.tgz";
- path = fetchurl {
- name = "lru_cache___lru_cache_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
- sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
- };
- }
- {
- name = "make_dir___make_dir_2.1.0.tgz";
- path = fetchurl {
- name = "make_dir___make_dir_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
- sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
- };
- }
- {
- name = "make_promises_safe___make_promises_safe_5.1.0.tgz";
- path = fetchurl {
- name = "make_promises_safe___make_promises_safe_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/make-promises-safe/-/make-promises-safe-5.1.0.tgz";
- sha1 = "dd9d311f555bcaa144f12e225b3d37785f0aa8f2";
- };
- }
- {
- name = "makeerror___makeerror_1.0.11.tgz";
- path = fetchurl {
- name = "makeerror___makeerror_1.0.11.tgz";
- url = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
- sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
- };
- }
- {
- name = "map_cache___map_cache_0.2.2.tgz";
- path = fetchurl {
- name = "map_cache___map_cache_0.2.2.tgz";
- url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
- sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
- };
- }
- {
- name = "map_visit___map_visit_1.0.0.tgz";
- path = fetchurl {
- name = "map_visit___map_visit_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
- sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
- };
- }
- {
- name = "markdown_it_anchor___markdown_it_anchor_5.3.0.tgz";
- path = fetchurl {
- name = "markdown_it_anchor___markdown_it_anchor_5.3.0.tgz";
- url = "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz";
- sha1 = "d549acd64856a8ecd1bea58365ef385effbac744";
- };
- }
- {
- name = "markdown_it___markdown_it_10.0.0.tgz";
- path = fetchurl {
- name = "markdown_it___markdown_it_10.0.0.tgz";
- url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz";
- sha1 = "abfc64f141b1722d663402044e43927f1f50a8dc";
- };
- }
- {
- name = "marked___marked_2.1.3.tgz";
- path = fetchurl {
- name = "marked___marked_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/marked/-/marked-2.1.3.tgz";
- sha1 = "bd017cef6431724fd4b27e0657f5ceb14bff3753";
- };
- }
- {
- name = "mdurl___mdurl_1.0.1.tgz";
- path = fetchurl {
- name = "mdurl___mdurl_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz";
- sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
- };
- }
- {
- name = "merge_stream___merge_stream_2.0.0.tgz";
- path = fetchurl {
- name = "merge_stream___merge_stream_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
- sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
- };
- }
- {
- name = "micromatch___micromatch_3.1.10.tgz";
- path = fetchurl {
- name = "micromatch___micromatch_3.1.10.tgz";
- url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
- sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
- };
- }
- {
- name = "mime_db___mime_db_1.48.0.tgz";
- path = fetchurl {
- name = "mime_db___mime_db_1.48.0.tgz";
- url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz";
- sha1 = "e35b31045dd7eada3aaad537ed88a33afbef2d1d";
- };
- }
- {
- name = "mime_types___mime_types_2.1.31.tgz";
- path = fetchurl {
- name = "mime_types___mime_types_2.1.31.tgz";
- url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz";
- sha1 = "a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b";
- };
- }
- {
- name = "mimic_fn___mimic_fn_2.1.0.tgz";
- path = fetchurl {
- name = "mimic_fn___mimic_fn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
- sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
- };
- }
- {
- name = "minimatch___minimatch_3.0.4.tgz";
- path = fetchurl {
- name = "minimatch___minimatch_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
- sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
- };
- }
- {
- name = "minimist___minimist_1.2.5.tgz";
- path = fetchurl {
- name = "minimist___minimist_1.2.5.tgz";
- url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
- sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
- };
- }
- {
- name = "mixin_deep___mixin_deep_1.3.2.tgz";
- path = fetchurl {
- name = "mixin_deep___mixin_deep_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
- sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
- };
- }
- {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
- sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
- };
- }
- {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
- sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
- };
- }
- {
- name = "ms___ms_2.0.0.tgz";
- path = fetchurl {
- name = "ms___ms_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
- sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
- };
- }
- {
- name = "ms___ms_2.1.2.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
- sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
- };
- }
- {
- name = "mute_stream___mute_stream_0.0.8.tgz";
- path = fetchurl {
- name = "mute_stream___mute_stream_0.0.8.tgz";
- url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
- sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
- };
- }
- {
- name = "nan___nan_2.14.2.tgz";
- path = fetchurl {
- name = "nan___nan_2.14.2.tgz";
- url = "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz";
- sha1 = "f5376400695168f4cc694ac9393d0c9585eeea19";
- };
- }
- {
- name = "nanomatch___nanomatch_1.2.13.tgz";
- path = fetchurl {
- name = "nanomatch___nanomatch_1.2.13.tgz";
- url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
- sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
- };
- }
- {
- name = "natural_compare___natural_compare_1.4.0.tgz";
- path = fetchurl {
- name = "natural_compare___natural_compare_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
- sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
- };
- }
- {
- name = "neo_async___neo_async_2.6.2.tgz";
- path = fetchurl {
- name = "neo_async___neo_async_2.6.2.tgz";
- url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz";
- sha1 = "b4aafb93e3aeb2d8174ca53cf163ab7d7308305f";
- };
- }
- {
- name = "neon_cli___neon_cli_0.8.3.tgz";
- path = fetchurl {
- name = "neon_cli___neon_cli_0.8.3.tgz";
- url = "https://registry.yarnpkg.com/neon-cli/-/neon-cli-0.8.3.tgz";
- sha1 = "dea3a00021a07b9ef05e73464e45c94a2bf0fd3a";
- };
- }
- {
- name = "nice_try___nice_try_1.0.5.tgz";
- path = fetchurl {
- name = "nice_try___nice_try_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
- sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
- };
- }
- {
- name = "node_int64___node_int64_0.4.0.tgz";
- path = fetchurl {
- name = "node_int64___node_int64_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
- sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
- };
- }
- {
- name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
- path = fetchurl {
- name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
- sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
- };
- }
- {
- name = "node_notifier___node_notifier_5.4.5.tgz";
- path = fetchurl {
- name = "node_notifier___node_notifier_5.4.5.tgz";
- url = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz";
- sha1 = "0cbc1a2b0f658493b4025775a13ad938e96091ef";
- };
- }
- {
- name = "node_releases___node_releases_1.1.73.tgz";
- path = fetchurl {
- name = "node_releases___node_releases_1.1.73.tgz";
- url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz";
- sha1 = "dd4e81ddd5277ff846b80b52bb40c49edf7a7b20";
- };
- }
- {
- name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
- path = fetchurl {
- name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
- sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
- };
- }
- {
- name = "normalize_path___normalize_path_2.1.1.tgz";
- path = fetchurl {
- name = "normalize_path___normalize_path_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
- sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
- };
- }
- {
- name = "npm_run_path___npm_run_path_2.0.2.tgz";
- path = fetchurl {
- name = "npm_run_path___npm_run_path_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
- sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
- };
- }
- {
- name = "nwsapi___nwsapi_2.2.0.tgz";
- path = fetchurl {
- name = "nwsapi___nwsapi_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz";
- sha1 = "204879a9e3d068ff2a55139c2c772780681a38b7";
- };
- }
- {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- path = fetchurl {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
- sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
- };
- }
- {
- name = "object_copy___object_copy_0.1.0.tgz";
- path = fetchurl {
- name = "object_copy___object_copy_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
- sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
- };
- }
- {
- name = "object_inspect___object_inspect_1.11.0.tgz";
- path = fetchurl {
- name = "object_inspect___object_inspect_1.11.0.tgz";
- url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz";
- sha1 = "9dceb146cedd4148a0d9e51ab88d34cf509922b1";
- };
- }
- {
- name = "object_keys___object_keys_1.1.1.tgz";
- path = fetchurl {
- name = "object_keys___object_keys_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
- sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
- };
- }
- {
- name = "object_visit___object_visit_1.0.1.tgz";
- path = fetchurl {
- name = "object_visit___object_visit_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
- sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
- };
- }
- {
- name = "object.assign___object.assign_4.1.2.tgz";
- path = fetchurl {
- name = "object.assign___object.assign_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
- sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
- };
- }
- {
- name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
- path = fetchurl {
- name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
- sha1 = "1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7";
- };
- }
- {
- name = "object.pick___object.pick_1.3.0.tgz";
- path = fetchurl {
- name = "object.pick___object.pick_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
- sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
- };
- }
- {
- name = "once___once_1.4.0.tgz";
- path = fetchurl {
- name = "once___once_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
- sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
- };
- }
- {
- name = "onetime___onetime_5.1.2.tgz";
- path = fetchurl {
- name = "onetime___onetime_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz";
- sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e";
- };
- }
- {
- name = "optionator___optionator_0.8.3.tgz";
- path = fetchurl {
- name = "optionator___optionator_0.8.3.tgz";
- url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
- sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
- };
- }
- {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- path = fetchurl {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
- sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
- };
- }
- {
- name = "p_each_series___p_each_series_1.0.0.tgz";
- path = fetchurl {
- name = "p_each_series___p_each_series_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz";
- sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71";
- };
- }
- {
- name = "p_finally___p_finally_1.0.0.tgz";
- path = fetchurl {
- name = "p_finally___p_finally_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
- sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
- };
- }
- {
- name = "p_limit___p_limit_2.3.0.tgz";
- path = fetchurl {
- name = "p_limit___p_limit_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
- sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
- };
- }
- {
- name = "p_locate___p_locate_3.0.0.tgz";
- path = fetchurl {
- name = "p_locate___p_locate_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
- sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
- };
- }
- {
- name = "p_reduce___p_reduce_1.0.0.tgz";
- path = fetchurl {
- name = "p_reduce___p_reduce_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz";
- sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
- };
- }
- {
- name = "p_try___p_try_2.2.0.tgz";
- path = fetchurl {
- name = "p_try___p_try_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
- sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
- };
- }
- {
- name = "parent_module___parent_module_1.0.1.tgz";
- path = fetchurl {
- name = "parent_module___parent_module_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
- sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
- };
- }
- {
- name = "parse_json___parse_json_4.0.0.tgz";
- path = fetchurl {
- name = "parse_json___parse_json_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
- sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
- };
- }
- {
- name = "parse5___parse5_4.0.0.tgz";
- path = fetchurl {
- name = "parse5___parse5_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz";
- sha1 = "6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608";
- };
- }
- {
- name = "pascalcase___pascalcase_0.1.1.tgz";
- path = fetchurl {
- name = "pascalcase___pascalcase_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
- sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
- };
- }
- {
- name = "path_exists___path_exists_3.0.0.tgz";
- path = fetchurl {
- name = "path_exists___path_exists_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
- sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
- };
- }
- {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- path = fetchurl {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
- sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
- };
- }
- {
- name = "path_key___path_key_2.0.1.tgz";
- path = fetchurl {
- name = "path_key___path_key_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
- sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
- };
- }
- {
- name = "path_parse___path_parse_1.0.7.tgz";
- path = fetchurl {
- name = "path_parse___path_parse_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz";
- sha1 = "fbc114b60ca42b30d9daf5858e4bd68bbedb6735";
- };
- }
- {
- name = "path_type___path_type_3.0.0.tgz";
- path = fetchurl {
- name = "path_type___path_type_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
- sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
- };
- }
- {
- name = "performance_now___performance_now_2.1.0.tgz";
- path = fetchurl {
- name = "performance_now___performance_now_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
- sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
- };
- }
- {
- name = "pify___pify_3.0.0.tgz";
- path = fetchurl {
- name = "pify___pify_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
- sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
- };
- }
- {
- name = "pify___pify_4.0.1.tgz";
- path = fetchurl {
- name = "pify___pify_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
- sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
- };
- }
- {
- name = "pirates___pirates_4.0.1.tgz";
- path = fetchurl {
- name = "pirates___pirates_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz";
- sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87";
- };
- }
- {
- name = "pkg_dir___pkg_dir_3.0.0.tgz";
- path = fetchurl {
- name = "pkg_dir___pkg_dir_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
- sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
- };
- }
- {
- name = "pn___pn_1.1.0.tgz";
- path = fetchurl {
- name = "pn___pn_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz";
- sha1 = "e2f4cef0e219f463c179ab37463e4e1ecdccbafb";
- };
- }
- {
- name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
- path = fetchurl {
- name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
- sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
- };
- }
- {
- name = "prelude_ls___prelude_ls_1.1.2.tgz";
- path = fetchurl {
- name = "prelude_ls___prelude_ls_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
- sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
- };
- }
- {
- name = "pretty_format___pretty_format_24.9.0.tgz";
- path = fetchurl {
- name = "pretty_format___pretty_format_24.9.0.tgz";
- url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz";
- sha1 = "12fac31b37019a4eea3c11aa9a959eb7628aa7c9";
- };
- }
- {
- name = "progress___progress_2.0.3.tgz";
- path = fetchurl {
- name = "progress___progress_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
- sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
- };
- }
- {
- name = "prompts___prompts_2.4.1.tgz";
- path = fetchurl {
- name = "prompts___prompts_2.4.1.tgz";
- url = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz";
- sha1 = "befd3b1195ba052f9fd2fde8a486c4e82ee77f61";
- };
- }
- {
- name = "psl___psl_1.8.0.tgz";
- path = fetchurl {
- name = "psl___psl_1.8.0.tgz";
- url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
- sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
- };
- }
- {
- name = "pump___pump_3.0.0.tgz";
- path = fetchurl {
- name = "pump___pump_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
- sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
- };
- }
- {
- name = "punycode___punycode_2.1.1.tgz";
- path = fetchurl {
- name = "punycode___punycode_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
- sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
- };
- }
- {
- name = "qs___qs_6.5.2.tgz";
- path = fetchurl {
- name = "qs___qs_6.5.2.tgz";
- url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
- sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
- };
- }
- {
- name = "react_is___react_is_16.13.1.tgz";
- path = fetchurl {
- name = "react_is___react_is_16.13.1.tgz";
- url = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
- sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
- };
- }
- {
- name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
- path = fetchurl {
- name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
- sha1 = "1b221c6088ba7799601c808f91161c66e58f8978";
- };
- }
- {
- name = "read_pkg___read_pkg_3.0.0.tgz";
- path = fetchurl {
- name = "read_pkg___read_pkg_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
- sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
- };
- }
- {
- name = "realpath_native___realpath_native_1.1.0.tgz";
- path = fetchurl {
- name = "realpath_native___realpath_native_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz";
- sha1 = "2003294fea23fb0672f2476ebe22fcf498a2d65c";
- };
- }
- {
- name = "reduce_flatten___reduce_flatten_2.0.0.tgz";
- path = fetchurl {
- name = "reduce_flatten___reduce_flatten_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz";
- sha1 = "734fd84e65f375d7ca4465c69798c25c9d10ae27";
- };
- }
- {
- name = "regex_not___regex_not_1.0.2.tgz";
- path = fetchurl {
- name = "regex_not___regex_not_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
- sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
- };
- }
- {
- name = "regexpp___regexpp_2.0.1.tgz";
- path = fetchurl {
- name = "regexpp___regexpp_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
- sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
- };
- }
- {
- name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
- path = fetchurl {
- name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
- sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
- };
- }
- {
- name = "repeat_element___repeat_element_1.1.4.tgz";
- path = fetchurl {
- name = "repeat_element___repeat_element_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz";
- sha1 = "be681520847ab58c7568ac75fbfad28ed42d39e9";
- };
- }
- {
- name = "repeat_string___repeat_string_1.6.1.tgz";
- path = fetchurl {
- name = "repeat_string___repeat_string_1.6.1.tgz";
- url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
- sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
- };
- }
- {
- name = "request_promise_core___request_promise_core_1.1.4.tgz";
- path = fetchurl {
- name = "request_promise_core___request_promise_core_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
- sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
- };
- }
- {
- name = "request_promise_native___request_promise_native_1.0.9.tgz";
- path = fetchurl {
- name = "request_promise_native___request_promise_native_1.0.9.tgz";
- url = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz";
- sha1 = "e407120526a5efdc9a39b28a5679bf47b9d9dc28";
- };
- }
- {
- name = "request___request_2.88.2.tgz";
- path = fetchurl {
- name = "request___request_2.88.2.tgz";
- url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
- sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
- };
- }
- {
- name = "require_directory___require_directory_2.1.1.tgz";
- path = fetchurl {
- name = "require_directory___require_directory_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
- sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
- };
- }
- {
- name = "require_main_filename___require_main_filename_2.0.0.tgz";
- path = fetchurl {
- name = "require_main_filename___require_main_filename_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
- sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
- };
- }
- {
- name = "requizzle___requizzle_0.2.3.tgz";
- path = fetchurl {
- name = "requizzle___requizzle_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz";
- sha1 = "4675c90aacafb2c036bd39ba2daa4a1cb777fded";
- };
- }
- {
- name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
- path = fetchurl {
- name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
- sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
- };
- }
- {
- name = "resolve_from___resolve_from_3.0.0.tgz";
- path = fetchurl {
- name = "resolve_from___resolve_from_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
- sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
- };
- }
- {
- name = "resolve_from___resolve_from_4.0.0.tgz";
- path = fetchurl {
- name = "resolve_from___resolve_from_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
- sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
- };
- }
- {
- name = "resolve_url___resolve_url_0.2.1.tgz";
- path = fetchurl {
- name = "resolve_url___resolve_url_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
- sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
- };
- }
- {
- name = "resolve___resolve_1.1.7.tgz";
- path = fetchurl {
- name = "resolve___resolve_1.1.7.tgz";
- url = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
- sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
- };
- }
- {
- name = "resolve___resolve_1.20.0.tgz";
- path = fetchurl {
- name = "resolve___resolve_1.20.0.tgz";
- url = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
- sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
- };
- }
- {
- name = "restore_cursor___restore_cursor_3.1.0.tgz";
- path = fetchurl {
- name = "restore_cursor___restore_cursor_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
- sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
- };
- }
- {
- name = "ret___ret_0.1.15.tgz";
- path = fetchurl {
- name = "ret___ret_0.1.15.tgz";
- url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
- sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
- };
- }
- {
- name = "rimraf___rimraf_2.6.3.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_2.6.3.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
- sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
- };
- }
- {
- name = "rimraf___rimraf_2.7.1.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_2.7.1.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
- sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
- };
- }
- {
- name = "rimraf___rimraf_3.0.2.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
- sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
- };
- }
- {
- name = "rsvp___rsvp_4.8.5.tgz";
- path = fetchurl {
- name = "rsvp___rsvp_4.8.5.tgz";
- url = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz";
- sha1 = "c8f155311d167f68f21e168df71ec5b083113734";
- };
- }
- {
- name = "run_async___run_async_2.4.1.tgz";
- path = fetchurl {
- name = "run_async___run_async_2.4.1.tgz";
- url = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
- sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
- };
- }
- {
- name = "rxjs___rxjs_6.6.7.tgz";
- path = fetchurl {
- name = "rxjs___rxjs_6.6.7.tgz";
- url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz";
- sha1 = "90ac018acabf491bf65044235d5863c4dab804c9";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.2.1.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.2.1.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
- sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.1.2.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
- sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
- };
- }
- {
- name = "safe_regex___safe_regex_1.1.0.tgz";
- path = fetchurl {
- name = "safe_regex___safe_regex_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
- sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
- };
- }
- {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- path = fetchurl {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
- sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
- };
- }
- {
- name = "sane___sane_4.1.0.tgz";
- path = fetchurl {
- name = "sane___sane_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
- sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
- };
- }
- {
- name = "sax___sax_1.2.4.tgz";
- path = fetchurl {
- name = "sax___sax_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
- sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
- };
- }
- {
- name = "semver___semver_5.7.1.tgz";
- path = fetchurl {
- name = "semver___semver_5.7.1.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
- sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
- };
- }
- {
- name = "semver___semver_6.3.0.tgz";
- path = fetchurl {
- name = "semver___semver_6.3.0.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
- sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
- };
- }
- {
- name = "semver___semver_7.3.5.tgz";
- path = fetchurl {
- name = "semver___semver_7.3.5.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
- sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
- };
- }
- {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- path = fetchurl {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
- sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
- };
- }
- {
- name = "set_value___set_value_2.0.1.tgz";
- path = fetchurl {
- name = "set_value___set_value_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
- sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
- };
- }
- {
- name = "shebang_command___shebang_command_1.2.0.tgz";
- path = fetchurl {
- name = "shebang_command___shebang_command_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
- sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
- };
- }
- {
- name = "shebang_regex___shebang_regex_1.0.0.tgz";
- path = fetchurl {
- name = "shebang_regex___shebang_regex_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
- sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
- };
- }
- {
- name = "shellwords___shellwords_0.1.1.tgz";
- path = fetchurl {
- name = "shellwords___shellwords_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
- sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
- };
- }
- {
- name = "signal_exit___signal_exit_3.0.3.tgz";
- path = fetchurl {
- name = "signal_exit___signal_exit_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
- sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
- };
- }
- {
- name = "sisteransi___sisteransi_1.0.5.tgz";
- path = fetchurl {
- name = "sisteransi___sisteransi_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz";
- sha1 = "134d681297756437cc05ca01370d3a7a571075ed";
- };
- }
- {
- name = "slash___slash_2.0.0.tgz";
- path = fetchurl {
- name = "slash___slash_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
- sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
- };
- }
- {
- name = "slice_ansi___slice_ansi_2.1.0.tgz";
- path = fetchurl {
- name = "slice_ansi___slice_ansi_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
- sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
- };
- }
- {
- name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
- path = fetchurl {
- name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
- sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
- };
- }
- {
- name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
- path = fetchurl {
- name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
- sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
- };
- }
- {
- name = "snapdragon___snapdragon_0.8.2.tgz";
- path = fetchurl {
- name = "snapdragon___snapdragon_0.8.2.tgz";
- url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
- sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
- };
- }
- {
- name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
- path = fetchurl {
- name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
- sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
- };
- }
- {
- name = "source_map_support___source_map_support_0.5.19.tgz";
- path = fetchurl {
- name = "source_map_support___source_map_support_0.5.19.tgz";
- url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
- sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
- };
- }
- {
- name = "source_map_url___source_map_url_0.4.1.tgz";
- path = fetchurl {
- name = "source_map_url___source_map_url_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
- sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
- };
- }
- {
- name = "source_map___source_map_0.5.7.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.5.7.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
- sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
- };
- }
- {
- name = "source_map___source_map_0.6.1.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
- sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
- };
- }
- {
- name = "spdx_correct___spdx_correct_3.1.1.tgz";
- path = fetchurl {
- name = "spdx_correct___spdx_correct_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz";
- sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9";
- };
- }
- {
- name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
- path = fetchurl {
- name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
- sha1 = "3f28ce1a77a00372683eade4a433183527a2163d";
- };
- }
- {
- name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
- path = fetchurl {
- name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
- sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
- };
- }
- {
- name = "spdx_license_ids___spdx_license_ids_3.0.9.tgz";
- path = fetchurl {
- name = "spdx_license_ids___spdx_license_ids_3.0.9.tgz";
- url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz";
- sha1 = "8a595135def9592bda69709474f1cbeea7c2467f";
- };
- }
- {
- name = "split_string___split_string_3.1.0.tgz";
- path = fetchurl {
- name = "split_string___split_string_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
- sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
- };
- }
- {
- name = "sprintf_js___sprintf_js_1.0.3.tgz";
- path = fetchurl {
- name = "sprintf_js___sprintf_js_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
- sha1 = "04e6926f662895354f3dd015203633b857297e2c";
- };
- }
- {
- name = "sshpk___sshpk_1.16.1.tgz";
- path = fetchurl {
- name = "sshpk___sshpk_1.16.1.tgz";
- url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
- sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
- };
- }
- {
- name = "stack_utils___stack_utils_1.0.5.tgz";
- path = fetchurl {
- name = "stack_utils___stack_utils_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz";
- sha1 = "a19b0b01947e0029c8e451d5d61a498f5bb1471b";
- };
- }
- {
- name = "static_extend___static_extend_0.1.2.tgz";
- path = fetchurl {
- name = "static_extend___static_extend_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
- sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
- };
- }
- {
- name = "stealthy_require___stealthy_require_1.1.1.tgz";
- path = fetchurl {
- name = "stealthy_require___stealthy_require_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
- sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
- };
- }
- {
- name = "string_length___string_length_2.0.0.tgz";
- path = fetchurl {
- name = "string_length___string_length_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz";
- sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed";
- };
- }
- {
- name = "string_width___string_width_3.1.0.tgz";
- path = fetchurl {
- name = "string_width___string_width_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
- sha1 = "22767be21b62af1081574306f69ac51b62203961";
- };
- }
- {
- name = "string_width___string_width_4.2.2.tgz";
- path = fetchurl {
- name = "string_width___string_width_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
- sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
- };
- }
- {
- name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
- path = fetchurl {
- name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
- sha1 = "e75ae90c2942c63504686c18b287b4a0b1a45f80";
- };
- }
- {
- name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
- path = fetchurl {
- name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
- sha1 = "b36399af4ab2999b4c9c648bd7a3fb2bb26feeed";
- };
- }
- {
- name = "strip_ansi___strip_ansi_4.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
- sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
- };
- }
- {
- name = "strip_ansi___strip_ansi_5.2.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
- sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
- };
- }
- {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
- sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
- };
- }
- {
- name = "strip_bom___strip_bom_3.0.0.tgz";
- path = fetchurl {
- name = "strip_bom___strip_bom_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
- sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
- };
- }
- {
- name = "strip_eof___strip_eof_1.0.0.tgz";
- path = fetchurl {
- name = "strip_eof___strip_eof_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
- sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
- sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
- };
- }
- {
- name = "supports_color___supports_color_5.5.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_5.5.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
- sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
- };
- }
- {
- name = "supports_color___supports_color_6.1.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
- sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
- };
- }
- {
- name = "supports_color___supports_color_7.2.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_7.2.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
- sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
- };
- }
- {
- name = "symbol_tree___symbol_tree_3.2.4.tgz";
- path = fetchurl {
- name = "symbol_tree___symbol_tree_3.2.4.tgz";
- url = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz";
- sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
- };
- }
- {
- name = "table_layout___table_layout_1.0.2.tgz";
- path = fetchurl {
- name = "table_layout___table_layout_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz";
- sha1 = "c4038a1853b0136d63365a734b6931cf4fad4a04";
- };
- }
- {
- name = "table___table_5.4.6.tgz";
- path = fetchurl {
- name = "table___table_5.4.6.tgz";
- url = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
- sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
- };
- }
- {
- name = "taffydb___taffydb_2.6.2.tgz";
- path = fetchurl {
- name = "taffydb___taffydb_2.6.2.tgz";
- url = "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz";
- sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
- };
- }
- {
- name = "test_exclude___test_exclude_5.2.3.tgz";
- path = fetchurl {
- name = "test_exclude___test_exclude_5.2.3.tgz";
- url = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz";
- sha1 = "c3d3e1e311eb7ee405e092dac10aefd09091eac0";
- };
- }
- {
- name = "text_table___text_table_0.2.0.tgz";
- path = fetchurl {
- name = "text_table___text_table_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
- sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
- };
- }
- {
- name = "throat___throat_4.1.0.tgz";
- path = fetchurl {
- name = "throat___throat_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz";
- sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a";
- };
- }
- {
- name = "through___through_2.3.8.tgz";
- path = fetchurl {
- name = "through___through_2.3.8.tgz";
- url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
- sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
- };
- }
- {
- name = "tmp___tmp_0.0.33.tgz";
- path = fetchurl {
- name = "tmp___tmp_0.0.33.tgz";
- url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
- sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
- };
- }
- {
- name = "tmpl___tmpl_1.0.4.tgz";
- path = fetchurl {
- name = "tmpl___tmpl_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
- sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
- };
- }
- {
- name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
- path = fetchurl {
- name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
- sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
- };
- }
- {
- name = "to_object_path___to_object_path_0.3.0.tgz";
- path = fetchurl {
- name = "to_object_path___to_object_path_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
- sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
- };
- }
- {
- name = "to_regex_range___to_regex_range_2.1.1.tgz";
- path = fetchurl {
- name = "to_regex_range___to_regex_range_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
- sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
- };
- }
- {
- name = "to_regex___to_regex_3.0.2.tgz";
- path = fetchurl {
- name = "to_regex___to_regex_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
- sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
- };
- }
- {
- name = "toml___toml_3.0.0.tgz";
- path = fetchurl {
- name = "toml___toml_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz";
- sha1 = "342160f1af1904ec9d204d03a5d61222d762c5ee";
- };
- }
- {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- path = fetchurl {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
- sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
- };
- }
- {
- name = "tr46___tr46_1.0.1.tgz";
- path = fetchurl {
- name = "tr46___tr46_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz";
- sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
- };
- }
- {
- name = "ts_typed_json___ts_typed_json_0.3.2.tgz";
- path = fetchurl {
- name = "ts_typed_json___ts_typed_json_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/ts-typed-json/-/ts-typed-json-0.3.2.tgz";
- sha1 = "f4f20f45950bae0a383857f7b0a94187eca1b56a";
- };
- }
- {
- name = "tslib___tslib_1.14.1.tgz";
- path = fetchurl {
- name = "tslib___tslib_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
- sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
- };
- }
- {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- path = fetchurl {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
- sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
- };
- }
- {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- path = fetchurl {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
- sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
- };
- }
- {
- name = "type_check___type_check_0.3.2.tgz";
- path = fetchurl {
- name = "type_check___type_check_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
- sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
- };
- }
- {
- name = "type_fest___type_fest_0.21.3.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.21.3.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz";
- sha1 = "d260a24b0198436e133fa26a524a6d65fa3b2e37";
- };
- }
- {
- name = "type_fest___type_fest_0.8.1.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.8.1.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
- sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
- };
- }
- {
- name = "typical___typical_4.0.0.tgz";
- path = fetchurl {
- name = "typical___typical_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz";
- sha1 = "cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4";
- };
- }
- {
- name = "typical___typical_5.2.0.tgz";
- path = fetchurl {
- name = "typical___typical_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz";
- sha1 = "4daaac4f2b5315460804f0acf6cb69c52bb93066";
- };
- }
- {
- name = "uc.micro___uc.micro_1.0.6.tgz";
- path = fetchurl {
- name = "uc.micro___uc.micro_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz";
- sha1 = "9c411a802a409a91fc6cf74081baba34b24499ac";
- };
- }
- {
- name = "uglify_js___uglify_js_3.13.10.tgz";
- path = fetchurl {
- name = "uglify_js___uglify_js_3.13.10.tgz";
- url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.10.tgz";
- sha1 = "a6bd0d28d38f592c3adb6b180ea6e07e1e540a8d";
- };
- }
- {
- name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
- path = fetchurl {
- name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
- sha1 = "085e215625ec3162574dc8859abee78a59b14471";
- };
- }
- {
- name = "underscore___underscore_1.13.1.tgz";
- path = fetchurl {
- name = "underscore___underscore_1.13.1.tgz";
- url = "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz";
- sha1 = "0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1";
- };
- }
- {
- name = "union_value___union_value_1.0.1.tgz";
- path = fetchurl {
- name = "union_value___union_value_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
- sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
- };
- }
- {
- name = "unset_value___unset_value_1.0.0.tgz";
- path = fetchurl {
- name = "unset_value___unset_value_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
- sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
- };
- }
- {
- name = "uri_js___uri_js_4.4.1.tgz";
- path = fetchurl {
- name = "uri_js___uri_js_4.4.1.tgz";
- url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
- sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
- };
- }
- {
- name = "urix___urix_0.1.0.tgz";
- path = fetchurl {
- name = "urix___urix_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
- sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
- };
- }
- {
- name = "use___use_3.1.1.tgz";
- path = fetchurl {
- name = "use___use_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
- sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
- };
- }
- {
- name = "util.promisify___util.promisify_1.1.1.tgz";
- path = fetchurl {
- name = "util.promisify___util.promisify_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz";
- sha1 = "77832f57ced2c9478174149cae9b96e9918cd54b";
- };
- }
- {
- name = "uuid___uuid_3.4.0.tgz";
- path = fetchurl {
- name = "uuid___uuid_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
- sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
- };
- }
- {
- name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
- path = fetchurl {
- name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
- sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
- };
- }
- {
- name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
- path = fetchurl {
- name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
- sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
- };
- }
- {
- name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
- path = fetchurl {
- name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
- sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
- };
- }
- {
- name = "verror___verror_1.10.0.tgz";
- path = fetchurl {
- name = "verror___verror_1.10.0.tgz";
- url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
- sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
- };
- }
- {
- name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
- path = fetchurl {
- name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
- sha1 = "0a89cdf5cc15822df9c360543676963e0cc308cd";
- };
- }
- {
- name = "walker___walker_1.0.7.tgz";
- path = fetchurl {
- name = "walker___walker_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
- sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
- };
- }
- {
- name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
- path = fetchurl {
- name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
- sha1 = "a855980b1f0b6b359ba1d5d9fb39ae941faa63ad";
- };
- }
- {
- name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
- path = fetchurl {
- name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
- sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
- };
- }
- {
- name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
- path = fetchurl {
- name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
- sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
- };
- }
- {
- name = "whatwg_url___whatwg_url_6.5.0.tgz";
- path = fetchurl {
- name = "whatwg_url___whatwg_url_6.5.0.tgz";
- url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz";
- sha1 = "f2df02bff176fd65070df74ad5ccbb5a199965a8";
- };
- }
- {
- name = "whatwg_url___whatwg_url_7.1.0.tgz";
- path = fetchurl {
- name = "whatwg_url___whatwg_url_7.1.0.tgz";
- url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz";
- sha1 = "c2c492f1eca612988efd3d2266be1b9fc6170d06";
- };
- }
- {
- name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
- path = fetchurl {
- name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
- sha1 = "13757bc89b209b049fe5d86430e21cf40a89a8e6";
- };
- }
- {
- name = "which_module___which_module_2.0.0.tgz";
- path = fetchurl {
- name = "which_module___which_module_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
- sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
- };
- }
- {
- name = "which___which_1.3.1.tgz";
- path = fetchurl {
- name = "which___which_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
- sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
- };
- }
- {
- name = "word_wrap___word_wrap_1.2.3.tgz";
- path = fetchurl {
- name = "word_wrap___word_wrap_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
- sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
- };
- }
- {
- name = "wordwrap___wordwrap_1.0.0.tgz";
- path = fetchurl {
- name = "wordwrap___wordwrap_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
- sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
- };
- }
- {
- name = "wordwrapjs___wordwrapjs_4.0.1.tgz";
- path = fetchurl {
- name = "wordwrapjs___wordwrapjs_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz";
- sha1 = "d9790bccfb110a0fc7836b5ebce0937b37a8b98f";
- };
- }
- {
- name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
- path = fetchurl {
- name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
- sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
- };
- }
- {
- name = "wrappy___wrappy_1.0.2.tgz";
- path = fetchurl {
- name = "wrappy___wrappy_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
- sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
- };
- }
- {
- name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
- path = fetchurl {
- name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
- url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz";
- sha1 = "d0b05463c188ae804396fd5ab2a370062af87529";
- };
- }
- {
- name = "write___write_1.0.3.tgz";
- path = fetchurl {
- name = "write___write_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
- sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
- };
- }
- {
- name = "ws___ws_5.2.3.tgz";
- path = fetchurl {
- name = "ws___ws_5.2.3.tgz";
- url = "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz";
- sha1 = "05541053414921bc29c63bee14b8b0dd50b07b3d";
- };
- }
- {
- name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
- path = fetchurl {
- name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
- sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
- };
- }
- {
- name = "xmlcreate___xmlcreate_2.0.3.tgz";
- path = fetchurl {
- name = "xmlcreate___xmlcreate_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.3.tgz";
- sha1 = "df9ecd518fd3890ab3548e1b811d040614993497";
- };
- }
- {
- name = "y18n___y18n_4.0.3.tgz";
- path = fetchurl {
- name = "y18n___y18n_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz";
- sha1 = "b5f259c82cd6e336921efd7bfd8bf560de9eeedf";
- };
- }
- {
- name = "yallist___yallist_4.0.0.tgz";
- path = fetchurl {
- name = "yallist___yallist_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
- sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
- };
- }
- {
- name = "yargs_parser___yargs_parser_13.1.2.tgz";
- path = fetchurl {
- name = "yargs_parser___yargs_parser_13.1.2.tgz";
- url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz";
- sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38";
- };
- }
- {
- name = "yargs___yargs_13.3.2.tgz";
- path = fetchurl {
- name = "yargs___yargs_13.3.2.tgz";
- url = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
- sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
- };
- }
- ];
-}
diff --git a/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh b/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
deleted file mode 100755
index 69d0d3d70728..000000000000
--- a/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
-
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
- echo "Regenerates the Yarn dependency lock files for the element-desktop package."
- echo "Usage: $0 "
- exit 1
-fi
-
-RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/element-desktop/$1"
-
-wget "$RIOT_WEB_SRC/package.json" -O element-desktop-package.json
-wget "$RIOT_WEB_SRC/yarn.lock" -O element-desktop-yarndeps.lock
-yarn2nix --lockfile=element-desktop-yarndeps.lock > element-desktop-yarndeps.nix
-rm element-desktop-yarndeps.lock
diff --git a/pkgs/applications/networking/instant-messengers/element/update.sh b/pkgs/applications/networking/instant-messengers/element/update.sh
new file mode 100755
index 000000000000..364f63a18bb6
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/update.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github
+
+if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
+ echo "Regenerates packaging data for the element packages."
+ echo "Usage: $0 [git release tag]"
+ exit 1
+fi
+
+version="$1"
+
+set -euo pipefail
+
+if [ -z "$version" ]; then
+ version="$(wget -O- "https://api.github.com/repos/vector-im/element-desktop/releases?per_page=1" | jq -r '.[0].tag_name')"
+fi
+
+# strip leading "v"
+version="${version#v}"
+
+desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version"
+
+desktop_src_hash=$(nix-prefetch-github vector-im element-desktop --rev v${version} | jq -r .sha256)
+web_hash=$(nix-prefetch-url "https://github.com/vector-im/element-web/releases/download/v$version/element-v$version.tar.gz")
+
+wget "$desktop_src/package.json" -O element-desktop-package.json
+
+tmpdir=$(mktemp -d)
+trap 'rm -rf "$tmpdir"' EXIT
+
+pushd $tmpdir
+wget "$desktop_src/yarn.lock"
+desktop_yarn_hash=$(prefetch-yarn-deps yarn.lock)
+popd
+
+cat > pin.json << EOF
+{
+ "version": "$version",
+ "desktopSrcHash": "$desktop_src_hash",
+ "desktopYarnHash": "$desktop_yarn_hash",
+ "webHash": "$web_hash"
+}
+EOF
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index 05ba66f93703..a1c63cc9837f 100644
--- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -17,10 +17,10 @@ in
mkFranzDerivation' rec {
pname = "ferdi";
name = "Ferdi";
- version = "5.6.2";
+ version = "5.6.3";
src = fetchurl {
url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
- sha256 = "sha256-8rB7SnaIaeCXAaKELNO1CnxpV8TyeKRCVamwpATeia4=";
+ sha256 = "sha256-cfX3x0ZRxT6sxMm20uL8lKhMbrI/yiCHVrBTPKIlDSE=";
};
extraBuildInputs = [ xorg.libxshmfence ];
meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index ced3dcf5fe48..2b6cb9969e82 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -21,11 +21,11 @@
python3.pkgs.buildPythonApplication rec {
pname = "gajim";
- version = "1.3.2";
+ version = "1.3.3";
src = fetchurl {
url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
- sha256 = "1vjzv8zg9s393xw81klcgbkn4h6j2blzla9iil5kqfrw7wmldskh";
+ sha256 = "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x";
};
buildInputs = [
@@ -57,9 +57,6 @@ python3.pkgs.buildPythonApplication rec {
checkInputs = [ xvfb-run dbus.daemon ];
checkPhase = ''
- # https://dev.gajim.org/gajim/gajim/-/issues/10478
- rm test/lib/gajim_mocks.py test/unit/test_gui_interface.py
-
xvfb-run dbus-run-session \
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
${python3.interpreter} setup.py test
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index 0fea57ea9cc7..5f2a094ca36b 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -13,16 +13,16 @@
buildGoModule rec {
pname = "gomuks";
- version = "0.2.3";
+ version = "0.2.4";
src = fetchFromGitHub {
owner = "tulir";
repo = pname;
rev = "v${version}";
- sha256 = "0g0aa6h6bm00mdgkb38wm66rcrhqfvs2xj9rl04bwprsa05q5lca";
+ sha256 = "bTOfnEmJHTuniewH//SugNNDuKIFMQb1Safs0UVKH1c=";
};
- vendorSha256 = "14ya5advpv4q5il235h5dxy8c2ap2yzrvqs0sjqgw0v1vm6vpwdx";
+ vendorSha256 = "PuNROoxL7UmcuYDgfnsMUsGk9i1jnQyWtaUmT7vXdKE=";
doCheck = false;
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch b/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch
index 0e0d4e28b0a1..dd89c92fd3d4 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch
+++ b/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch
@@ -1,13 +1,15 @@
-diff --git a/lib/notification/notify_linux.go b/lib/notification/notify_linux.go
-index f93a95f..da6a61d 100644
---- a/lib/notification/notify_linux.go
-+++ b/lib/notification/notify_linux.go
-@@ -32,7 +32,7 @@ func Send(title, text string, critical, sound bool) error {
- if critical {
- soundName = "complete"
- }
-- exec.Command("paplay", "/usr/share/sounds/freedesktop/stereo/"+soundName+".oga").Run()
-+ exec.Command("paplay", "@soundTheme@/share/sounds/freedesktop/stereo/"+soundName+".oga").Run()
- }
- return exec.Command("notify-send", args...).Run()
- }
+diff --git a/lib/notification/notify_xdg.go b/lib/notification/notify_xdg.go
+index 7f102b8..996c15f 100644
+--- a/lib/notification/notify_xdg.go
++++ b/lib/notification/notify_xdg.go
+@@ -26,8 +26,8 @@ import (
+ var notifySendPath string
+ var audioCommand string
+ var tryAudioCommands = []string{"ogg123", "paplay"}
+-var soundNormal = "/usr/share/sounds/freedesktop/stereo/message-new-instant.oga"
+-var soundCritical = "/usr/share/sounds/freedesktop/stereo/complete.oga"
++var soundNormal = "@soundTheme@/share/sounds/freedesktop/stereo/message-new-instant.oga"
++var soundCritical = "@soundTheme@/share/sounds/freedesktop/stereo/complete.oga"
+
+ func getSoundPath(env, defaultPath string) string {
+ if path, ok := os.LookupEnv(env); ok {
diff --git a/pkgs/applications/networking/instant-messengers/jackline/default.nix b/pkgs/applications/networking/instant-messengers/jackline/default.nix
index 89d4931a2fe4..3bd1564af2a7 100644
--- a/pkgs/applications/networking/instant-messengers/jackline/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -4,7 +4,7 @@ with ocamlPackages;
buildDunePackage rec {
pname = "jackline";
- version = "unstable-2021-04-23";
+ version = "unstable-2021-08-10";
minimumOCamlVersion = "4.08";
@@ -13,8 +13,8 @@ buildDunePackage rec {
src = fetchFromGitHub {
owner = "hannesm";
repo = "jackline";
- rev = "861c59bb7cd27ad5c7558ff94cb0d0e8dca249e5";
- sha256 = "00waw5qr0n70i9l9b25r9ryfi836x4qrj046bb4k9qa4d0p8q1sa";
+ rev = "73d87e9a62d534566bb0fbe64990d32d75487f11";
+ sha256 = "0wk574rqfg2vqz27nasxzwf67x51pj5fgl4vkc27r741dg4q6c5a";
};
nativeBuildInpts = [
diff --git a/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
new file mode 100644
index 000000000000..8cb748f54059
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
@@ -0,0 +1,64 @@
+{ version
+, src
+, jami-meta
+, stdenv
+, lib
+, pkg-config
+, cmake
+, wrapQtAppsHook
+, wrapGAppsHook
+, gtk3-x11
+, networkmanager # for libnm
+, libayatana-appindicator
+, libnotify
+, clutter-gtk
+, libcanberra-gtk3
+, webkitgtk
+, qrencode
+, jami-libclient
+, qttools
+}:
+
+stdenv.mkDerivation {
+ pname = "jami-client-gnome";
+ inherit version src;
+
+ sourceRoot = "source/client-gnome";
+
+ preConfigure = ''
+ echo ${version} > version.txt
+ '';
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ wrapGAppsHook
+ wrapQtAppsHook
+ ];
+ # To spare double wrapping
+ dontWrapGApps = true;
+ preFixup = ''
+ qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ # Users that set CLUTTER_BACKEND=wayland in their default environment will
+ # encounter a segfault due to:
+ # https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1100 .
+ qtWrapperArgs+=("--unset" "CLUTTER_BACKEND")
+ '';
+
+ buildInputs = [
+ qttools
+ jami-libclient
+ gtk3-x11
+ networkmanager
+ libayatana-appindicator
+ libnotify
+ clutter-gtk
+ libcanberra-gtk3
+ webkitgtk
+ qrencode
+ ];
+
+ meta = jami-meta // {
+ description = "The client based on GTK" + jami-meta.description;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/jami/client-qt.nix b/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
new file mode 100644
index 000000000000..0c952fd1ecad
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
@@ -0,0 +1,59 @@
+{ version
+, src
+, jami-meta
+, mkDerivation
+, lib
+, pkg-config
+, cmake
+, networkmanager # for libnm
+, python3
+, qttools # for translations
+, wrapQtAppsHook
+, libnotify
+, qrencode
+, qtwebengine
+, qtdeclarative
+, qtquickcontrols2
+, qtmultimedia
+, qtsvg
+, qtwebchannel
+, qtgraphicaleffects # no gui without this
+, jami-libclient
+}:
+
+mkDerivation {
+ pname = "jami-client-qt";
+ inherit version src;
+
+ sourceRoot = "source/client-qt";
+
+ preConfigure = ''
+ python gen-resources.py
+ echo 'const char VERSION_STRING[] = "${version}";' > src/version.h
+ '';
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ python3
+ qttools
+ ];
+
+ buildInputs = [
+ jami-libclient
+ networkmanager
+ libnotify
+ qrencode
+ qtwebengine
+ qtdeclarative
+ qtquickcontrols2
+ qtmultimedia
+ qtsvg
+ qtwebchannel
+ qtgraphicaleffects
+ ];
+
+ meta = jami-meta // {
+ description = "The client based on QT" + jami-meta.description;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
new file mode 100644
index 000000000000..b611885a6117
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
@@ -0,0 +1,142 @@
+--disable-everything
+--enable-zlib
+--enable-gpl
+--enable-swscale
+--enable-bsfs
+--disable-filters
+--disable-programs
+--disable-postproc
+--disable-protocols
+--enable-protocol=crypto
+--enable-protocol=file
+--enable-protocol=rtp
+--enable-protocol=srtp
+--enable-protocol=tcp
+--enable-protocol=udp
+--enable-protocol=unix
+--enable-protocol=pipe
+--disable-demuxers
+--disable-muxers
+--enable-muxer=rtp
+--enable-muxer=g722
+--enable-muxer=h263
+--enable-muxer=h264
+--enable-muxer=hevc
+--enable-muxer=webm
+--enable-muxer=ogg
+--enable-muxer=pcm_s16be
+--enable-muxer=pcm_s16le
+--enable-demuxer=rtp
+--enable-demuxer=mjpeg
+--enable-demuxer=mjpeg_2000
+--enable-demuxer=mpegvideo
+--enable-demuxer=gif
+--enable-demuxer=image_jpeg_pipe
+--enable-demuxer=image_png_pipe
+--enable-demuxer=image_webp_pipe
+--enable-demuxer=matroska
+--enable-demuxer=m4v
+--enable-demuxer=mp3
+--enable-demuxer=ogg
+--enable-demuxer=flac
+--enable-demuxer=wav
+--enable-demuxer=ac3
+--enable-demuxer=g722
+--enable-demuxer=pcm_mulaw
+--enable-demuxer=pcm_alaw
+--enable-demuxer=pcm_s16be
+--enable-demuxer=pcm_s16le
+--enable-demuxer=h263
+--enable-demuxer=h264
+--enable-demuxer=hevc
+--enable-parser=h263
+--enable-parser=h264
+--enable-parser=hevc
+--enable-parser=mpeg4video
+--enable-parser=vp8
+--enable-parser=vp9
+--enable-parser=opus
+--enable-encoder=adpcm_g722
+--enable-decoder=adpcm_g722
+--enable-encoder=rawvideo
+--enable-decoder=rawvideo
+--enable-encoder=libx264
+--enable-decoder=h264
+--enable-encoder=pcm_alaw
+--enable-decoder=pcm_alaw
+--enable-encoder=pcm_mulaw
+--enable-decoder=pcm_mulaw
+--enable-encoder=mpeg4
+--enable-decoder=mpeg4
+--enable-encoder=libvpx_vp8
+--enable-decoder=vp8
+--enable-decoder=vp9
+--enable-encoder=h263
+--enable-encoder=h263p
+--enable-decoder=h263
+--enable-encoder=mjpeg
+--enable-decoder=mjpeg
+--enable-decoder=mjpegb
+--enable-libspeex
+--enable-libopus
+--enable-libvpx
+--enable-libx264
+--enable-encoder=libspeex
+--enable-decoder=libspeex
+--enable-encoder=libopus
+--enable-decoder=libopus
+--enable-decoder=flac
+--enable-decoder=vorbis
+--enable-decoder=aac
+--enable-decoder=ac3
+--enable-decoder=eac3
+--enable-decoder=mp3
+--enable-decoder=pcm_u24be
+--enable-decoder=pcm_u24le
+--enable-decoder=pcm_u32be
+--enable-decoder=pcm_u32le
+--enable-decoder=pcm_u8
+--enable-decoder=pcm_f16le
+--enable-decoder=pcm_f24le
+--enable-decoder=pcm_f32be
+--enable-decoder=pcm_f32le
+--enable-decoder=pcm_f64be
+--enable-decoder=pcm_f64le
+--enable-decoder=pcm_s16be
+--enable-decoder=pcm_s16be_planar
+--enable-decoder=pcm_s16le
+--enable-decoder=pcm_s16le_planar
+--enable-decoder=pcm_s24be
+--enable-decoder=pcm_s24le
+--enable-decoder=pcm_s24le_planar
+--enable-decoder=pcm_s32be
+--enable-decoder=pcm_s32le
+--enable-decoder=pcm_s32le_planar
+--enable-decoder=pcm_s64be
+--enable-decoder=pcm_s64le
+--enable-decoder=pcm_s8
+--enable-decoder=pcm_s8_planar
+--enable-decoder=pcm_u16be
+--enable-decoder=pcm_u16le
+--enable-encoder=gif
+--enable-decoder=gif
+--enable-encoder=jpegls
+--enable-decoder=jpegls
+--enable-encoder=ljpeg
+--enable-decoder=jpeg2000
+--enable-encoder=png
+--enable-decoder=png
+--enable-encoder=bmp
+--enable-decoder=bmp
+--enable-encoder=tiff
+--enable-decoder=tiff
+--enable-filter=scale
+--enable-filter=overlay
+--enable-filter=amix
+--enable-filter=amerge
+--enable-filter=aresample
+--enable-filter=format
+--enable-filter=aformat
+--enable-filter=fps
+--enable-filter=transpose
+--enable-filter=pad
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux
new file mode 100644
index 000000000000..6c40e8d2ea99
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux
@@ -0,0 +1,18 @@
+--enable-pic
+--target-os=linux
+--enable-indev=v4l2
+--enable-indev=xcbgrab
+--enable-vdpau
+--enable-hwaccel=h264_vdpau
+--enable-hwaccel=mpeg4_vdpau
+--enable-vaapi
+--enable-hwaccel=h264_vaapi
+--enable-hwaccel=mpeg4_vaapi
+--enable-hwaccel=h263_vaapi
+--enable-hwaccel=vp8_vaapi
+--enable-hwaccel=mjpeg_vaapi
+--enable-hwaccel=hevc_vaapi
+--enable-encoder=h264_vaapi
+--enable-encoder=vp8_vaapi
+--enable-encoder=mjpeg_vaapi
+--enable-encoder=hevc_vaapi
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86 b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86
new file mode 100644
index 000000000000..2043aa3ee2d3
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86
@@ -0,0 +1,10 @@
+--enable-cuvid
+--enable-ffnvcodec
+--enable-nvdec
+--enable-nvenc
+--enable-hwaccel=h264_nvdec
+--enable-hwaccel=hevc_nvdec
+--enable-hwaccel=vp8_nvdec
+--enable-hwaccel=mjpeg_nvdec
+--enable-encoder=h264_nvenc
+--enable-encoder=hevc_nvenc
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
new file mode 100644
index 000000000000..127e5b18f776
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
@@ -0,0 +1,5 @@
+remove-mjpeg-log.patch
+change-RTCP-ratio.patch
+rtp_ext_abs_send_time.patch
+libopusdec-enable-FEC.patch
+libopusenc-enable-FEC.patch
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
new file mode 100644
index 000000000000..2e106289a962
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
@@ -0,0 +1,20 @@
+0001-rfc6544.patch
+0002-rfc2466.patch
+0003-add-tcp-keep-alive.patch
+0004-multiple_listeners.patch
+0005-fix_ebusy_turn.patch
+0006-ignore_ipv6_on_transport_check.patch
+0007-upnp-srflx-nat-assisted-cand.patch
+0008-fix_ioqueue_ipv6_sendto.patch
+0009-add-config-site.patch
+0010-fix-tcp-death-detection.patch
+0011-fix-turn-shutdown-crash.patch
+0012-ignore-down-interfaces.patch
+0013-ignore-addresses-for-RFC7335.patch
+0014-fix-socket-leak.patch
+0015-fix-socktype-and-duplicate-checking.patch
+0016-use-larger-Ta-interval.patch
+0017-auto-register-thread.patch
+0018-fix-ioqueue-lock-acquire.patch
+0019-resort-check-list-after-adding-prflx.patch
+0020-avoid-immediate-nominating-triggered-check.patch
diff --git a/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
new file mode 100644
index 000000000000..2fe6d7191e74
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
@@ -0,0 +1,127 @@
+{ src
+, version
+, jami-meta
+, stdenv
+, lib
+, autoreconfHook
+, pkg-config
+, perl # for pod2man
+, ffmpeg
+, pjsip
+, alsa-lib
+, asio
+, dbus
+, dbus_cplusplus
+, fmt
+, gmp
+, libarchive
+, libgit2
+, libnatpmp
+, secp256k1
+, openssl
+, opendht
+, speex
+, webrtc-audio-processing
+, jsoncpp
+, gnutls
+, zlib
+, libyamlcpp
+, libpulseaudio
+, jack
+, udev
+, libupnp
+, msgpack
+, restinio
+, http-parser
+}:
+
+let
+ readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
+
+ ffmpeg-jami = ffmpeg.overrideAttrs (old:
+ let
+ patch-src = src + "/daemon/contrib/src/ffmpeg/";
+ in
+ {
+ patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches));
+ configureFlags = old.configureFlags
+ ++ (readLinesToList ./config/ffmpeg_args_common)
+ ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
+ ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
+ outputs = [ "out" "doc" ];
+ meta = old.meta // {
+ # undefined reference to `ff_nlmeans_init_aarch64'
+ broken = stdenv.isAarch64;
+ };
+ });
+
+ pjsip-jami = pjsip.overrideAttrs (old:
+ let
+ patch-src = src + "/daemon/contrib/src/pjproject/";
+ in
+ {
+ patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
+ });
+
+ opendht-jami = opendht.override {
+ enableProxyServerAndClient = true;
+ enablePushNotifications = true;
+ };
+
+in stdenv.mkDerivation {
+ pname = "jami-daemon";
+ inherit src version;
+ sourceRoot = "source/daemon";
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ perl
+ ];
+
+ buildInputs = [
+ alsa-lib
+ asio
+ dbus
+ dbus_cplusplus
+ fmt
+ ffmpeg-jami
+ gmp
+ gnutls
+ libarchive
+ libgit2
+ libnatpmp
+ opendht-jami
+ pjsip-jami
+ secp256k1
+ openssl
+ speex
+ webrtc-audio-processing
+ zlib
+ libyamlcpp
+ jsoncpp
+ libpulseaudio
+ jack
+ opendht
+ libupnp
+ udev
+ msgpack
+ restinio
+ http-parser
+ ];
+
+ doCheck = false; # The tests fail to compile due to missing headers.
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ updateScript = ./update.sh;
+ ffmpeg = ffmpeg-jami;
+ pjsip = pjsip-jami;
+ opendht = opendht-jami;
+ };
+
+ meta = jami-meta // {
+ description = "The daemon" + jami-meta.description;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
new file mode 100644
index 000000000000..ee9762a8f032
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, callPackage
+, fetchzip
+, jack
+, udev
+, libsForQt5
+}:
+
+rec {
+ version = "20211005.2.251ac7d";
+
+ src = fetchzip {
+ url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
+ sha256 = "12ppbwhnk5zajb73szd04sz80bp17q577bkb9j8p45apvq201db3";
+
+ stripRoot = false;
+ extraPostFetch = ''
+ cd $out
+ mv ring-project/* ./
+ rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
+ rm daemon/contrib/tarballs/*
+ '';
+ };
+
+ jami-meta = with lib; {
+ homepage = "https://jami.net/";
+ description = " for Jami, the free and universal communication platform that respects the privacy and freedoms of its users";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.linsui ];
+ };
+
+ jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
+
+ jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
+
+ jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
+
+ jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
+}
diff --git a/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch b/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch
new file mode 100644
index 000000000000..3ae017eb458b
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch
@@ -0,0 +1,13 @@
+diff --git i/CMakeLists.txt w/CMakeLists.txt
+index 0ee77dba..767e19df 100644
+--- i/CMakeLists.txt
++++ w/CMakeLists.txt
+@@ -635,7 +635,7 @@ if(ENABLE_SHARED)
+ )
+ endif()
+
+-SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
++SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR})
+
+ INSTALL( FILES ${libringclient_LIB_HDRS} ${libringclient_extra_LIB_HDRS}
+ DESTINATION ${INCLUDE_INSTALL_DIR}/libringclient
diff --git a/pkgs/applications/networking/instant-messengers/jami/libclient.nix b/pkgs/applications/networking/instant-messengers/jami/libclient.nix
new file mode 100644
index 000000000000..b5ea7431b915
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/libclient.nix
@@ -0,0 +1,48 @@
+{ version
+, src
+, jami-meta
+, stdenv
+, lib
+, pkg-config
+, cmake
+, qtbase
+, jami-daemon
+}:
+
+stdenv.mkDerivation {
+ pname = "jami-libclient";
+ inherit version src;
+
+ sourceRoot = "source/lrc";
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ jami-daemon
+ ];
+
+ patches = [
+ # Fix path to include dir when using split outputs
+ ./libclient-include-path.patch
+ ];
+
+ propagatedBuildInputs = [
+ qtbase
+ ];
+ outputs = [ "out" "dev" ];
+
+ cmakeFlags = [
+ "-DRING_BUILD_DIR=${jami-daemon}/include"
+ "-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces"
+ ];
+
+ dontWrapQtApps = true;
+
+ meta = jami-meta // {
+ description = "The client library" + jami-meta.description;
+ license = lib.licenses.lgpl21Plus;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/jami/update.sh b/pkgs/applications/networking/instant-messengers/jami/update.sh
new file mode 100755
index 000000000000..22233a81bf8d
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils curl gnused common-updater-scripts
+
+set -e
+
+jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
+
+# Update src version and hash
+version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1)
+update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
+
+src=$(nix-build --no-out-link -A jami-libclient.src)
+
+config_dir="$jami_dir/config"
+mkdir -p $config_dir
+
+ffmpeg_rules="${src}/daemon/contrib/src/ffmpeg/rules.mak"
+
+# Update FFmpeg patches
+ffmpeg_patches=$(sed -n '/.sum-ffmpeg:/,/HAVE_IOS/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p')
+echo -e "Patches for FFmpeg:\n${ffmpeg_patches}\n"
+echo "${ffmpeg_patches}" > "$config_dir/ffmpeg_patches"
+
+# Update FFmpeg args
+ffmpeg_args_common=$(sed -n '/#disable everything/,/#platform specific options/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+echo -e "Common args for FFmpeg:\n${ffmpeg_args_common}\n"
+echo "${ffmpeg_args_common}" > "$config_dir/ffmpeg_args_common"
+
+ffmpeg_args_linux1=$(sed -n '/ifdef HAVE_LINUX/,/ifdef HAVE_ANDROID/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+ffmpeg_args_linux2=$(sed -n '/# Desktop Linux/,/i386 x86_64/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+echo -e "Linux args for FFmpeg:\n${ffmpeg_args_linux1}\n${ffmpeg_args_linux2}\n"
+echo "${ffmpeg_args_linux1}" > "$config_dir/ffmpeg_args_linux"
+echo "${ffmpeg_args_linux2}" >> "$config_dir/ffmpeg_args_linux"
+
+ffmpeg_args_x86=$(sed -n '/i386 x86_64/,/# End Desktop Linux:/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+echo -e "x86 args for FFmpeg:\n${ffmpeg_args_x86}\n"
+echo "${ffmpeg_args_x86}" > "$config_dir/ffmpeg_args_x86"
+
+# Update pjsip patches
+pjsip_patches=$(sed -n '/UNPACK/,/HAVE_ANDROID/p' ${src}/daemon/contrib/src/pjproject/rules.mak | sed -n -E 's/.*pjproject\/(00.*patch).*/\1/p')
+echo -e "Patches for pjsip:\n${pjsip_patches}\n"
+echo "${pjsip_patches}" > "$config_dir/pjsip_patches"
diff --git a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index a7cd9116195b..c9cbdd379864 100644
--- a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -14,13 +14,13 @@
mkDerivation rec {
pname = "kdeltachat";
- version = "unstable-2021-09-10";
+ version = "unstable-2021-10-27";
src = fetchFromSourcehut {
owner = "~link2xt";
repo = "kdeltachat";
- rev = "40092aa096bac7e279eb5a4cc97758bac484236c";
- sha256 = "0vmsbxx4hxh35v1lbj82vq2w8z8inj83xpf24wzlbdr9inlbmym4";
+ rev = "e1201cdcce4311061643d90cc0132745023a82d2";
+ sha256 = "04xqvyj4rzgl9r7sfjjw1kc3vql30c80rwppff2zr5aijr15fgjj";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index 2ebf762c418b..c4f268871e87 100644
--- a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
pillow
urllib3
aiofiles
+ notify2
]))];
installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 5b14fba5b420..874fbd6375d0 100644
--- a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -2,7 +2,7 @@
freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage,
libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst,
libXScrnSaver, nss, nspr, alsa-lib, cups, expat, udev, wrapGAppsHook,
-hicolor-icon-theme, libuuid, at-spi2-core, at-spi2-atk }:
+hicolor-icon-theme, libuuid, at-spi2-core, at-spi2-atk, libappindicator-gtk3 }:
let
rpath = lib.makeLibraryPath [
@@ -21,6 +21,7 @@ let
gnome2.GConf
gtk3
pango
+ libappindicator-gtk3
libuuid
libX11
libXScrnSaver
diff --git a/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/pkgs/applications/networking/instant-messengers/mcabber/default.nix
index 7c5bff940848..2ca94953c4f6 100644
--- a/pkgs/applications/networking/instant-messengers/mcabber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mcabber/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, ncurses, pkg-config, glib, loudmouth, libotr
+{ lib, stdenv, fetchurl, fetchpatch, openssl, ncurses, pkg-config, glib, loudmouth, libotr
, gpgme
}:
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "0q1i5acyghsmzas88qswvki8kkk2nfpr8zapgnxbcd3lwcxl38f4";
};
+ patches = [
+ # Pull upstream patch for ncurses-6.3.
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/McKael/mcabber/commit/5a0893d69023b77b7671731defbdca5d47731130.patch";
+ sha256 = "01bc23z0mva9l9jv587sq2r9w3diachgkmb9ad99hlzgj02fmq4v";
+ stripLen = 1;
+ })
+ ];
+
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ncurses glib loudmouth libotr gpgme ];
diff --git a/pkgs/applications/networking/instant-messengers/mirage/default.nix b/pkgs/applications/networking/instant-messengers/mirage/default.nix
index db30ede8a108..a4693dc667b9 100644
--- a/pkgs/applications/networking/instant-messengers/mirage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -1,43 +1,74 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub
-, qmake, pkg-config, olm, wrapQtAppsHook
-, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qtgraphicaleffects
-, python3Packages, pyotherside, libXScrnSaver
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, libXScrnSaver
+, olm
+, pkg-config
+, pyotherside
+, python3Packages
+, qmake
+, qtbase
+, qtgraphicaleffects
+, qtkeychain
+, qtmultimedia
+, qtquickcontrols2
+, wrapQtAppsHook
}:
-let
- pypkgs = with python3Packages; [
- aiofiles filetype matrix-nio appdirs cairosvg
- pymediainfo setuptools html-sanitizer mistune blist
- pyotherside
- ];
-in
mkDerivation rec {
pname = "mirage";
- version = "0.6.4";
+ version = "0.7.2";
src = fetchFromGitHub {
owner = "mirukana";
repo = pname;
rev = "v${version}";
- sha256 = "15x0x2rf4fzsd0zr84fq3j3ddzkgc5il8s54jpxk8wl4ah03g4nv";
+ sha256 = "sha256-dJS4lAXHHNUEAG75gQaS9+aQTTTj8KHqHjISioynFdY=";
fetchSubmodules = true;
};
- nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook python3Packages.wrapPython ];
-
- buildInputs = [
- qtbase qtmultimedia
- qtquickcontrols2
- qtkeychain qtgraphicaleffects
- olm pyotherside
- libXScrnSaver
+ nativeBuildInputs = [
+ pkg-config
+ python3Packages.wrapPython
+ qmake
+ wrapQtAppsHook
];
- propagatedBuildInputs = pypkgs;
+ buildInputs = [
+ libXScrnSaver
+ olm
+ pyotherside
+ qtbase
+ qtgraphicaleffects
+ qtkeychain
+ qtmultimedia
+ qtquickcontrols2
+ ] ++ pythonPath;
- pythonPath = pypkgs;
+ pythonPath = with python3Packages; [
+ aiofiles
+ appdirs
+ blist
+ cairosvg
+ filetype
+ html-sanitizer
+ hsluv
+ matrix-nio
+ mistune
+ plyer
+ pymediainfo
+ pyotherside
+ redbaron
+ simpleaudio
+ setuptools
+ watchgod
+ ];
- qmakeFlags = [ "PREFIX=${placeholder "out"}" "CONFIG+=qtquickcompiler" ];
+ qmakeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "CONFIG+=qtquickcompiler"
+ ];
dontWrapQtApps = true;
postInstall = ''
@@ -45,14 +76,14 @@ mkDerivation rec {
wrapProgram $out/bin/mirage \
--prefix PYTHONPATH : "$PYTHONPATH" \
"''${qtWrapperArgs[@]}"
- '';
+ '';
meta = with lib; {
- description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication";
homepage = "https://github.com/mirukana/mirage";
- license = licenses.lgpl3;
- maintainers = with maintainers; [ colemickens ];
- broken = stdenv.isDarwin;
+ description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication";
+ license = licenses.lgpl3Plus;
+ maintainers = with maintainers; [ colemickens AndersonTorres ];
inherit (qtbase.meta) platforms;
+ broken = stdenv.isDarwin;
};
}
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index b097864af431..ffd04fd829ed 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -18,7 +18,6 @@
, mtxclient
, boost17x
, spdlog
-, fmt
, olm
, pkg-config
, nlohmann_json
@@ -52,7 +51,6 @@ mkDerivation rec {
libsecret
lmdb
spdlog
- fmt
cmark
qtbase
qtmultimedia
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
index 10cbcb6c1d29..8af6811d6a58 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, json-glib }:
+{ lib, stdenv, fetchFromGitHub, imagemagick, gettext, pidgin, json-glib }:
stdenv.mkDerivation {
pname = "purple-discord";
- version = "unstable-2018-04-10";
+ version = "unstable-2021-10-17";
src = fetchFromGitHub {
owner = "EionRobb";
repo = "purple-discord";
- rev = "9a97886d15a1f028de54b5e6fc54e784531063b0";
- sha256 = "0dc344zh1v4yh9c8javcw5ylzwc1wpx0ih8bww8p8cjmhr8kcl32";
+ rev = "b7ac72399218d2ce011ac84bb171b572560aa2d2";
+ sha256 = "0xvj9rdvgsvcr55sk9m40y07rchg699l1yr98xqwx7sc2sba3814";
};
- nativeBuildInputs = [ pkg-config ];
+ nativeBuildInputs = [ imagemagick gettext ];
buildInputs = [ pidgin json-glib ];
PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
index 2170aac16e05..c0497ed86ce1 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "purple-lurch";
- version = "0.6.7";
+ version = "0.7.0";
src = fetchFromGitHub {
owner = "gkdr";
repo = "lurch";
rev = "v${version}";
- sha256 = "029jjqinsfhpv0zgji3sv1cyk54fn9qp176fwy97d1clf0vflxrz";
+ sha256 = "sha256-yyzotKL1Z4B2BxloJndJKemONMPLG9pVDVe2K5AL05g=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 0f1acc1c7cce..bd6febeaf9d1 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -1,27 +1,19 @@
-{ stdenv, fetchurl, makeWrapper, pkg-config, gtk2, gtk2-x11
-, gtkspell2, aspell
-, gst_all_1, startupnotification, gettext
-, perlPackages, libxml2, nss, nspr, farstream
-, libXScrnSaver, avahi, dbus, dbus-glib, intltool, libidn
-, lib, python3, libICE, libXext, libSM
-, libgnt, ncurses
-, cyrus_sasl ? null
-, openssl ? null
-, gnutls ? null
-, libgcrypt ? null
-, plugins, symlinkJoin
+{ callPackage, stdenv, fetchurl, makeWrapper, pkg-config, gtk2, gtk2-x11, gtkspell2, aspell
+, gst_all_1, libstartup_notification, gettext, perlPackages, libxml2, nss
+, nspr, farstream, libXScrnSaver, avahi, dbus, dbus-glib, intltool, libidn
+, lib, python3, libICE, libXext, libSM, libgnt, ncurses, cyrus_sasl, openssl
+, gnutls, libgcrypt, symlinkJoin, cacert, plugins, withOpenssl, withGnutls, withCyrus_sasl ? true
}:
# FIXME: clean the mess around choosing the SSL library (nss by default)
let unwrapped = stdenv.mkDerivation rec {
pname = "pidgin";
- majorVersion = "2";
- version = "${majorVersion}.14.6";
+ version = "2.14.8";
src = fetchurl {
- url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2";
- sha256 = "bb45f7c032f9efd6922a5dbf2840995775e5584771b23992d04f6eff7dff5336";
+ url = "mirror://sourceforge/pidgin/pidgin-${version}.tar.bz2";
+ sha256 = "1jjc15pfyw3012q5ffv7q4r88wv07ndqh0wakyxa2k0w4708b01z";
};
nativeBuildInputs = [ makeWrapper ];
@@ -31,7 +23,7 @@ let unwrapped = stdenv.mkDerivation rec {
buildInputs = let
python-with-dbus = python3.withPackages (pp: with pp; [ dbus-python ]);
in [
- aspell startupnotification
+ aspell libstartup_notification
gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
libxml2 nss nspr
libXScrnSaver python-with-dbus
@@ -39,17 +31,16 @@ let unwrapped = stdenv.mkDerivation rec {
libICE libXext libSM cyrus_sasl
libgnt ncurses # optional: build finch - the console UI
]
- ++ (lib.optional (openssl != null) openssl)
- ++ (lib.optional (gnutls != null) gnutls)
- ++ (lib.optional (libgcrypt != null) libgcrypt)
- ++ (lib.optionals (stdenv.isLinux) [gtk2 gtkspell2 farstream])
- ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
+ ++ lib.optional withOpenssl openssl
+ ++ lib.optionals withGnutls [ gnutls libgcrypt ]
+ ++ lib.optionals stdenv.isLinux [ gtk2 gtkspell2 farstream ]
+ ++ lib.optional stdenv.isDarwin gtk2-x11;
propagatedBuildInputs = [ pkg-config gettext ]
++ (with perlPackages; [ perl XMLParser ])
- ++ (lib.optional (stdenv.isLinux) gtk2)
- ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
+ ++ lib.optional stdenv.isLinux gtk2
+ ++ lib.optional stdenv.isDarwin gtk2-x11;
patches = [ ./pidgin-makefile.patch ./add-search-path.patch ];
@@ -59,14 +50,15 @@ let unwrapped = stdenv.mkDerivation rec {
"--with-nss-includes=${nss.dev}/include/nss"
"--with-nss-libs=${nss.out}/lib"
"--with-ncurses-headers=${ncurses.dev}/include"
+ "--with-system-ssl-certs=${cacert}/etc/ssl/certs"
"--disable-meanwhile"
"--disable-nm"
"--disable-tcl"
"--disable-gevolution"
]
- ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ])
- ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"])
- ++ (lib.optionals (stdenv.isDarwin) ["--disable-gtkspell" "--disable-vv"]);
+ ++ lib.optionals withCyrus_sasl [ "--enable-cyrus-sasl=yes" ]
+ ++ lib.optionals withGnutls ["--enable-gnutls=yes" "--enable-nss=no"]
+ ++ lib.optionals stdenv.isDarwin ["--disable-gtkspell" "--disable-vv"];
enableParallelBuilding = true;
@@ -88,12 +80,12 @@ let unwrapped = stdenv.mkDerivation rec {
'';
passthru = {
- makePluginPath = lib.makeSearchPathOutput "lib" "lib/purple-${majorVersion}";
+ makePluginPath = lib.makeSearchPathOutput "lib" "lib/purple-${lib.versions.major version}";
};
meta = with lib; {
description = "Multi-protocol instant messaging client";
- homepage = "http://pidgin.im";
+ homepage = "https://pidgin.im/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ maintainers.vcunat ];
@@ -101,7 +93,7 @@ let unwrapped = stdenv.mkDerivation rec {
};
in if plugins == [] then unwrapped
- else import ./wrapper.nix {
- inherit makeWrapper symlinkJoin plugins;
+ else callPackage ./wrapper.nix {
+ inherit plugins;
pidgin = unwrapped;
}
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
index 095f838fe981..d5641c24fb07 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
@@ -1,4 +1,4 @@
-{ symlinkJoin, pidgin, makeWrapper, plugins }:
+{ lib, symlinkJoin, pidgin, makeWrapper, plugins }:
let
extraArgs = map (x: x.wrapArgs or "") plugins;
@@ -11,10 +11,10 @@ in symlinkJoin {
postBuild = ''
wrapProgram $out/bin/pidgin \
- --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \
+ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${lib.versions.major pidgin.version} $out/lib/pidgin" \
${toString extraArgs}
wrapProgram $out/bin/finch \
- --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion}" \
+ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${lib.versions.major pidgin.version}" \
${toString extraArgs}
'';
}
diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix
index 9d8a0d68e756..9b15e12d66fc 100644
--- a/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -1,33 +1,47 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, glib, openssl
-, glibcLocales, expect, ncurses, libotr, curl, readline, libuuid
-, cmocka, libmicrohttpd, expat, sqlite, libmesode, autoconf-archive
-
-, autoAwaySupport ? true, libXScrnSaver ? null, libX11 ? null
-, notifySupport ? true, libnotify ? null, gdk-pixbuf ? null
-, traySupport ? true, gtk2 ? null
-, pgpSupport ? true, gpgme ? null
-, pythonPluginSupport ? true, python ? null
-, omemoSupport ? true, libsignal-protocol-c ? null, libgcrypt ? null
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoconf-archive
+, autoreconfHook
+, cmocka
+, curl
+, expat
+, expect
+, glib
+, glibcLocales
+, libmesode
+, libmicrohttpd
+, libotr
+, libuuid
+, ncurses
+, openssl
+, pkg-config
+, readline
+, sqlite
+, autoAwaySupport ? true, libXScrnSaver ? null, libX11
+, notifySupport ? true, libnotify, gdk-pixbuf
+, omemoSupport ? true, libsignal-protocol-c, libgcrypt
+, pgpSupport ? true, gpgme
+, pythonPluginSupport ? true, python
+, traySupport ? true, gtk
}:
assert autoAwaySupport -> libXScrnSaver != null && libX11 != null;
assert notifySupport -> libnotify != null && gdk-pixbuf != null;
-assert traySupport -> gtk2 != null;
+assert traySupport -> gtk != null;
assert pgpSupport -> gpgme != null;
assert pythonPluginSupport -> python != null;
assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null;
-with lib;
-
stdenv.mkDerivation rec {
pname = "profanity";
- version = "0.11.0";
+ version = "0.11.1";
src = fetchFromGitHub {
owner = "profanity-im";
repo = "profanity";
rev = version;
- sha256 = "0xmzsh0szm8x3hgw65j0cd2bp8cmrnq5pjz49lqajircyzflsngm";
+ hash = "sha256-8WGHOy0fSW8o7vMCYZqqpvDsn81JZefM6wGfjQ5iKbU=";
};
patches = [
@@ -37,26 +51,42 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
nativeBuildInputs = [
- autoreconfHook autoconf-archive glibcLocales pkg-config
+ autoconf-archive
+ autoreconfHook
+ glibcLocales
+ pkg-config
];
buildInputs = [
- expect readline libuuid glib openssl expat ncurses libotr
- curl libmesode cmocka libmicrohttpd sqlite
- ] ++ optionals autoAwaySupport [ libXScrnSaver libX11 ]
- ++ optionals notifySupport [ libnotify gdk-pixbuf ]
- ++ optionals traySupport [ gtk2 ]
- ++ optionals pgpSupport [ gpgme ]
- ++ optionals pythonPluginSupport [ python ]
- ++ optionals omemoSupport [ libsignal-protocol-c libgcrypt ];
+ cmocka
+ curl
+ expat
+ expect
+ glib
+ libmesode
+ libmicrohttpd
+ libotr
+ libuuid
+ ncurses
+ openssl
+ readline
+ sqlite
+ ] ++ lib.optionals autoAwaySupport [ libXScrnSaver libX11 ]
+ ++ lib.optionals notifySupport [ libnotify gdk-pixbuf ]
+ ++ lib.optionals omemoSupport [ libsignal-protocol-c libgcrypt ]
+ ++ lib.optionals pgpSupport [ gpgme ]
+ ++ lib.optionals pythonPluginSupport [ python ]
+ ++ lib.optionals traySupport [ gtk ];
# Enable feature flags, so that build fail if libs are missing
- configureFlags = [ "--enable-c-plugins" "--enable-otr" ]
- ++ optionals notifySupport [ "--enable-notifications" ]
- ++ optionals traySupport [ "--enable-icons-and-clipboard" ]
- ++ optionals pgpSupport [ "--enable-pgp" ]
- ++ optionals pythonPluginSupport [ "--enable-python-plugins" ]
- ++ optionals omemoSupport [ "--enable-omemo" ];
+ configureFlags = [
+ "--enable-c-plugins"
+ "--enable-otr"
+ ] ++ lib.optionals notifySupport [ "--enable-notifications" ]
+ ++ lib.optionals traySupport [ "--enable-icons-and-clipboard" ]
+ ++ lib.optionals pgpSupport [ "--enable-pgp" ]
+ ++ lib.optionals pythonPluginSupport [ "--enable-python-plugins" ]
+ ++ lib.optionals omemoSupport [ "--enable-omemo" ];
preAutoreconf = ''
mkdir m4
@@ -66,18 +96,15 @@ stdenv.mkDerivation rec {
LC_ALL = "en_US.utf8";
- meta = {
+ meta = with lib; {
+ homepage = "http://www.profanity.im/";
description = "A console based XMPP client";
longDescription = ''
Profanity is a console based XMPP client written in C using ncurses and
libstrophe, inspired by Irssi.
'';
- homepage = "http://www.profanity.im/";
license = licenses.gpl3Plus;
- platforms = platforms.unix;
- changelog = "https://github.com/profanity-im/profanity/releases/tag/${version}";
- downloadPage = "https://github.com/profanity-im/profanity/releases/";
maintainers = [ maintainers.devhell ];
- updateWalker = true;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index 01a8a71f0326..fae4eff734e2 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -14,7 +14,7 @@
, libgcrypt
, libotr
, html-tidy
-, libgpgerror
+, libgpg-error
, libsignal-protocol-c
, usrsctp
@@ -40,15 +40,43 @@ assert builtins.elem (lib.toLower chatType) [
assert enablePsiMedia -> enablePlugins;
-mkDerivation rec {
+mkDerivation {
pname = "psi-plus";
- version = "1.5.1549";
+
+ # Version mask is “X.X.XXXX-R” where “X.X.XXXX” is a mandatory version of Psi
+ # and “-R” ending is optional revision number.
+ #
+ # The “psi-plus-snapshots” generally provides snapshots of these separate
+ # repositories glued together (there are also dependencies/libraries):
+ #
+ # 1. Psi
+ # 2. Plugins pack for Psi
+ # 3. “psimedia” plugin
+ # 4. Resources for Psi (icons, skins, sounds)
+ #
+ # “X.X.XXXX” is literally a version of Psi.
+ # So often when for instance plugins are updated separately a new snapshot is
+ # created. And that snapshot would also be linked to “X.X.XXXX” version.
+ # So many commits may have the same associated version of the snapshot.
+ # But mind that only one Git tag is created for “X.X.XXXX” version.
+ #
+ # It’s not yet defined in the Psi+ project what value to use as a version for
+ # any further releases that don’t change Psi version.
+ #
+ # Let’s do what Debian does for instance (appends “-R” where “R” is a revision
+ # number).
+ # E.g. https://tracker.debian.org/news/1226321/psi-plus-14554-5-migrated-to-testing/
+ #
+ # This has been communicated with the Psi+ main devs in this XMPP MUC chat:
+ # psi-dev@conference.jabber.ru
+ #
+ version = "1.5.1556-2";
src = fetchFromGitHub {
owner = "psi-plus";
repo = "psi-plus-snapshots";
- rev = version;
- sha256 = "0jpv6qzfg6xjwkrnci7fav27nxm174i9l5g4vmsbchqpwfk90z2m";
+ rev = "635879010b6697f7041a7bbea1853a1f4673c7f7";
+ sha256 = "18xvljcm0a9swkyz4diwxi4xaj0w27jnhfgpi8fv5fj11j0g1b3a";
};
cmakeFlags = [
@@ -76,7 +104,7 @@ mkDerivation rec {
libgcrypt
libotr
html-tidy
- libgpgerror
+ libgpg-error
libsignal-protocol-c
usrsctp
] ++ lib.optionals voiceMessagesSupport [
@@ -96,7 +124,7 @@ mkDerivation rec {
meta = with lib; {
homepage = "https://psi-plus.com";
- description = "XMPP (Jabber) client";
+ description = "XMPP (Jabber) client based on Qt5";
maintainers = with maintainers; [ orivej misuzu unclechu ];
license = licenses.gpl2Only;
platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 31b37fc2dfb2..268a077e7c5b 100644
--- a/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -1,23 +1,30 @@
-{ mkDerivation, stdenv, lib, fetchFromGitHub, cmake
-, qtbase, qtquickcontrols, qtquickcontrols2, qtkeychain, qtmultimedia, qttools
-, libquotient, libsecret
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, qtquickcontrols
+, qtquickcontrols2
+, qtkeychain
+, qtmultimedia
+, qttools
+, libquotient
+, libsecret
}:
mkDerivation rec {
pname = "quaternion";
- version = "0.0.9.5-beta2";
+ version = "0.0.95.1";
src = fetchFromGitHub {
owner = "QMatrixClient";
repo = "Quaternion";
rev = version;
- sha256 = "sha256-K4SMB5kL0YO2OIeNUu4hWqU4E4n4vZDRRsJVYmCZqvM=";
+ sha256 = "sha256-6FLj/hVY13WO7sMgHCHV57eMJu39cwQHXQX7m0lmv4I=";
};
buildInputs = [
- qtbase
qtmultimedia
- qtquickcontrols
qtquickcontrols2
qtkeychain
libquotient
@@ -26,21 +33,21 @@ mkDerivation rec {
nativeBuildInputs = [ cmake qttools ];
- postInstall = if stdenv.isDarwin then ''
- mkdir -p $out/Applications
- mv $out/bin/quaternion.app $out/Applications
- rmdir $out/bin || :
- '' else ''
- substituteInPlace $out/share/applications/com.github.quaternion.desktop \
- --replace 'Exec=quaternion' "Exec=$out/bin/quaternion"
- '';
+ postInstall =
+ if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ mv $out/bin/quaternion.app $out/Applications
+ rmdir $out/bin || :
+ '' else ''
+ substituteInPlace $out/share/applications/com.github.quaternion.desktop \
+ --replace 'Exec=quaternion' "Exec=$out/bin/quaternion"
+ '';
meta = with lib; {
- description =
- "Cross-platform desktop IM client for the Matrix protocol";
+ description = "Cross-platform desktop IM client for the Matrix protocol";
homepage = "https://matrix.org/docs/projects/client/quaternion.html";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
- inherit (qtbase.meta) platforms;
+ inherit (qtquickcontrols2.meta) platforms;
};
}
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 418d490bbd5e..1d7888f78c81 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -1,19 +1,20 @@
{ stdenv, callPackage, fetchurl, lib }:
let
- mkRambox = opts: callPackage (import ./rambox.nix opts) { };
-in mkRambox rec {
+ mkRambox = opts: callPackage (import ./rambox.nix opts) {};
+in
+mkRambox rec {
pname = "rambox";
- version = "0.7.8";
+ version = "0.7.9";
src = {
x86_64-linux = fetchurl {
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-x86_64.AppImage";
- sha256 = "1y3c9xh8594ay95rj9vaqxxzibwpc38n7ixxi2wnsrdbrqrwlc63";
+ sha256 = "19y4cmrfp79dr4hgl698imp4f3l1nhgvhh76j5laxg46ld71knil";
};
i686-linux = fetchurl {
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.AppImage";
- sha256 = "07sv384nd2i701fkjgsrlib8jfsa01bvj60gnqdwlnpphlknga3h";
+ sha256 = "13wiciyshyrabq2mvnssl2d6svia1kdvwx3dl26249iyif96xxvq";
};
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
@@ -21,8 +22,8 @@ in mkRambox rec {
description = "Free and Open Source messaging and emailing app that combines common web applications into one";
homepage = "https://rambox.pro";
license = licenses.mit;
- maintainers = with maintainers; [ ];
- platforms = ["i686-linux" "x86_64-linux"];
+ maintainers = with maintainers; [];
+ platforms = [ "i686-linux" "x86_64-linux" ];
hydraPlatforms = [];
};
}
diff --git a/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
deleted file mode 100644
index 94e0dc9c8c2f..000000000000
--- a/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
+++ /dev/null
@@ -1,150 +0,0 @@
-{ lib, stdenv
-, fetchgit
-, which
-, autoreconfHook
-, pkg-config
-, automake
-, libtool
-, pjsip
-, libyamlcpp
-, alsa-lib
-, libpulseaudio
-, libsamplerate
-, libsndfile
-, dbus
-, dbus_cplusplus
-, ffmpeg_3
-, udev
-, pcre
-, gsm
-, speex
-, boost
-, opendht
-, msgpack
-, gnutls
-, zlib
-, jsoncpp
-, xorg
-, libargon2
-, cryptopp
-, openssl
-, perl
-, python3
-, libupnp
-, speexdsp
-, fetchFromGitHub
-, cmake
-, asio
-}:
-
-let
- myPython = python3.withPackages (ps: with ps; [
- pygobject3
- dbus-python
- ]);
-
- src = fetchgit {
- url = "https://gitlab.savoirfairelinux.com/ring/ring-daemon.git";
- rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c";
- sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47";
- };
-
- patchdir = "${src}/contrib/src";
-
- restbed = import ./restbed.nix {
- inherit stdenv lib fetchFromGitHub cmake asio openssl;
- patches = [
- "${patchdir}/restbed/CMakeLists.patch"
- "${patchdir}/restbed/strand.patch"
- "${patchdir}/restbed/uri_cpp.patch"
- "${patchdir}/restbed/dns-resolution-error.patch"
- "${patchdir}/restbed/string.patch"
- ];
- };
-
- pjsip' = lib.overrideDerivation pjsip (old: {
- patches = [
- "${patchdir}/pjproject/gnutls.patch"
- ./notestsapps.patch # this one had to be modified
- "${patchdir}/pjproject/fix_base64.patch"
- "${patchdir}/pjproject/ipv6.patch"
- "${patchdir}/pjproject/ice_config.patch"
- "${patchdir}/pjproject/multiple_listeners.patch"
- "${patchdir}/pjproject/pj_ice_sess.patch"
- "${patchdir}/pjproject/fix_turn_fallback.patch"
- "${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch"
- "${patchdir}/pjproject/add_dtls_transport.patch"
- ];
- CFLAGS = "-g -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000";
- });
-in
-stdenv.mkDerivation {
- pname = "ring-daemon";
- version = "2017-07-11";
-
- inherit src;
-
- nativeBuildInputs = [
- which
- autoreconfHook
- automake
- libtool
- pkg-config
- ];
-
- buildInputs = [
- pjsip'
- libyamlcpp
- alsa-lib
- libpulseaudio
- libsamplerate
- libsndfile
- dbus
- dbus_cplusplus
- ffmpeg_3
- udev
- pcre
- gsm
- speex
- boost
- opendht
- msgpack
- gnutls
- zlib
- jsoncpp
- restbed
- xorg.libX11
- libargon2
- cryptopp
- openssl
- perl
- libupnp
- speexdsp
- ];
-
- postInstall = ''
- mkdir $out/bin
- ln -s $out/lib/ring/dring $out/bin/dring
- cp -R ./tools/dringctrl/ $out/
- substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \
- --replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3"
- chmod +x $out/dringctrl/dringctrl.py
- ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py
- '';
-
- meta = with lib; {
- description = "A Voice-over-IP software phone";
- longDescription = ''
- As the SIP/audio daemon and the user interface are separate processes, it
- is easy to provide different user interfaces. GNU Ring comes with various
- graphical user interfaces and even scripts to control the daemon from the
- shell.
- '';
- homepage = "https://ring.cx";
- license = licenses.gpl3Plus;
- maintainers = with maintainers; [ taeer olynch ];
- platforms = platforms.linux;
- # pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4
- broken = true;
- };
-}
diff --git a/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch b/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
deleted file mode 100644
index 842060935b04..000000000000
--- a/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-/* diff --git a/Makefile b/Makefile */
-/* index 33a4e6b..a486eb7 100644 */
-/* --- a/Makefile */
-/* +++ b/Makefile */
-/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */
-/* include version.mak */
-
-/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */
-/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */
-/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */
-
-/* ifdef MINSIZE */
-/* MAKE_FLAGS := MINSIZE=1 */
-diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile
-index cb601cb..862a78a 100644
---- a/pjlib-util/build/Makefile
-+++ b/pjlib-util/build/Makefile
-@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \
- export UTIL_TEST_CFLAGS += $(_CFLAGS)
- export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS)
- export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
--export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
-
-
- export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
-diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile
-index 1e64950..a75fa65 100644
---- a/pjlib/build/Makefile
-+++ b/pjlib/build/Makefile
-@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
- export TEST_CFLAGS += $(_CFLAGS)
- export TEST_CXXFLAGS += $(_CXXFLAGS)
- export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
--export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE)
-
-
- export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
-diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
-index 8012cb7..2ca283a 100644
---- a/pjmedia/build/Makefile
-+++ b/pjmedia/build/Makefile
-@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \
- $(PJLIB_UTIL_LDLIB) \
- $(PJNATH_LDLIB) \
- $(_LDFLAGS)
--export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
-
-
- export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
-diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile
-index 1bc08b5..109f79b 100644
---- a/pjnath/build/Makefile
-+++ b/pjnath/build/Makefile
-@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o
- export PJNATH_TEST_CFLAGS += $(_CFLAGS)
- export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS)
- export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
--export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE)
-
-
- ###############################################################################
-@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o
- export PJTURN_CLIENT_CFLAGS += $(_CFLAGS)
- export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS)
- export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
--export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE)
-
- ###############################################################################
- # Defines for building TURN server application
-@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \
- export PJTURN_SRV_CFLAGS += $(_CFLAGS)
- export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS)
- export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
--export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
-
-
-
-diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
-index d2a5c2a..7e2ec60 100644
---- a/pjsip/build/Makefile
-+++ b/pjsip/build/Makefile
-@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
- account.o endpoint.o json.o persistent.o types.o \
- siptypes.o call.o presence.o media.o
- export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
--export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
-+export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
- export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \
- $(PJSIP_UA_LDLIB) \
- $(PJSIP_SIMPLE_LDLIB) \
-@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
- export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
- export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
- export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
--export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE)
-
- export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
-
-@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \
- $(PJLIB_UTIL_LDLIB) \
- $(PJNATH_LDLIB) \
- $(_LDFLAGS)
--export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
-
-
- export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
diff --git a/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix b/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
deleted file mode 100644
index e2cdb1f05b0e..000000000000
--- a/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, cmake
-, asio
-, openssl
-, patches
-}:
-
-stdenv.mkDerivation {
- pname = "restbed";
- version = "2016-09-15";
-
- src = fetchFromGitHub {
- owner = "Corvusoft";
- repo = "restbed";
- rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a";
- sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22";
- };
-
- inherit patches;
-
- nativeBuildInputs = [ cmake ];
- buildInputs = [ asio openssl ];
-
- meta = with lib; {
- description = "HTTP framework for building networked applications";
- longDescription = ''
- HTTP framework for building networked applications that require seamless
- and secure communication, with the flexability to model a range of
- business processes. Targeting mobile, tablet, desktop, and embedded
- production environments.
- '';
- homepage = "https://corvusoft.co.uk/";
- license = licenses.agpl3;
- maintainers = with maintainers; [ taeer ];
- platforms = platforms.linux;
- };
-}
diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
new file mode 100644
index 000000000000..36e7a651eb3e
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -0,0 +1,92 @@
+{ lib, stdenv, pkgs, fetchurl }:
+let
+ libPathNative = { packages }: lib.makeLibraryPath packages;
+in
+stdenv.mkDerivation rec {
+ pname = "rocketchat-desktop";
+ version = "3.5.7";
+
+ src = fetchurl {
+ url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat_${version}_amd64.deb";
+ sha256 = "1ri8a60fsbqgq83f8wkyfnd59nqk4d0gpz1vanj54769zflpl71s";
+ };
+
+ buildInputs = with pkgs; [
+ gtk3
+ stdenv.cc.cc
+ zlib
+ glib
+ dbus
+ atk
+ pango
+ freetype
+ libgnome-keyring3
+ fontconfig
+ gdk-pixbuf
+ cairo
+ cups
+ expat
+ libgpg-error
+ alsa-lib
+ nspr
+ nss
+ xorg.libXrender
+ xorg.libX11
+ xorg.libXext
+ xorg.libXdamage
+ xorg.libXtst
+ xorg.libXcomposite
+ xorg.libXi
+ xorg.libXfixes
+ xorg.libXrandr
+ xorg.libXcursor
+ xorg.libxkbfile
+ xorg.libXScrnSaver
+ systemd
+ libnotify
+ xorg.libxcb
+ at-spi2-atk
+ at-spi2-core
+ libdbusmenu
+ libdrm
+ mesa
+ xorg.libxshmfence
+ libxkbcommon
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ ar p $src data.tar.xz | tar xJ ./opt/ ./usr/
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ mv opt $out
+ mv usr/share $out
+ ln -s $out/opt/Rocket.Chat/rocketchat-desktop $out/bin/rocketchat-desktop
+ runHook postInstall
+ '';
+
+ postFixup =
+ let
+ libpath = libPathNative { packages = buildInputs; };
+ in
+ ''
+ app=$out/opt/Rocket.Chat
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libpath}:$app" \
+ $app/rocketchat-desktop
+ sed -i -e "s|Exec=.*$|Exec=$out/bin/rocketchat-desktop|" $out/share/applications/rocketchat-desktop.desktop
+ '';
+
+ meta = with lib; {
+ description = "Official Desktop client for Rocket.Chat";
+ homepage = "https://github.com/RocketChat/Rocket.Chat.Electron";
+ license = licenses.mit;
+ maintainers = with maintainers; [ gbtb ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/pkgs/applications/networking/instant-messengers/schildichat/pin.json
new file mode 100644
index 000000000000..299598063c01
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/schildichat/pin.json
@@ -0,0 +1,6 @@
+{
+ "version": "1.9.0-sc.1",
+ "srcHash": "10swz5gwz1izryzllmjm8mhhd0vqk2cp8qjcmmr5gbzspj7p3xgw",
+ "webYarnHash": "134llyh0197andpnbmfcxnidcgi3xxnb9v10bwfvrqysgnhb5z8v",
+ "desktopYarnHash": "150jc6p9kbdz599bdkinrhbhncpamhz35j6rcc008qxg2d9qfhwr"
+}
diff --git a/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix b/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
new file mode 100644
index 000000000000..4e1d330f5000
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
@@ -0,0 +1,128 @@
+{ lib
+, element-desktop # for seshat and keytar
+, schildichat-web
+, stdenv
+, fetchgit
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+, fetchYarnDeps
+, yarn, nodejs, fixup_yarn_lock
+, electron
+, Security
+, AppKit
+, CoreServices
+
+, useWayland ? false
+}:
+
+let
+ pinData = lib.importJSON ./pin.json;
+ executableName = "schildichat-desktop";
+ electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
+in
+stdenv.mkDerivation rec {
+ pname = "schildichat-desktop";
+ inherit (pinData) version;
+
+ src = fetchgit {
+ url = "https://github.com/SchildiChat/schildichat-desktop/";
+ rev = "v${version}";
+ sha256 = pinData.srcHash;
+ fetchSubmodules = true;
+ };
+
+ offlineCache = fetchYarnDeps {
+ yarnLock = src + "/element-desktop/yarn.lock";
+ sha256 = pinData.desktopYarnHash;
+ };
+
+ nativeBuildInputs = [ yarn fixup_yarn_lock nodejs makeWrapper copyDesktopItems ];
+ inherit (element-desktop) seshat keytar;
+
+ configurePhase = ''
+ runHook preConfigure
+
+ export HOME=$(mktemp -d)
+ pushd element-desktop
+ yarn config --offline set yarn-offline-mirror $offlineCache
+ fixup_yarn_lock yarn.lock
+ yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
+ rm -rf node_modules/matrix-seshat node_modules/keytar
+ ln -s $keytar node_modules/keytar
+ ln -s $seshat node_modules/matrix-seshat
+ patchShebangs node_modules/
+ popd
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ pushd element-desktop
+ npx tsc
+ yarn run i18n
+ node ./scripts/copy-res.js
+ popd
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ # resources
+ mkdir -p "$out/share/element"
+ ln -s '${schildichat-web}' "$out/share/element/webapp"
+ mv element-desktop "$out/share/element/electron"
+ cp -r "$out/share/element/electron/res/img" "$out/share/element"
+ cp $out/share/element/electron/lib/i18n/strings/en_EN.json $out/share/element/electron/lib/i18n/strings/en-us.json
+ ln -s $out/share/element/electron/lib/i18n/strings/en{-us,}.json
+
+ # icons
+ for icon in $out/share/element/electron/build/icons/*.png; do
+ mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
+ ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/schildichat.png"
+ done
+
+ # executable wrapper
+ makeWrapper '${electron_exec}' "$out/bin/${executableName}" \
+ --add-flags "$out/share/element/electron${lib.optionalString useWayland " --enable-features=UseOzonePlatform --ozone-platform=wayland"}"
+
+ runHook postInstall
+ '';
+
+ # Do not attempt generating a tarball for element-web again.
+ # note: `doDist = false;` does not work.
+ distPhase = ";";
+
+ # The desktop item properties should be kept in sync with data from upstream:
+ # https://github.com/schildichat/element-desktop/blob/sc/package.json
+ desktopItems = [
+ (makeDesktopItem {
+ name = "schildichat-desktop";
+ exec = "${executableName} %u";
+ icon = "schildichat";
+ desktopName = "SchildiChat";
+ genericName = "Matrix Client";
+ comment = meta.description;
+ categories = "Network;InstantMessaging;Chat;";
+ extraEntries = ''
+ StartupWMClass=schildichat
+ MimeType=x-scheme-handler/element;
+ '';
+ })
+ ];
+
+ passthru.updateScript = ./update.sh;
+
+ meta = {
+ description = "Matrix client / Element Desktop fork";
+ homepage = "https://schildi.chat/";
+ changelog = "https://github.com/SchildiChat/schildichat-desktop/releases";
+ maintainers = lib.teams.matrix.members;
+ license = lib.licenses.asl20;
+ platforms = lib.platforms.all;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix b/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
new file mode 100644
index 000000000000..c1bfc98047be
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
@@ -0,0 +1,86 @@
+{ stdenv, lib
+, fetchgit
+, fetchYarnDeps
+, nodejs
+, yarn
+, fixup_yarn_lock
+, writeText, jq, conf ? {}
+}:
+
+let
+ pinData = lib.importJSON ./pin.json;
+ noPhoningHome = {
+ disable_guests = true; # disable automatic guest account registration at matrix.org
+ };
+ configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
+
+in stdenv.mkDerivation rec {
+ pname = "schildichat-web";
+ inherit (pinData) version;
+
+ src = fetchgit {
+ url = "https://github.com/SchildiChat/schildichat-desktop/";
+ rev = "v${version}";
+ sha256 = pinData.srcHash;
+ fetchSubmodules = true;
+ };
+
+ offlineCache = fetchYarnDeps {
+ yarnLock = src + "/element-web/yarn.lock";
+ sha256 = pinData.webYarnHash;
+ };
+
+ nativeBuildInputs = [ yarn fixup_yarn_lock jq nodejs ];
+
+ configurePhase = ''
+ runHook preConfigure
+
+ export HOME=$PWD/tmp
+ mkdir -p $HOME
+ pushd element-web
+ yarn config --offline set yarn-offline-mirror $offlineCache
+ fixup_yarn_lock yarn.lock
+ yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
+ rm -rf node_modules/matrix-react-sdk
+ patchShebangs node_modules/ ../matrix-react-sdk/scripts/
+ ln -s $PWD/../matrix-react-sdk node_modules/
+ ln -s $PWD/node_modules ../matrix-react-sdk/
+ popd
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ pushd matrix-react-sdk
+ node_modules/.bin/reskindex -h ../element-web/src/header
+ popd
+
+ pushd element-web
+ node scripts/copy-res.js
+ node_modules/.bin/reskindex -h ../element-web/src/header
+ node_modules/.bin/webpack --progress --mode production
+ popd
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv element-web/webapp $out
+ jq -s '.[0] * .[1]' "configs/sc/config.json" "${configOverrides}" > "$out/config.json"
+
+ runHook postInstall
+ '';
+
+ meta = {
+ description = "Matrix client / Element Web fork";
+ homepage = "https://schildi.chat/";
+ changelog = "https://github.com/SchildiChat/schildichat-desktop/releases";
+ maintainers = lib.teams.matrix.members;
+ license = lib.licenses.asl20;
+ platforms = lib.platforms.all;
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/schildichat/update.sh b/pkgs/applications/networking/instant-messengers/schildichat/update.sh
new file mode 100755
index 000000000000..3f5289de8c4e
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/schildichat/update.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-git jq
+
+if [[ "$#" -gt 1 || "$1" == -* ]]; then
+ echo "Regenerates packaging data for the SchildiChat packages."
+ echo "Usage: $0 [git release tag]"
+ exit 1
+fi
+
+version="$1"
+
+set -euo pipefail
+
+if [ -z "$version" ]; then
+ version="$(wget -O- "https://api.github.com/repos/SchildiChat/schildichat-desktop/releases?per_page=1" | jq -r '.[0].tag_name')"
+fi
+
+# strip leading "v"
+version="${version#v}"
+
+src_data=$(nix-prefetch-git https://github.com/SchildiChat/schildichat-desktop --fetch-submodules --rev v${version})
+src=$(echo $src_data | jq -r .path)
+src_hash=$(echo $src_data | jq -r .sha256)
+
+web_yarn_hash=$(prefetch-yarn-deps $src/element-web/yarn.lock)
+desktop_yarn_hash=$(prefetch-yarn-deps $src/element-desktop/yarn.lock)
+
+cat > pin.json << EOF
+{
+ "version": "$version",
+ "srcHash": "$src_hash",
+ "webYarnHash": "$web_yarn_hash",
+ "desktopYarnHash": "$desktop_yarn_hash"
+}
+EOF
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index c36159bfabd9..e83e45370cd8 100644
--- a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
@@ -4,13 +4,13 @@
}:
let
- version = "1.7.1";
+ version = "1.7.4";
in
appimageTools.wrapType2 {
name = "session-desktop-appimage-${version}";
src = fetchurl {
url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
- sha256 = "126dx37099pjaqgfv5gbmvn5iiwv2a8lvfbqy5i9h1w1gqnihwq6";
+ sha256 = "1yjah9ip3r2irvv2g9j0ql55nkmpwml7lngmq954xrkq9smrdrm5";
};
meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 33a746e0395b..59ff3554ebf5 100644
--- a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "signal-cli";
- version = "0.9.0";
+ version = "0.9.2";
# Building from source would be preferred, but is much more involved.
src = fetchurl {
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
- sha256 = "sha256-wk8kk+PG0nw2OE7mccGjP435SEytStRy1unxg6EqP/8=";
+ sha256 = "sha256-CumrIlOPmvQ3x7Ua5I2G7ZlTSAbhLgAQMPUg4I5WCeQ=";
};
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 4c9a1b30e670..c8797423bedb 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -10,6 +10,7 @@
, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
# For a full list of available languages:
# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }'
+, sqlcipher
}:
let
@@ -18,14 +19,46 @@ let
# E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict)
spellLangComponents = splitString "_" spellcheckerLanguage;
hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1);
- in if spellcheckerLanguage != null
- then ''
- --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
- --set LC_MESSAGES "${spellcheckerLanguage}"''
- else "");
+ in lib.optionalString (spellcheckerLanguage != null) ''
+ --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
+ --set LC_MESSAGES "${spellcheckerLanguage}"'');
+
+ sqlcipher-signal = sqlcipher.overrideAttrs (_: {
+ # Using the same features as the upstream signal sqlcipher build
+ # https://github.com/signalapp/better-sqlite3/blob/2fa02d2484e9f9a10df5ac7ea4617fb2dff30006/deps/defines.gypi
+ CFLAGS = [
+ "-DSQLITE_LIKE_DOESNT_MATCH_BLOBS"
+ "-DSQLITE_THREADSAFE=2"
+ "-DSQLITE_USE_URI=0"
+ "-DSQLITE_DEFAULT_MEMSTATUS=0"
+ "-DSQLITE_OMIT_DEPRECATED"
+ "-DSQLITE_OMIT_GET_TABLE"
+ "-DSQLITE_OMIT_TCL_VARIABLE"
+ "-DSQLITE_OMIT_PROGRESS_CALLBACK"
+ "-DSQLITE_OMIT_SHARED_CACHE"
+ "-DSQLITE_TRACE_SIZE_LIMIT=32"
+ "-DSQLITE_DEFAULT_CACHE_SIZE=-16000"
+ "-DSQLITE_DEFAULT_FOREIGN_KEYS=1"
+ "-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1"
+ "-DSQLITE_ENABLE_COLUMN_METADATA"
+ "-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT"
+ "-DSQLITE_ENABLE_STAT4"
+ "-DSQLITE_ENABLE_FTS5"
+ "-DSQLITE_ENABLE_JSON1"
+ "-DSQLITE_ENABLE_RTREE"
+ "-DSQLITE_INTROSPECTION_PRAGMAS"
+
+ # SQLCipher-specific options
+ "-DSQLITE_HAS_CODEC"
+ "-DSQLITE_TEMP_STORE=2"
+ "-DSQLITE_SECURE_DELETE"
+ ];
+
+ LDFLAGS = [ "-lm" ];
+ });
in stdenv.mkDerivation rec {
pname = "signal-desktop";
- version = "5.17.2"; # Please backport all updates to the stable channel.
+ version = "5.23.1"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@@ -35,7 +68,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
- sha256 = "1fmn2i6k3zh3d37234yxbawzf85fa66xybcli7xffli39czxbcj3";
+ sha256 = "0scbnkkbaqyqiz6bfvhdrc0yqnccjsf66iggjpa7kjyk3cy61s6c";
};
nativeBuildInputs = [
@@ -117,15 +150,10 @@ in stdenv.mkDerivation rec {
runHook postInstall
'';
- # Required for $SQLCIPHER_LIB which contains "/build/" inside the path:
- noAuditTmpdir = true;
-
preFixup = ''
- export SQLCIPHER_LIB="$out/lib/Signal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node"
- test -x "$SQLCIPHER_LIB" # To ensure the location hasn't changed
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }"
- --prefix LD_PRELOAD : "$SQLCIPHER_LIB"
+ --prefix LD_PRELOAD : "${sqlcipher-signal}/lib/libsqlcipher.so"
${customLanguageWrapperArgs}
)
diff --git a/pkgs/applications/networking/instant-messengers/signald/default.nix b/pkgs/applications/networking/instant-messengers/signald/default.nix
index a26fbed2a049..649cc8843d2e 100644
--- a/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -1,17 +1,15 @@
-{ lib, stdenv, fetchurl, fetchgit, jre_headless, coreutils, gradle_6, git, perl
+{ lib, stdenv, fetchurl, fetchFromGitLab, jre_headless, coreutils, gradle_6, git, perl
, makeWrapper }:
let
pname = "signald";
+ version = "0.14.1";
- version = "0.13.1";
-
- # This package uses the .git directory
- src = fetchgit {
- url = "https://gitlab.com/signald/signald";
+ src = fetchFromGitLab {
+ owner = pname;
+ repo = pname;
rev = version;
- sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7";
- leaveDotGit = true;
+ sha256 = "K/G5+w1GINLZwJIG5a7u0TxlGe+Cyp4wQm+pgm28qCA=";
};
buildConfigJar = fetchurl {
@@ -19,8 +17,6 @@ let
sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
};
- patches = [ ./git-describe-always.patch ./gradle-plugin.patch ];
-
postPatch = ''
patchShebangs gradlew
sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
@@ -29,7 +25,7 @@ let
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
name = "${pname}-deps";
- inherit src version postPatch patches;
+ inherit src version postPatch;
nativeBuildInputs = [ gradle_6 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
@@ -45,11 +41,17 @@ let
forceShare = [ "dummy" ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
- outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7";
+ # Downloaded jars differ by platform
+ outputHash = {
+ x86_64-linux = "/gJFoT+vvdSWr33oI44XiZXlFfyUjtRVB1M6CMzSztM=";
+ aarch64-linux = "v71stMWBbNALasfGAHvsVTBaDOZfpKK3sQrjNJ6FG1A=";
+ }.${stdenv.system} or (throw "Unsupported platform");
};
in stdenv.mkDerivation rec {
- inherit pname src version postPatch patches;
+ inherit pname src version postPatch;
+
+ patches = [ ./gradle-plugin.patch ];
buildPhase = ''
runHook preBuild
@@ -90,6 +92,6 @@ in stdenv.mkDerivation rec {
homepage = "https://signald.org";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ expipiplus1 ];
- platforms = platforms.unix;
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
};
}
diff --git a/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch b/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch
deleted file mode 100644
index 2f4830e27dd5..000000000000
--- a/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/version.sh b/version.sh
-index 7aeeb3c..060cba3 100755
---- a/version.sh
-+++ b/version.sh
-@@ -1,3 +1,3 @@
- #!/bin/sh
--VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --abbrev=0)..HEAD --count)
-+VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --always --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --always --abbrev=0)..HEAD --count)
- echo $VERSION
diff --git a/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
index 6952654758d3..fec988a94e73 100644
--- a/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
+++ b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
@@ -2,7 +2,7 @@ diff --git a/build.gradle b/build.gradle
index 11d7a99..66805bb 100644
--- a/build.gradle
+++ b/build.gradle
-@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
+@@ -18,9 +18,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import org.xml.sax.SAXParseException
@@ -17,10 +17,3 @@ index 11d7a99..66805bb 100644
apply plugin: 'java'
apply plugin: 'application'
-@@ -185,4 +188,4 @@ task integrationTest(type: Test) {
- testClassesDirs = sourceSets.integrationTest.output.classesDirs
- classpath = sourceSets.integrationTest.runtimeClasspath
- outputs.upToDateWhen { false }
--}
-\ No newline at end of file
-+}
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 7db77fbc31e3..7550e72277f5 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
# source of the latter disappears much faster.
- version = "8.75.0.140";
+ version = "8.77.0.97";
rpath = lib.makeLibraryPath [
alsa-lib
@@ -69,7 +69,7 @@ let
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
];
- sha256 = "sha256-z3xsl53CSJthSd/BMbMD7RdYQ4z9oI/Rb9jUvd82H4E=";
+ sha256 = "sha256-0u1fpKJrsEgbvTwdkqJZ/SwCRDmJwEi9IXHbMmY8MJI=";
}
else
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index a98d7a386fb1..4f876013903e 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -33,6 +33,7 @@
, nspr
, nss
, pango
+, pipewire
, systemd
, xdg-utils
, xorg
@@ -44,14 +45,14 @@ let
pname = "slack";
- x86_64-darwin-version = "4.18.0";
- x86_64-darwin-sha256 = "1qldmh0xdbl18gvxxsi2jvcq1ziwap3naxgax4gn36x5k25ipw5k";
+ x86_64-darwin-version = "4.20.0";
+ x86_64-darwin-sha256 = "1argl690i4dgz5ih02zg9v4zrlzm282wmibnc6p7xy5jisd5g79w";
- x86_64-linux-version = "4.18.0";
- x86_64-linux-sha256 = "1dhdmi2rvww8m6400c5dc0c6mrircvflgwcja2rr7ry0lv98n6kh";
+ x86_64-linux-version = "4.20.0";
+ x86_64-linux-sha256 = "1r8w8s3y74lh4klsmzq2d3f0h721b3a2b53nx8v7b0s6j8w0g0mh";
- aarch64-darwin-version = "4.18.0";
- aarch64-darwin-sha256 = "0qlfxskqq5gr45p1gfc2jcbr1abhc6di653jwjgh7yibim0hpjab";
+ aarch64-darwin-version = "4.20.0";
+ aarch64-darwin-sha256 = "1argl690i4dgz5ih02zg9v4zrlzm282wmibnc6p7xy5jisd5g79w";
version = {
x86_64-darwin = x86_64-darwin-version;
@@ -73,7 +74,7 @@ let
sha256 = aarch64-darwin-sha256;
};
x86_64-linux = fetchurl {
- url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb";
+ url = "${base}/releases/linux/${version}/prod/x64/slack-desktop-${version}-amd64.deb";
sha256 = x86_64-linux-sha256;
};
}.${system} or throwSystem;
@@ -119,6 +120,7 @@ let
nspr
nss
pango
+ pipewire
stdenv.cc.cc
systemd
xorg.libX11
diff --git a/pkgs/applications/networking/instant-messengers/tangram/default.nix b/pkgs/applications/networking/instant-messengers/tangram/default.nix
index e7ca8c320ac6..7cb9798517db 100644
--- a/pkgs/applications/networking/instant-messengers/tangram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tangram/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "tangram";
- version = "1.3.1";
+ version = "1.3.2";
src = fetchFromGitHub {
owner = "sonnyp";
repo = "Tangram";
rev = "v${version}";
- sha256 = "0bhs9s6c2k06i3cx01h2102lgl7g6vxm3k63jkkhh2bwdpc9kvn3";
+ sha256 = "sha256-WI0H3bforQ6Jc/+TWFT1zUs4KRtWwvXY2/va+Fnd+iU=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index 1267340c0985..52935267cf2e 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "teams";
- version = "1.4.00.13653";
+ version = "1.4.00.26453";
src = fetchurl {
url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
- sha256 = "1kx4j837fd344zy90nl0j3r8cdvihy6i6gf56wd5n56zngx1fhjv";
+ sha256 = "0ndqk893l17m42hf5fiiv6mka0v7v8r54kblvb67jsxajdvva5gf";
};
nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook nodePackages.asar ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 1d015990b996..0764c484ec9a 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -29,6 +29,7 @@
, webkitgtk
, jemalloc
, rnnoise
+, abseil-cpp
# Transitive dependencies:
, util-linuxMinimal
, pcre
@@ -46,6 +47,7 @@
, libpsl
, brotli
, microsoft_gsl
+, rlottie
}:
# Main reference:
@@ -56,11 +58,15 @@
# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
let
- tg_owt = callPackage ./tg_owt.nix { };
+ tg_owt = callPackage ./tg_owt.nix {
+ abseil-cpp = abseil-cpp.override {
+ cxxStandard = "17";
+ };
+ };
in
mkDerivation rec {
pname = "telegram-desktop";
- version = "3.1.0";
+ version = "3.1.11";
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
# Telegram-Desktop with submodules
@@ -69,7 +75,7 @@ mkDerivation rec {
repo = "tdesktop";
rev = "v${version}";
fetchSubmodules = true;
- sha256 = "0507qdkz8gn0gyyhxsy4mc4rs2r94s1ipqfxrc6ghgj43jkrklx3";
+ sha256 = "0hpcsraw3gx37wk3r88q51qf68ny0kb3kd6slnklwf22d1jqr3fn";
};
postPatch = ''
@@ -138,6 +144,7 @@ mkDerivation rec {
libpsl
brotli
microsoft_gsl
+ rlottie
];
cmakeFlags = [
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 60baf734aa1a..878fea994db3 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation {
pname = "tg_owt";
- version = "unstable-2021-09-15";
+ version = "unstable-2021-10-21";
src = fetchFromGitHub {
owner = "desktop-app";
repo = "tg_owt";
- rev = "575fb17d2853c43329e45f6693370f5e41668055";
- sha256 = "17lhy5g4apdakspv75zm070k7003crf1i80m8wy8f631s86v30md";
+ rev = "d578c760dc6f1ae5f0f3bb5317b0b2ed04b79138";
+ sha256 = "12lr50nma3j9df55sxi6p48yhn9yxrwzz5yrx7r29p8p4fv1c75w";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
index bff3d3769a7a..3b69aa5566dc 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
@@ -44,6 +44,6 @@ stdenv.mkDerivation rec {
description = "Command-line interface for Telegram, that uses readline interface, it's a client implementation of TGL library";
downloadPage = "https://github.com/kenorb-contrib/tg";
license = licenses.gpl2Only;
- maintainers = with maintainers; [ superherointj ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/networking/instant-messengers/tensor/default.nix b/pkgs/applications/networking/instant-messengers/tensor/default.nix
index 172d11f6b857..943ec299cdbd 100644
--- a/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -1,17 +1,24 @@
-{ mkDerivation, lib, stdenv, fetchgit, qtbase, qtquickcontrols, qmake
-, makeDesktopItem }:
+{ mkDerivation
+, lib
+, stdenv
+, fetchgit
+, qtbase
+, qtquickcontrols
+, qmake
+, makeDesktopItem
+}:
# we now have libqmatrixclient so a future version of tensor that supports it
# should use that
mkDerivation rec {
- pname = "tensor-git";
- version = "2017-02-21";
+ pname = "tensor";
+ version = "unstable-2017-02-21";
src = fetchgit {
- url = "https://github.com/davidar/tensor.git";
- rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5";
- sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9";
+ url = "https://github.com/davidar/tensor.git";
+ rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5";
+ sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9";
fetchSubmodules = true;
};
@@ -19,14 +26,14 @@ mkDerivation rec {
nativeBuildInputs = [ qmake ];
desktopItem = makeDesktopItem {
- name = "tensor";
- exec = "@bin@";
- icon = "tensor.png";
- comment = meta.description;
+ name = "tensor";
+ exec = "@bin@";
+ icon = "tensor.png";
+ comment = meta.description;
desktopName = "Tensor Matrix Client";
genericName = meta.description;
- categories = "Chat;Utility";
- mimeType = "application/x-chat";
+ categories = "Chat;Utility";
+ mimeType = "application/x-chat";
};
installPhase = if stdenv.isDarwin then ''
@@ -34,7 +41,6 @@ mkDerivation rec {
mkdir -p $out/Applications
cp -r tensor.app $out/Applications/tensor.app
- wrapQtApp $out/Applications/tensor.app/Contents/MacOS/tensor
runHook postInstall
'' else ''
diff --git a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
new file mode 100644
index 000000000000..30bfde7a96f1
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, glibc, gtk3, libxshmfence, mesa, nss }:
+
+stdenv.mkDerivation rec {
+ pname = "threema-desktop";
+ version = "1.0.3";
+
+ src = fetchurl {
+ # As Threema only offers a Latest Release url, the plan is to upload each
+ # new release url to web.archive.org until their Github releases page gets populated.
+ url = "https://web.archive.org/web/20211027194646/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
+ sha256 = "sha256-qiFv52nnyfHxCWTePmyxW/MgzFy3EUxmW6n+UIkw7tk=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ makeWrapper
+ ];
+
+ buildInputs = [ alsa-lib glibc gtk3 libxshmfence mesa nss ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ # Can't unpack with the common dpkg-deb -x method
+ dpkg --fsys-tarfile $src | tar --extract
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ # This will cause confusion, not needed
+ rm -r usr/bin
+ mv usr $out
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ mv $out/share/applications/threema.desktop $out/share/applications/threema-desktop.desktop
+ makeWrapper ${electron}/bin/electron $out/bin/threema \
+ --add-flags $out/lib/threema/resources/app.asar
+ '';
+
+ meta = with lib; {
+ description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
+ homepage = "https://threema.ch";
+ license = licenses.agpl3Only;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/instant-messengers/toxic/default.nix b/pkgs/applications/networking/instant-messengers/toxic/default.nix
index 3082748a3518..a6d6cac4ac76 100644
--- a/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/pkgs/applications/networking/instant-messengers/toxic/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libsodium, ncurses, curl
+{ lib, stdenv, fetchFromGitHub, fetchpatch, libsodium, ncurses, curl
, libtoxcore, openal, libvpx, freealut, libconfig, pkg-config, libopus
, qrencode, gdk-pixbuf, libnotify }:
@@ -13,6 +13,15 @@ stdenv.mkDerivation rec {
sha256 = "sha256-5jLXXI+IMrYa7ZtdMjJrah1zB5TJ3GdHfvcMd1TYE4E=";
};
+ patches = [
+ # Pending for upstream inclusion fix for ncurses-6.3 compatibility.
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/JFreegman/toxic/commit/41e93adbdbd56db065166af5a6676a7996e9e451.patch";
+ sha256 = "sha256-LYEseB5FmXFNifa1RZUxhkXeWlkEEMm3ASD55IoUPa0=";
+ })
+ ];
+
makeFlags = [ "PREFIX=$(out)"];
installFlags = [ "PREFIX=$(out)"];
diff --git a/pkgs/applications/networking/instant-messengers/utox/default.nix b/pkgs/applications/networking/instant-messengers/utox/default.nix
index e5a2c201d873..4392f5879954 100644
--- a/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "utox";
- version = "0.17.0";
+ version = "0.18.1";
src = fetchFromGitHub {
owner = "uTox";
repo = "uTox";
rev = "v${version}";
- sha256 = "12wbq883il7ikldayh8hm0cjfrkp45vn05xx9s1jbfz6gmkidyar";
+ sha256 = "sha256-DxnolxUTn+CL6TbZHKLHOUMTHhtTSWufzzOTRpKjOwc=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index 298a22409744..0d5355a1eb4d 100644
--- a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -1,40 +1,44 @@
{ fetchFromGitHub
, lib
, stdenv
-, gtkmm3
-, webkitgtk
, cmake
-, pkg-config
-, libappindicator-gtk3
+, glib-networking
, gst_all_1
+, gtkmm3
+, libappindicator-gtk3
, pcre
+, pkg-config
+, webkitgtk
+, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "whatsapp-for-linux";
- version = "1.2.1";
+ version = "1.3.0";
src = fetchFromGitHub {
owner = "eneshecan";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-dEJRufOqlY+DnJdUaG5WP9hR1qO7KxR6MjKWq1SJB8A=";
+ sha256 = "sha256-VdkCjzmZqP/ZVY1H9FxBGe5rN0nZEPZbMp3MVKL6WLc=";
};
nativeBuildInputs = [
cmake
pkg-config
+ wrapGAppsHook
];
buildInputs = [
- gtkmm3
- webkitgtk
- libappindicator-gtk3
+ glib-networking
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
- gst_all_1.gst-plugins-bad
- gst_all_1.gst-libav
+ gtkmm3
+ libappindicator-gtk3
pcre
+ webkitgtk
];
meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 5395946125d0..d04f2d18f97a 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -28,11 +28,11 @@
}:
let
- version = "5.7.31792.0820";
+ version = "5.8.3.145";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
- sha256 = "16p8wn67hb6p9rn684bbpwz8w5knyqw9rv2nnw6cwg949qjv43lm";
+ sha256 = "1p4agpbcpk95r04m775dr17fmlm18vxq9mb65pyfbhvsd1ypw6kr";
};
};
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index 6ef9ec32538f..3ec1cccd0d64 100755
--- a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -5,6 +5,6 @@ set -eu -o pipefail
version="$(curl -Ls https://zoom.us/download\?os\=linux | \
pup '.linux-ver-text text{}' | \
- awk -F'[ ().]' '{printf $2"."$3"."$6"."$7"\n"}')"
+ awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
update-source-version zoom-us "$version"
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index 2823b84d473e..c90353a18455 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "ipfs";
- version = "0.9.1";
+ version = "0.10.0";
rev = "v${version}";
# go-ipfs makes changes to it's source tarball that don't match the git source.
src = fetchurl {
url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
- sha256 = "sha256-RliyIEtNgwzbLVwl6T38VIbhc12CZMBc3LZ6T/llaHc=";
+ sha256 = "sha256-okfIxNoFoJZx1WCWe/6NcYhwU+ZzOyn01g8BGtXO3UQ=";
};
# tarball contains multiple files/directories
diff --git a/pkgs/applications/networking/irc/catgirl/default.nix b/pkgs/applications/networking/irc/catgirl/default.nix
index 936524918e04..f45f803e805f 100644
--- a/pkgs/applications/networking/irc/catgirl/default.nix
+++ b/pkgs/applications/networking/irc/catgirl/default.nix
@@ -9,6 +9,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-MEm5mrrWfNp+mBHFjGSOGvvfvBJ+Ho/K+mPUxzJDkV0=";
};
+ # catgirl's configure script uses pkg-config --variable exec_prefix openssl
+ # to discover the install location of the openssl(1) utility. exec_prefix
+ # is the "out" output of libressl in our case (where the libraries are
+ # installed), so we need to fix this up.
+ postConfigure = ''
+ substituteInPlace config.mk --replace \
+ "$($PKG_CONFIG --variable exec_prefix openssl)" \
+ "${lib.getBin libressl}"
+ '';
+
nativeBuildInputs = [ ctags pkg-config ];
buildInputs = [ libressl ncurses ];
strictDeps = true;
diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix
index 9148a26567df..df7168ac308e 100644
--- a/pkgs/applications/networking/irc/communi/default.nix
+++ b/pkgs/applications/networking/irc/communi/default.nix
@@ -38,8 +38,6 @@ stdenv.mkDerivation rec {
install_name_tool \
-add_rpath @executable_path/../Frameworks \
$out/Applications/Communi.app/Contents/MacOS/Communi
-
- wrapQtApp $out/Applications/Communi.app/Contents/MacOS/Communi
'' else ''
substituteInPlace "$out/share/applications/communi.desktop" \
--replace "/usr/bin" "$out/bin"
diff --git a/pkgs/applications/networking/irc/hexchat/default.nix b/pkgs/applications/networking/irc/hexchat/default.nix
index 2a91e3ebddcd..504481479ed2 100644
--- a/pkgs/applications/networking/irc/hexchat/default.nix
+++ b/pkgs/applications/networking/irc/hexchat/default.nix
@@ -1,25 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, gtk2, lua, perl, python3
+{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, gtk2, lua, perl, python3Packages
, pciutils, dbus-glib, libcanberra-gtk2, libproxy
, enchant2, libnotify, openssl, isocodes
, desktop-file-utils
-, meson, ninja
+, meson, ninja, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "hexchat";
- version = "2.14.3";
+ version = "2.16.0";
src = fetchFromGitHub {
owner = "hexchat";
repo = "hexchat";
rev = "v${version}";
- sha256 = "08kvp0dcn3bvmlqcfp9312075bwkqkpa8m7zybr88pfp210gfl85";
+ sha256 = "08zhlf9d3xdis62byxzgizhfg8kbppxl7cgxkzhwdc1srpj7vpx6";
};
- nativeBuildInputs = [ meson ninja pkg-config ];
+ nativeBuildInputs = [ meson ninja pkg-config makeWrapper ];
buildInputs = [
- gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy
+ gtk2 lua perl python3Packages.python python3Packages.cffi pciutils dbus-glib libcanberra-gtk2 libproxy
libnotify openssl desktop-file-utils
isocodes
];
@@ -30,9 +30,10 @@ stdenv.mkDerivation rec {
sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build
chmod +x meson_post_install.py
for f in meson_post_install.py \
- src/common/make-te.py \
plugins/perl/generate_header.py \
- po/validate-textevent-translations
+ plugins/python/generate_plugin.py \
+ po/validate-textevent-translations \
+ src/common/make-te.py
do
patchShebangs $f
done
@@ -40,6 +41,10 @@ stdenv.mkDerivation rec {
mesonFlags = [ "-Dwith-lua=lua" "-Dwith-text=true" ];
+ postInstall = ''
+ wrapProgram $out/bin/hexchat --prefix PYTHONPATH : "$PYTHONPATH"
+ '';
+
meta = with lib; {
description = "A popular and easy to use graphical IRC (chat) client";
homepage = "https://hexchat.github.io/";
diff --git a/pkgs/applications/networking/irc/srain/default.nix b/pkgs/applications/networking/irc/srain/default.nix
new file mode 100644
index 000000000000..282506c5e0af
--- /dev/null
+++ b/pkgs/applications/networking/irc/srain/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, gtk3
+, libconfig
+, libsoup
+, libsecret
+, openssl
+, gettext
+, glib
+, glib-networking
+, appstream-glib
+, dbus-glib
+, python3Packages
+, meson
+, ninja
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "srain";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "SrainApp";
+ repo = "srain";
+ rev = version;
+ sha256 = "14s0h5wgvlkdylnjis2fa7m835142jzw0d0yqjnir1wqnwmq1rld";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ gettext
+ appstream-glib
+ wrapGAppsHook
+ python3Packages.sphinx
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ glib-networking
+ dbus-glib
+ libconfig
+ libsoup
+ libsecret
+ openssl
+ ];
+
+ meta = with lib; {
+ description = "Modern IRC client written in GTK";
+ homepage = "https://srain.im";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ rewine ];
+ };
+}
diff --git a/pkgs/applications/networking/irc/tiny/default.nix b/pkgs/applications/networking/irc/tiny/default.nix
index 253143d00047..fde521c53d58 100644
--- a/pkgs/applications/networking/irc/tiny/default.nix
+++ b/pkgs/applications/networking/irc/tiny/default.nix
@@ -10,21 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "tiny";
- version = "0.9.0";
+ version = "0.10.0";
src = fetchFromGitHub {
owner = "osa1";
repo = pname;
rev = "v${version}";
- sha256 = "gKyHR3FZHDybaP38rqB8/gvr8T+mDO4QQxoTtWS+TlE=";
+ sha256 = "177d1x4z0mh0p7c5ldq70cn1j3pac50d8cil2ni50hl49c3x6yy1";
};
- cargoSha256 = "0ChfW8vaqC2kCp4lpS0HOvhuihPw9G5TOmgwKzVDfws=";
-
- # Fix Cargo.lock version. Remove with the next release.
- cargoPatches = [
- ./fix-Cargo.lock.patch
- ];
+ cargoSha256 = "05q3f1wp48mwkz8n0102rwb6jzrgpx3dlbxzf3zcw8r1mblgzim1";
cargoBuildFlags = lib.optionals stdenv.isLinux [ "--features=desktop-notifications" ];
@@ -34,7 +29,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "A console IRC client";
homepage = "https://github.com/osa1/tiny";
- changelog = "https://github.com/osa1/tiny/blob/v${version}/CHANGELOG.md";
+ changelog = "https://github.com/osa1/tiny/raw/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne vyp ];
};
diff --git a/pkgs/applications/networking/irc/tiny/fix-Cargo.lock.patch b/pkgs/applications/networking/irc/tiny/fix-Cargo.lock.patch
deleted file mode 100644
index 71bc4709bece..000000000000
--- a/pkgs/applications/networking/irc/tiny/fix-Cargo.lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 3a184dc..0e58cb1 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -1023,7 +1023,7 @@ dependencies = [
-
- [[package]]
- name = "tiny"
--version = "0.8.0"
-+version = "0.9.0"
- dependencies = [
- "clap",
- "dirs 3.0.1",
diff --git a/pkgs/applications/networking/irc/weechat/scripts/default.nix b/pkgs/applications/networking/irc/weechat/scripts/default.nix
index ccbf78ec4c7c..a3cf55d6a034 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -3,6 +3,8 @@
{
colorize_nicks = callPackage ./colorize_nicks { };
+ edit = callPackage ./edit { };
+
multiline = callPackage ./multiline {
inherit (perlPackages) PodParser;
};
@@ -28,4 +30,6 @@
buffer_autoset = callPackage ./buffer_autoset { };
highmon = callPackage ./highmon { };
+
+ zncplayback = callPackage ./zncplayback { };
}
diff --git a/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix b/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix
new file mode 100644
index 000000000000..5f91417b76fa
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, weechat }:
+
+stdenv.mkDerivation rec {
+ pname = "edit-weechat";
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "keith";
+ repo = "edit-weechat";
+ rev = version;
+ sha256 = "1s42r0l0xkhlp6rbc23cm4vlda91il6cg53w33hqfhd2wz91s66w";
+ };
+
+ dontBuild = true;
+
+ passthru.scripts = [ "edit.py" ];
+
+ installPhase = ''
+ runHook preInstall
+ install -D edit.py $out/share/edit.py
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ inherit (weechat.meta) platforms;
+ description = "This simple weechat plugin allows you to compose messages in your $EDITOR.";
+ license = licenses.mit;
+ maintainers = with maintainers; [ eraserhd ];
+ };
+}
diff --git a/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix b/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix
new file mode 100644
index 000000000000..d15b130cae28
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ pname = "weechat-zncplayback";
+ version = "0.2.1";
+
+ src = fetchurl {
+ url = "https://github.com/weechat/scripts/raw/bcc9643136addd2cd68ac957dd64e336e4f88aa1/python/zncplayback.py";
+ sha256 = "1k32p6naxg40g664ip48zvm61xza7l9az3v3rawmjw97i0mwz7y3";
+ };
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp $src $out/share/zncplayback.py
+ '';
+
+ passthru = {
+ scripts = [ "zncplayback.py" ];
+ };
+
+ meta = with lib; {
+ description = "Add support for the ZNC Playback module";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ qyliss ];
+ };
+}
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index dce623897f73..1adb61b89347 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "juju";
- version = "2.9.10";
+ version = "2.9.11";
src = fetchFromGitHub {
owner = "juju";
repo = "juju";
rev = "juju-${version}";
- sha256 = "sha256-2gCJ6aN6uN0KtOVddLDry4pLhScSh4JHmdsFws59phk=";
+ sha256 = "sha256-KcvlnEfDzwhFzwaWLYuRGa8nh6MkjqZ+u+qJSJZl13U=";
};
- vendorSha256 = "sha256-vFO3Rv+7CLIkl1qS4zp177GmerewfgmyjxEbzdt/RsE=";
+ vendorSha256 = "sha256-0KGeMJDv1BdqM1/uMk+mKpK+Nejz9PiCAfRy96pu3OQ=";
# Disable tests because it attempts to use a mongodb instance
doCheck = false;
diff --git a/pkgs/applications/networking/maestral-qt/default.nix b/pkgs/applications/networking/maestral-qt/default.nix
index 2040aa39cebd..57997ce7e223 100644
--- a/pkgs/applications/networking/maestral-qt/default.nix
+++ b/pkgs/applications/networking/maestral-qt/default.nix
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "maestral-qt";
- version = "1.4.8";
+ version = "1.5.1";
disabled = python3.pkgs.pythonOlder "3.6";
src = fetchFromGitHub {
owner = "SamSchott";
repo = "maestral-qt";
rev = "v${version}";
- sha256 = "sha256-lP6ASWizIQC3TkkIOHS6cBbgLNoGrSx/sThtl9bMjys=";
+ sha256 = "sha256-LtKFdNX2/wSs9Hxplu7rz6rc1hoijCGgCKyLjlcRQoI=";
};
propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/networking/mailreaders/alpine/default.nix b/pkgs/applications/networking/mailreaders/alpine/default.nix
index d169e1fdea65..04f1732f7a5b 100644
--- a/pkgs/applications/networking/mailreaders/alpine/default.nix
+++ b/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "alpine";
- version = "2.24";
+ version = "2.25";
src = fetchurl {
url = "http://alpine.x10host.com/alpine/release/src/${pname}-${version}.tar.xz";
- sha256 = "1vxw19nx10y7nx01d9i6gah2f3y5r2idbq56l13bdqi91bx9y6k5";
+ sha256 = "0xppxhcbafq9qa1rns5zl0n238gai08xhvcf2as0nx7nh84ib2k5";
};
buildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/bubblemail/default.nix b/pkgs/applications/networking/mailreaders/bubblemail/default.nix
index d415eb4e51f2..612762207565 100644
--- a/pkgs/applications/networking/mailreaders/bubblemail/default.nix
+++ b/pkgs/applications/networking/mailreaders/bubblemail/default.nix
@@ -17,14 +17,14 @@
python3Packages.buildPythonApplication rec {
pname = "bubblemail";
- version = "1.3";
+ version = "1.4";
src = fetchFromGitLab {
domain = "framagit.org";
owner = "razer";
repo = "bubblemail";
rev = "v${version}";
- sha256 = "FEIdEoZBlM28F5kSMoln7KACwetb8hp+qix1P+DIE8k=";
+ sha256 = "sha256-MPl4pXvdhwCFWTepn/Mxp8ZMs+HCzXC59qdKZp3mHdw=";
};
buildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index 2a6b0892bfe8..432544c60c6c 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "evolution-ews";
- version = "3.40.4";
+ version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0eAjb8gWhiyjqaOT5ur9gPoQv6W2u37u28qAJVMuUBU=";
+ sha256 = "nCvGMSfDS0GUQfF8zomVq+gKf9H72X896zptRy9/Xy0=";
};
nativeBuildInputs = [ cmake gettext intltool pkg-config ];
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 638d60777712..34b25c17a254 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -42,11 +42,11 @@
stdenv.mkDerivation rec {
pname = "evolution";
- version = "3.40.4";
+ version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "BYXp36VQQOySNTWgRIdiRl2J4zE1Cawya76Eal1mA3Q=";
+ sha256 = "RlMq46E6aIV3GtEiNLlBQRZ67HRyOn7tE9293a767kU=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/himalaya/default.nix b/pkgs/applications/networking/mailreaders/himalaya/default.nix
index b1c709b055b9..33c1cc63a7f9 100644
--- a/pkgs/applications/networking/mailreaders/himalaya/default.nix
+++ b/pkgs/applications/networking/mailreaders/himalaya/default.nix
@@ -1,33 +1,29 @@
{ lib
-, stdenv
, rustPlatform
, fetchFromGitHub
-, openssl
-, pkg-config
-, installShellFiles
+, stdenv
, enableCompletions ? stdenv.hostPlatform == stdenv.buildPlatform
+, installShellFiles
+, pkg-config
, Security
, libiconv
+, openssl
}:
+
rustPlatform.buildRustPackage rec {
pname = "himalaya";
- version = "0.4.0";
+ version = "0.5.1";
src = fetchFromGitHub {
owner = "soywod";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-6RgT/SxO4vsk8Yx2AbaNIFvnAvgDmeTXvb/v6nUJxhc=";
+ sha256 = "sha256-BmV4kekl0QDbX/ueSrWM5jRvqr6WQeZIs7hiXhiHBSI=";
};
- cargoSha256 = "sha256-NEuIh7FwIdAWzlChna3+G0VukfV8nYZfVWa+3LxQCIA=";
+ cargoSha256 = "sha256-lu5xVuAw9yTeQr3gpiW5g5bdm7Alf0YXmlbSkPaXhk0=";
- # use --lib flag to avoid test with imap server
- # https://github.com/soywod/himalaya/issues/145
- cargoTestFlags = [ "--lib" ];
-
- nativeBuildInputs = [ ]
- ++ lib.optionals (enableCompletions) [ installShellFiles ]
+ nativeBuildInputs = lib.optionals enableCompletions [ installShellFiles ]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ];
buildInputs =
@@ -49,6 +45,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "CLI email client written in Rust";
homepage = "https://github.com/soywod/himalaya";
+ changelog = "https://github.com/soywod/himalaya/blob/v${version}/CHANGELOG.md";
license = licenses.bsd3;
maintainers = with maintainers; [ yanganto ];
};
diff --git a/pkgs/applications/networking/mailreaders/meli/default.nix b/pkgs/applications/networking/mailreaders/meli/default.nix
index ec50e913176e..d0575b60653b 100644
--- a/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -15,15 +15,15 @@
rustPlatform.buildRustPackage rec {
pname = "meli";
- version = "alpha-0.6.2";
+ version = "alpha-0.7.2";
src = fetchgit {
url = "https://git.meli.delivery/meli/meli.git";
rev = version;
- sha256 = "0ycyksrrp4llwklzx3ipac8hmpfxa1pa7dqsm82wic0f6p5d1dp6";
+ sha256 = "sha256-cbigEJhX6vL+gHa40cxplmPsDhsqujkzQxe0Dr6+SK0=";
};
- cargoSha256 = "sha256:0lxwhb2c16w5z7rqzch0ij8n8hxb5xcin31w9i28mzv1xm7sg8ks";
+ cargoSha256 = "sha256-ZE653OtXyZ9454bKPApmuL2kVko/hGBWEAya1L1KIoc=";
cargoBuildFlags = lib.optional withNotmuch "--features=notmuch";
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index a7b90c284acf..a94555e7959b 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "mutt";
- version = "2.1.2";
+ version = "2.1.3";
src = fetchurl {
url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
- sha256 = "0s9wkygjd7xhvd1zdaidbvszq4abb0iv5830ir65glcfzbdbfak9";
+ sha256 = "0z74slnq3y9wr1xr07jigz4n8dgxhk9qb0787sd0j6wj9g4rqxgg";
};
patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 50b3b66f15dc..6d5ab96b4edc 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,27 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, fetchpatch
+{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
+, fetchpatch
}:
stdenv.mkDerivation rec {
- version = "20210205";
+ version = "20211029";
pname = "neomutt";
src = fetchFromGitHub {
owner = "neomutt";
repo = "neomutt";
rev = version;
- sha256 = "sha256-ADg/+gmndOiuQHsncOzS5K4chthXeUFz6RRJsrZNeZY=";
+ sha256 = "sha256-haPDZorAfKuIEMiBCXJRMALAYnurQyjmCSOnj9IsoKk=";
};
- patches = [
- (fetchpatch {
- name = "CVE-2021-32055.patch";
- url = "https://github.com/neomutt/neomutt/commit/fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc.patch";
- sha256 = "0bb7gisjynq3w7hhl6vxa469h609bcz6fkdi8vf740pqrwhk68yn";
- })
- ];
-
buildInputs = [
cyrus_sasl gss gpgme libkrb5 libidn ncurses
notmuch openssl perl lmdb
@@ -32,6 +25,15 @@ stdenv.mkDerivation rec {
docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m
];
+ patches = [
+ # Remove on next update, see
+ # https://github.com/NixOS/nixpkgs/pull/143641#issuecomment-954991746 for context.
+ (fetchpatch {
+ url = "https://github.com/neomutt/neomutt/commit/4242a31313e0b600693215c01047bbda8a6dd25a.patch";
+ sha256 = "sha256-fcuNeBkPjqln5QA9VFcfXCQD/VrUoSEMSxQ//Xj+yxY=";
+ })
+ ];
+
enableParallelBuilding = true;
postPatch = ''
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 3247f45b06f1..df5c9de29d17 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchgit, lib, stdenv
+{ fetchurl, lib, stdenv
, pkg-config, gnupg
, xapian, gmime, talloc, zlib
, doxygen, perl, texinfo
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "notmuch";
- version = "0.33";
+ version = "0.34.1";
src = fetchurl {
url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz";
- hash = "sha256-iD4EW0v6LEjJpGcQYqQGA6f2Flck3VRhi+66EAVJ0mw=";
+ sha256 = "05nq64gp8vnrwrl22d60v7ixgdhm9339ajhcdfkq0ll1qiycyyj5";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index de453c4d19f3..d53bcda2a69d 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
{
- version = "91.1.1";
+ version = "91.3.0";
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.3.0/linux-x86_64/af/thunderbird-91.3.0.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "ba98ba0ac513e9f8ca047bd08b38e2391d5b67b4195c2c1ac7d90498e148ad6b";
+ sha256 = "067592da3bdc40cb8a7d8f64e3c5d116575604f1305b8eac4b5b1cc7f79dccf0";
}
- { 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.3.0/linux-x86_64/ar/thunderbird-91.3.0.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "3514eadb52d000429f16417d3af5ce648cfdeaa583bb3602623f40abfca72fec";
+ sha256 = "3a52d7c0e48496cd2259494196b0514412e922535877ddd322ceb82d02a47a39";
}
- { 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.3.0/linux-x86_64/ast/thunderbird-91.3.0.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "c630ab402c6f166181474b0e7299dc24ff0de5ce92fa0894adbc3dbaf8878f59";
+ sha256 = "e07001f03b642887ae4a4e2415ce6bb50542d5af7cd8a9f0531081bb084e56eb";
}
- { 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.3.0/linux-x86_64/be/thunderbird-91.3.0.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "9f484652940fec35d9adad996e80092cedabc789952e083107b405992b1ecf9d";
+ sha256 = "ae12e02ef735813f2f807a32b101ea8ac621bff3f01f4e4b3c5e0fa6c178b812";
}
- { 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.3.0/linux-x86_64/bg/thunderbird-91.3.0.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "f784957e36cb9a92083c275eec887d3a6847439281e94346e5bf0e065ec23366";
+ sha256 = "3892a660dcc417cbb951bd8362b8fdf06ef35606e98f121ea6f549646a0a8b89";
}
- { 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.3.0/linux-x86_64/br/thunderbird-91.3.0.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "2817bf350195954464db3a936db3a3730c2d33dfea9333165e69418b627d575d";
+ sha256 = "2fd0c6eca16a1435d0abd5d8fa66d68c8024f992ee57b741178c2d253f9bb7d7";
}
- { 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.3.0/linux-x86_64/ca/thunderbird-91.3.0.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "176b8f2463267ad2aed07ca6966609c600615763caba662ac68c45b5d36e367c";
+ sha256 = "45fa1b1e80b646af457b189e07fa13c8bee61df1d80066b0b3d65414a682e105";
}
- { 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.3.0/linux-x86_64/cak/thunderbird-91.3.0.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "7ff8fc736dd4232801d0e50b154747827cc818fe76782b219d683a8b2bba8969";
+ sha256 = "3211236401fbf52b6085c1fe7e82e081c2d7d4f13514b11ced5a483986dabecf";
}
- { 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.3.0/linux-x86_64/cs/thunderbird-91.3.0.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "b6763048e3fab66a4f08fd8c868d7c9c51258c540801546546b7da3b2ea64693";
+ sha256 = "259bf43995f7990bd1ef78e030db88966688323f363f15af2065c7c551a9e6ae";
}
- { 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.3.0/linux-x86_64/cy/thunderbird-91.3.0.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "810213d5f90387bd6f46436b1479b977248ec043235f2f97b7e8d0a3b296eaec";
+ sha256 = "2e1719dc5b7c3687c390c7ac07ab0392a3e8f32624ebd40d2cf8208796da054e";
}
- { 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.3.0/linux-x86_64/da/thunderbird-91.3.0.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "2c85f4ea05fb03aaf88f4cb028375a628061f2699adde13f78cf6e76b7564e7d";
+ sha256 = "49d8e99d05928d4678408a3b38da2f5c4915a802966c7328f4d410d5d0f7d82e";
}
- { 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.3.0/linux-x86_64/de/thunderbird-91.3.0.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "9a05ca5400224fbf0923a331e1ba986d38038df24340c6aee695c24f96f75e0e";
+ sha256 = "0059061919afe9a38a3647896693e4773c3656887657b761356ff698b839cef5";
}
- { 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.3.0/linux-x86_64/dsb/thunderbird-91.3.0.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "e06a84821ba0354e4d5efe0e080734e39f376ba3e1f1c385ab939fd4cb84301c";
+ sha256 = "7ac2f44c66860967cabd64e94f0b104b2807f4b6297dd2ad828525962d8d5976";
}
- { 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.3.0/linux-x86_64/el/thunderbird-91.3.0.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "32a1de995a05495721a4c6a6a74ec27b68c03d7b2121ea7d6ce6d295ceb8d328";
+ sha256 = "3fcde9b4cac6c46a6be2fe15f200cde1f96b59732f1e87b5645538568969817f";
}
- { 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.3.0/linux-x86_64/en-CA/thunderbird-91.3.0.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "95f2dd81dc1958f2acd8a801fe7a87dfa0a00c6b91b8bd669f8e3caf6d90aad2";
+ sha256 = "13e33af2f7c29f8bcc479a09b3f8ab82362c01984700c5371eb8c050ef0524b2";
}
- { 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.3.0/linux-x86_64/en-GB/thunderbird-91.3.0.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "3177bce52669f44ae58ca447b54a86329cdb5b8006199e86fa66b5bfe96ac8a3";
+ sha256 = "94e8bf04d513caa7cd74c4e93851a59911352e666b7bf86c8a795d63177f2e0a";
}
- { 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.3.0/linux-x86_64/en-US/thunderbird-91.3.0.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "c0331b86ef72bae3d769ca977b0c9adeb9a29145dab1eb0013f4d88fa9caeedc";
+ sha256 = "a5cf280ad34305f7a83d331f554488c08e8c62acf2eb895ba7a6bcbc4aad3180";
}
- { 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.3.0/linux-x86_64/es-AR/thunderbird-91.3.0.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "e2aee8223131a46bf99140ebdb56ab76ca03eb5eb66dfbee75f23520d95d1971";
+ sha256 = "ae253fa8d23ee19105566a76be6ad4584ba2c5cb1eef6a3135d488109f25dea7";
}
- { 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.3.0/linux-x86_64/es-ES/thunderbird-91.3.0.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "c8e189dc7a57d47c6dba9e4cda3068b327fa10cff3818e97a4942c71c1d0cc87";
+ sha256 = "1ede7664984d3ba3ba74163f58f02d5a982aa586c000a9d2b51efdb4b0b39210";
}
- { 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.3.0/linux-x86_64/et/thunderbird-91.3.0.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "76e094d63467fb36622b64361f86041f0e6361a4fb1f1702c8a0e88bc57cfc96";
+ sha256 = "93e29146782ccaa5ba9cc0b30f4f6273d8c57f39c678bc2dc825af5f46415ff1";
}
- { 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.3.0/linux-x86_64/eu/thunderbird-91.3.0.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "8f09dc4bbbb76b660acf4664f4fb083a50de6523842171b4fe9558e7255c8bbf";
+ sha256 = "ef431ab48190366acad917c5d8710e2df89ee31cf88ccfea206bfb49fbd2083c";
}
- { 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.3.0/linux-x86_64/fi/thunderbird-91.3.0.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "d7dba3916342bfefe549ad21a70a438c8f2031fc5f0085fc4e236d0f8d07c948";
+ sha256 = "e4fba7cbb9cdb515eb29757bbda8b3f1fd091a5c1a35d345b34c547002c44ab7";
}
- { 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.3.0/linux-x86_64/fr/thunderbird-91.3.0.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "4088b924197a6baf7ea3ee233d566b9799cbab955a135bc870eaf6e08ce70915";
+ sha256 = "127de8d089c8ad535f2ca0dd60856a8822e8adffb3e5f3af868881c36e78da97";
}
- { 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.3.0/linux-x86_64/fy-NL/thunderbird-91.3.0.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "59cd7d50cdbb7867f746b137ec8f70407ae649b03e86a73a2be642eab9256be4";
+ sha256 = "28b4e3490105558c6fc47b9189451e0359f0ecfdaf9b40af173483cbef618981";
}
- { 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.3.0/linux-x86_64/ga-IE/thunderbird-91.3.0.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "10936f6c941d8c94eea200c1c3bb8919066714129eb3b34d67df87c9b93f331c";
+ sha256 = "2b16e222cf5f9468bae76f1f3b7b0af8c7b6f8a7a9f263e9d1b1e9320e244fad";
}
- { 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.3.0/linux-x86_64/gd/thunderbird-91.3.0.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "4ee24daec40780a8148092c96140575e7e5d1169fd37ffc6d46879f76f976f80";
+ sha256 = "9368396e0ca3784201f3e2d2bf6c1c87d0d0dade72f96c450119929a4ae34ae5";
}
- { 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.3.0/linux-x86_64/gl/thunderbird-91.3.0.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "0126bc6b167b8bcb2135e02c289f26aed82e4ab8dc820fa9468ebb41fd05604d";
+ sha256 = "7c90a96061ae3d237636baaa4fe439ae47542d0880b81687bc3a5a9e40edded9";
}
- { 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.3.0/linux-x86_64/he/thunderbird-91.3.0.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "58ae78aee2da5f8a33edf8c87a743ea7f3da6702f25682869db9bbfcb53d4df5";
+ sha256 = "12e42b78aa9757b8274df1395667b89214d393a2dd5969b374a0bf5816f04f31";
}
- { 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.3.0/linux-x86_64/hr/thunderbird-91.3.0.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "c4543e54a9fa59906c64b8830e4ce6218279872e6beafeb67d13250159eca8f0";
+ sha256 = "f27542cf34fffd6aa71c479278b843ce435f4a8272130f7d8cde6f155e82b813";
}
- { 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.3.0/linux-x86_64/hsb/thunderbird-91.3.0.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "cded10c83585c5d6ebdae4a0740262f43203b7a9252144a6f97eb6b329cea95a";
+ sha256 = "f21bbe1720441392a276f3a2f6025da48f74efcfb7bfbe783f134be013874cf6";
}
- { 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.3.0/linux-x86_64/hu/thunderbird-91.3.0.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "f6dcdab2dad04a9210f509a62da49ec5269bf5c9f40e74cf9d2f43edb0abd422";
+ sha256 = "64b16f848c5a361d9709c2075fdf3ca4f7eb885f3f1cd9ec5acffc260b31982a";
}
- { 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.3.0/linux-x86_64/hy-AM/thunderbird-91.3.0.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "b3f8a1b6d4576dbf660bee6404b97babeb04bf0c1c6ff27aab25a073436f43a4";
+ sha256 = "da650d001f9b10227c5a5f5225725ef9085aa71f95dca0ffc4452fc2d6b48d90";
}
- { 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.3.0/linux-x86_64/id/thunderbird-91.3.0.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "e1bfada3b7d33e01462cc303b22298850c5923f42e8ca656cdf5b2dc72c00745";
+ sha256 = "12fcb1295b43b8bfd9607b819a78dd931c5efb092d6a5ddc70199c3625c4c033";
}
- { 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.3.0/linux-x86_64/is/thunderbird-91.3.0.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "602ee80721bfa921805c1fff2b0802d7845d7970645cbb839e5d0f6e25b5fe65";
+ sha256 = "48250a36caa8727b6e5bf1369199b4e202c7692ef62ffd97999b71a59c8182b8";
}
- { 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.3.0/linux-x86_64/it/thunderbird-91.3.0.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "7e55d0b20027e23d3340a593beeebac0fead2dd0d048133b2e42dbb33288c4c5";
+ sha256 = "aebf9b22dd1af357fdd1709448d3d753319a2f817bc30ed15ba364c75fe5ec40";
}
- { 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.3.0/linux-x86_64/ja/thunderbird-91.3.0.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "df67309b344f46f9ead5939a2f0f7bc34b90bf4cfa4cc28a662391146951c4a0";
+ sha256 = "3a1580283928525b20a163f13c4cb9554484823ddc28699a8d8879860ccf3a73";
}
- { 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.3.0/linux-x86_64/ka/thunderbird-91.3.0.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "0992f5884dec1431a1c82e289195db7561a8089e7cd7d8fb940c0435e365b6f2";
+ sha256 = "a2d2b5e2b884fa1b9547c76b9fce154431ef0db80af45379079f1c2d5c6d14b0";
}
- { 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.3.0/linux-x86_64/kab/thunderbird-91.3.0.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "37eb0b67bb564762f8c88fac75c9ef8a51ad4ca302e3bc5f4d99ff799a141309";
+ sha256 = "0b909906f58125048fd4683946e62653b5c9064085b3f129b20d865c8463198b";
}
- { 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.3.0/linux-x86_64/kk/thunderbird-91.3.0.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "16fcf81dd18c51826d3a93e6393c820227322ad4cceaa668a22fcf79d9fe0773";
+ sha256 = "5256b328a8920f01b5e93617c3e98a54e27094a383047df9a98f5ac50772e0fb";
}
- { 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.3.0/linux-x86_64/ko/thunderbird-91.3.0.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "4e6b0bb94ae1442b987b5e98ef287f6cdd354d13ecbb14dfc25b04ba17b3961d";
+ sha256 = "445644ffbdff8af1910f664a9ed81512af95c9882f5b1ce1add02dac715ab0e9";
}
- { 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.3.0/linux-x86_64/lt/thunderbird-91.3.0.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "03364e6f6104f083bd38dbd65c1d451186757e07460840a1fc8ed8d71f00cc8b";
+ sha256 = "0b3dbd1b6e71036b64c98920ef755f418cf6c11feba93ba8d873d438a032bf87";
}
- { 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.3.0/linux-x86_64/lv/thunderbird-91.3.0.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "4da6a4e457aadb58819c3b44432c5a5ff17f2be378fb461d859a92768e2c4b7e";
+ sha256 = "2bc934ce28dd4775984ae2f4db79db54806b34fdb415ec4420ae3b8927fe10a5";
}
- { 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.3.0/linux-x86_64/ms/thunderbird-91.3.0.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "8aae1245c40ba4b7682f5d26f3b90d9b5cfe53fbd00a755e699ddcea6ac5164f";
+ sha256 = "e13dad427c8d0cb9aa79c48f4f8124ea996cabb34efdbd4ed8e90e233d00b6e2";
}
- { 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.3.0/linux-x86_64/nb-NO/thunderbird-91.3.0.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "d279ee97817a87a87b8848f6cce8e1b0a9643095dbf46e3632df6242f9b05b23";
+ sha256 = "e984fe009aa98be81153b1285370fae6187705bfbfe652b3c45e83f5bb0070ca";
}
- { 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.3.0/linux-x86_64/nl/thunderbird-91.3.0.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "f1d58f439aa8276b5baa475e696a6eedb484059eef66ed8ab6ea27f66182d53a";
+ sha256 = "55744aaba9ae0c282d7eeba0beae71101cdfbf689bbad8a6312af3f2abc41778";
}
- { 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.3.0/linux-x86_64/nn-NO/thunderbird-91.3.0.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "703745b4b07778058a8ed8d4072700033f268ea513abc9f4dc7d1cdcf07c9c2c";
+ sha256 = "b404dfee5b164a0401da149c33535e51030b21da29fc97d1822bc82cec2b6808";
}
- { 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.3.0/linux-x86_64/pa-IN/thunderbird-91.3.0.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "46d756ecb4d5e566dc4a72115874b32bce8eba5de141448d461d795b0c81e78c";
+ sha256 = "cb0bb35c9cbb31443658847bc49d29730b192b6a25875acceac3fa4fd7436edd";
}
- { 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.3.0/linux-x86_64/pl/thunderbird-91.3.0.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "7384fd09796d727f82dd9f92b3faa67d53c415c01b44c885a998039eda703545";
+ sha256 = "3a0ea72ba75230b4809901138350e0f13f981daaf590455aa75787cb107a0c24";
}
- { 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.3.0/linux-x86_64/pt-BR/thunderbird-91.3.0.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "dcd97601965c25f43fc10bf59c5ccd3d62439ad3f1ed724c379951d2b514df72";
+ sha256 = "8e9deefa5bb510e244d8c6416371e24a2f6c97548eda5a25bf03a7aa5d500b7e";
}
- { 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.3.0/linux-x86_64/pt-PT/thunderbird-91.3.0.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "225c2c87e5e18a987c1cad74622ace48bcda9dac7d420694f91c0c30757bfa23";
+ sha256 = "753235eb471c7bb62f766baff612bd1df5926ff248ee174604496edb7c75546b";
}
- { 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.3.0/linux-x86_64/rm/thunderbird-91.3.0.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "07ca0312828ee92b9d04ca5e62f6f4f65260faba80da1da5365a2614edd43dae";
+ sha256 = "a298343b057a4d25b89386cde253ddd897550250e81b8abd6a68ff240d41c600";
}
- { 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.3.0/linux-x86_64/ro/thunderbird-91.3.0.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "3cee1abefb6bcd9508a14e0b03e14f30b6aba95245ba79993d293fc92a3f7bb4";
+ sha256 = "df52bc68926b9239d3b26fbbfea3ec7aa98837296243325dfe153e9afea6a0fa";
}
- { 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.3.0/linux-x86_64/ru/thunderbird-91.3.0.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "e6491ab33fa05012206b22223f78e2f6f575f9e99d33159f0c853b538c3ab9ce";
+ sha256 = "001b1145aca605e8e5d72a1fda411546de1d2cb82f7be5626d5766018e1a692a";
}
- { 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.3.0/linux-x86_64/sk/thunderbird-91.3.0.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "b4cc3471da1cd3f1f9146bf5ba9d33f706df6d2988375a7f148223eba2cb88e5";
+ sha256 = "822e852ec3d2d5a50f042bd2e5b2ec6929441b8116a2cadf2369c769602b85b8";
}
- { 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.3.0/linux-x86_64/sl/thunderbird-91.3.0.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "a83b61af2283d3c694ede815faaa0abfb3e6b7a346d9d984dbf3e50856532473";
+ sha256 = "752538090cd3d72cb5d04cc9abf0b089e437a7726cf8eee27b5ebe2d63162b8c";
}
- { 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.3.0/linux-x86_64/sq/thunderbird-91.3.0.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "6562243bd3ca68b6b09c12745111c36a269e60593c5c458e04da12a9f1cfe7dc";
+ sha256 = "a8548722e8c67da69c8f2e15855dd076b1435c5a1c6c34100dfae8de0eab7543";
}
- { 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.3.0/linux-x86_64/sr/thunderbird-91.3.0.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "2b8dee91bfe25480f1a7b12b3825e2445b369d6125df9a13271ef6a6af015db8";
+ sha256 = "d6c86caa9b272b3281b9a3eea8ded13546f4d09518081feb3fd16b995955d6e7";
}
- { 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.3.0/linux-x86_64/sv-SE/thunderbird-91.3.0.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "113e0ebd096ef5ea225c76e930cbdc58f2b529b39fe799310098abefa4652ee1";
+ sha256 = "a5af37b0803881489bc775e25592901ca77de996b07c4df658f17a9b66c94fc2";
}
- { 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.3.0/linux-x86_64/th/thunderbird-91.3.0.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "71b62b60167d06a02fcc90017b33d65c757d18d05fbf689607631ff1783941ce";
+ sha256 = "a0292086c9e9d0462118ca5945627bb04f8943e3afcdcf3da054ff52ccd45442";
}
- { 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.3.0/linux-x86_64/tr/thunderbird-91.3.0.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "ab7f254131c8fdcc040d06d29ffdb0da6d95b9970f7640851bbdad337af0bd0a";
+ sha256 = "f02b7dde392fd77cde01a9ae860a46acf11554ec32d1b606c2a0145562bea1d5";
}
- { 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.3.0/linux-x86_64/uk/thunderbird-91.3.0.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "6da1aa51763b3acb2015eb78b50d5d6cc080bd606e2afdcf181d84095b0cedc3";
+ sha256 = "1cb2935c1517b10adb370ceea6866912656c668dd8e82abcfb0f59435a85a854";
}
- { 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.3.0/linux-x86_64/uz/thunderbird-91.3.0.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "933513bdc1b1137dc627ec4895c3299d3633a105eadf2216b682fe36554c5f5b";
+ sha256 = "4ad88f7f036ec199bd69ab7628d2bdf2f162603e8290cc19e4ccd586bef691fb";
}
- { 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.3.0/linux-x86_64/vi/thunderbird-91.3.0.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "8f3eb2210a070983d87e6d5ec9908cabfdd012a4691443c39cbf2212d79e2394";
+ sha256 = "538a9996a604d9464a6c1315c683d6bd80b585d3bcf59fa93272444c22fec59e";
}
- { 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.3.0/linux-x86_64/zh-CN/thunderbird-91.3.0.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "0faa621dba2d2725bcd6b2a337feac5ee2d6bf66900ce30e1e5abbcddc15ca45";
+ sha256 = "470123b053cab95930e8594684e65a656da032ea4e46aae4c325f119fbed4a46";
}
- { 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.3.0/linux-x86_64/zh-TW/thunderbird-91.3.0.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "e236b7d2b9187a0ac780d7e0821cf29138d5f03321248e4edab0d1f2a7267cc7";
+ sha256 = "cead4d02b5dd39dd146d1f2b28b61e5f30804018cd226d36e56bd39e010d82c5";
}
- { 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.3.0/linux-i686/af/thunderbird-91.3.0.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "624e9894eba97eafff7241dd73c2edd685e0786ba3e12f525980012d7dbae0e6";
+ sha256 = "4ac3b8ea2e7371710b03beca630d409a7f3e101e267e15b2ef49004da728e021";
}
- { 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.3.0/linux-i686/ar/thunderbird-91.3.0.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "62f250a1925e8b3cf2c98fe877b7b5a6d559d3fafb1320312fc765630c23a71b";
+ sha256 = "545423946de595760829c2263b90f1ca2aef3ec576a28c96c37ec6bfc3269fd9";
}
- { 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.3.0/linux-i686/ast/thunderbird-91.3.0.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "102b2e3d812eb4737f3d4ab63e2b696cb7cc2478ad438bed5c19299d65dc5ac6";
+ sha256 = "1ff0fc8052bcb5c26396114be2ebce66e939cfe962c17807183ccb538dc29df1";
}
- { 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.3.0/linux-i686/be/thunderbird-91.3.0.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "ed15b0cc8c4d0dcc4071ccdc602fd796c5dc42a027f26595d1d8df2ab10267ba";
+ sha256 = "079a3e51861d0396d89978b46bcbcc5d786b3b4d728064c7709aefb2ba95ba40";
}
- { 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.3.0/linux-i686/bg/thunderbird-91.3.0.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "234f8ff03dbf19bd9100663ee517fa1630d0e7bd00953a056d5085021fa90324";
+ sha256 = "04b095d3b52972e06324630b938cf703143158996036f1d338740e9058c666c5";
}
- { 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.3.0/linux-i686/br/thunderbird-91.3.0.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "34c578de385448cad19dc368a04d0285cfb1520c31477f6eacc10ffa2e81a02d";
+ sha256 = "82ad96bb61b2c170a0c750328b110772bff263493628c8a0c00396051a30ae4e";
}
- { 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.3.0/linux-i686/ca/thunderbird-91.3.0.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "c3d3dfdeaa72254d02b12f72c83a95a2904a13f2e0c721d3baa5da0dd76bc2c8";
+ sha256 = "e5c4a5c5edbfc95e2dbbf331e8a794fdbef77e111da3b467d050571b6447ff70";
}
- { 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.3.0/linux-i686/cak/thunderbird-91.3.0.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "7cf60b8ecc692696081115f1df65f9976613ef34b57d412a6d3333a18400aa3c";
+ sha256 = "4c99da8214856553fd01e4bea4c01945abe799280bf4e6da94e57b8c85e5e047";
}
- { 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.3.0/linux-i686/cs/thunderbird-91.3.0.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "59f01da4722c4317f80a7174f85fff9ba60a8341d589ef2cc27c565a529af2f5";
+ sha256 = "f7a9037ed7889f5de489f875611cf6a5d644b93f26b0dbddcb6e49b5f11ee2be";
}
- { 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.3.0/linux-i686/cy/thunderbird-91.3.0.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "470e65ebf016cd8fdcba1ad405df36d556c6fa43c23856b88d6da3fc58f80d81";
+ sha256 = "bba109d3b1ec5b5deeb7c8bd036260490252961c52855c4d879ddb73858a1110";
}
- { 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.3.0/linux-i686/da/thunderbird-91.3.0.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "d1e95c7744d5058354e8626c361b7d529fefb2032cf380f8f129e84243221b9d";
+ sha256 = "182600e06827d9abf7b8428e3dc883036119d23431923eb019b6a6dc197f7e28";
}
- { 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.3.0/linux-i686/de/thunderbird-91.3.0.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "dbb632f5fe3a3ea2ffce78ef8984e78debf2b0d09ec42bfd1b642a7fd68dc93a";
+ sha256 = "24f69ecdf96f2823e709fe4ca6f48c2eca8b8574e8ff10e7ac48a78b8a847d76";
}
- { 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.3.0/linux-i686/dsb/thunderbird-91.3.0.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "ab5d84870b77376fee50b082e14f2d5ce915f9041a63f09519ea5b8ab2c8c990";
+ sha256 = "9c7ea981a4d8ca2917fc160dbe5598b7bf8c63a9af4b3010cfa870632f4b8e7e";
}
- { 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.3.0/linux-i686/el/thunderbird-91.3.0.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "a96a8d96484b441210b98e768462237ad2e4306bcb20412028613f480160fcd3";
+ sha256 = "e55668dac59dea1f5faddf0d2d63b223932a086dc79a577f2e811dba4b3e16d3";
}
- { 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.3.0/linux-i686/en-CA/thunderbird-91.3.0.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "f43fa2abb60bdeb571ec665d8f5779b049d3270f05e01e43795408e450240d85";
+ sha256 = "b60e6106c054e8d1a107b5601fc96555024b3894334cc4f825a953bf4198e2b1";
}
- { 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.3.0/linux-i686/en-GB/thunderbird-91.3.0.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "6c3c9f1c8f4e3f6cc6008cec83e5c234f797762ae05cdfe7dd7e95794f3fa007";
+ sha256 = "c63b78c881f9c98523214d70053fbe25c84209ea17b634f51fabe47f7a68e700";
}
- { 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.3.0/linux-i686/en-US/thunderbird-91.3.0.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "a6c3f8b935f8c5e185e621aed1725b82db1007c977949fb9f786b86bf024dffb";
+ sha256 = "2f43f460a7b31c128c8cdae2829bbfd82a5381854d722901e8c07843d73f5030";
}
- { 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.3.0/linux-i686/es-AR/thunderbird-91.3.0.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "e431f72359b602e4bb784626bda3f4526eda6ee5bddbe51d5c67fb62325da237";
+ sha256 = "5bfdc77b75b5acfff4a013884298d68ba76946f6ded7b39d973c4a4a20f0c09a";
}
- { 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.3.0/linux-i686/es-ES/thunderbird-91.3.0.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "3f7ccfb4b86b11583289036792e78d080f558d8d58d1b11929664952076ed152";
+ sha256 = "5c793c8ba89d886a67ced4e6cd2271cbd9a516efc1bbf981e4b302ee4223dc37";
}
- { 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.3.0/linux-i686/et/thunderbird-91.3.0.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "4d224ed49c4cc300e22add49b79931b753155f5052d7d0572a3b99833351feb3";
+ sha256 = "548e4ff7682d36034dac4b82bee239ff5241b8605982d4ea3e21d59f43710888";
}
- { 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.3.0/linux-i686/eu/thunderbird-91.3.0.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "84ec201b40080de068c9a2d9ca4effb360102d34970964813f4335187fa0c472";
+ sha256 = "1c24768b70b1cd8310ed5bd9bc08aab036952c692ddb5cdda7e0605b61746713";
}
- { 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.3.0/linux-i686/fi/thunderbird-91.3.0.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "633a45dd1dd870dd0d486715328152ee092a5297f95f35ad4ac8c1a0fa59caba";
+ sha256 = "fdd4a914633aa6b1aeb4c737c63e7b0a39c60ab15b320ae37221c5a7eb273620";
}
- { 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.3.0/linux-i686/fr/thunderbird-91.3.0.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "1a5e668cdfc500652d3429ecddd987993c60032de0dd570c14256642927910e9";
+ sha256 = "b582ff509cea4bfcdafa4b260db4831565ea60b7ac64e3163c9a43814790277b";
}
- { 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.3.0/linux-i686/fy-NL/thunderbird-91.3.0.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "86d52dfe0a63c7f066f4d6b677d1b2d1025b60d7ca556f2cce074ac529d49948";
+ sha256 = "61fa2a02f179e50d9d4bf43cf037a6b545982ee479f7c8f040ca57fc2586ed2f";
}
- { 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.3.0/linux-i686/ga-IE/thunderbird-91.3.0.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "0a116945f0ce9f51feb9658756bbb706830709155d21f4d32be5bb9c2ba3924b";
+ sha256 = "c0651a533f2690ad17b336e4de840932c4711e10fec64b80f2fec18d0449f1dc";
}
- { 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.3.0/linux-i686/gd/thunderbird-91.3.0.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "ddf29128560baf824d5ab984cc4c219318d62d1f6946c83f1e281bf59dfde046";
+ sha256 = "49f7b349a5d55ccbcdeb2ca464aac2ff6c0712b6ea1e8f124ca7562913e8c633";
}
- { 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.3.0/linux-i686/gl/thunderbird-91.3.0.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "28e291c985d8b618bb88a65995f0c523d18a231bd9e3020b743815754d2f761a";
+ sha256 = "04eca02158c56920f08368bb78ce7affaaa3d6793e6a3361b41e3c8856804130";
}
- { 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.3.0/linux-i686/he/thunderbird-91.3.0.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "daecfd126e4e7f7eed943c715b7e0e17fb1b17b55963211130a2326bdeaf2fa9";
+ sha256 = "150ea785d46bb8debe554533edd53abc2a5711ddf64268f4479dc0eda2e85be9";
}
- { 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.3.0/linux-i686/hr/thunderbird-91.3.0.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "f685cf4629e13337795d25f7e75bf2f24abca87e35e41c62b0f48613a2e57365";
+ sha256 = "d837a407f1a117299a7540fd718f4f7cffdf056871ba5f1adf09da5ecd84eb23";
}
- { 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.3.0/linux-i686/hsb/thunderbird-91.3.0.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "d9161bb816887e1fc2296dcd942f0fb4736f86bc8a8122f61caeffac75b0c19f";
+ sha256 = "d7e3e2287a2218f80f055c450b67ece63ae97320eef1dca77cd153a2106d4bc9";
}
- { 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.3.0/linux-i686/hu/thunderbird-91.3.0.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "80e69465e6afd1b50a695b30fcfdc13ad2c051e75fcec666276935874e79d5fe";
+ sha256 = "157a156e393b5a69a326aa0e9be02bd2ae3bd48433382a803ccb9c5c354ed498";
}
- { 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.3.0/linux-i686/hy-AM/thunderbird-91.3.0.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "a1aff21e7b07bcc20685d906d69d6b2515983263d90d2a2533e58d6c74046fbf";
+ sha256 = "bbb783688762040579258fd8650124770f2a1b6ab8dd050df5c8e0bb057510ff";
}
- { 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.3.0/linux-i686/id/thunderbird-91.3.0.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "e911dd870b7a33d50278597a6cd1970c15578716f97a1ca90bac2813c4aabcb6";
+ sha256 = "f14f33e5c8de0e59839654fd472ca20f592669bd739097831e011b3ad6ca3e3d";
}
- { 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.3.0/linux-i686/is/thunderbird-91.3.0.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "ec91be584ef82def938d295925b1231f7ea50bf9e171d90ce74ae575970c5e5b";
+ sha256 = "5a6be55557ef79101cf61c4fa684a52be1afa1a972a69e02998a35cbfd3212a3";
}
- { 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.3.0/linux-i686/it/thunderbird-91.3.0.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "971d7ff2f20926b9148ac6386f2d5824a1443b3a4618e67cf4c30c14f126d711";
+ sha256 = "565299abc53960d3bb7c2a4abac86c2f5864a089aa4b908aceab20651b6d4c25";
}
- { 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.3.0/linux-i686/ja/thunderbird-91.3.0.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "17526869e3234f885f2078c98a8442b2dd5a019a529d31e0bb6df5b6be24be8b";
+ sha256 = "03244c4102177b81ad105ca31790000314c35813e6fa2efa2020b99b4ac45391";
}
- { 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.3.0/linux-i686/ka/thunderbird-91.3.0.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "945beaab6b2bac56b13f7329b98fe6bf621fa9f3c022b3568dfa43bdce6e422c";
+ sha256 = "2640b2cab838dea0f2252898302fe0008c2b3807da4c8c45224047a7975b9461";
}
- { 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.3.0/linux-i686/kab/thunderbird-91.3.0.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "39b6835112c58cba3b5e4b2f6964dbd9982c8146f0290aed9b13b10ae159bdd5";
+ sha256 = "083cd62d42936adeb069b620b19c7a66f761c40c82b56205626b9e1a6364b64d";
}
- { 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.3.0/linux-i686/kk/thunderbird-91.3.0.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "a5c4fcd5d4e91c52814b2e8c6b0b239e0c430ea6169b351b33beb2b0736fa94b";
+ sha256 = "8a973b47dfbe996d8e7dc894bb0cc0b473743eec0caf05f11646b3552c287516";
}
- { 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.3.0/linux-i686/ko/thunderbird-91.3.0.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "97e5ae5cd2def5410de5b8a3194f77c53fc4ecb17572e9925a4bff56cb2ca73e";
+ sha256 = "6f7a992d226028a6398932c8bcaf9d522ff72cfbb60336875b83e74d22564967";
}
- { 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.3.0/linux-i686/lt/thunderbird-91.3.0.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "2fc8d9d3fe286efa337d98d033b43d9d0b1c7fec15e566ed6ae98272df6adbb3";
+ sha256 = "76cda4386e76388de5d0b660541f1ae5c40ef31609c329226e07573265b34c05";
}
- { 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.3.0/linux-i686/lv/thunderbird-91.3.0.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "3a480801c29e7661b73a01d1d29455bbaa4f228a749da467400ebe0c973c5150";
+ sha256 = "9bc2b1358965e4bdaf875625296d2e40bc6f21709237b38011f82169937cf022";
}
- { 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.3.0/linux-i686/ms/thunderbird-91.3.0.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "143e04a636d4e3df7ebab4a26419f0df6131a911c7b158848a1a0f4a51b8c6f5";
+ sha256 = "5860567197e95c1fbca7585796b34adaf453923be9e726ea33e54e390a7e800f";
}
- { 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.3.0/linux-i686/nb-NO/thunderbird-91.3.0.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "4f3f731b0a9b2dd7496b9cf9e3df7c54924f821b8afd404848b8bee4c37db7c6";
+ sha256 = "5b50ebc02d93303547704312f11e10a5470bcc116da55573f6d256ec90e5d5cc";
}
- { 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.3.0/linux-i686/nl/thunderbird-91.3.0.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "d6b758c9a5aff775088ebfe3c696d6275ecb2b2a4b7129ab3b79b23fe773e49a";
+ sha256 = "99756c19427ab548d6cd64a5805549ed51af95e41eaa97eff821bfea2b3691ee";
}
- { 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.3.0/linux-i686/nn-NO/thunderbird-91.3.0.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "89bdee0a436d53cba1acddc9187b8bf7036d3f8b2d6f8a60a1f7d1e7aae4687a";
+ sha256 = "2888793a3490fbebd2148128662a63a7a482c7d770e8e4c4be3e725af5eb5c1c";
}
- { 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.3.0/linux-i686/pa-IN/thunderbird-91.3.0.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "9def18033f40abd87764ee12a0c9a104df9ffbf5813b398251d86b26676aa57a";
+ sha256 = "a4d6ffa089fc309e208508986f91283a6c839f8cee109e073d3d6a0d25397292";
}
- { 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.3.0/linux-i686/pl/thunderbird-91.3.0.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "e69e2f319a7691af209e517f7624a10e942c052fbff40cbe3e0cf057d5e8ce60";
+ sha256 = "7a9f677c39700e7b1212047327f1b080004c42c3094eb4bf7a487b39a65458df";
}
- { 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.3.0/linux-i686/pt-BR/thunderbird-91.3.0.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "ce0a025976a058e01dcec3c7c22005cc8061dd118cbb5766e34e1fa2e2d24ee6";
+ sha256 = "0967d12e7cd9d2fd4d55dc75bfb02fb07ca61c60d2f0ccb295b8c264cb565957";
}
- { 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.3.0/linux-i686/pt-PT/thunderbird-91.3.0.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "0e46088f48739f26d94f92aeef401f136006f0cfc67b9445573539f08e9175fa";
+ sha256 = "1be6b84a42c215928de2dbb36bd9e0f01303eb1ba4224126c12a98205316746c";
}
- { 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.3.0/linux-i686/rm/thunderbird-91.3.0.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "7efd235fd88601a74d2e6a2d9e481fbb011e4a3695128997754d97917a94669d";
+ sha256 = "54b4f955412f9c53d37188f42be5a7cc8ee1357458171d6134299145acde76d5";
}
- { 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.3.0/linux-i686/ro/thunderbird-91.3.0.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "9ada46d39f4eedb097b177d2c443dccc05af71a12f370b202aa0bf259c0cd7c5";
+ sha256 = "4f31a0eeafbe516c93b00b5ac5e7b06a35db471a19965955b8f25713984b7b9a";
}
- { 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.3.0/linux-i686/ru/thunderbird-91.3.0.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "0e4d029183f9125a4d1efe81cba348155336a37267db346436698430808a3da6";
+ sha256 = "247c78a1dc8d6013744de242efc6ddac6f2f3d10d86e1348769e90124f5eb6df";
}
- { 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.3.0/linux-i686/sk/thunderbird-91.3.0.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "a4712e2e477bb96bcb69eb8ea96200f81b1eb829db3675844380f68b1d264915";
+ sha256 = "73b69b08de497cc2c5e50e7226b7c6de61546b1198a6757b8a63c6399fd2a9e9";
}
- { 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.3.0/linux-i686/sl/thunderbird-91.3.0.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "46f4f3dfe12614ceb8a249a4d38df2b40728082ce0448af03c2949f0d81d1969";
+ sha256 = "3d822e2c79d38e26353cb8810b8468580d2157b62aadcfca1d96874bb7ee0681";
}
- { 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.3.0/linux-i686/sq/thunderbird-91.3.0.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "c5209bea51a081b6707ee79640ab663b3975af8c1bb26df05e480f5ad6dba723";
+ sha256 = "c8e185af246c6059e85554968fa91c1ff0477e824fdf05d1860dc36ff7dd8a47";
}
- { 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.3.0/linux-i686/sr/thunderbird-91.3.0.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "8cb6bb676a7143f10d5c666e41398b4045f32ca13bfd6a322d308f6b05dda441";
+ sha256 = "61da012cc5aa8dab7855deef3f26c20efdbca12c788caede60a4825289850b72";
}
- { 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.3.0/linux-i686/sv-SE/thunderbird-91.3.0.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "33736665f7c38a62ed65340acead5435599dcbb8c7892ce939664662168078cf";
+ sha256 = "064e2ca29bd5c1d63bae872d4419b537d5a75bec75a602847a115da15a0dcfae";
}
- { 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.3.0/linux-i686/th/thunderbird-91.3.0.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "0fd5af0ffc983f58c85756274d9d94f26a44c32aff3852b22ac0554375b8eac3";
+ sha256 = "791adf04802aca3323c4a7659a83ca3affa9b93c1ae9a011447d6ad638f256df";
}
- { 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.3.0/linux-i686/tr/thunderbird-91.3.0.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "6f8318a023062b306a64cc615bbffb96d06b608c625a0134f28d60629f5986c8";
+ sha256 = "494fa955b325df483902df74c99e0a5a24c50670bcac7f62d5da5989b4c3555f";
}
- { 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.3.0/linux-i686/uk/thunderbird-91.3.0.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "fede0c129370c93df5cb9e9f5e9bef69c6ad6bb96db11bdb520c743183ea2b41";
+ sha256 = "aaf7fd5dd2c2ad95cf0ea5333a59e6f953e36ad2b19b0a24cd42075ff6a96e44";
}
- { 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.3.0/linux-i686/uz/thunderbird-91.3.0.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "23db48eaf9101a4a838487ab4f31d7504036b0204a1624e0ac750bba6de24437";
+ sha256 = "5ae7dee3ae3c33a0278c5b10401be741ed91d2cef3d00c9e6686d065830e0f32";
}
- { 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.3.0/linux-i686/vi/thunderbird-91.3.0.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "55ec78e15967365bc41fc2b1469af78cc9300a0365587ec72463e9e97958020b";
+ sha256 = "455183213bfc0936a71c3f8fd35d4b753cfafb5c72df514232df97b2af75f10f";
}
- { 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.3.0/linux-i686/zh-CN/thunderbird-91.3.0.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "008216b04c79fb96686a747f9756caa2cc02aa052e7e682b0ba9bef0138d2ef6";
+ sha256 = "13b600caa35aae9e6d82b7969afeb6951f2d2824a4c5af33eecf7b004e421ebd";
}
- { 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.3.0/linux-i686/zh-TW/thunderbird-91.3.0.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "bb222c6f9c8e5ed7681fa920ff6bb6e9d1262e16efb994dd5976e575e4f54a7c";
+ sha256 = "4f01236b849f03599df14efc1f4cf7519077b72697758f41c69ce84a084ac37e";
}
];
}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch
deleted file mode 100644
index 98b40d83d62b..000000000000
--- a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
---- a/comm/mail/base/jar.mn
-+++ b/comm/mail/base/jar.mn
-@@ -119,9 +119,7 @@
- % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
- % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml
-
--* content/messenger/buildconfig.html (content/buildconfig.html)
- content/messenger/buildconfig.css (content/buildconfig.css)
--% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
- % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
-
- # L10n resources and overrides.
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 1aca35d56b19..4bae5387255d 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,12 +10,12 @@ in
rec {
thunderbird = common rec {
pname = "thunderbird";
- version = "91.1.1";
+ version = "91.3.0";
application = "comm/mail";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
- sha512 = "2da102f9ec42489fc785ccdabcc7fdbc826f2df5e8e76c65866a44a221e762f59647ea265fe4907c18f0d3f1e04199e809235b4587ea17bdc1155e829f57ff2f";
+ sha512 = "938de817ed2cad90f665559da1dfc266f34b6ca2e688ee364112edfdb1167183a8225132ed50b672ceb14402be933be82fd1ef8b46f103cdf1534a403fb472d9";
};
patches = [
];
@@ -34,32 +34,4 @@ rec {
attrPath = "thunderbird-unwrapped";
};
};
-
- thunderbird-78 = common rec {
- pname = "thunderbird";
- version = "78.14.0";
- application = "comm/mail";
- binaryName = pname;
- src = fetchurl {
- url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
- sha512 = "0zan30jvv45pd6i59l2kfyfjwivqk5qq6vyf77xhss2dk8qhk3mfrfxpfbkrab676l14b9hs09nr6ni1h1iwn82zx5k7fx5x8sh5dx6";
- };
- patches = [
- ./no-buildconfig-78.patch
- ];
-
- meta = with lib; {
- description = "A full-featured e-mail client";
- homepage = "https://thunderbird.net/";
- maintainers = with maintainers; [ eelco lovesegfault pierron vcunat ];
- platforms = platforms.unix;
- badPlatforms = platforms.darwin;
- broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
- # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
- license = licenses.mpl20;
- };
- updateScript = callPackage ./update.nix {
- attrPath = "thunderbird-78-unwrapped";
- };
- };
}
diff --git a/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix b/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
new file mode 100644
index 000000000000..4b357324889d
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, copyDesktopItems, makeWrapper,
+electron, libsecret }:
+
+stdenv.mkDerivation rec {
+ pname = "tutanota-desktop";
+ version = "3.89.5";
+
+ src = fetchurl {
+ url = "https://github.com/tutao/tutanota/releases/download/tutanota-release-${version}/${pname}-${version}-unpacked-linux.tar.gz";
+ name = "tutanota-desktop-${version}.tar.gz";
+ sha256 = "sha256-DBqeLoHPr/OwiA3cWO5MYoHSBqrEmP8j8q+rd50hYH8=";
+ };
+
+ nativeBuildInputs = [
+ copyDesktopItems
+ makeWrapper
+ ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ desktopItems = makeDesktopItem {
+ name = pname;
+ exec = "tutanota-desktop";
+ icon = "tutanota-desktop";
+ comment = meta.description;
+ desktopName = "Tutanota Desktop";
+ genericName = "Email Reader";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/opt/tutanota-desktop $out/share/tutanota-desktop
+
+ cp -r ./ $out/opt/tutanota-desktop
+ mv $out/opt/tutanota-desktop/{locales,resources} $out/share/tutanota-desktop
+
+ for icon_size in 64 512; do
+ icon=resources/icons/icon/$icon_size.png
+ path=$out/share/icons/hicolor/$icon_size'x'$icon_size/apps/tutanota-desktop.png
+ install -Dm644 $icon $path
+ done
+
+ makeWrapper ${electron}/bin/electron \
+ $out/bin/tutanota-desktop \
+ --add-flags $out/share/tutanota-desktop/resources/app.asar \
+ --run "mkdir /tmp/tutanota" \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Tutanota official desktop client";
+ homepage = "https://tutanota.com/";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/mhost/default.nix b/pkgs/applications/networking/mhost/default.nix
new file mode 100644
index 000000000000..f6aad5eaa081
--- /dev/null
+++ b/pkgs/applications/networking/mhost/default.nix
@@ -0,0 +1,26 @@
+{ fetchFromGitHub, rustPlatform, lib }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "mhost";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "lukaspustina";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1j0378f8gj8hdcdhpj6lqlnriasmjxzri42wjj9pygzkmpd3ym86";
+ };
+
+ cargoSha256 = "0gqrya0bpdd67k2sxib7f4npnrx84d9r4hjq2sg2xz4j8pmgs018";
+
+ CARGO_CRATE_NAME = "mhost";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A modern take on the classic host DNS lookup utility including an easy to use and very fast Rust lookup library";
+ homepage = "https://github.com/lukaspustina/mhost";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = [ maintainers.mgttlinger ];
+ };
+}
diff --git a/pkgs/applications/networking/mpop/default.nix b/pkgs/applications/networking/mpop/default.nix
index 613226a2dc18..e2bf0b134d54 100644
--- a/pkgs/applications/networking/mpop/default.nix
+++ b/pkgs/applications/networking/mpop/default.nix
@@ -1,26 +1,42 @@
-{ lib, stdenv, fetchurl, pkg-config, gnutls, gsasl, libidn, Security }:
-
-with lib;
+{ lib
+, stdenv
+, fetchurl
+, gnutls
+, gsasl
+, libidn
+, pkg-config
+, Security
+}:
stdenv.mkDerivation rec {
pname = "mpop";
- version = "1.4.13";
+ version = "1.4.16";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "sha256-s0mEZsZbZQrdGm55IJsnuoY3VnOkXJalknvtaFoyfcE=";
+ sha256 = "sha256-hw61cerm0j+5KtDITXnenDjF9iTjYUk31XS/5Jumh/k=";
};
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ gnutls gsasl libidn ]
- ++ optional stdenv.isDarwin Security;
+ nativeBuildInputs = [
+ pkg-config
+ ];
- configureFlags = optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+ buildInputs = [
+ gnutls
+ gsasl
+ libidn
+ ] ++ lib.optional stdenv.isDarwin [
+ Security
+ ];
- meta = {
- description = "POP3 mail retrieval agent";
- homepage = "https://marlam.de/mpop";
- license = licenses.gpl3Plus;
- platforms = platforms.unix;
- };
+ configureFlags = lib.optional stdenv.isDarwin [
+ "--with-macosx-keyring"
+ ];
+
+ meta = with lib;{
+ description = "POP3 mail retrieval agent";
+ homepage = "https://marlam.de/mpop";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ };
}
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index d8f53f4b2566..3bcbdf0cf02b 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec {
pname = "msmtp";
- version = "1.8.15";
+ version = "1.8.19";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "sha256-ImXcY56/Lt8waf/+CjvXZ0n4tY9AAdXN6uGYc5SQmc4=";
+ sha256 = "sha256-NKHhmBF2h02+TuZu4NkQPJCYmqTc3Ehh5N4Fzn5EUms=";
};
patches = [
@@ -26,8 +26,8 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkg-config texinfo ];
- configureFlags =
- [ "--sysconfdir=/etc" ] ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+ configureFlags = [ "--sysconfdir=/etc" "--with-libgsasl" ]
+ ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
postInstall = ''
install -d $out/share/doc/${pname}/scripts
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index 2fa486b83a91..e03d6fa23f5a 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -42,11 +42,11 @@ in
stdenv.mkDerivation rec {
pname = "mullvad-vpn";
- version = "2021.4";
+ version = "2021.5";
src = fetchurl {
url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
- sha256 = "sha256-JnHG4qD6nH2l7RCYHmb7Uszn0mrMsFtMHQ3cKpXcq00=";
+ sha256 = "186va4pllimmcqnlbry5ni8gi8p3mbpgjf7sdspmhy2hlfjvlz47";
};
nativeBuildInputs = [
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
mv usr/bin/* $out/bin
mv opt/Mullvad\ VPN/* $out/share/mullvad
- sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop
+ sed -i 's|"\/opt\/Mullvad.*VPN|env MULLVAD_DISABLE_UPDATE_NOTIFICATION=1 "'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop
ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/
ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
license = licenses.gpl3Only;
platforms = [ "x86_64-linux" ];
- maintainers = with maintainers; [ Br1ght0ne ymarkus ];
+ maintainers = with maintainers; [ Br1ght0ne ymarkus flexagoon ];
};
}
diff --git a/pkgs/applications/networking/nali/default.nix b/pkgs/applications/networking/nali/default.nix
new file mode 100644
index 000000000000..9e0978c80d6e
--- /dev/null
+++ b/pkgs/applications/networking/nali/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "nali";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "zu1k";
+ repo = "nali";
+ rev = "v${version}";
+ sha256 = "sha256-iRLoUBA+Kzv1/LZQ8HCvR79K1riYErxEWhB0OmvFy2g=";
+ };
+
+ vendorSha256 = "sha256-Kb2T+zDUuH+Rx8amYsTIhR5L3DIx5nGcDGqxHOn90NU=";
+ subPackages = [ "." ];
+ runVend = true;
+
+ meta = with lib; {
+ description = "An offline tool for querying IP geographic information and CDN provider";
+ homepage = "https://github.com/zu1k/nali";
+ license = licenses.mit;
+ maintainers = with maintainers; [ diffumist ];
+ };
+}
diff --git a/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch b/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
new file mode 100644
index 000000000000..73325791fc2b
--- /dev/null
+++ b/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
@@ -0,0 +1,26 @@
+From bade623bb98c957d9a274df75b58296beb8ae6a7 Mon Sep 17 00:00:00 2001
+From: Marvin Dostal
+Date: Sun, 17 Oct 2021 21:26:51 +0200
+Subject: [PATCH] When creating the autostart entry, do not use an absolute
+ path
+
+---
+ src/common/utility_unix.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/common/utility_unix.cpp b/src/common/utility_unix.cpp
+index 010408395..16964c64f 100644
+--- a/src/common/utility_unix.cpp
++++ b/src/common/utility_unix.cpp
+@@ -83,7 +83,7 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
+ ts << QLatin1String("[Desktop Entry]") << endl
+ << QLatin1String("Name=") << guiName << endl
+ << QLatin1String("GenericName=") << QLatin1String("File Synchronizer") << endl
+- << QLatin1String("Exec=\"") << executablePath << "\" --background" << endl
++ << QLatin1String("Exec=") << "nextcloud --background" << endl
+ << QLatin1String("Terminal=") << "false" << endl
+ << QLatin1String("Icon=") << APPLICATION_ICON_NAME << endl
+ << QLatin1String("Categories=") << QLatin1String("Network") << endl
+--
+2.31.1
+
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 1781d37e6c9b..b7ff968f79bd 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -21,18 +21,19 @@
mkDerivation rec {
pname = "nextcloud-client";
- version = "3.3.3";
+ version = "3.3.6";
src = fetchFromGitHub {
owner = "nextcloud";
repo = "desktop";
rev = "v${version}";
- sha256 = "sha256-QE6F+L1uy2Tmsf/DI8eUF5Ck+oE8CXDTpZS3xg2tiSs=";
+ sha256 = "sha256-HhFm8rIsDaV4QmvHplbj49gf1vYCZyBl8WH5bvRHT7I=";
};
patches = [
# Explicitly move dbus configuration files to the store path rather than `/etc/dbus-1/services`.
./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
+ ./0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
];
nativeBuildInputs = [
@@ -59,6 +60,8 @@ mkDerivation rec {
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
+ # See also: https://bugreports.qt.io/browse/QTBUG-85967
+ "--set QML_DISABLE_DISK_CACHE 1"
];
cmakeFlags = [
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index 561a1c77b1ca..ae7eb49a1c66 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "nextdns";
- version = "1.37.2";
+ version = "1.37.3";
src = fetchFromGitHub {
owner = "nextdns";
repo = "nextdns";
rev = "v${version}";
- sha256 = "sha256-R0n/wRCaQ8WvQer3bBLUmOdIojtfjXU0bs0pTn7L0lc=";
+ sha256 = "sha256-BCDVn4JaRYIexI7NrRDchUl9u4AEJa+An9ItYYJDs3A=";
};
vendorSha256 = "sha256-YZm+DUrH+1xdJrGjmlajbcsnqVODVbZKivVjmqZ2e48=";
diff --git a/pkgs/applications/networking/onionshare/default.nix b/pkgs/applications/networking/onionshare/default.nix
index f80fb3a73953..5b1a1fad5b1a 100644
--- a/pkgs/applications/networking/onionshare/default.nix
+++ b/pkgs/applications/networking/onionshare/default.nix
@@ -1,52 +1,53 @@
-{
- lib,
- buildPythonApplication,
- substituteAll,
- fetchFromGitHub,
- isPy3k,
- colorama,
- flask,
- flask-httpauth,
- flask-socketio,
- stem,
- psutil,
- pyqt5,
- pycrypto,
- pyside2,
- pytestCheckHook,
- qrcode,
- qt5,
- requests,
- unidecode,
- tor,
- obfs4,
+{ lib
+, stdenv
+, buildPythonApplication
+, substituteAll
+, fetchFromGitHub
+, isPy3k
+, colorama
+, flask
+, flask-httpauth
+, flask-socketio
+, stem
+, psutil
+, pyqt5
+, pycrypto
+, pynacl
+, pyside2
+, pytestCheckHook
+, qrcode
+, qt5
+, requests
+, unidecode
+, tor
+, obfs4
}:
let
- version = "2.3.3";
+ version = "2.4";
src = fetchFromGitHub {
- owner = "micahflee";
+ owner = "onionshare";
repo = "onionshare";
rev = "v${version}";
- sha256 = "sha256-wU2020RNXlwJ2y9uzcLxIX4EECev1Z9YvNyiBalLj/Y=";
+ sha256 = "sha256-Lclm7mIkaAkQpWcNILTRJtLA43dpiyHtWAeHS2r3+ZQ=";
};
meta = with lib; {
description = "Securely and anonymously send and receive files";
longDescription = ''
- OnionShare is an open source tool for securely and anonymously sending
- and receiving files using Tor onion services. It works by starting a web
- server directly on your computer and making it accessible as an
- unguessable Tor web address that others can load in Tor Browser to
- download files from you, or upload files to you. It doesn't require
- setting up a separate server, using a third party file-sharing service,
- or even logging into an account.
+ OnionShare is an open source tool for securely and anonymously sending
+ and receiving files using Tor onion services. It works by starting a web
+ server directly on your computer and making it accessible as an
+ unguessable Tor web address that others can load in Tor Browser to
+ download files from you, or upload files to you. It doesn't require
+ setting up a separate server, using a third party file-sharing service,
+ or even logging into an account.
- Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly
- any other way people typically send files to each other, when you use
- OnionShare you don't give any companies access to the files that you're
- sharing. So long as you share the unguessable web address in a secure way
- (like pasting it in an encrypted messaging app), no one but you and the
- person you're sharing with can access the files.
+ Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly
+ any other way people typically send files to each other, when you use
+ OnionShare you don't give any companies access to the files that you're
+ sharing. So long as you share the unguessable web address in a secure way
+ (like pasting it in an encrypted messaging app), no one but you and the
+ person you're sharing with can access the files.
'';
homepage = "https://onionshare.org/";
@@ -54,8 +55,19 @@ let
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lourkeur ];
};
+ stem' = stem.overridePythonAttrs (_: rec {
+ version = "1.8.1";
-in rec {
+ src = fetchFromGitHub {
+ owner = "onionshare";
+ repo = "stem";
+ rev = version;
+ sha256 = "Dzpvx7CgAr5OtGmfubWAYDLqq5LkGqcwjr3bxpfL/3A=";
+ };
+ });
+
+in
+rec {
onionshare = buildPythonApplication {
pname = "onionshare-cli";
inherit version meta;
@@ -74,9 +86,10 @@ in rec {
flask
flask-httpauth
flask-socketio
- stem
+ stem'
psutil
pycrypto
+ pynacl
requests
unidecode
];
@@ -98,6 +111,12 @@ in rec {
disabledTests = [
"test_firefox_like_behavior"
"test_if_unmodified_since"
+ "test_get_tor_paths_linux" # expects /usr instead of /nix/store
+ ] ++ lib.optionals stdenv.isDarwin [
+ # on darwin (and only on darwin) onionshare attempts to discover
+ # user's *real* homedir via /etc/passwd, making it more painful
+ # to fake
+ "test_receive_mode_webhook"
];
};
diff --git a/pkgs/applications/networking/opsdroid/default.nix b/pkgs/applications/networking/opsdroid/default.nix
index ddf06a784f1f..3560e8066d88 100644
--- a/pkgs/applications/networking/opsdroid/default.nix
+++ b/pkgs/applications/networking/opsdroid/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonPackage rec {
pname = "opsdroid";
- version = "0.23.0";
+ version = "0.24.1";
src = fetchFromGitHub {
owner = "opsdroid";
repo = "opsdroid";
rev = "v${version}";
- sha256 = "1p1x7jbp0jx8anfwvavyn3x8i1vfhmbzyzrm014n26v5y39gabj1";
+ sha256 = "15l2jvcpb9l8sgdd9zsvxqglf1r3vap0pp9cklpfa9jj0aik6nx9";
};
disabled = !python3Packages.isPy3k;
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index 7c9a697243bd..15688d383b38 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
mkDerivation rec {
pname = "owncloud-client";
- version = "2.9.0.5150";
+ version = "2.9.1.5500";
src = fetchurl {
url = "https://download.owncloud.com/desktop/ownCloud/stable/${version}/source/ownCloud-${version}.tar.xz";
- sha256 = "0nf68x840p30yng4fh1nlyiqg40z0rkcv0lskpz8dd4pj1iw5jjs";
+ sha256 = "0h4dclxr6kmhmx318wvxz36lhyqw84q0mg4c6di6p230mp8b1l4v";
};
nativeBuildInputs = [ pkg-config cmake extra-cmake-modules ];
diff --git a/pkgs/applications/networking/p2p/freenet/default.nix b/pkgs/applications/networking/p2p/freenet/default.nix
index cfb228514cb7..ad791f46d739 100644
--- a/pkgs/applications/networking/p2p/freenet/default.nix
+++ b/pkgs/applications/networking/p2p/freenet/default.nix
@@ -15,7 +15,7 @@ let
url = "https://downloads.freenetproject.org/alpha/opennet/seednodes.fref";
sha256 = "08awwr8n80b4cdzzb3y8hf2fzkr1f2ly4nlq779d6pvi5jymqdvv";
};
- version = "build01475";
+ version = "build01480";
freenet-jars = stdenv.mkDerivation {
pname = "freenet-jars";
@@ -25,7 +25,7 @@ let
owner = "freenet";
repo = "fred";
rev = version;
- sha256 = "0k02fna9x219j7dhginbnf27i36bibb0rmm4qdwr5xm28hy1nd08";
+ sha256 = "0wddkfyhsgs7bcq9svicz6l0a35yv82yqzmji3c345hg4hbch3kb";
};
patchPhase = ''
diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 38e1b7cfceb2..f5f5b3bde762 100644
--- a/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -12,13 +12,13 @@ assert trackerSearch -> (python3 != null);
with lib;
mkDerivation rec {
pname = "qbittorrent";
- version = "4.3.8";
+ version = "4.3.9";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
- sha256 = "sha256-on5folzKuRoVlvDOpme+aWxUKUC5PnO+N3L51qwG2gY=";
+ sha256 = "sha256-pFHeozx72qVjA3cmW6GK058IIAOWmyNm1UQVCQ1v5EU=";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index e69155d4c2f4..7a213b880348 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -45,7 +45,7 @@ mkDerivation rec {
meta = with lib; {
description = "Decentralized peer to peer chat application.";
- homepage = "http://retroshare.sourceforge.net/";
+ homepage = "https://retroshare.cc/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ StijnDW ];
diff --git a/pkgs/applications/networking/p2p/rqbit/default.nix b/pkgs/applications/networking/p2p/rqbit/default.nix
new file mode 100644
index 000000000000..0220b12bd4b8
--- /dev/null
+++ b/pkgs/applications/networking/p2p/rqbit/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rqbit";
+ version = "2.1.2";
+
+ src = fetchFromGitHub {
+ owner = "ikatson";
+ repo = "rqbit";
+ rev = "v${version}";
+ sha256 = "0b9wxjwnhhs3vi1x55isdqck67lh1r7nf3dwmhlwcg5887smwp5c";
+ };
+
+ cargoSha256 = "1s278d73mwqpq3n5vmrn5jb6g5dafaaplnhs8346pwcc6y16w3d3";
+
+ nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
+
+ buildInputs = lib.optionals stdenv.isLinux [ openssl ]
+ ++ lib.optionals stdenv.isDarwin [ Security ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A bittorrent client in Rust";
+ homepage = "https://github.com/ikatson/rqbit";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ marsam ];
+ };
+}
diff --git a/pkgs/applications/networking/p2p/stig/default.nix b/pkgs/applications/networking/p2p/stig/default.nix
index 6c09043a65b9..8b1a668090b7 100644
--- a/pkgs/applications/networking/p2p/stig/default.nix
+++ b/pkgs/applications/networking/p2p/stig/default.nix
@@ -7,25 +7,15 @@ python3Packages.buildPythonApplication rec {
pname = "stig";
# This project has a different concept for pre release / alpha,
# Read the project's README for details: https://github.com/rndusr/stig#stig
- version = "0.11.2a0";
+ version = "0.12.2a0";
src = fetchFromGitHub {
owner = "rndusr";
repo = "stig";
rev = "v${version}";
- sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8";
+ sha256 = "0sk4vgj3cn75nyrng2d6q0pj1h968kcmbpr9sv1lj1g8fc7g0n4f";
};
- # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
- # in nixpkgs) is not uploaded to pypi and 1.0.1 has a problematic `setup.py`.
- # As long as we don't have any problems installing it, no special features / specific bugs
- # were fixed in 1.0.3 that aren't available in 1.0.2 are used by stig.
- # See https://github.com/rndusr/stig/issues/120
- postPatch = ''
- substituteInPlace setup.py \
- --replace "urwidtrees>=1.0.3dev0" "urwidtrees"
- '';
-
propagatedBuildInputs = with python3Packages; [
urwid
urwidtrees
@@ -62,7 +52,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "TUI and CLI for the BitTorrent client Transmission";
homepage = "https://github.com/rndusr/stig";
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
maintainers = with maintainers; [ doronbehar ];
};
}
diff --git a/pkgs/applications/networking/p2p/storrent/default.nix b/pkgs/applications/networking/p2p/storrent/default.nix
new file mode 100644
index 000000000000..4c96200cc686
--- /dev/null
+++ b/pkgs/applications/networking/p2p/storrent/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "storrent-unstable";
+ version = "2021-10-10";
+
+ src = fetchFromGitHub {
+ owner = "jech";
+ repo = "storrent";
+ rev = "681733cf74de08bea251ada672ea8c666eb1b679";
+ sha256 = "0grrqgawswb44fahf40060jl691rlyccwlqkljvgy8mzzw1kjzj4";
+ };
+
+ vendorSha256 = "0sz2fz7bqgwd5i7sacyxs7bmb8ly6xrxrakqi9c446vzlkh898hj";
+
+ meta = with lib; {
+ homepage = "https://github.com/jech/storrent";
+ description = "An implementation of the BitTorrent protocol that is optimised for streaming media";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index e5c17581cb52..01e119dafc18 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "tixati";
- version = "2.84";
+ version = "2.85";
src = fetchurl {
url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
- sha256 = "sha256-l3giWCMymUk5z4r4sEBZoeCh3K8jAp8TSf+xvhjeAEU=";
+ sha256 = "sha256-grmJ52x2NcsgXw5BWrEGF9+7TYS/45HgHUXuZB+hVK4=";
};
installPhase = ''
diff --git a/pkgs/applications/networking/p2p/torrential/default.nix b/pkgs/applications/networking/p2p/torrential/default.nix
index 7290ec65ad56..1954ebe543da 100644
--- a/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/pkgs/applications/networking/p2p/torrential/default.nix
@@ -77,5 +77,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl2Plus;
+ mainProgram = "com.github.davidmhewitt.torrential";
};
}
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 6e1367a6b4e5..7f48ad2d3b48 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -97,7 +97,7 @@ in stdenv.mkDerivation {
include
include
include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
- curl libevent openssl pcre zlib
+ curl libevent openssl pcre zlib libnatpmp miniupnpc
] ++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ]
)}"
@@ -106,7 +106,6 @@ in stdenv.mkDerivation {
r @{PROC}/@{pid}/environ,
r @{PROC}/@{pid}/mounts,
rwk /tmp/tr_session_id_*,
- r /run/systemd/resolve/stub-resolv.conf,
r $out/share/transmission/web/**,
@@ -116,6 +115,7 @@ in stdenv.mkDerivation {
'';
passthru.tests = {
+ apparmor = nixosTests.transmission; # starts the service with apparmor enabled
smoke-test = nixosTests.bittorrent;
};
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index b2eb18bd7b1a..50a26ef50f6a 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -26,13 +26,13 @@
let
pname = "pcloud";
- version = "1.9.5";
- code = "XZy4VwXZjkvoMGM3x6kCTkIGLFYVKjqKbefX";
+ version = "1.9.7";
+ code = "XZ0FAtXZNxFJbda6KhLejU9tKAg4N0TEqx3V";
# Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
src = fetchzip {
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip";
- hash = "sha256-GuO4wsSRT6WMlqYs2X+5oA7CykHb/NmhZ7UGA1FA6y4=";
+ hash = "sha256-6eMRFuZOLcoZd2hGw7QV+kAmzE5lK8uK6ZpGs4n7/zw=";
};
appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/ping/default.nix b/pkgs/applications/networking/ping/default.nix
index 82194e38eae7..8b8748d70ff3 100644
--- a/pkgs/applications/networking/ping/default.nix
+++ b/pkgs/applications/networking/ping/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3;
+ mainProgram = "com.github.jeremyvaartjes.ping";
};
}
diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix
index 84e52128b667..5a0d3e4870a3 100644
--- a/pkgs/applications/networking/pjsip/default.nix
+++ b/pkgs/applications/networking/pjsip/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "pjsip";
- version = "2.10";
+ version = "2.11.1";
src = fetchFromGitHub {
owner = pname;
repo = "pjproject";
rev = version;
- sha256 = "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0";
+ sha256 = "sha256-mqtlxQDIFee93wpdn8oNWmMPDyjYTCmVqF6IJvJbRBM=";
};
patches = [
@@ -21,9 +21,6 @@ stdenv.mkDerivation rec {
preConfigure = ''
export LD=$CC
- '' # Fixed on master, remove with 2.11
- + lib.optionalString stdenv.isDarwin ''
- NIX_CFLAGS_COMPILE+=" -framework Security"
'';
postInstall = ''
diff --git a/pkgs/applications/networking/pjsip/fix-aarch64.patch b/pkgs/applications/networking/pjsip/fix-aarch64.patch
index f4aabf7a9bb4..1680bde707ca 100644
--- a/pkgs/applications/networking/pjsip/fix-aarch64.patch
+++ b/pkgs/applications/networking/pjsip/fix-aarch64.patch
@@ -1,9 +1,9 @@
--- a/aconfigure
+++ b/aconfigure
-@@ -8945,6 +8945,10 @@
- ac_webrtc_instset=neon
- ac_webrtc_cflags="-DWEBRTC_ARCH_ARMV7 -mfloat-abi=hard -mfpu=neon"
- ;;
+@@ -9174,6 +9174,10 @@
+ ac_webrtc_instset=neon
+ ac_webrtc_cflags="-DWEBRTC_ARCH_ARM64"
+ ;;
+ arm64*|aarch64*)
+ ac_webrtc_instset=neon
+ ac_webrtc_cflags="-DWEBRTC_ARCH_ARM64"
diff --git a/pkgs/applications/networking/protonvpn-cli/default.nix b/pkgs/applications/networking/protonvpn-cli/default.nix
index a13f84096863..e46909d2a7c3 100644
--- a/pkgs/applications/networking/protonvpn-cli/default.nix
+++ b/pkgs/applications/networking/protonvpn-cli/default.nix
@@ -30,7 +30,8 @@ python3Packages.buildPythonApplication rec {
description = "Linux command-line client for ProtonVPN";
homepage = "https://github.com/protonvpn/linux-cli";
maintainers = with maintainers; [ jtcoolen jefflabonte shamilton ];
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
platforms = platforms.linux;
+ mainProgram = "protonvpn";
};
}
diff --git a/pkgs/applications/networking/protonvpn-gui/default.nix b/pkgs/applications/networking/protonvpn-gui/default.nix
index 8029264fdaa7..1bbf3d6554fc 100644
--- a/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -1,89 +1,54 @@
-{ lib, fetchFromGitHub, makeDesktopItem, makeWrapper, imagemagick
-, python3Packages, wrapGAppsHook, protonvpn-cli, gtk3, pango
-, gobject-introspection, libnotify, libappindicator-gtk3
-, procps, openvpn }:
+{ lib, fetchFromGitHub, gobject-introspection, imagemagick,
+wrapGAppsHook, python3Packages, gtk3, networkmanager, webkitgtk }:
-let
- extraPath = lib.makeBinPath [ procps openvpn ];
-
-in python3Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "protonvpn-linux-gui";
- version = "2.1.1";
+ version = "1.4.1";
src = fetchFromGitHub {
- owner = "protonvpn";
- repo = "linux-gui";
- rev = "v${version}";
- sha256 = "avo5/2eq53HSHCnnjtxrsmpURtHvxmLZn2BxActImGY=";
+ owner = "ProtonVPN";
+ repo = "linux-app";
+ rev = version;
+ sha256 = "sha256-08gXEKm8udgNltRdqvAMFL0pDCWZu/kfl1xGQtZPBCc=";
};
- desktopItem = makeDesktopItem {
- name = "ProtonVPN";
- desktopName = "ProtonVPN GUI";
- type = "Application";
- exec = "protonvpn-gui";
- icon = "protonvpn";
- categories = "Network;";
- terminal = "false";
- };
+ strictDeps = false;
- trayDesktopItem = makeDesktopItem {
- name = "ProtonVPN Tray";
- desktopName = "ProtonVPN Tray";
- type = "Application";
- exec = "protonvpn-tray";
- icon = "protonvpn";
- categories = "Network;";
- terminal = "false";
- };
+ nativeBuildInputs = [
+ gobject-introspection imagemagick wrapGAppsHook
+ ];
- nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ];
+ propagatedBuildInputs = with python3Packages; [
+ protonvpn-nm-lib
+ psutil
+ ];
- propagatedBuildInputs = (with python3Packages; [
- pygobject3
- pycairo
- requests
- configparser
- ]) ++ [
- protonvpn-cli
- gtk3
- gobject-introspection
- libnotify
- libappindicator-gtk3
- ];
+ buildInputs = [
+ gtk3 networkmanager webkitgtk
+ ];
- prePatch = ''
- # if pkexec is used, we want to have more time to enter password
- substituteInPlace linux_gui/services/login_service.py --replace 'timeout=8' 'timeout=30'
- '';
-
- postInstall = ''
- # wrap binaries with extra required path
- wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath}
- wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath}
-
- # install desktop files
- mkdir -p $out/share/applications
- cp "$desktopItem/share/applications/ProtonVPN.desktop" $out/share/applications/protonvpn-gui.desktop
- cp "$trayDesktopItem/share/applications/ProtonVPN Tray.desktop" $out/share/applications/protonvpn-tray.desktop
-
- # create icons
+ postFixup = ''
+ # Setting icons
for size in 16 32 48 64 72 96 128 192 512 1024; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
- convert -resize "$size"x"$size" \
- linux_gui/resources/img/logo/protonvpn_logo.png \
- $out/share/icons/hicolor/"$size"x"$size"/apps/protonvpn.png
+ convert -resize $size'x'$size \
+ protonvpn_gui/assets/icons/protonvpn-logo.png \
+ $out/share/icons/hicolor/$size'x'$size/apps/protonvpn.png
done
+
+ install -Dm644 protonvpn.desktop -t $out/share/applications/
+ substituteInPlace $out/share/applications/protonvpn.desktop \
+ --replace 'protonvpn-logo' protonvpn
'';
- # no tests
+ # Project has a dummy test
doCheck = false;
meta = with lib; {
description = "Linux GUI for ProtonVPN, written in Python";
- homepage = "https://github.com/ProtonVPN/linux-gui";
- maintainers = with maintainers; [ offline ];
- license = licenses.gpl3;
+ homepage = "https://github.com/ProtonVPN/linux-app";
+ maintainers = with maintainers; [ offline wolfangaukang ];
+ license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/networking/remote/aws-workspaces/default.nix b/pkgs/applications/networking/remote/aws-workspaces/default.nix
index 9efaa18e31f9..48b44656ff0a 100644
--- a/pkgs/applications/networking/remote/aws-workspaces/default.nix
+++ b/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -5,15 +5,15 @@
stdenv.mkDerivation rec {
pname = "aws-workspaces";
- version = "3.1.8.1198";
+ version = "4.0.1.1302";
src = fetchurl {
# ref https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/Packages
urls = [
"https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
- "https://web.archive.org/web/20210626165043/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
+ "https://web.archive.org/web/20210921220718/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
];
- sha256 = "e784bc4401c2ffaf19f3cc42cb6c6f229c73adba36df49093a1d8cd30c86aaf0";
+ sha256 = "208e67a544be5be7ff25218d68b4eb2ea9e65abfed444c99a0f7a6738d69ab9a";
};
nativeBuildInputs = [
@@ -45,14 +45,21 @@ stdenv.mkDerivation rec {
${dpkg}/bin/dpkg -x $src $out
'';
- installPhase = ''
- mkdir -p $out/bin
- mv $out/opt/workspacesclient/* $out/bin
+ preFixup = ''
+ patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so $out/lib/libcoreclrtraceptprovider.so
+ '';
- wrapProgram $out/bin/workspacesclient \
+ installPhase = ''
+ mkdir -p $out/bin $out/lib
+ mv $out/opt/workspacesclient/* $out/lib
+ rm -rf $out/opt
+
+ wrapProgram $out/lib/workspacesclient \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
--set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
--set GIO_EXTRA_MODULES "${glib-networking.out}/lib/gio/modules"
+
+ mv $out/lib/workspacesclient $out/bin
'';
meta = with lib; {
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 8159ae251672..2f9c5f76c5e8 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -3,7 +3,7 @@
, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
, gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
-, libpulseaudio, pcsclite
+, libpulseaudio, pcsclite, glib-networking
, homepage, version, prefix, hash
@@ -102,6 +102,7 @@ stdenv.mkDerivation rec {
runtimeDependencies = [
glib
+ glib-networking
pcsclite
xorg.libX11
diff --git a/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 3fadac3f2912..7311acf82783 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -21,7 +21,7 @@ let
x86hash = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
x64suffix = "21";
x86suffix = "21";
- homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html";
};
"20.06.0" = {
@@ -32,7 +32,7 @@ let
x86hash = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
x64suffix = "15";
x86suffix = "15";
- homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2006.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2006.html";
};
"20.09.0" = {
@@ -43,7 +43,7 @@ let
x86hash = "1b4gdmnnpa61ydiv2fnmap8cnfhskrq6swcs6i1nqrp5zvvkqrv4";
x64suffix = "15";
x86suffix = "15";
- homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2009.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2009.html";
};
"20.10.0" = {
@@ -54,7 +54,7 @@ let
x86hash = "04cr2da25v8x098ccyjwa47d4krk3jpldqkyf4kk2j3hwzbqh9yx";
x64suffix = "6";
x86suffix = "6";
- homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2010.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2010.html";
};
"20.12.0" = {
@@ -65,7 +65,7 @@ let
x86hash = "0f982d5y9k4hscqfmqpfs277cqw1pvp191ybvg5p8rxk12fh67vf";
x64suffix = "12";
x86suffix = "12";
- homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2012.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2012.html";
};
"21.01.0" = {
@@ -76,7 +76,7 @@ let
x86hash = "1mmx5r3wi9i6bwh4kdlpw446m8kijkaar8shi0q1n21fv0ygg3r5";
x64suffix = "14";
x86suffix = "14";
- homepage = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2101.html";
};
"21.03.0" = {
@@ -87,7 +87,7 @@ let
x86hash = "11nn9734a515dm1q880z9wmhvx8ikyh3riayyn42z22q4kd852n3";
x64suffix = "38";
x86suffix = "38";
- homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2103.html";
};
"21.06.0" = {
@@ -98,6 +98,28 @@ let
x86hash = "c2d9652ad9488a9ff171e62df8455ebe6890bcfade1cc289893ee35322d9d812";
x64suffix = "28";
x86suffix = "28";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2106.html";
+ };
+
+ "21.08.0" = {
+ major = "21";
+ minor = "8";
+ patch = "0";
+ x64hash = "69ddae29cc8b4b68341c3d9503a54ee70ab58a5795fd83e79573f013eda5518c";
+ x86hash = "b6d1bde5a8533f22374e1f5bbb3f5949e5b89773d0703e021fbe784b455aad3f";
+ x64suffix = "40";
+ x86suffix = "40";
+ homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2108.html";
+ };
+
+ "21.09.0" = {
+ major = "21";
+ minor = "9";
+ patch = "0";
+ x64hash = "d58d5cbbcb5ace95b75b1400061d475b8e72dbdf5f03abacea6d39686991f848";
+ x86hash = "c646c52889e88aa0bb051070076763d5407f21fb6ad6dfcb0fe635ac01180c51";
+ x64suffix = "25";
+ x86suffix = "25";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
};
};
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 0f76bced878a..9f8a6dfc5761 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -18,13 +18,13 @@ let
in stdenv.mkDerivation rec {
pname = "freerdp";
- version = "2.4.0";
+ version = "2.4.1";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
rev = version;
- sha256 = "sha256-o+9twuyH9keWJriCSNkR63+xZuuOmPjoWg+Jp616CsQ=";
+ sha256 = "sha256-0wwIuE6Gv8khhLAbWSHOBfHGrTUjR4f/C5bzYJpvWIQ=";
};
postPatch = ''
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 1b564e8daf4b..158f2aa327e0 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -1,16 +1,16 @@
{ mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg-utils, dbus
-, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc
-, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes
+, qtbase, qtwebkit, qtwebengine, qtx11extras, qtquickcontrols, getconf, glibc
+, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes, coreutils
, wrapQtAppsHook
}:
mkDerivation rec {
pname = "teamviewer";
- version = "15.15.5";
+ version = "15.22.3";
src = fetchurl {
url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
- sha256 = "sha256-H/CSc2RcjI+Fm8awYcXm3ioAJpbSNEMwGVrTozMux3A=";
+ sha256 = "15fvzhdq7mnx2l2w4byvij8ww16qwdlkbadal60rm66yzv79mv9w";
};
unpackPhase = ''
@@ -19,7 +19,7 @@ mkDerivation rec {
'';
nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ];
- buildInputs = [ dbus qtbase qtwebkit qtx11extras libX11 ];
+ buildInputs = [ dbus getconf qtbase qtwebkit qtwebengine qtx11extras libX11 ];
propagatedBuildInputs = [ qtquickcontrols ];
installPhase = ''
@@ -28,6 +28,7 @@ mkDerivation rec {
rm -R \
$out/share/teamviewer/logfiles \
$out/share/teamviewer/config \
+ $out/share/teamviewer/tv_bin/RTlib \
$out/share/teamviewer/tv_bin/xdg-utils \
$out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh}
@@ -38,6 +39,27 @@ mkDerivation rec {
ln -s /var/log/teamviewer $out/share/teamviewer/logfiles
ln -s ${xdg-utils}/bin $out/share/teamviewer/tv_bin/xdg-utils
+ declare in_script_dir="./opt/teamviewer/tv_bin/script"
+
+ install -d "$out/share/dbus-1/services"
+ install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.service" "$out/share/dbus-1/services"
+ substituteInPlace "$out/share/dbus-1/services/com.teamviewer.TeamViewer.service" \
+ --replace '/opt/teamviewer/tv_bin/TeamViewer' \
+ "$out/share/teamviewer/tv_bin/TeamViewer"
+ install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.Desktop.service" "$out/share/dbus-1/services"
+ substituteInPlace "$out/share/dbus-1/services/com.teamviewer.TeamViewer.Desktop.service" \
+ --replace '/opt/teamviewer/tv_bin/TeamViewer_Desktop' \
+ "$out/share/teamviewer/tv_bin/TeamViewer_Desktop"
+
+ install -d "$out/share/dbus-1/system.d"
+ install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.Daemon.conf" "$out/share/dbus-1/system.d"
+
+ install -d "$out/share/polkit-1/actions"
+ install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.policy" "$out/share/polkit-1/actions"
+ substituteInPlace "$out/share/polkit-1/actions/com.teamviewer.TeamViewer.policy" \
+ --replace '/opt/teamviewer/tv_bin/script/execscript' \
+ "$out/share/teamviewer/tv_bin/script/execscript"
+
for i in 16 20 24 32 48 256; do
size=$i"x"$i
@@ -51,17 +73,23 @@ mkDerivation rec {
--replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2'
substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \
--replace '/var/run/' '/run/'
+ '';
- wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
- wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
- wrapProgram $out/share/teamviewer/tv_bin/TeamViewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
- wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libXrandr libX11 libXext libXdamage libXtst libSM libXfixes ]}"
+ makeWrapperArgs = [
+ "--prefix PATH : ${lib.makeBinPath [ getconf coreutils ]}"
+ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libXrandr libX11 libXext libXdamage libXtst libSM libXfixes dbus ]}"
+ ];
- wrapQtApp $out/share/teamviewer/tv_bin/script/teamviewer
- wrapQtApp $out/bin/teamviewer
+ postFixup = ''
+ wrapProgram $out/share/teamviewer/tv_bin/teamviewerd ''${makeWrapperArgs[@]}
+ # tv_bin/script/teamviewer runs tvw_main which runs tv_bin/TeamViewer
+ wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
+ wrapProgram $out/share/teamviewer/tv_bin/teamviewer-config ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
+ wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
'';
dontStrip = true;
+ dontWrapQtApps = true;
preferLocalBuild = true;
meta = with lib; {
@@ -69,6 +97,6 @@ mkDerivation rec {
license = licenses.unfree;
description = "Desktop sharing application, providing remote support and online meetings";
platforms = [ "x86_64-linux" ];
- maintainers = with maintainers; [ jagajaga dasuxullebt ];
+ maintainers = with maintainers; [ jagajaga dasuxullebt jraygauthier ];
};
}
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index 7c6e46c13792..033386afd1ff 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -39,7 +39,7 @@
, zlib
}:
let
- version = "2103";
+ version = "2106.1";
sysArch =
if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@@ -50,8 +50,8 @@ let
name = "vmwareHorizonClientFiles";
inherit version;
src = fetchurl {
- url = "https://download3.vmware.com/software/view/viewclients/CART22FQ1/VMware-Horizon-Client-Linux-2103-8.2.0-17742757.tar.gz";
- sha256 = "62f95bb802b058a98f5ee6c2296b89bd7e15884a24dc8a8ba7ce89de7e0798e4";
+ url = "https://download3.vmware.com/software/view/viewclients/CART22FQ2/VMware-Horizon-Client-Linux-2106.1-8.3.1-18435609.tar.gz";
+ sha256 = "b42ddb9d7e9c8d0f8b86b69344fcfca45251c5a5f1e06a18a3334d5a04e18c39";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
index 126cb17a7c28..eec3d1de79e0 100755
--- a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
@@ -2,13 +2,13 @@
#!nix-shell -p curl -p jq -p common-updater-scripts -i bash
set -e
-entryPointURL='https://my.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY'
+entryPointURL='https://customerconnect.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY'
function getTarballMetaUrl {
curl "$entryPointURL" | jq -r '
.dlgEditionsLists | .[] | select(.name | contains("Client for Linux")) |
.dlgList | .[] | select(.name | contains("tarball version")) |
- @uri "https://my.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)"
+ @uri "https://customerconnect.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)"
'
}
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index 7be719c18037..eb1ec40cc15a 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -5,14 +5,14 @@
stdenv.mkDerivation rec {
pname = "waypipe-unstable";
- version = "0.8.0";
+ version = "0.8.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mstoeckl";
repo = "waypipe";
rev = "v${version}";
- sha256 = "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz";
+ sha256 = "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1";
};
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 446da4cdea32..b0975c56b059 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -4,13 +4,13 @@
mkDerivation rec {
pname = "seafile-client";
- version = "8.0.3";
+ version = "8.0.4";
src = fetchFromGitHub {
owner = "haiwen";
repo = "seafile-client";
rev = "v${version}";
- sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
+ sha256 = "sha256-HIgIcw4Y/NXidCBwRMrdKojlqO8CJO+6N7s7PdBx4YQ=";
};
nativeBuildInputs = [ pkg-config cmake ];
@@ -29,6 +29,6 @@ mkDerivation rec {
description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage";
license = licenses.asl20;
platforms = platforms.linux;
- maintainers = with maintainers; [ eduardosm ];
+ maintainers = with maintainers; [ schmittlauch ];
};
}
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 40cf26962a17..ed8a86bc9d3f 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "seaweedfs";
- version = "2.63";
+ version = "2.71";
src = fetchFromGitHub {
owner = "chrislusf";
repo = "seaweedfs";
rev = version;
- sha256 = "sha256-sC7BUbI4BcNp7XqNtgxHuzvksyVFP+gXHxldQPy/7UU=";
+ sha256 = "sha256-d4Vl+HixZy7fJ8YU1fy3b2B+F/76mm0NQmFC/PDl4SY=";
};
- vendorSha256 = "sha256-PEMc2NUiGKaolVGwviNRvtpVyhypWsJlNWZ0ysjy+YE=";
+ vendorSha256 = "sha256-oxrOjiRxgcJ5yzQYQvLXFPHlOHMB88FThw4OCVxFOwQ=";
subPackages = [ "weed" ];
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 4e57bfe4b17e..7c9eda762603 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
-, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib
+, gnutls, libgcrypt, libgpg-error, geoip, openssl, lua5, python3, libcap, glib
, libssh, nghttp2, zlib, cmake, makeWrapper
, withQt ? true, qt5 ? null
, ApplicationServices, SystemConfiguration, gmp
@@ -10,7 +10,7 @@ assert withQt -> qt5 != null;
with lib;
let
- version = "3.4.8";
+ version = "3.4.9";
variant = if withQt then "qt" else "cli";
in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
- sha256 = "09fpvfj4m7glisj6p4zb8wylkrjkqqw69xnwnz4ah410zs6zm9sq";
+ sha256 = "084nv4fbgpxsf6b6cfi6cinn8l3wsbn0g8lsd7p2aifjkf15wln6";
};
cmakeFlags = [
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
buildInputs = [
gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
- libgpgerror gnutls geoip c-ares python3 glib zlib
+ libgpg-error gnutls geoip c-ares python3 glib zlib
] ++ optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
++ optionals stdenv.isLinux [ libcap libnl ]
++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
@@ -66,8 +66,6 @@ in stdenv.mkDerivation {
install_name_tool -change "$dylib" "$out/lib/$dylib" "$f"
done
done
-
- wrapQtApp $out/Applications/Wireshark.app/Contents/MacOS/Wireshark
'' else optionalString withQt ''
install -Dm644 -t $out/share/applications ../wireshark.desktop
diff --git a/pkgs/applications/networking/soju/default.nix b/pkgs/applications/networking/soju/default.nix
index 5940b7cb19b4..f52ee1a8bb07 100644
--- a/pkgs/applications/networking/soju/default.nix
+++ b/pkgs/applications/networking/soju/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "soju";
- version = "0.1.2";
+ version = "0.2.2";
src = fetchFromSourcehut {
owner = "~emersion";
repo = "soju";
rev = "v${version}";
- sha256 = "sha256-dauhGfwSjjRt1vl2+OPhtcme/QaRNTs43heQVnI7oRU=";
+ sha256 = "sha256-ssq4fED7YIJkSHhxybBIqOr5qVEHGordBxuJOmilSOY=";
};
- vendorSha256 = "sha256-0JLbqqybLZ/cYyHAyNR4liAVJI2oIsHELJLWlQy0qjE=";
+ vendorSha256 = "sha256-60b0jhyXQg9RG0mkvUOmJOEGv96FZq/Iwv1S9c6C35c=";
subPackages = [
"cmd/soju"
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 6e19fb60f8e5..f9fbb071b06a 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "rclone";
- version = "1.56.0";
+ version = "1.57.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "03fqwsbpwb8vmgxg6knkp8f4xlvgg88n2c7inwjg8x91c7c77i0b";
+ sha256 = "0pwbprbkx5y0c93b61k8znan4aimk7dkssapjhkhzw4c38xd4lza";
};
- vendorSha256 = "1gryisn63f6ss889s162ncvlsaznwgvgxdwk2pn5c5zw8dkmjdmi";
+ vendorSha256 = "0353pff07lwpa1jmi095kb2izcw09z73x6nninnnpyqppwzas6ha";
subPackages = [ "." ];
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 88304e56a40a..dc3e8b25e70a 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -63,6 +63,6 @@ stdenv.mkDerivation rec {
meta = base.meta // {
description = "A fast incremental file transfer utility";
- maintainers = with lib.maintainers; [ peti ehmry kampfschlaefer ];
+ maintainers = with lib.maintainers; [ ehmry kampfschlaefer ];
};
}
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index b106deb074e3..429042f3ee4b 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -7,7 +7,6 @@
, makeWrapper
, ncurses
, gnugrep
-, fetchpatch
, copyDesktopItems
, makeDesktopItem
, enableX11 ? true
@@ -15,29 +14,19 @@
stdenv.mkDerivation rec {
pname = "unison";
- version = "2.51.3";
+ version = "2.51.4";
src = fetchFromGitHub {
owner = "bcpierce00";
repo = "unison";
rev = "v${version}";
- sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y=";
+ sha256 = "sha256-jcfq4X+r98bQqbQ3gRqJyryLdt1Y/2CLawqqIiUaQOo=";
};
nativeBuildInputs = [ makeWrapper ]
++ lib.optional enableX11 copyDesktopItems;
buildInputs = [ ocamlPackages.ocaml ncurses ];
- patches = [
- # Patch to fix build with ocaml 4.12. Remove in 2.51.4
- # https://github.com/bcpierce00/unison/pull/481
- (fetchpatch {
- name = "fix-compile-with-ocaml-4.12.patch";
- url = "https://github.com/bcpierce00/unison/commit/14b885316e0a4b41cb80fe3daef7950f88be5c8f.patch?full_index=1";
- sha256 = "0j1rma1cwdsfql19zvzhfj2ys5c4lbhjcp6jrnck04xnckxxiy3d";
- })
- ];
-
preBuild = lib.optionalString enableX11 ''
sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
'' + ''
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 4b1150159a4e..261a99698726 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -4,16 +4,16 @@ let
common = { stname, target, postInstall ? "" }:
buildGoModule rec {
pname = stname;
- version = "1.18.2";
+ version = "1.18.3";
src = fetchFromGitHub {
owner = "syncthing";
repo = "syncthing";
rev = "v${version}";
- sha256 = "1r5vd501p3ydi6rr2k4cqdl3pixdr79lfwpnc90xmd1i6mlyxrma";
+ sha256 = "sha256-wc4+j2kTSwZsxIdJHmznkNIq436p0yNrskchuEJtL5E=";
};
- vendorSha256 = "1v8hdr2na7bndx6q1kk0dkg1v9149gbhxcva1wq075xjl0kw21ip";
+ vendorSha256 = "sha256-klbAVOHLefxG33zpEYFlPezrKrXfuWOaE+UnIsu462M=";
doCheck = false;
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
index 3abc0458a00e..cd0b47a3957a 100644
--- a/pkgs/applications/networking/testssl/default.nix
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -3,18 +3,18 @@
stdenv.mkDerivation rec {
pname = "testssl.sh";
- version = "3.0.5";
+ version = "3.0.6";
src = fetchFromGitHub {
owner = "drwetter";
repo = pname;
- rev = version;
- sha256 = "sha256-p2jPpPHtOOmv0CCsXOECgMT9sqa4ZykcJwuGOSkYLaY=";
+ rev = "v${version}";
+ sha256 = "016qpsb4dv9qb3ab3hmvk4vzf4ipr3xgmzv2cx46pxxsj0gnigd8";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
- coreutils # for pwd and printf
+ coreutils # for printf
dnsutils # for dig
nettools # for hostname
openssl # for openssl
@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace testssl.sh \
- --replace /bin/pwd pwd \
--replace TESTSSL_INSTALL_DIR:-\"\" TESTSSL_INSTALL_DIR:-\"$out\" \
--replace PROG_NAME=\"\$\(basename\ \"\$0\"\)\" PROG_NAME=\"testssl.sh\"
'';
diff --git a/pkgs/applications/networking/tmpmail/default.nix b/pkgs/applications/networking/tmpmail/default.nix
index 433c6cf6fc24..70e144cb05ca 100644
--- a/pkgs/applications/networking/tmpmail/default.nix
+++ b/pkgs/applications/networking/tmpmail/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "tmpmail";
- version = "unstable-2021-02-10";
+ version = "1.1.4";
src = fetchFromGitHub {
owner = "sdushantha";
repo = "tmpmail";
- rev = "150b32083d36006cf7f496e112715ae12ee87727";
- sha256 = "sha256-yQ9/UUxBTEXK5z3f+tvVRUzIGrAnrqurQ0x56Ad7RKE=";
+ rev = "v${version}";
+ sha256 = "sha256-Rcu1qNmUZhMRvPiaWrDlzLtGksv09XBiF2GJUxXKs1Y=";
};
dontConfigure = true;
diff --git a/pkgs/applications/networking/trebleshot/default.nix b/pkgs/applications/networking/trebleshot/default.nix
deleted file mode 100644
index 82f91ddef8b4..000000000000
--- a/pkgs/applications/networking/trebleshot/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ mkDerivation, lib, fetchFromGitHub
-, cmake, qtbase, kdnssd
-}:
-
-mkDerivation rec {
- pname = "trebleshot";
- version = "0.1.0-alpha2-15-ga7ac23c";
- # name="${pname}-${version}";
-
- src = fetchFromGitHub {
- owner = "genonbeta";
- repo = "TrebleShot-Desktop";
- rev = version;
- sha256 = "1k8wagw6arsi1lqkhn1nl6j11mb122vi1qs0q2np6nznwfy7pn1k";
- };
-
- nativeBuildInputs = [ cmake ];
-
- buildInputs = [ qtbase kdnssd ];
-
- meta = with lib; {
- description = "Android file transferring tool for desktop";
- homepage = "https://github.com/genonbeta/TrebleShot-Desktop";
- license = licenses.gpl2;
-
- platforms = platforms.linux;
- maintainers = with maintainers; [ woffs ];
- };
-}
diff --git a/pkgs/applications/networking/weather/meteo/default.nix b/pkgs/applications/networking/weather/meteo/default.nix
index a5edbac135f9..8acd862053ad 100644
--- a/pkgs/applications/networking/weather/meteo/default.nix
+++ b/pkgs/applications/networking/weather/meteo/default.nix
@@ -1,16 +1,32 @@
-{ lib, stdenv, fetchFromGitLab, vala, python3, pkg-config, meson, ninja, gtk3
-, json-glib, libsoup, webkitgtk, geocode-glib, nix-update-script
-, libappindicator, desktop-file-utils, appstream, wrapGAppsHook }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, nix-update-script
+, appstream
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, python3
+, vala
+, wrapGAppsHook
+, glib
+, gtk3
+, json-glib
+, libappindicator
+, libsoup
+, webkitgtk
+}:
stdenv.mkDerivation rec {
pname = "meteo";
- version = "0.9.8";
+ version = "0.9.9.1";
src = fetchFromGitLab {
owner = "bitseater";
repo = pname;
rev = version;
- sha256 = "1ll5fja0dqxcr6hrh2dk4hgw9gf8ms9bcp1ifznd21byxzyhdlr0";
+ sha256 = "sha256-kkUVTxh5svk61oDp/dpe3ILGyexYe3UaS+LgWsy+Z9s=";
};
nativeBuildInputs = [
@@ -25,7 +41,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- geocode-glib
+ glib
gtk3
json-glib
libappindicator
@@ -44,12 +60,12 @@ stdenv.mkDerivation rec {
};
};
-
meta = with lib; {
description = "Know the forecast of the next hours & days";
homepage = "https://gitlab.com/bitseater/meteo";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ ];
+ maintainers = with maintainers; [ bobby285271 ];
platforms = platforms.linux;
+ mainProgram = "com.gitlab.bitseater.meteo";
};
}
diff --git a/pkgs/applications/networking/zerobin/default.nix b/pkgs/applications/networking/zerobin/default.nix
index 16a52d670450..56d5274751fc 100644
--- a/pkgs/applications/networking/zerobin/default.nix
+++ b/pkgs/applications/networking/zerobin/default.nix
@@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
# relax version constraints of some dependencies
substituteInPlace setup.cfg \
--replace "clize==4.1.1" "clize" \
- --replace "bleach==3.1.5" "bleach>=3.1.5,<4" \
+ --replace "bleach==3.1.5" "bleach>=3.1.5,<5" \
--replace "bottle==0.12.18" "bottle>=0.12.18,<1" \
--replace "Paste==3.4.3" "Paste>=3.4.3,<4"
'';
diff --git a/pkgs/applications/networking/znc/modules.nix b/pkgs/applications/networking/znc/modules.nix
index 562372b1bb70..ddd94bff522a 100644
--- a/pkgs/applications/networking/znc/modules.nix
+++ b/pkgs/applications/networking/znc/modules.nix
@@ -1,25 +1,29 @@
{ lib, stdenv, fetchFromGitHub, znc }:
let
- zncDerivation = a@{
- pname, src, module_name,
- buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp",
- installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so", ...
- } : stdenv.mkDerivation (a // {
- inherit buildPhase;
- inherit installPhase;
+ zncDerivation =
+ a@{ pname
+ , src
+ , module_name
+ , buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp"
+ , installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so"
+ , ...
+ }: stdenv.mkDerivation (a // {
+ inherit buildPhase;
+ inherit installPhase;
- buildInputs = znc.buildInputs;
+ buildInputs = znc.buildInputs;
- meta = a.meta // { platforms = lib.platforms.unix; };
- passthru.module_name = module_name;
- });
+ meta = a.meta // { platforms = lib.platforms.unix; };
+ passthru.module_name = module_name;
+ });
-in {
+in
+{
backlog = zncDerivation rec {
pname = "znc-backlog";
- version = "git-2017-06-13";
+ version = "unstable-2017-06-13";
module_name = "backlog";
src = fetchFromGitHub {
@@ -39,7 +43,7 @@ in {
clientbuffer = zncDerivation rec {
pname = "znc-clientbuffer";
- version = "git-2020-04-24";
+ version = "unstable-2020-04-24";
module_name = "clientbuffer";
src = fetchFromGitHub {
@@ -59,7 +63,7 @@ in {
clientaway = zncDerivation rec {
pname = "znc-clientaway";
- version = "git-2017-04-28";
+ version = "unstable-2017-04-28";
module_name = "clientaway";
src = fetchFromGitHub {
@@ -79,7 +83,7 @@ in {
fish = zncDerivation rec {
pname = "znc-fish";
- version = "git-2017-06-26";
+ version = "unstable-2017-06-26";
module_name = "fish";
src = fetchFromGitHub {
@@ -99,7 +103,7 @@ in {
ignore = zncDerivation rec {
pname = "znc-ignore";
- version = "git-2017-04-28";
+ version = "unstable-2017-04-28";
module_name = "ignore";
src = fetchFromGitHub {
@@ -139,7 +143,7 @@ in {
playback = zncDerivation rec {
pname = "znc-playback";
- version = "git-2015-08-04";
+ version = "unstable-2015-08-04";
module_name = "playback";
src = fetchFromGitHub {
@@ -159,7 +163,7 @@ in {
privmsg = zncDerivation rec {
pname = "znc-privmsg";
- version = "git-2015-02-22";
+ version = "unstable-2015-02-22";
module_name = "privmsg";
src = fetchFromGitHub {
@@ -177,7 +181,7 @@ in {
push = zncDerivation rec {
pname = "znc-push";
- version = "git-2016-10-12";
+ version = "unstable-2016-10-12";
module_name = "push";
src = fetchFromGitHub {
diff --git a/pkgs/applications/office/agenda/default.nix b/pkgs/applications/office/agenda/default.nix
index c42052e5f7d4..25f394e33f32 100644
--- a/pkgs/applications/office/agenda/default.nix
+++ b/pkgs/applications/office/agenda/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3;
+ mainProgram = "com.github.dahenson.agenda";
};
}
diff --git a/pkgs/applications/office/antiword/default.nix b/pkgs/applications/office/antiword/default.nix
index 67a37b2d5113..5da7d84905bb 100644
--- a/pkgs/applications/office/antiword/default.nix
+++ b/pkgs/applications/office/antiword/default.nix
@@ -1,13 +1,11 @@
{ lib, fetchurl, stdenv }:
-let
- name = "antiword-0.37";
-in
-stdenv.mkDerivation {
- inherit name;
+stdenv.mkDerivation rec{
+ pname = "antiword";
+ version = "0.37";
src = fetchurl {
- url = "http://www.winfield.demon.nl/linux/${name}.tar.gz";
+ url = "http://www.winfield.demon.nl/linux/antiword-${version}.tar.gz";
sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
};
@@ -25,7 +23,6 @@ stdenv.mkDerivation {
description = "Convert MS Word documents to plain text or PostScript";
license = lib.licenses.gpl2;
- maintainers = [ lib.maintainers.peti ];
platforms = with lib.platforms; linux ++ darwin;
};
}
diff --git a/pkgs/applications/office/beamerpresenter/default.nix b/pkgs/applications/office/beamerpresenter/default.nix
index 351609d8c058..e898a43ad97c 100644
--- a/pkgs/applications/office/beamerpresenter/default.nix
+++ b/pkgs/applications/office/beamerpresenter/default.nix
@@ -37,10 +37,6 @@ stdenv.mkDerivation rec {
done
'';
- postInstall = lib.optionalString stdenv.isDarwin ''
- wrapQtApp "$out"/bin/beamerpresenter.app/Contents/MacOS/beamerpresenter
- '';
-
meta = with lib; {
description = "Modular multi screen pdf presentation software respecting your window manager";
homepage = "https://github.com/stiglers-eponym/BeamerPresenter";
diff --git a/pkgs/applications/office/beancount/bean-add.nix b/pkgs/applications/office/beancount/bean-add.nix
index ba3afbff9467..1d5bafbdb406 100644
--- a/pkgs/applications/office/beancount/bean-add.nix
+++ b/pkgs/applications/office/beancount/bean-add.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, python3Packages }:
stdenv.mkDerivation {
- name = "bean-add-2018-01-08";
+ pname = "bean-add";
+ version = "unstable-2018-01-08";
src = fetchFromGitHub {
owner = "simon-v";
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 2ecc334c3d20..03437742612f 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools
+{ mkDerivation, lib, fetchpatch, fetchurl, extra-cmake-modules, kdoctools
, boost, qtwebkit, qtx11extras, shared-mime-info
, breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets
, kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n
@@ -21,6 +21,17 @@ mkDerivation rec {
sha256 = "0iqi6z6gkck2afgy200dacgcspq7i7887alcj0pklm08hbmsdy5i";
};
+ patches = [
+ # Fix fontconfig underlinking: https://github.com/NixOS/nixpkgs/issues/137794
+ # Can be dropped on next release.
+ (fetchpatch {
+ name = "fix-fontconfig-linking.patch";
+ url = "https://github.com/KDE/calligra/commit/62f510702ef9c34ac50f8d8601a4290ab558464c.patch";
+ sha256 = "11dzrp9q05dmvnwp4vk4ihcibqcf4xyr0ijscpi716cyy730flma";
+ excludes = [ "CMakeLists.txt" ];
+ })
+ ];
+
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
diff --git a/pkgs/applications/office/elementary-planner/default.nix b/pkgs/applications/office/elementary-planner/default.nix
index 550316b82c55..c0cdfd75d9be 100644
--- a/pkgs/applications/office/elementary-planner/default.nix
+++ b/pkgs/applications/office/elementary-planner/default.nix
@@ -85,6 +85,8 @@ stdenv.mkDerivation rec {
homepage = "https://planner-todo.web.app";
license = licenses.gpl3;
maintainers = with maintainers; [ dtzWill ] ++ teams.pantheon.members;
+ platforms = platforms.linux;
+ mainProgram = "com.github.alainm23.planner";
};
}
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index d4dad44d7da8..5bd8450a0b99 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
homepage = "http://www.gnucash.org/";
- maintainers = [ lib.maintainers.peti lib.maintainers.domenkozar ];
+ maintainers = [ lib.maintainers.domenkozar ];
platforms = lib.platforms.gnu ++ lib.platforms.linux;
};
}
diff --git a/pkgs/applications/office/hledger-check-fancyassertions/default.nix b/pkgs/applications/office/hledger-check-fancyassertions/default.nix
new file mode 100644
index 000000000000..ed38bc29fa18
--- /dev/null
+++ b/pkgs/applications/office/hledger-check-fancyassertions/default.nix
@@ -0,0 +1,41 @@
+{lib, stdenvNoCC, haskellPackages, fetchurl, writers}:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "hledger-check-fancyassertions";
+ version = "1.23";
+
+ src = fetchurl {
+ url = "https://raw.githubusercontent.com/simonmichael/hledger/hledger-lib-${version}/bin/hledger-check-fancyassertions.hs";
+ sha256 = "08p2din1j7l4c29ipn68k8vvs3ys004iy8a3zf318lzby4h04h0n";
+ };
+
+ dontUnpack = true;
+ dontBuild = true;
+
+ executable = writers.writeHaskell
+ "hledger-check-fancyassertions"
+ {
+ libraries = with haskellPackages; [
+ base base-compat base-compat-batteries filepath hledger-lib_1_23
+ megaparsec microlens optparse-applicative string-qq text time
+ transformers
+ ];
+ inherit (haskellPackages) ghc;
+ }
+ src;
+
+ installPhase = ''
+ runHook preInstall
+ install -D $executable $out/bin/${pname}
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Complex account balance assertions for hledger journals";
+ homepage = "https://hledger.org/";
+ changelog = "https://github.com/simonmichael/hledger/blob/master/CHANGES.md";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.DamienCassou ];
+ platforms = lib.platforms.all; # GHC can cross-compile
+ };
+}
diff --git a/pkgs/applications/office/ib/controller/default.nix b/pkgs/applications/office/ib/controller/default.nix
index 0815dfc8982f..8d241ea8303f 100644
--- a/pkgs/applications/office/ib/controller/default.nix
+++ b/pkgs/applications/office/ib/controller/default.nix
@@ -9,8 +9,6 @@ stdenv.mkDerivation rec {
sha256 = "17a8bcgg9z3b4y38k035hm2lgvhmf8srlz59c7n2q3fdw2i95i68";
};
- phases = [ "unpackPhase" "installPhase" ];
-
nativeBuildInputs = [ unzip ];
buildInputs = [ jdk ib-tws ];
diff --git a/pkgs/applications/office/jabref/default.nix b/pkgs/applications/office/jabref/default.nix
index b87e74c256f6..0b4ce74cdfa7 100644
--- a/pkgs/applications/office/jabref/default.nix
+++ b/pkgs/applications/office/jabref/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
makeWrapper $out/lib/runtime/bin/java $out/bin/jabref \
--add-flags '-Djava.library.path=${systemLibPaths}' --add-flags "-p $out/lib/app -m org.jabref/org.jabref.JabRefLauncher" \
- --run 'export LD_LIBRARY_PATH=${systemLibPaths}:$LD_LIBRARY_PATH'
+ --prefix LD_LIBRARY_PATH : '${systemLibPaths}'
cp -r ${desktopItem}/share/applications $out/share/
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index 2f34d8b8c18b..c983787d23e5 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -1,8 +1,8 @@
{ lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
let
- _version = "2.8.6";
- _build = "455";
+ _version = "2.10.0";
+ _build = "480";
version = "${_version}-${_build}";
name = "jameica-${version}";
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
owner = "willuhn";
repo = "jameica";
rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
- sha256 = "1pndklxsvixy6zyblqr62ki3pqaq8lfrzgasrvhclqxxh76gjlss";
+ sha256 = "0rzhbskzzvr9aan6fwxd2kmzg79ranx7aym5yn1i37z3ra67d1nz";
};
# there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
diff --git a/pkgs/applications/office/keepnote/default.nix b/pkgs/applications/office/keepnote/default.nix
index 14f48da22309..1ff88d49d2b7 100644
--- a/pkgs/applications/office/keepnote/default.nix
+++ b/pkgs/applications/office/keepnote/default.nix
@@ -1,11 +1,12 @@
{ lib, fetchurl, python2Packages }:
-python2Packages.buildPythonApplication {
- name = "keepnote-0.7.8";
+python2Packages.buildPythonApplication rec {
+ pname = "keepnote";
+ version = "0.7.8";
namePrefix = "";
src = fetchurl {
- url = "http://keepnote.org/download/keepnote-0.7.8.tar.gz";
+ url = "http://keepnote.org/download/keepnote-${version}.tar.gz";
sha256 = "0nhkkv1n0lqf3zn17pxg5cgryv1wwlj4hfmhixwd76rcy8gs45dh";
};
diff --git a/pkgs/applications/office/khronos/default.nix b/pkgs/applications/office/khronos/default.nix
index b3a38905531e..7e36529e5ff4 100644
--- a/pkgs/applications/office/khronos/default.nix
+++ b/pkgs/applications/office/khronos/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, meson
@@ -6,25 +7,24 @@
, vala
, pkg-config
, desktop-file-utils
-, pantheon
, python3
, glib
, gtk4
, json-glib
, libadwaita
, libgee
-, wrapGAppsHook
+, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "khronos";
- version = "3.5.9";
+ version = "3.6.1";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
- sha256 = "sha256-3FatmyANB/tNYSN2hu5IVkyCy0YrC3uA2d/3+5u48w8=";
+ sha256 = "sha256-+gZy8cdekM26J1ujqFmfBXTctXc9E//EY42ZoLq9rBs=";
};
nativeBuildInputs = [
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
vala
pkg-config
python3
- wrapGAppsHook
+ wrapGAppsHook4
];
buildInputs = [
@@ -43,7 +43,6 @@ stdenv.mkDerivation rec {
json-glib
libadwaita
libgee
- pantheon.granite
];
postPatch = ''
@@ -63,5 +62,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3Plus;
+ mainProgram = "io.github.lainsce.Khronos";
};
}
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index abfd223fd001..f94beabd1f90 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -2,7 +2,7 @@
, IOCompress, zlib, libjpeg, expat, freetype, libwpd
, libxml2, db, curl, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
-, icu, boost, jdk, ant, cups, xorg, libcmis, fontforge
+, icu, boost, jdk, ant, cups, xorg, fontforge
, openssl, gperf, cppunit, poppler, util-linux
, librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
@@ -310,7 +310,6 @@ in (mkDrv rec {
"--with-boost-libdir=${boost.out}/lib"
"--with-beanshell-jar=${bsh}"
"--with-vendor=NixOS"
- "--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
"--disable-report-builder"
"--disable-online-update"
"--enable-python=system"
@@ -324,7 +323,7 @@ in (mkDrv rec {
"--with-system-headers"
"--with-system-openssl"
"--with-system-libabw"
- "--with-system-libcmis"
+ "--without-system-libcmis"
"--with-system-libwps"
"--with-system-openldap"
"--with-system-coinmp"
@@ -365,7 +364,6 @@ in (mkDrv rec {
"--without-system-mdds" # we have mdds but our version is too new
# https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
"--without-system-orcus"
- "--without-system-qrcodegen"
"--without-system-xmlsec"
] ++ lib.optionals kdeIntegration [
"--enable-kf5"
@@ -394,7 +392,7 @@ in (mkDrv rec {
glib libmysqlclient
neon nspr nss openldap openssl pam perl pkg-config poppler
python3 sane-backends unzip which zip zlib
- mdds bluez5 libcmis libwps libabw libzmf
+ mdds bluez5 libwps libabw libzmf
libxshmfence libatomic_ops graphite2 harfbuzz gpgme util-linux
librevenge libe-book libmwaw glm ncurses epoxy
libodfgen CoinMP librdf_rasqal gnome.adwaita-icon-theme gettext
diff --git a/pkgs/applications/office/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix
index bbabd4e70be5..e99ac0f66d6f 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -6,13 +6,6 @@
md5 = "";
md5name = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed-libabw-0.1.3.tar.xz";
}
- {
- name = "commons-logging-1.2-src.tar.gz";
- url = "https://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz";
- sha256 = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81";
- md5 = "";
- md5name = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81-commons-logging-1.2-src.tar.gz";
- }
{
name = "apr-1.5.2.tar.gz";
url = "https://dev-www.libreoffice.org/src/apr-1.5.2.tar.gz";
@@ -28,11 +21,11 @@
md5name = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19-apr-util-1.5.4.tar.gz";
}
{
- name = "boost_1_71_0.tar.xz";
- url = "https://dev-www.libreoffice.org/src/boost_1_71_0.tar.xz";
- sha256 = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543";
+ name = "boost_1_75_0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/boost_1_75_0.tar.xz";
+ sha256 = "cc378a036a1cfd3af289f3da24deeb8dba7a729f61ab104c7b018a622e22d21b";
md5 = "";
- md5name = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543-boost_1_71_0.tar.xz";
+ md5name = "cc378a036a1cfd3af289f3da24deeb8dba7a729f61ab104c7b018a622e22d21b-boost_1_75_0.tar.xz";
}
{
name = "box2d-2.3.1.tar.gz";
@@ -42,11 +35,11 @@
md5name = "58ffc8475a8650aadc351345aef696937747b40501ab78d72c197c5ff5b3035c-box2d-2.3.1.tar.gz";
}
{
- name = "breakpad.zip";
- url = "https://dev-www.libreoffice.org/src/breakpad.zip";
- sha256 = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9";
+ name = "breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
+ sha256 = "c44a2e898895cfc13b42d2371ba4b88b0777d7782214d6cdc91c33720f3b0d91";
md5 = "";
- md5name = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9-breakpad.zip";
+ md5name = "c44a2e898895cfc13b42d2371ba4b88b0777d7782214d6cdc91c33720f3b0d91-breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
}
{
name = "bsh-2.0b6-src.zip";
@@ -70,11 +63,11 @@
md5name = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331-cairo-1.16.0.tar.xz";
}
{
- name = "libcdr-0.1.6.tar.xz";
- url = "https://dev-www.libreoffice.org/src/libcdr-0.1.6.tar.xz";
- sha256 = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861";
+ name = "libcdr-0.1.7.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libcdr-0.1.7.tar.xz";
+ sha256 = "5666249d613466b9aa1e987ea4109c04365866e9277d80f6cd9663e86b8ecdd4";
md5 = "";
- md5name = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861-libcdr-0.1.6.tar.xz";
+ md5name = "5666249d613466b9aa1e987ea4109c04365866e9277d80f6cd9663e86b8ecdd4-libcdr-0.1.7.tar.xz";
}
{
name = "clucene-core-2.3.3.4.tar.gz";
@@ -119,11 +112,11 @@
md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
}
{
- name = "curl-7.71.0.tar.xz";
- url = "https://dev-www.libreoffice.org/src/curl-7.71.0.tar.xz";
- sha256 = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772";
+ name = "curl-7.78.0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/curl-7.78.0.tar.xz";
+ sha256 = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5";
md5 = "";
- md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
+ md5name = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5-curl-7.78.0.tar.xz";
}
{
name = "libe-book-0.1.3.tar.xz";
@@ -154,11 +147,11 @@
md5name = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad-libepubgen-0.1.1.tar.xz";
}
{
- name = "libetonyek-0.1.9.tar.xz";
- url = "https://dev-www.libreoffice.org/src/libetonyek-0.1.9.tar.xz";
- sha256 = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a";
+ name = "libetonyek-0.1.10.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libetonyek-0.1.10.tar.xz";
+ sha256 = "b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a";
md5 = "";
- md5name = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a-libetonyek-0.1.9.tar.xz";
+ md5name = "b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a-libetonyek-0.1.10.tar.xz";
}
{
name = "expat-2.4.1.tar.bz2";
@@ -168,11 +161,11 @@
md5name = "2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40-expat-2.4.1.tar.bz2";
}
{
- name = "Firebird-3.0.0.32483-0.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/Firebird-3.0.0.32483-0.tar.bz2";
- sha256 = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860";
+ name = "Firebird-3.0.7.33374-0.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/Firebird-3.0.7.33374-0.tar.bz2";
+ sha256 = "acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76";
md5 = "";
- md5name = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860-Firebird-3.0.0.32483-0.tar.bz2";
+ md5name = "acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76-Firebird-3.0.7.33374-0.tar.bz2";
}
{
name = "fontconfig-2.13.91.tar.gz";
@@ -217,11 +210,11 @@
md5name = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3-liberation-narrow-fonts-ttf-1.07.6.tar.gz";
}
{
- name = "liberation-fonts-ttf-2.00.4.tar.gz";
- url = "https://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.00.4.tar.gz";
- sha256 = "c40e95fc5e0ecb73d4be565ae2afc1114e2bc7dc5253e00ee92d8fd6cc4adf45";
+ name = "liberation-fonts-ttf-2.1.4.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.1.4.tar.gz";
+ sha256 = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef";
md5 = "";
- md5name = "c40e95fc5e0ecb73d4be565ae2afc1114e2bc7dc5253e00ee92d8fd6cc4adf45-liberation-fonts-ttf-2.00.4.tar.gz";
+ md5name = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef-liberation-fonts-ttf-2.1.4.tar.gz";
}
{
name = "LinLibertineG-20120116.zip";
@@ -266,11 +259,11 @@
md5name = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994-noto-fonts-20171024.tar.gz";
}
{
- name = "culmus-0.131.tar.gz";
- url = "https://dev-www.libreoffice.org/src/culmus-0.131.tar.gz";
- sha256 = "dcf112cfcccb76328dcfc095f4d7c7f4d2f7e48d0eed5e78b100d1d77ce2ed1b";
+ name = "culmus-0.133.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/culmus-0.133.tar.gz";
+ sha256 = "c0c6873742d07544f6bacf2ad52eb9cb392974d56427938dc1dfbc8399c64d05";
md5 = "";
- md5name = "dcf112cfcccb76328dcfc095f4d7c7f4d2f7e48d0eed5e78b100d1d77ce2ed1b-culmus-0.131.tar.gz";
+ md5name = "c0c6873742d07544f6bacf2ad52eb9cb392974d56427938dc1dfbc8399c64d05-culmus-0.133.tar.gz";
}
{
name = "libre-hebrew-1.0.tar.gz";
@@ -378,18 +371,18 @@
md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
}
{
- name = "icu4c-68_1-src.tgz";
- url = "https://dev-www.libreoffice.org/src/icu4c-68_1-src.tgz";
- sha256 = "a9f2e3d8b4434b8e53878b4308bd1e6ee51c9c7042e2b1a376abefb6fbb29f2d";
+ name = "icu4c-69_1-src.tgz";
+ url = "https://dev-www.libreoffice.org/src/icu4c-69_1-src.tgz";
+ sha256 = "4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745";
md5 = "";
- md5name = "a9f2e3d8b4434b8e53878b4308bd1e6ee51c9c7042e2b1a376abefb6fbb29f2d-icu4c-68_1-src.tgz";
+ md5name = "4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745-icu4c-69_1-src.tgz";
}
{
- name = "icu4c-68_1-data.zip";
- url = "https://dev-www.libreoffice.org/src/icu4c-68_1-data.zip";
- sha256 = "03ea8b4694155620548c8c0ba20444f1e7db246cc79e3b9c4fc7a960b160d510";
+ name = "icu4c-69_1-data.zip";
+ url = "https://dev-www.libreoffice.org/src/icu4c-69_1-data.zip";
+ sha256 = "4fc2d8cfc3343673123586fca3967404abd4e346fba5515829204533b3bae4bf";
md5 = "";
- md5name = "03ea8b4694155620548c8c0ba20444f1e7db246cc79e3b9c4fc7a960b160d510-icu4c-68_1-data.zip";
+ md5name = "4fc2d8cfc3343673123586fca3967404abd4e346fba5515829204533b3bae4bf-icu4c-69_1-data.zip";
}
{
name = "flow-engine-0.9.4.zip";
@@ -476,11 +469,11 @@
md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
}
{
- name = "language-subtag-registry-2021-03-05.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2021-03-05.tar.bz2";
- sha256 = "ce80e8face06bf2ada363e0c159e3f990c4116fdae9232ca43e6369aa82bf16a";
+ name = "language-subtag-registry-2021-08-06.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2021-08-06.tar.bz2";
+ sha256 = "08452d3997c78e21f2d81e31409dc46557707be6dc1df3129674019659e5ff9b";
md5 = "";
- md5name = "ce80e8face06bf2ada363e0c159e3f990c4116fdae9232ca43e6369aa82bf16a-language-subtag-registry-2021-03-05.tar.bz2";
+ md5name = "08452d3997c78e21f2d81e31409dc46557707be6dc1df3129674019659e5ff9b-language-subtag-registry-2021-08-06.tar.bz2";
}
{
name = "JLanguageTool-1.7.0.tar.bz2";
@@ -560,11 +553,11 @@
md5name = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483-ltm-1.0.zip";
}
{
- name = "xmlsec1-1.2.30.tar.gz";
- url = "https://dev-www.libreoffice.org/src/xmlsec1-1.2.30.tar.gz";
- sha256 = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8";
+ name = "xmlsec1-1.2.32.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/xmlsec1-1.2.32.tar.gz";
+ sha256 = "e383702853236004e5b08e424b8afe9b53fe9f31aaa7a5382f39d9533eb7c043";
md5 = "";
- md5name = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8-xmlsec1-1.2.30.tar.gz";
+ md5name = "e383702853236004e5b08e424b8afe9b53fe9f31aaa7a5382f39d9533eb7c043-xmlsec1-1.2.32.tar.gz";
}
{
name = "libxml2-2.9.12.tar.gz";
@@ -623,11 +616,11 @@
md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
}
{
- name = "libmwaw-0.3.17.tar.xz";
- url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.17.tar.xz";
- sha256 = "8e1537eb1de1b4714f4bf0a20478f342c5d71a65bf99307a694b1e9e30bb911c";
+ name = "libmwaw-0.3.19.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.19.tar.xz";
+ sha256 = "b272e234eefc828c4bb8344af0f047a62e070f530e9e2fba11b04c8db8eda5af";
md5 = "";
- md5name = "8e1537eb1de1b4714f4bf0a20478f342c5d71a65bf99307a694b1e9e30bb911c-libmwaw-0.3.17.tar.xz";
+ md5name = "b272e234eefc828c4bb8344af0f047a62e070f530e9e2fba11b04c8db8eda5af-libmwaw-0.3.19.tar.xz";
}
{
name = "mythes-1.2.4.tar.gz";
@@ -651,11 +644,11 @@
md5name = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45-nss-3.55-with-nspr-4.27.tar.gz";
}
{
- name = "libodfgen-0.1.6.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2";
- sha256 = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2";
+ name = "libodfgen-0.1.8.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libodfgen-0.1.8.tar.xz";
+ sha256 = "55200027fd46623b9bdddd38d275e7452d1b0ff8aeddcad6f9ae6dc25f610625";
md5 = "";
- md5name = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2-libodfgen-0.1.6.tar.bz2";
+ md5name = "55200027fd46623b9bdddd38d275e7452d1b0ff8aeddcad6f9ae6dc25f610625-libodfgen-0.1.8.tar.xz";
}
{
name = "odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
@@ -679,11 +672,11 @@
md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
}
{
- name = "openssl-1.1.1i.tar.gz";
- url = "https://dev-www.libreoffice.org/src/openssl-1.1.1i.tar.gz";
- sha256 = "e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242";
+ name = "openssl-1.1.1l.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/openssl-1.1.1l.tar.gz";
+ sha256 = "0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1";
md5 = "";
- md5name = "e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242-openssl-1.1.1i.tar.gz";
+ md5name = "0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1-openssl-1.1.1l.tar.gz";
}
{
name = "liborcus-0.16.1.tar.bz2";
@@ -692,13 +685,6 @@
md5 = "";
md5name = "c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4-liborcus-0.16.1.tar.bz2";
}
- {
- name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
- url = "https://dev-www.libreoffice.org/src/owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
- sha256 = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb";
- md5 = "";
- md5name = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb-owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
- }
{
name = "libpagemaker-0.0.4.tar.xz";
url = "https://dev-www.libreoffice.org/src/libpagemaker-0.0.4.tar.xz";
@@ -707,11 +693,11 @@
md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
}
{
- name = "pdfium-4306.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/pdfium-4306.tar.bz2";
- sha256 = "eca406d47ac7e2a84dcc86f93c08f96e591d409589e881477fa75e488e4851d8";
+ name = "pdfium-4500.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/pdfium-4500.tar.bz2";
+ sha256 = "26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304";
md5 = "";
- md5name = "eca406d47ac7e2a84dcc86f93c08f96e591d409589e881477fa75e488e4851d8-pdfium-4306.tar.bz2";
+ md5name = "26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304-pdfium-4500.tar.bz2";
}
{
name = "pixman-0.34.0.tar.gz";
@@ -734,6 +720,13 @@
md5 = "";
md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz";
}
+ {
+ name = "poppler-data-0.4.10.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/poppler-data-0.4.10.tar.gz";
+ sha256 = "6e2fcef66ec8c44625f94292ccf8af9f1d918b410d5aa69c274ce67387967b30";
+ md5 = "";
+ md5name = "6e2fcef66ec8c44625f94292ccf8af9f1d918b410d5aa69c274ce67387967b30-poppler-data-0.4.10.tar.gz";
+ }
{
name = "postgresql-13.1.tar.bz2";
url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
@@ -742,18 +735,11 @@
md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
}
{
- name = "Python-3.8.8rc1.tar.xz";
- url = "https://dev-www.libreoffice.org/src/Python-3.8.8rc1.tar.xz";
- sha256 = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6";
+ name = "Python-3.8.10.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/Python-3.8.10.tar.xz";
+ sha256 = "6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9";
md5 = "";
- md5name = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6-Python-3.8.8rc1.tar.xz";
- }
- {
- name = "QR-Code-generator-1.4.0.tar.gz";
- url = "https://dev-www.libreoffice.org/src/QR-Code-generator-1.4.0.tar.gz";
- sha256 = "fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a";
- md5 = "";
- md5name = "fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a-QR-Code-generator-1.4.0.tar.gz";
+ md5name = "6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9-Python-3.8.10.tar.xz";
}
{
name = "libqxp-0.0.2.tar.xz";
@@ -798,18 +784,18 @@
md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
}
{
- name = "serf-1.2.1.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/serf-1.2.1.tar.bz2";
- sha256 = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700";
+ name = "serf-1.3.9.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/serf-1.3.9.tar.bz2";
+ sha256 = "549c2d21c577a8a9c0450facb5cca809f26591f048e466552240947bdf7a87cc";
md5 = "";
- md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
+ md5name = "549c2d21c577a8a9c0450facb5cca809f26591f048e466552240947bdf7a87cc-serf-1.3.9.tar.bz2";
}
{
- name = "skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz";
- url = "https://dev-www.libreoffice.org/src/skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz";
- sha256 = "f293656a15342a53bb407b932fc907c6894178a162f09728bd383e24d84b1301";
+ name = "skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz";
+ sha256 = "abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d";
md5 = "";
- md5name = "f293656a15342a53bb407b932fc907c6894178a162f09728bd383e24d84b1301-skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz";
+ md5name = "abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d-skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz";
}
{
name = "libstaroffice-0.0.7.tar.xz";
@@ -888,4 +874,11 @@
md5 = "";
md5name = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22-libzmf-0.0.2.tar.xz";
}
+ {
+ name = "zxing-cpp-1.1.1.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/zxing-cpp-1.1.1.tar.gz";
+ sha256 = "e595b3fa2ec320beb0b28f6af56b1141853257c2611686685639cebb3b248c86";
+ md5 = "";
+ md5name = "e595b3fa2ec320beb0b28f6af56b1141853257c2611686685639cebb3b248c86-zxing-cpp-1.1.1.tar.gz";
+ }
]
diff --git a/pkgs/applications/office/libreoffice/src-fresh/override.nix b/pkgs/applications/office/libreoffice/src-fresh/override.nix
index 193b2cd76398..1e0ee64bd1f8 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/override.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/override.nix
@@ -6,6 +6,6 @@ attrs:
'';
configureFlags = attrs.configureFlags ++ [
(lib.enableFeature kdeIntegration "kf5")
+ "--without-system-zxing"
];
- patches = [ ../xdg-open-brief.patch ]; # drop this when switching fresh to 7.2.0
}
diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index dfc680e3439b..d34cfd082d08 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -7,8 +7,8 @@ rec {
};
major = "7";
- minor = "1";
- patch = "5";
+ minor = "2";
+ patch = "2";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
@@ -17,13 +17,13 @@ rec {
src = fetchurl {
url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
- sha256 = "1kl54ddpvmrcs4r1vd4dfzg5a8im0kijhaqdg37zvgb5fqv31bxf";
+ sha256 = "0w9bn3jhrhaj80qbbs8wp3q5yc0rrpwvqj3abgrllg4clk5c6fw1";
};
# FIXME rename
translations = fetchSrc {
name = "translations";
- sha256 = "0nf5s012l7mkpd1srvijl9q6x8f7svm6i84bj75dwyvipkg40rxq";
+ sha256 = "1rhwrax5fxgdvizv74npysam5i67669myysldiplqiah5np672lq";
};
# the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
help = fetchSrc {
name = "help";
- sha256 = "1m1hxbhrkaynpcps77rym1d0kwl380jv1p7b6ibfl4by0ii2j16a";
+ sha256 = "1hn56irlkk2ng7wzhiv8alpjcnf7xf95n3syzlbnmcj177kpg883";
};
}
diff --git a/pkgs/applications/office/libreoffice/src-still/download.nix b/pkgs/applications/office/libreoffice/src-still/download.nix
index 19dee4e1f136..990eeb329a3c 100644
--- a/pkgs/applications/office/libreoffice/src-still/download.nix
+++ b/pkgs/applications/office/libreoffice/src-still/download.nix
@@ -34,6 +34,13 @@
md5 = "";
md5name = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543-boost_1_71_0.tar.xz";
}
+ {
+ name = "box2d-2.3.1.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/box2d-2.3.1.tar.gz";
+ sha256 = "58ffc8475a8650aadc351345aef696937747b40501ab78d72c197c5ff5b3035c";
+ md5 = "";
+ md5name = "58ffc8475a8650aadc351345aef696937747b40501ab78d72c197c5ff5b3035c-box2d-2.3.1.tar.gz";
+ }
{
name = "breakpad.zip";
url = "https://dev-www.libreoffice.org/src/breakpad.zip";
@@ -112,11 +119,11 @@
md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
}
{
- name = "curl-7.71.0.tar.xz";
- url = "https://dev-www.libreoffice.org/src/curl-7.71.0.tar.xz";
- sha256 = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772";
+ name = "curl-7.78.0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/curl-7.78.0.tar.xz";
+ sha256 = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5";
md5 = "";
- md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
+ md5name = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5-curl-7.78.0.tar.xz";
}
{
name = "libe-book-0.1.3.tar.xz";
@@ -154,11 +161,11 @@
md5name = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a-libetonyek-0.1.9.tar.xz";
}
{
- name = "expat-2.2.8.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/expat-2.2.8.tar.bz2";
- sha256 = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102";
+ name = "expat-2.4.1.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/expat-2.4.1.tar.bz2";
+ sha256 = "2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40";
md5 = "";
- md5name = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102-expat-2.2.8.tar.bz2";
+ md5name = "2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40-expat-2.4.1.tar.bz2";
}
{
name = "Firebird-3.0.0.32483-0.tar.bz2";
@@ -329,11 +336,11 @@
md5name = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95-glm-0.9.9.7.zip";
}
{
- name = "gpgme-1.9.0.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/gpgme-1.9.0.tar.bz2";
- sha256 = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb";
+ name = "gpgme-1.13.1.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/gpgme-1.13.1.tar.bz2";
+ sha256 = "c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46";
md5 = "";
- md5name = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb-gpgme-1.9.0.tar.bz2";
+ md5name = "c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46-gpgme-1.13.1.tar.bz2";
}
{
name = "graphite2-minimal-1.3.14.tgz";
@@ -371,18 +378,18 @@
md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
}
{
- name = "icu4c-67_1-src.tgz";
- url = "https://dev-www.libreoffice.org/src/icu4c-67_1-src.tgz";
- sha256 = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc";
+ name = "icu4c-68_1-src.tgz";
+ url = "https://dev-www.libreoffice.org/src/icu4c-68_1-src.tgz";
+ sha256 = "a9f2e3d8b4434b8e53878b4308bd1e6ee51c9c7042e2b1a376abefb6fbb29f2d";
md5 = "";
- md5name = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc-icu4c-67_1-src.tgz";
+ md5name = "a9f2e3d8b4434b8e53878b4308bd1e6ee51c9c7042e2b1a376abefb6fbb29f2d-icu4c-68_1-src.tgz";
}
{
- name = "icu4c-67_1-data.zip";
- url = "https://dev-www.libreoffice.org/src/icu4c-67_1-data.zip";
- sha256 = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e";
+ name = "icu4c-68_1-data.zip";
+ url = "https://dev-www.libreoffice.org/src/icu4c-68_1-data.zip";
+ sha256 = "03ea8b4694155620548c8c0ba20444f1e7db246cc79e3b9c4fc7a960b160d510";
md5 = "";
- md5name = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e-icu4c-67_1-data.zip";
+ md5name = "03ea8b4694155620548c8c0ba20444f1e7db246cc79e3b9c4fc7a960b160d510-icu4c-68_1-data.zip";
}
{
name = "flow-engine-0.9.4.zip";
@@ -469,11 +476,11 @@
md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
}
{
- name = "language-subtag-registry-2020-09-29.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-09-29.tar.bz2";
- sha256 = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f";
+ name = "language-subtag-registry-2021-03-05.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2021-03-05.tar.bz2";
+ sha256 = "ce80e8face06bf2ada363e0c159e3f990c4116fdae9232ca43e6369aa82bf16a";
md5 = "";
- md5name = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f-language-subtag-registry-2020-09-29.tar.bz2";
+ md5name = "ce80e8face06bf2ada363e0c159e3f990c4116fdae9232ca43e6369aa82bf16a-language-subtag-registry-2021-03-05.tar.bz2";
}
{
name = "JLanguageTool-1.7.0.tar.bz2";
@@ -483,18 +490,18 @@
md5name = "b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
}
{
- name = "lcms2-2.9.tar.gz";
- url = "https://dev-www.libreoffice.org/src/lcms2-2.9.tar.gz";
- sha256 = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20";
+ name = "lcms2-2.11.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/lcms2-2.11.tar.gz";
+ sha256 = "dc49b9c8e4d7cdff376040571a722902b682a795bf92985a85b48854c270772e";
md5 = "";
- md5name = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20-lcms2-2.9.tar.gz";
+ md5name = "dc49b9c8e4d7cdff376040571a722902b682a795bf92985a85b48854c270772e-lcms2-2.11.tar.gz";
}
{
- name = "libassuan-2.5.1.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/libassuan-2.5.1.tar.bz2";
- sha256 = "47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449";
+ name = "libassuan-2.5.3.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/libassuan-2.5.3.tar.bz2";
+ sha256 = "91bcb0403866b4e7c4bc1cc52ed4c364a9b5414b3994f718c70303f7f765e702";
md5 = "";
- md5name = "47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449-libassuan-2.5.1.tar.bz2";
+ md5name = "91bcb0403866b4e7c4bc1cc52ed4c364a9b5414b3994f718c70303f7f765e702-libassuan-2.5.3.tar.bz2";
}
{
name = "libatomic_ops-7.6.8.tar.gz";
@@ -525,11 +532,11 @@
md5name = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056-libffi-3.3.tar.gz";
}
{
- name = "libgpg-error-1.27.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/libgpg-error-1.27.tar.bz2";
- sha256 = "4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2";
+ name = "libgpg-error-1.37.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/libgpg-error-1.37.tar.bz2";
+ sha256 = "b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763";
md5 = "";
- md5name = "4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2-libgpg-error-1.27.tar.bz2";
+ md5name = "b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763-libgpg-error-1.37.tar.bz2";
}
{
name = "liblangtag-0.6.2.tar.bz2";
@@ -539,11 +546,11 @@
md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
}
{
- name = "libnumbertext-1.0.6.tar.xz";
- url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
- sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
+ name = "libnumbertext-1.0.7.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.7.tar.xz";
+ sha256 = "17b8249cb89ae11ae15a85612d2665626c0e0e3e56b35654363ba6566d8b61fc";
md5 = "";
- md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
+ md5name = "17b8249cb89ae11ae15a85612d2665626c0e0e3e56b35654363ba6566d8b61fc-libnumbertext-1.0.7.tar.xz";
}
{
name = "ltm-1.0.zip";
@@ -560,11 +567,11 @@
md5name = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8-xmlsec1-1.2.30.tar.gz";
}
{
- name = "libxml2-2.9.10.tar.gz";
- url = "https://dev-www.libreoffice.org/src/libxml2-2.9.10.tar.gz";
- sha256 = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f";
+ name = "libxml2-2.9.12.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libxml2-2.9.12.tar.gz";
+ sha256 = "c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92";
md5 = "";
- md5name = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f-libxml2-2.9.10.tar.gz";
+ md5name = "c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92-libxml2-2.9.12.tar.gz";
}
{
name = "libxslt-1.1.34.tar.gz";
@@ -595,11 +602,11 @@
md5name = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b-mariadb-connector-c-3.1.8-src.tar.gz";
}
{
- name = "mdds-1.6.0.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/mdds-1.6.0.tar.bz2";
- sha256 = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d";
+ name = "mdds-1.7.0.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/mdds-1.7.0.tar.bz2";
+ sha256 = "a66a2a8293a3abc6cd9baff7c236156e2666935cbfb69a15d64d38141638fecf";
md5 = "";
- md5name = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d-mdds-1.6.0.tar.bz2";
+ md5name = "a66a2a8293a3abc6cd9baff7c236156e2666935cbfb69a15d64d38141638fecf-mdds-1.7.0.tar.bz2";
}
{
name = "mDNSResponder-878.200.35.tar.gz";
@@ -616,11 +623,11 @@
md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
}
{
- name = "libmwaw-0.3.16.tar.xz";
- url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.16.tar.xz";
- sha256 = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868";
+ name = "libmwaw-0.3.17.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.17.tar.xz";
+ sha256 = "8e1537eb1de1b4714f4bf0a20478f342c5d71a65bf99307a694b1e9e30bb911c";
md5 = "";
- md5name = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868-libmwaw-0.3.16.tar.xz";
+ md5name = "8e1537eb1de1b4714f4bf0a20478f342c5d71a65bf99307a694b1e9e30bb911c-libmwaw-0.3.17.tar.xz";
}
{
name = "mythes-1.2.4.tar.gz";
@@ -630,11 +637,11 @@
md5name = "a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
}
{
- name = "neon-0.30.2.tar.gz";
- url = "https://dev-www.libreoffice.org/src/neon-0.30.2.tar.gz";
- sha256 = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca";
+ name = "neon-0.31.2.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/neon-0.31.2.tar.gz";
+ sha256 = "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678";
md5 = "";
- md5name = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca-neon-0.30.2.tar.gz";
+ md5name = "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678-neon-0.31.2.tar.gz";
}
{
name = "nss-3.55-with-nspr-4.27.tar.gz";
@@ -672,18 +679,18 @@
md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
}
{
- name = "openssl-1.0.2t.tar.gz";
- url = "https://dev-www.libreoffice.org/src/openssl-1.0.2t.tar.gz";
- sha256 = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc";
+ name = "openssl-1.1.1l.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/openssl-1.1.1l.tar.gz";
+ sha256 = "0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1";
md5 = "";
- md5name = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc-openssl-1.0.2t.tar.gz";
+ md5name = "0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1-openssl-1.1.1l.tar.gz";
}
{
- name = "liborcus-0.15.4.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/liborcus-0.15.4.tar.bz2";
- sha256 = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61";
+ name = "liborcus-0.16.1.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/liborcus-0.16.1.tar.bz2";
+ sha256 = "c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4";
md5 = "";
- md5name = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61-liborcus-0.15.4.tar.bz2";
+ md5name = "c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4-liborcus-0.16.1.tar.bz2";
}
{
name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
@@ -735,11 +742,11 @@
md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
}
{
- name = "Python-3.7.10.tar.xz";
- url = "https://dev-www.libreoffice.org/src/Python-3.7.10.tar.xz";
- sha256 = "f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b";
+ name = "Python-3.8.8rc1.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/Python-3.8.8rc1.tar.xz";
+ sha256 = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6";
md5 = "";
- md5name = "f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b-Python-3.7.10.tar.xz";
+ md5name = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6-Python-3.8.8rc1.tar.xz";
}
{
name = "QR-Code-generator-1.4.0.tar.gz";
@@ -798,11 +805,11 @@
md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
}
{
- name = "skia-m85-e684c6daef6bfb774a325a069eda1f76ca6ac26c.tar.xz";
- url = "https://dev-www.libreoffice.org/src/skia-m85-e684c6daef6bfb774a325a069eda1f76ca6ac26c.tar.xz";
- sha256 = "3294877fa2b61b220d98a0f7bfc11325429b13edd2cf455444c703ee3a14d760";
+ name = "skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz";
+ sha256 = "f293656a15342a53bb407b932fc907c6894178a162f09728bd383e24d84b1301";
md5 = "";
- md5name = "3294877fa2b61b220d98a0f7bfc11325429b13edd2cf455444c703ee3a14d760-skia-m85-e684c6daef6bfb774a325a069eda1f76ca6ac26c.tar.xz";
+ md5name = "f293656a15342a53bb407b932fc907c6894178a162f09728bd383e24d84b1301-skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz";
}
{
name = "libstaroffice-0.0.7.tar.xz";
@@ -854,11 +861,11 @@
md5name = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c-libwpg-0.3.3.tar.xz";
}
{
- name = "libwps-0.4.11.tar.xz";
- url = "https://dev-www.libreoffice.org/src/libwps-0.4.11.tar.xz";
- sha256 = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1";
+ name = "libwps-0.4.12.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libwps-0.4.12.tar.xz";
+ sha256 = "e21afb52a06d03b774c5a8c72679687ab64891b91ce0c3bdf2d3e97231534edb";
md5 = "";
- md5name = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1-libwps-0.4.11.tar.xz";
+ md5name = "e21afb52a06d03b774c5a8c72679687ab64891b91ce0c3bdf2d3e97231534edb-libwps-0.4.12.tar.xz";
}
{
name = "xsltml_2.1.2.zip";
diff --git a/pkgs/applications/office/libreoffice/src-still/override.nix b/pkgs/applications/office/libreoffice/src-still/override.nix
index 110a52ed9f96..746e7679f380 100644
--- a/pkgs/applications/office/libreoffice/src-still/override.nix
+++ b/pkgs/applications/office/libreoffice/src-still/override.nix
@@ -1,4 +1,4 @@
-{ lib, kdeIntegration, ... }:
+{ lib, kdeIntegration, commonsLogging, ... }:
attrs:
{
postConfigure = attrs.postConfigure + ''
@@ -6,6 +6,8 @@ attrs:
'';
configureFlags = attrs.configureFlags ++ [
(lib.enableFeature kdeIntegration "kf5")
+ "--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
+ "--without-system-qrcodegen"
];
- patches = [ ../xdg-open-brief.patch ];
+ patches = [ ../xdg-open-brief.patch ]; # drop this when switching to 7.2
}
diff --git a/pkgs/applications/office/libreoffice/src-still/primary.nix b/pkgs/applications/office/libreoffice/src-still/primary.nix
index d42f31bff3f9..df6dcb58e9ea 100644
--- a/pkgs/applications/office/libreoffice/src-still/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-still/primary.nix
@@ -7,7 +7,7 @@ rec {
};
major = "7";
- minor = "0";
+ minor = "1";
patch = "6";
tweak = "2";
@@ -17,13 +17,13 @@ rec {
src = fetchurl {
url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
- sha256 = "0bk1dc6g8z5akrprfxxy3dm0vdmihaaxnsprxpqbqmqrqzkzg8cn";
+ sha256 = "1g1nlnmgxka1xj3800ra7j28y08k1irz7a24awx1gyjs9fci58qq";
};
# FIXME rename
translations = fetchSrc {
name = "translations";
- sha256 = "04f76r311hppil656ajab52x0xwqszazlgssyi5w97wak2zkmqgj";
+ sha256 = "0kblfwcnsc0pz96wxmkghmchjd31h0w1wjxlqxqbqqpz3vbr61k3";
};
# the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
help = fetchSrc {
name = "help";
- sha256 = "1xmvlj9nrmg8448k4zfaxn5qqxa4amnvvhs1l1smi2bz3xh4xn2d";
+ sha256 = "1b28xqgvfnx62zgnxfisi58r7nhixvz35pmq8cb20ayxhdfg6v31";
};
}
diff --git a/pkgs/applications/office/minetime/default.nix b/pkgs/applications/office/minetime/default.nix
deleted file mode 100644
index 1971a7829447..000000000000
--- a/pkgs/applications/office/minetime/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ appimageTools, fetchurl, lib, runCommand, stdenv, gsettings-desktop-schemas, gtk3, zlib }:
-
-let
- name = "${pname}-${version}";
- pname = "minetime";
- version = "1.8.10";
- appimage = fetchurl {
- url = "https://github.com/marcoancona/MineTime/releases/download/v${version}/${name}.AppImage";
- sha256 = "1a80lgk6v9kv9xb2y3i08gk25jm0pqyl57kfr5p1rbc33prhmcgw";
- };
- extracted = appimageTools.extractType2 {
- inherit name;
- src = appimage;
- };
- patched = runCommand "minetime-patchelf" {} ''
- cp -av ${extracted} $out
-
- x=$out/resources/app.asar.unpacked/services/scheduling/dist/MinetimeSchedulingService
- chmod +w $x
-
- patchelf \
- --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
- --replace-needed libz.so.1 ${zlib}/lib/libz.so.1 \
- $x
- '';
-in
-appimageTools.wrapAppImage rec {
- inherit name;
- src = patched;
-
- profile = ''
- export LC_ALL=C.UTF-8
- export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
- '';
-
- multiPkgs = null; # no 32bit needed
- extraPkgs = ps:
- appimageTools.defaultFhsEnvArgs.multiPkgs ps
- ++ (with ps; [ at-spi2-core at-spi2-atk libsecret libnotify ]);
- extraInstallCommands = "mv $out/bin/{${name},${pname}}";
-
- meta = with lib; {
- description = "Modern, intuitive and smart calendar application";
- homepage = "https://minetime.ai";
- license = licenses.unfree;
- # Should be cross-platform, but for now we just grab the appimage
- platforms = [ "x86_64-linux" ];
- maintainers = with maintainers; [ dtzWill ];
- };
-}
diff --git a/pkgs/applications/office/notes-up/default.nix b/pkgs/applications/office/notes-up/default.nix
index 4422968efbca..1aa6f7f78e93 100644
--- a/pkgs/applications/office/notes-up/default.nix
+++ b/pkgs/applications/office/notes-up/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Only;
maintainers = with maintainers; [ ] ++ teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "com.github.philip-scott.notes-up";
};
}
diff --git a/pkgs/applications/office/onlyoffice-bin/default.nix b/pkgs/applications/office/onlyoffice-bin/default.nix
index 121a65f941c8..214b8376d8d6 100644
--- a/pkgs/applications/office/onlyoffice-bin/default.nix
+++ b/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -147,10 +147,6 @@ stdenv.mkDerivation rec {
ln -s $out/share/desktopeditors/DesktopEditors $out/bin/DesktopEditors
- wrapProgram $out/bin/DesktopEditors \
- --set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \
- --set QTCOMPOSE ${xorg.libX11.out}/share/X11/locale
-
substituteInPlace $out/share/applications/onlyoffice-desktopeditors.desktop \
--replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor"
@@ -158,7 +154,13 @@ stdenv.mkDerivation rec {
'';
preFixup = ''
- gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
+ gappsWrapperArgs+=(
+ --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
+ --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
+ --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" \
+ --set QT_QPA_PLATFORM "xcb"
+ # the bundled version of qt does not support wayland
+ )
'';
passthru.updateScript = ./update.sh;
diff --git a/pkgs/applications/office/paperless-ng/default.nix b/pkgs/applications/office/paperless-ng/default.nix
index e84b3c794433..64ef525cfc84 100644
--- a/pkgs/applications/office/paperless-ng/default.nix
+++ b/pkgs/applications/office/paperless-ng/default.nix
@@ -5,7 +5,6 @@
, ghostscript
, imagemagick
, jbig2enc
-, ocrmypdf
, optipng
, pngquant
, qpdf
@@ -27,12 +26,20 @@ let
# https://github.com/Koed00/django-q/issues/526
django-q = super.django-q.overridePythonAttrs (oldAttrs: rec {
version = "1.3.4";
- src = super.fetchPypi {
- inherit (oldAttrs) pname;
+ src = oldAttrs.src.override {
inherit version;
sha256 = "Uj1U3PG2YVLBtlj5FPAO07UYo0MqnezUiYc4yo274Q8=";
};
});
+
+ # Incompatible with aioredis 2
+ aioredis = super.aioredis.overridePythonAttrs (oldAttrs: rec {
+ version = "1.3.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "0fi7jd5hlx8cnv1m97kv9hc4ih4l8v15wzkqwsp73is4n0qazy0m";
+ };
+ });
};
};
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 8533df467132..f5418f372983 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, autoPatchelfHook
, fetchurl
, glibc
@@ -24,11 +25,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
- version = "0.54.2";
+ version = "0.55.0";
src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
- sha256 = "sha256-fKUKVeR0q8oylpwF4d3jnkON4vbQ80Fc9WYWStb67ek=";
+ sha256 = "0s7qb7z2wiypiahw1y1lz9pbhxcacj5myzy0qcqjrpnaq7ymvs05";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/office/qnotero/default.nix b/pkgs/applications/office/qnotero/default.nix
index 414312f24e51..92d2bba77705 100644
--- a/pkgs/applications/office/qnotero/default.nix
+++ b/pkgs/applications/office/qnotero/default.nix
@@ -3,13 +3,13 @@
python3Packages.buildPythonPackage rec {
pname = "qnotero";
- version = "2.1.1";
+ version = "2.3.0";
src = fetchFromGitHub {
owner = "ealbiter";
repo = pname;
rev = "v${version}";
- sha256 = "16ckcjxa3dgmz1y8gd57q2h84akra3j4bgl4fwv4m05bam3ml1xs";
+ sha256 = "0y2xph4ha07slni039s034cn1wsk3q2d86hihy97h4ch47ignv20";
};
propagatedBuildInputs = [ python3Packages.pyqt5 wrapQtAppsHook ];
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index c843715fcd21..1bd29b06d9b9 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "qownnotes";
- version = "21.9.2";
+ version = "21.10.9";
src = fetchurl {
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
# Fetch the checksum of current version with curl:
# curl https://download.tuxfamily.org/qownnotes/src/qownnotes-.tar.xz.sha256
- sha256 = "sha256-R+aXPnQ2Ns2D8PBTvaeh8ht3juZZhZJIb52A8CVRtFI=";
+ sha256 = "2c86d66ae427bdcd16d706b982cedaa669a27340f7819fc97a8e2b24c709e74f";
};
nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/spice-up/default.nix b/pkgs/applications/office/spice-up/default.nix
index b51eeb1ad954..7b72ddcf0d98 100644
--- a/pkgs/applications/office/spice-up/default.nix
+++ b/pkgs/applications/office/spice-up/default.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
# The COPYING file has GPLv3; some files have GPLv2+ and some have GPLv3+
license = licenses.gpl3Plus;
+ mainProgram = "com.github.philip-scott.spice-up";
};
}
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 7cb9a9b7e992..90608dceba5c 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -5,11 +5,11 @@ let
in
stdenv.mkDerivation rec {
pname = "super-productivity";
- version = "7.2.1";
+ version = "7.6.0";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
- sha256 = "93eeb56fe923c48a9384cde0633e98a9d9dc5c0869fce63b9724ff74bb400049";
+ sha256 = "f02a451a44f48a8e85a0c1269625d89fb1e0b8a75b7e217d96352064e6464ae5";
name = "${pname}-${version}.AppImage";
};
diff --git a/pkgs/applications/office/tagainijisho/default.nix b/pkgs/applications/office/tagainijisho/default.nix
index 18126b5e2b76..7869b54a5f04 100644
--- a/pkgs/applications/office/tagainijisho/default.nix
+++ b/pkgs/applications/office/tagainijisho/default.nix
@@ -1,9 +1,11 @@
{ lib, stdenv, fetchurl, qt4, cmake, sqlite }:
-stdenv.mkDerivation {
- name = "tagainijisho-1.0.3";
+stdenv.mkDerivation rec {
+ pname = "tagainijisho";
+ version = "1.0.3";
+
src = fetchurl {
- url = "https://github.com/Gnurou/tagainijisho/releases/download/1.0.3/tagainijisho-1.0.3.tar.gz";
+ url = "https://github.com/Gnurou/tagainijisho/releases/download/${version}/tagainijisho-${version}.tar.gz";
sha256 = "0kmg1940yiqfm4vpifyj680283ids4nsij9s750nrshwxiwwbqvg";
};
@@ -14,8 +16,10 @@ stdenv.mkDerivation {
description = "A free, open-source Japanese dictionary and kanji lookup tool";
homepage = "https://www.tagaini.net/";
license = with licenses; [
- /* program */ gpl3Plus
- /* data */ cc-by-sa-30
+ /* program */
+ gpl3Plus
+ /* data */
+ cc-by-sa-30
];
platforms = platforms.linux;
maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/applications/office/timedoctor/default.nix b/pkgs/applications/office/timedoctor/default.nix
index 4b97f7b3dcd9..41273b7780e3 100644
--- a/pkgs/applications/office/timedoctor/default.nix
+++ b/pkgs/applications/office/timedoctor/default.nix
@@ -119,5 +119,7 @@ appimageTools.wrapType2 {
license = licenses.unfree;
maintainers = with maintainers; [ kamadorueda ];
platforms = [ "x86_64-linux" ];
+ # gpgme for i686-linux failed to build.
+ broken = true;
};
}
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index e01391519e49..8c7b4ee43842 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -4,7 +4,6 @@
, installShellFiles
, jq
}:
-
let
inherit (python3.pkgs) buildPythonApplication fetchPypi setuptools-scm;
in
@@ -23,6 +22,7 @@ buildPythonApplication rec {
installShellFiles
setuptools-scm
];
+
propagatedBuildInputs = with python3.pkgs; [
atomicwrites
click
@@ -42,25 +42,37 @@ buildPythonApplication rec {
flake8-import-order
freezegun
hypothesis
- pytest
- pytest-runner
- pytest-cov
+ pytestCheckHook
glibcLocales
];
LC_ALL = "en_US.UTF-8";
+ postPatch = ''
+ substituteInPlace setup.cfg \
+ --replace " --cov=todoman --cov-report=term-missing" ""
+ '';
+
postInstall = ''
installShellCompletion --bash contrib/completion/bash/_todo
substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${jq}/bin/jq "
installShellCompletion --zsh contrib/completion/zsh/_todo
'';
- preCheck = ''
- # Remove one failing test that only checks whether the command line works
- rm tests/test_main.py
- rm tests/test_cli.py
- '';
+ disabledTests = [
+ # Testing of the CLI part and output
+ "test_color_due_dates"
+ "test_color_flag"
+ "test_default_command"
+ "test_main"
+ "test_missing_cache_dir"
+ "test_sorting_null_values"
+ "test_xdg_existant"
+ ];
+
+ pythonImportsCheck = [
+ "todoman"
+ ];
meta = with lib; {
homepage = "https://github.com/pimutils/todoman";
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index 3cf7fd1eaebd..6cfdf3c8f925 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
maintainers = with maintainers; [ fliegendewurst ];
};
- version = "0.47.7";
+ version = "0.47.8";
desktopSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
- sha256 = "1fcrc01wr8ln1i77q9h89i90wwyijpfp58fa717wbdvyly4860sh";
+ sha256 = "1vnwjiv4bidw5xspcd7d7fn8dbhvgia9ws363fs5zs48c9k2hwwz";
};
serverSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
- sha256 = "0qp37y3xgbhl6vj2bkwz1lfylkn82kx7n0lcfr58wxwkn00149ry";
+ sha256 = "1clgw0i3vbl8lrsjdjbn71yhim6356gm8h24831mnksb4sawhh7f";
};
in {
diff --git a/pkgs/applications/office/vnote/default.nix b/pkgs/applications/office/vnote/default.nix
index b266ce86e2ac..2c6b5dfe3b3b 100644
--- a/pkgs/applications/office/vnote/default.nix
+++ b/pkgs/applications/office/vnote/default.nix
@@ -1,27 +1,31 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, qtbase, qtwebengine }:
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, qtbase
+, qtwebengine
+}:
-let
- description = "A note-taking application that knows programmers and Markdown better";
-in mkDerivation rec {
- version = "2.10";
+mkDerivation rec {
pname = "vnote";
+ version = "3.8.1";
src = fetchFromGitHub {
- owner = "tamlok";
- repo = "vnote";
+ owner = "vnotex";
+ repo = pname;
fetchSubmodules = true;
rev = "v${version}";
- sha256 = "EeeVGnKI0irLO1zJQxlVlIUhqG987JIgxNvKpUgLxUQ=";
+ sha256 = "sha256-GgSVBVcT0rfgglyjCmkEMbKCEltesC3eSsN38psrkS4=";
};
nativeBuildInputs = [ qmake ];
buildInputs = [ qtbase qtwebengine ];
meta = with lib; {
- inherit description;
- homepage = "https://tamlok.github.io/vnote";
+ homepage = "https://vnotex.github.io/vnote";
+ description = "A pleasant note-taking platform";
license = licenses.mit;
+ maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.linux;
- maintainers = [ maintainers.kuznero ];
};
}
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index ff458cedba10..7584debc20f2 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -30,6 +30,7 @@ in with python.pkgs; buildPythonApplication rec {
postInstall = ''
installShellCompletion --bash --name watson watson.completion
installShellCompletion --zsh --name _watson watson.zsh-completion
+ installShellCompletion --fish watson.fish
'';
checkInputs = [ pytestCheckHook pytest-mock mock pytest-datafiles ];
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index ada2804ccba4..178b2351a6b6 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -1,7 +1,6 @@
{ lib, stdenv
, mkDerivation
, fetchurl
-, autoPatchelfHook
, dpkg
, wrapGAppsHook
, wrapQtAppsHook
@@ -34,6 +33,8 @@
, unixODBC
, xorg
, zlib
+, steam
+, makeWrapper
}:
stdenv.mkDerivation rec {
@@ -53,7 +54,7 @@ stdenv.mkDerivation rec {
rm opt/kingsoft/wps-office/office6/{libjsetapi.so,libjswppapi.so,libjswpsapi.so}
'';
- nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
+ nativeBuildInputs = [ dpkg wrapGAppsHook wrapQtAppsHook makeWrapper ];
meta = with lib; {
description = "Office suite, formerly Kingsoft Office";
@@ -107,6 +108,7 @@ stdenv.mkDerivation rec {
sqlite
unixODBC
zlib
+ cups.lib
];
dontPatchELF = true;
@@ -137,7 +139,12 @@ stdenv.mkDerivation rec {
"tcmalloc" # gperftools
];
- installPhase = ''
+ installPhase = let
+ steam-run = (steam.override {
+ extraPkgs = p: buildInputs;
+ nativeOnly = true;
+ }).run;
+ in ''
prefix=$out/opt/kingsoft/wps-office
mkdir -p $out
cp -r opt $out
@@ -153,11 +160,14 @@ stdenv.mkDerivation rec {
substituteInPlace $i \
--replace /usr/bin $out/bin
done
- '';
- runtimeLibPath = lib.makeLibraryPath [
- cups.lib
- ];
+ for i in wps wpp et wpspdf; do
+ mv $out/bin/$i $out/bin/.$i-orig
+ makeWrapper ${steam-run}/bin/steam-run $out/bin/$i \
+ --add-flags $out/bin/.$i-orig \
+ --argv0 $i
+ done
+ '';
dontWrapQtApps = true;
dontWrapGApps = true;
@@ -166,8 +176,7 @@ stdenv.mkDerivation rec {
echo "Wrapping $f"
wrapProgram "$f" \
"''${gappsWrapperArgs[@]}" \
- "''${qtWrapperArgs[@]}" \
- --suffix LD_LIBRARY_PATH : "$runtimeLibPath"
+ "''${qtWrapperArgs[@]}"
done
'';
}
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index c0bca4c90432..269bc1931b30 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -7,11 +7,11 @@
python3Packages.buildPythonApplication rec {
pname = "zim";
- version = "0.73.5";
+ version = "0.74.2";
src = fetchurl {
url = "https://zim-wiki.org/downloads/zim-${version}.tar.gz";
- sha256 = "sha256-o28V2Sw5lMDVWwf4MlOz2LgmvrNxSGXturwU8cyR1jo=";
+ sha256 = "sha256-tZxBlpps2nLThSOq3WJ42iUQ4NG1Lb463bvDQ+djZJA=";
};
buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome.adwaita-icon-theme ];
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
new file mode 100644
index 000000000000..9da6073ff42f
--- /dev/null
+++ b/pkgs/applications/office/zk/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, buildGoModule, icu }:
+
+buildGoModule rec {
+ pname = "zk";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "mickael-menu";
+ repo = "zk";
+ rev = "v${version}";
+ sha256 = "sha256-C3/V4v8lH4F3S51egEw5d51AI0n5xzBQjwhrI64FEGA=";
+ };
+
+ vendorSha256 = "sha256-m7QGv8Vx776TsN7QHXtO+yl3U1D573UMZVyg1B4UeIk=";
+
+ doCheck = false;
+
+ buildInputs = [ icu ];
+
+ CGO_ENABLED = 1;
+
+ ldflags = [ "-s" "-w" "-X=main.Build=${version}" ];
+
+ tags = [ "fts5" "icu" ];
+
+ meta = with lib; {
+ maintainers = with maintainers; [ pinpox ];
+ license = licenses.gpl3;
+ description = "A zettelkasten plain text note-taking assistant";
+ homepage = "https://github.com/mickael-menu/zk";
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/alligator.nix b/pkgs/applications/plasma-mobile/alligator.nix
new file mode 100644
index 000000000000..b88c8e3c60ec
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/alligator.nix
@@ -0,0 +1,40 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami2
+, qtquickcontrols2
+, syndication
+}:
+
+mkDerivation rec {
+ pname = "alligator";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kconfig
+ kcoreaddons
+ ki18n
+ kirigami2
+ qtquickcontrols2
+ syndication
+ ];
+
+ meta = with lib; {
+ description = "RSS reader made with kirigami";
+ homepage = "https://invent.kde.org/plasma-mobile/alligator";
+ # https://invent.kde.org/plasma-mobile/alligator/-/commit/db30f159c4700244532b17a260deb95551045b7a
+ # * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+ license = with licenses; [ gpl2Only gpl3Only ];
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/networking/browsers/angelfish/default.nix b/pkgs/applications/plasma-mobile/angelfish.nix
similarity index 54%
rename from pkgs/applications/networking/browsers/angelfish/default.nix
rename to pkgs/applications/plasma-mobile/angelfish.nix
index 391993617da2..99df3f55c1d5 100644
--- a/pkgs/applications/networking/browsers/angelfish/default.nix
+++ b/pkgs/applications/plasma-mobile/angelfish.nix
@@ -16,21 +16,29 @@
, qtquickcontrols2
, qtwebengine
, rustPlatform
+, srcs
+
+# These must be updated in tandem with package updates.
+, cargoShaForVersion ? "21.08"
+, cargoSha256 ? "1pbvw9hdzn3i97mahdy9y6jnjsmwmjs3lxfz7q6r9r10i8swbkak"
}:
+# Guard against incomplete updates.
+# Values are provided as callPackage inputs to enable easier overrides through overlays.
+if cargoShaForVersion != srcs.angelfish.version
+then builtins.throw ''
+ angelfish package update is incomplete.
+ Hash for cargo dependencies is declared for version ${cargoShaForVersion}, but we're building ${srcs.angelfish.version}.
+ Update the cargoSha256 and cargoShaForVersion for angelfish.
+'' else
+
mkDerivation rec {
pname = "angelfish";
- version = "21.06";
-
- src = fetchurl {
- url = "mirror://kde/stable/plasma-mobile/${version}/angelfish-${version}.tar.xz";
- sha256 = "sha256-iHgmG/DeaUPnRXlVIU8P/oUcYINienYmR2zI9Q4Yd3s=";
- };
cargoDeps = rustPlatform.fetchCargoTarball {
- inherit src;
- name = "${pname}-${version}";
- sha256 = "0zh0kli7kav18v9znq2f5jklhf3m1kyb41jzmivjx70g9xyfzlwk";
+ src = srcs.angelfish.src;
+ name = "${pname}-${srcs.angelfish.version}";
+ sha256 = cargoSha256;
};
nativeBuildInputs = [
@@ -63,7 +71,7 @@ mkDerivation rec {
meta = with lib; {
description = "Web browser for Plasma Mobile";
- homepage = "https://apps.kde.org/en/mobile.angelfish";
+ homepage = "https://invent.kde.org/plasma-mobile/angelfish";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
};
diff --git a/pkgs/applications/plasma-mobile/audiotube.nix b/pkgs/applications/plasma-mobile/audiotube.nix
new file mode 100644
index 000000000000..1a1dedc7b426
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/audiotube.nix
@@ -0,0 +1,61 @@
+{ lib
+, mkDerivation
+, fetchpatch
+
+, extra-cmake-modules
+
+, kcoreaddons
+, kcrash
+, ki18n
+, kirigami2
+, qtmultimedia
+, qtquickcontrols2
+, python3Packages
+}:
+
+mkDerivation rec {
+ pname = "audiotube";
+
+ patches = [
+ # Fix compatibility with ytmusicapi 0.19.1
+ (fetchpatch {
+ url = "https://invent.kde.org/plasma-mobile/audiotube/-/commit/734caa02805988200f923b88d1590b3f7dac8ac2.patch";
+ sha256 = "0zq4f0w84dv0630bpvmqkfmhxbvibr2fxhzy6d2mnf098028gzyd";
+ })
+ ];
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ python3Packages.wrapPython
+ python3Packages.pybind11
+ ];
+
+ buildInputs = [
+ kcoreaddons
+ kcrash
+ ki18n
+ kirigami2
+ qtmultimedia
+ qtquickcontrols2
+ python3Packages.youtube-dl
+ python3Packages.ytmusicapi
+ ];
+
+ pythonPath = [
+ python3Packages.youtube-dl
+ python3Packages.ytmusicapi
+ ];
+
+ preFixup = ''
+ buildPythonPath "$pythonPath"
+ qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
+ '';
+
+ meta = with lib; {
+ description = "Client for YouTube Music";
+ homepage = "https://invent.kde.org/plasma-mobile/audiotube";
+ # https://invent.kde.org/plasma-mobile/audiotube/-/tree/c503d0607a3386112beaa9cf990ab85fe33ef115/LICENSES
+ license = with licenses; [ bsd2 cc0 gpl2Only gpl3Only ];
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/calindori.nix b/pkgs/applications/plasma-mobile/calindori.nix
new file mode 100644
index 000000000000..bb10fa7bb10c
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/calindori.nix
@@ -0,0 +1,46 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kcalendarcore
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami2
+, knotifications
+, kpeople
+, kservice
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "calindori";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kcalendarcore
+ kconfig
+ kcoreaddons
+ kdbusaddons
+ ki18n
+ kirigami2
+ knotifications
+ kpeople
+ kservice
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Calendar for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/calindori";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/default.nix b/pkgs/applications/plasma-mobile/default.nix
new file mode 100644
index 000000000000..fd9ae2a2bae8
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/default.nix
@@ -0,0 +1,81 @@
+/*
+
+# New packages
+
+READ THIS FIRST
+
+This module is for official packages in the Plasma Mobile Gear. All
+available packages are listed in `./srcs.nix`, although some are not yet
+packaged in Nixpkgs.
+
+IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE.
+
+See also `pkgs/applications/kde` as this is what this is based on.
+
+# Updates
+
+1. Update the URL in `./fetch.sh`.
+2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/plasma-mobile`
+ from the top of the Nixpkgs tree.
+3. Use `nox-review wip` to check that everything builds.
+4. Commit the changes and open a pull request.
+
+*/
+
+{ lib
+, libsForQt5
+, fetchurl
+}:
+
+let
+ minQtVersion = "5.15";
+ broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
+
+ mirror = "mirror://kde";
+ srcs = import ./srcs.nix { inherit fetchurl mirror; };
+
+ mkDerivation = args:
+ let
+ inherit (args) pname;
+ inherit (srcs.${pname}) src version;
+ mkDerivation =
+ libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
+ in
+ mkDerivation (args // {
+ inherit pname version src;
+
+ outputs = args.outputs or [ "out" ];
+
+ meta =
+ let meta = args.meta or {}; in
+ meta // {
+ homepage = meta.homepage or "https://www.plasma-mobile.org/";
+ platforms = meta.platforms or lib.platforms.linux;
+ broken = meta.broken or broken;
+ };
+ });
+
+ packages = self: with self;
+ let
+ callPackage = self.newScope {
+ inherit mkDerivation;
+ };
+ in {
+ alligator = callPackage ./alligator.nix {};
+ angelfish = callPackage ./angelfish.nix { inherit srcs; };
+ audiotube = callPackage ./audiotube.nix {};
+ calindori = callPackage ./calindori.nix {};
+ kalk = callPackage ./kalk.nix {};
+ kasts = callPackage ./kasts.nix {};
+ kclock = callPackage ./kclock.nix {};
+ keysmith = callPackage ./keysmith.nix {};
+ koko = callPackage ./koko.nix {};
+ krecorder = callPackage ./krecorder.nix {};
+ ktrip = callPackage ./ktrip.nix {};
+ kweather = callPackage ./kweather.nix {};
+ plasma-dialer = callPackage ./plasma-dialer.nix {};
+ plasma-phonebook = callPackage ./plasma-phonebook.nix {};
+ spacebar = callPackage ./spacebar.nix {};
+ };
+
+in lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/applications/plasma-mobile/fetch.sh b/pkgs/applications/plasma-mobile/fetch.sh
new file mode 100644
index 000000000000..14995aeb2b7f
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/fetch.sh
@@ -0,0 +1 @@
+WGET_ARGS=( https://download.kde.org/stable/plasma-mobile/21.08/ -A '*.tar.xz' )
diff --git a/pkgs/applications/plasma-mobile/kalk.nix b/pkgs/applications/plasma-mobile/kalk.nix
new file mode 100644
index 000000000000..8d63991fb080
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/kalk.nix
@@ -0,0 +1,50 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+, bison
+, flex
+
+, gmp
+, mpfr
+
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami2
+, kunitconversion
+, qtfeedback
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "kalk";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ bison
+ flex
+ ];
+
+ buildInputs = [
+ gmp
+ mpfr
+
+ kconfig
+ kcoreaddons
+ ki18n
+ kirigami2
+ kunitconversion
+ qtfeedback
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Calculator built with kirigami";
+ homepage = "https://invent.kde.org/plasma-mobile/kalk";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/kasts.nix b/pkgs/applications/plasma-mobile/kasts.nix
new file mode 100644
index 000000000000..370cba7e2ea8
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/kasts.nix
@@ -0,0 +1,57 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+, wrapGAppsHook
+
+, gst_all_1
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami2
+, qtmultimedia
+, qtquickcontrols2
+, syndication
+}:
+
+let
+ inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
+in
+mkDerivation rec {
+ pname = "kasts";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gst-plugins-bad
+ gst-plugins-base
+ gst-plugins-good
+ gstreamer
+
+ kconfig
+ kcoreaddons
+ ki18n
+ kirigami2
+ qtquickcontrols2
+ qtmultimedia
+ syndication
+ ];
+
+ preFixup = ''
+ qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+ dontWrapGApps = true;
+
+ meta = with lib; {
+ description = "Mobile podcast application";
+ homepage = "https://apps.kde.org/kasts/";
+ # https://invent.kde.org/plasma-mobile/kasts/-/tree/master/LICENSES
+ license = with licenses; [ bsd2 cc-by-sa-40 cc0 gpl2Only gpl2Plus gpl3Only gpl3Plus lgpl3Plus ];
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/kclock.nix b/pkgs/applications/plasma-mobile/kclock.nix
new file mode 100644
index 000000000000..058f536d7904
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/kclock.nix
@@ -0,0 +1,44 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami2
+, knotifications
+, plasma-framework
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "kclock";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kconfig
+ kcoreaddons
+ kdbusaddons
+ ki18n
+ kirigami2
+ knotifications
+ plasma-framework
+ qtmultimedia
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Clock app for plasma mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/kclock";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/keysmith.nix b/pkgs/applications/plasma-mobile/keysmith.nix
new file mode 100644
index 000000000000..eaca7f68e24b
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/keysmith.nix
@@ -0,0 +1,39 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kdbusaddons
+, ki18n
+, kirigami2
+, kwindowsystem
+, libsodium
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "keysmith";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kdbusaddons
+ ki18n
+ kirigami2
+ kwindowsystem
+ libsodium
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "OTP client for Plasma Mobile and Desktop";
+ license = licenses.gpl3;
+ homepage = "https://github.com/KDE/keysmith";
+ maintainers = with maintainers; [ samueldr shamilton ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/koko.nix b/pkgs/applications/plasma-mobile/koko.nix
new file mode 100644
index 000000000000..3543a7284bff
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/koko.nix
@@ -0,0 +1,81 @@
+{ lib
+, mkDerivation
+
+, fetchurl
+, cmake
+, extra-cmake-modules
+
+, exiv2
+, kconfig
+, kcoreaddons
+, kdeclarative
+, kfilemetadata
+, kguiaddons
+, ki18n
+, kio
+, kirigami2
+, knotifications
+, kpurpose
+, kquickimageedit
+, qtgraphicaleffects
+, qtlocation
+, qtquickcontrols2
+}:
+
+let
+ # URLs snapshotted through
+ # https://web.archive.org/save/$url
+ # Update when stale enough I guess?
+ admin1 = fetchurl {
+ url = "https://web.archive.org/web/20210714035424if_/http://download.geonames.org/export/dump/admin1CodesASCII.txt";
+ sha256 = "0r783yzajs26hvccdy4jv2v06xfgadx2g90fz3yn7lx8flz4nhwm";
+ };
+ admin2 = fetchurl {
+ url = "https://web.archive.org/web/20210714035427if_/http://download.geonames.org/export/dump/admin2Codes.txt";
+ sha256 = "1n5nzp3xblhr93rb1sadi5vfbw29slv5lc6cxq21h3x3cg0mwqh3";
+ };
+ cities1000 = fetchurl {
+ url = "https://web.archive.org/web/20210714035406if_/http://download.geonames.org/export/dump/cities1000.zip";
+ sha256 = "0cwbfff8gzci5zrahh6d53b9b3bfv1cbwlv0k6076531i1c7md9p";
+ };
+in
+mkDerivation rec {
+ pname = "koko";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ exiv2
+ kconfig
+ kcoreaddons
+ kdeclarative
+ kfilemetadata
+ kguiaddons
+ ki18n
+ kio
+ kirigami2
+ knotifications
+ kpurpose
+ kquickimageedit
+ qtgraphicaleffects
+ qtlocation
+ qtquickcontrols2
+ ];
+
+ prePatch = ''
+ ln -s ${admin1} src/admin1CodesASCII.txt
+ ln -s ${admin2} src/admin2Codes.txt
+ ln -s ${cities1000} src/cities1000.zip
+ '';
+
+ meta = with lib; {
+ description = "Image gallery mobile application";
+ homepage = "https://apps.kde.org/koko/";
+ # LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
+ license = [ licenses.lgpl3Only licenses.lgpl21Only ];
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/krecorder.nix b/pkgs/applications/plasma-mobile/krecorder.nix
new file mode 100644
index 000000000000..c41413be8842
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/krecorder.nix
@@ -0,0 +1,36 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, ki18n
+, kirigami2
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "krecorder";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kconfig
+ ki18n
+ kirigami2
+ qtmultimedia
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Audio recorder for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/krecorder";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/ktrip.nix b/pkgs/applications/plasma-mobile/ktrip.nix
new file mode 100644
index 000000000000..5377dd106586
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/ktrip.nix
@@ -0,0 +1,47 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcontacts
+, kcoreaddons
+, ki18n
+, kirigami-addons
+, kirigami2
+, kitemmodels
+, kpublictransport
+, qqc2-desktop-style
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "ktrip";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kconfig
+ kcontacts
+ kcoreaddons
+ ki18n
+ kirigami-addons
+ kirigami2
+ kitemmodels
+ kpublictransport
+ qqc2-desktop-style
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Public transport trip planner";
+ homepage = "https://apps.kde.org/ktrip/";
+ # GPL-2.0-or-later
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/kweather.nix b/pkgs/applications/plasma-mobile/kweather.nix
new file mode 100644
index 000000000000..497061624b92
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/kweather.nix
@@ -0,0 +1,44 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, ki18n
+, kirigami2
+, knotifications
+, kquickcharts
+, kweathercore
+, plasma-framework
+, qtcharts
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "kweather";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kconfig
+ ki18n
+ kirigami2
+ knotifications
+ kquickcharts
+ kweathercore
+ plasma-framework
+ qtcharts
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Weather application for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/kweather";
+ license = with licenses; [ gpl2Plus cc-by-40 ];
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/plasma-dialer.nix b/pkgs/applications/plasma-mobile/plasma-dialer.nix
new file mode 100644
index 000000000000..eb71c497084c
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/plasma-dialer.nix
@@ -0,0 +1,54 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kcontacts
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami2
+, knotifications
+, kpeople
+, libphonenumber
+, libpulseaudio
+, libqofono
+, protobuf
+, pulseaudio-qt
+, qtquickcontrols2
+, telepathy
+}:
+
+mkDerivation rec {
+ pname = "plasma-dialer";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kcontacts
+ kcoreaddons
+ kdbusaddons
+ ki18n
+ kirigami2
+ knotifications
+ kpeople
+ libphonenumber
+ libpulseaudio
+ libqofono
+ protobuf # Needed by libphonenumber
+ pulseaudio-qt
+ qtquickcontrols2
+ telepathy
+ ];
+
+ meta = with lib; {
+ description = "Dialer for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/plasma-dialer";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/plasma-phonebook.nix b/pkgs/applications/plasma-mobile/plasma-phonebook.nix
new file mode 100644
index 000000000000..7e465260da8d
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/plasma-phonebook.nix
@@ -0,0 +1,41 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kcontacts
+, kcoreaddons
+, kirigami2
+, kirigami-addons
+, kpeople
+, kpeoplevcard
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+ pname = "plasma-phonebook";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kcontacts
+ kcoreaddons
+ kirigami2
+ kirigami-addons
+ kpeople
+ kpeoplevcard
+ qtquickcontrols2
+ ];
+
+ meta = with lib; {
+ description = "Phone book for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/plasma-phonebook";
+ # https://invent.kde.org/plasma-mobile/plasma-phonebook/-/commit/3ac27760417e51c051c5dd44155c3f42dd000e4f
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/spacebar.nix b/pkgs/applications/plasma-mobile/spacebar.nix
new file mode 100644
index 000000000000..8d5665501086
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/spacebar.nix
@@ -0,0 +1,44 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kcontacts
+, ki18n
+, kirigami2
+, knotifications
+, kpeople
+, libphonenumber
+, libqofono
+, protobuf
+, telepathy
+}:
+
+mkDerivation rec {
+ pname = "spacebar";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kcontacts
+ ki18n
+ kirigami2
+ knotifications
+ kpeople
+ libphonenumber
+ libqofono
+ protobuf # Needed by libphonenumber
+ telepathy
+ ];
+
+ meta = with lib; {
+ description = "SMS application for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/spacebar";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/pkgs/applications/plasma-mobile/srcs.nix b/pkgs/applications/plasma-mobile/srcs.nix
new file mode 100644
index 000000000000..06b551a94cf4
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/srcs.nix
@@ -0,0 +1,158 @@
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/plasma-mobile
+{ fetchurl, mirror }:
+
+{
+ alligator = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/alligator-21.08.tar.xz";
+ sha256 = "1dhwfwd1v5wmx3sldpygb79kz87j13wd0arhlkm94z1whsixan0q";
+ name = "alligator-21.08.tar.xz";
+ };
+ };
+ angelfish = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/angelfish-21.08.tar.xz";
+ sha256 = "1gzvlha159bw767mj8lisn89592j4j4dazzfws3v4anddjh60xnh";
+ name = "angelfish-21.08.tar.xz";
+ };
+ };
+ audiotube = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/audiotube-21.08.tar.xz";
+ sha256 = "14h4xna9v70lmp7cfpvdnz0f5a4gwgj0q3byccmawm38xsv15v8c";
+ name = "audiotube-21.08.tar.xz";
+ };
+ };
+ calindori = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/calindori-21.08.tar.xz";
+ sha256 = "08s16a8skh02n8ygqwryxpzczj5aqr5k58aijaz2gzx45m7ym31b";
+ name = "calindori-21.08.tar.xz";
+ };
+ };
+ kalk = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/kalk-21.08.tar.xz";
+ sha256 = "0xzrahpz47yajalsfmpzmavxjwmr4bgljwyz2dhxdg40ryjxdy23";
+ name = "kalk-21.08.tar.xz";
+ };
+ };
+ kasts = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/kasts-21.08.tar.xz";
+ sha256 = "10v6icxwv46nihzbdi0n2w71bsg7l166z7jf9rb7vf2mjh1gqavn";
+ name = "kasts-21.08.tar.xz";
+ };
+ };
+ kclock = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/kclock-21.08.tar.xz";
+ sha256 = "1zq0fxlwd7l3b6dgfqsmv1x4wvhmrjz5r0a38hbd7j7pzgyix47d";
+ name = "kclock-21.08.tar.xz";
+ };
+ };
+ keysmith = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/keysmith-21.08.tar.xz";
+ sha256 = "0fa8inli7cwmb75af0mr2cflng0r6k3pd6ckih6ph7szqbpg2x90";
+ name = "keysmith-21.08.tar.xz";
+ };
+ };
+ koko = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/koko-21.08.tar.xz";
+ sha256 = "1sqlcl871m6dlrnkkhqa3xfwix01d74d7jf94r1a3p32hqljv76p";
+ name = "koko-21.08.tar.xz";
+ };
+ };
+ kongress = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/kongress-21.08.tar.xz";
+ sha256 = "099ds4bv4ngx21f28hxcvc17wd2nk786kydwf2h5n3mdd2mgz3ka";
+ name = "kongress-21.08.tar.xz";
+ };
+ };
+ krecorder = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/krecorder-21.08.tar.xz";
+ sha256 = "1381x889h37saf6k875iqhwz5vbixrp7650smxp31r56ycrqq26i";
+ name = "krecorder-21.08.tar.xz";
+ };
+ };
+ ktrip = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/ktrip-21.08.tar.xz";
+ sha256 = "0ipxi3pqd7mznq3qjf9j9w3wyck85lxnr81ay6b3ricfb08ry68x";
+ name = "ktrip-21.08.tar.xz";
+ };
+ };
+ kweather = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/kweather-21.08.tar.xz";
+ sha256 = "0b1zjwsakwsnh6827zjhypvb04c78gwwygr7k1cy2x3finrp5if5";
+ name = "kweather-21.08.tar.xz";
+ };
+ };
+ plasma-dialer = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/plasma-dialer-21.08.tar.xz";
+ sha256 = "14vgjg0nihhm446cfrrld1l43r50dlah5xs2ypdnm68618bdc7p1";
+ name = "plasma-dialer-21.08.tar.xz";
+ };
+ };
+ plasma-phonebook = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/plasma-phonebook-21.08.tar.xz";
+ sha256 = "09gr5mkwhayx6k6bhm29bmcvdlqqw8jj7gydh5fz40g9z98c84km";
+ name = "plasma-phonebook-21.08.tar.xz";
+ };
+ };
+ plasma-settings = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/plasma-settings-21.08.tar.xz";
+ sha256 = "005v1gyrzl9b0k875p2wipja3l8l4awp8nl2d1jx7c28lqaspz2j";
+ name = "plasma-settings-21.08.tar.xz";
+ };
+ };
+ qmlkonsole = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/qmlkonsole-21.08.tar.xz";
+ sha256 = "1p3ysf6sgiji86400523hm67rvw3znj3a7k6g6s83dxynxdh2faq";
+ name = "qmlkonsole-21.08.tar.xz";
+ };
+ };
+ spacebar = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/spacebar-21.08.tar.xz";
+ sha256 = "1cg36iys4x7p97ywilnp2lzz1ry5a1m7jz38yh2yiw6m8wvzfqff";
+ name = "spacebar-21.08.tar.xz";
+ };
+ };
+ tokodon = {
+ version = "21.08";
+ src = fetchurl {
+ url = "${mirror}/stable/plasma-mobile/21.08/tokodon-21.08.tar.xz";
+ sha256 = "0j9zfcdss1872hv8xxrmy0jjmcz3y5kdz8gdrd6qmig5scrzjvnf";
+ name = "tokodon-21.08.tar.xz";
+ };
+ };
+}
diff --git a/pkgs/applications/radio/airspyhf/default.nix b/pkgs/applications/radio/airspyhf/default.nix
new file mode 100644
index 000000000000..a54e8441e36b
--- /dev/null
+++ b/pkgs/applications/radio/airspyhf/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libusb1 }:
+
+stdenv.mkDerivation rec {
+ pname = "airspyhf";
+ version = "1.6.8";
+
+ src = fetchFromGitHub {
+ owner = "airspy";
+ repo = pname;
+ rev = version;
+ hash = "sha256-RKTMEDPeKcerJZtXTn8eAShxDcZUMgeQg/+7pEpMyVg=";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ libusb1 ];
+
+ meta = with lib; {
+ description = "User mode driver for Airspy HF+";
+ homepage = "https://github.com/airspy/airspyhf";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/applications/radio/csdr/default.nix b/pkgs/applications/radio/csdr/default.nix
new file mode 100644
index 000000000000..9b1e75c1040f
--- /dev/null
+++ b/pkgs/applications/radio/csdr/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub
+, autoreconfHook, pkg-config, fftwFloat, libsamplerate
+}:
+
+stdenv.mkDerivation rec {
+ pname = "csdr";
+ version = "0.17.1";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "1vip5a3xgskcwba3xi66zfr986xrsch9na7my818cm8vw345y57b";
+ };
+
+ patchPhase = ''
+ substituteInPlace configure.ac \
+ --replace -Wformat=0 ""
+ '';
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ ];
+
+ buildInputs = [
+ fftwFloat
+ libsamplerate
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/csdr";
+ description = "A simple DSP library and command-line tool for Software Defined Radio";
+ license = licenses.gpl3Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ astro ];
+ };
+}
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
index 7b8f60819c47..ffd608edf7ff 100644
--- a/pkgs/applications/radio/direwolf/default.nix
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -22,22 +22,23 @@ stdenv.mkDerivation rec {
espeak gpsd hamlib perl python3
] ++ (optionals stdenv.isLinux [alsa-lib udev]);
- patches = [
- ./udev-fix.patch
- ];
-
postPatch = ''
+ substituteInPlace conf/CMakeLists.txt \
+ --replace /etc/udev/rules.d/ $out/lib/udev/rules.d/
substituteInPlace src/symbols.c \
--replace /usr/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt \
--replace /opt/local/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt
substituteInPlace src/decode_aprs.c \
--replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \
--replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
+ patchShebangs scripts/dwespeak.sh
substituteInPlace scripts/dwespeak.sh \
--replace espeak ${espeak}/bin/espeak
substituteInPlace cmake/cpack/direwolf.desktop.in \
--replace 'Terminal=false' 'Terminal=true' \
- --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf' \
+ --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf'
+ substituteInPlace src/dwgpsd.c \
+ --replace 'GPSD_API_MAJOR_VERSION > 11' 'GPSD_API_MAJOR_VERSION > 12'
'';
meta = {
diff --git a/pkgs/applications/radio/direwolf/udev-fix.patch b/pkgs/applications/radio/direwolf/udev-fix.patch
deleted file mode 100644
index cff17fb88621..000000000000
--- a/pkgs/applications/radio/direwolf/udev-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- direwolf/conf/CMakeLists.txt.orig 2020-12-04 11:12:59.739390894 -0600
-+++ direwolf/conf/CMakeLists.txt 2020-12-04 11:23:09.146594795 -0600
-@@ -26,7 +26,7 @@
-
- # install udev rules for CM108
- if(LINUX)
-- install(FILES "${CUSTOM_CONF_DIR}/99-direwolf-cmedia.rules" DESTINATION /etc/udev/rules.d/)
-+ install(FILES "${CUSTOM_CONF_DIR}/99-direwolf-cmedia.rules" DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d/")
- endif()
-
- install(FILES "${CMAKE_BINARY_DIR}/direwolf.conf" DESTINATION ${INSTALL_CONF_DIR})
diff --git a/pkgs/applications/radio/dsd/default.nix b/pkgs/applications/radio/dsd/default.nix
index 35a3e9f44bb2..46b851ec704e 100644
--- a/pkgs/applications/radio/dsd/default.nix
+++ b/pkgs/applications/radio/dsd/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
tap audio and synthesize the decoded speech. Speech synthesis requires
mbelib, which is a separate package.
'';
- homepage = https://github.com/szechyjs/dsd;
+ homepage = "https://github.com/szechyjs/dsd";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ andrew-d ];
diff --git a/pkgs/applications/radio/dump1090/default.nix b/pkgs/applications/radio/dump1090/default.nix
index 927fa32bd55b..00e5e0089cf8 100644
--- a/pkgs/applications/radio/dump1090/default.nix
+++ b/pkgs/applications/radio/dump1090/default.nix
@@ -5,17 +5,19 @@
, libusb1
, ncurses
, rtl-sdr
+, hackrf
+, limesuite
}:
stdenv.mkDerivation rec {
pname = "dump1090";
- version = "5.0";
+ version = "6.1";
src = fetchFromGitHub {
owner = "flightaware";
repo = pname;
rev = "v${version}";
- sha256 = "1fckfcgypmplzl1lidd04jxiabczlfx9mv21d6rbsfknghsjpn03";
+ sha256 = "sha256-OLXnT5TD6ZBNJUk4qXOMbr+NWdw3j1rv1xkFPZi4Wo8=";
};
nativeBuildInputs = [ pkg-config ];
@@ -25,7 +27,15 @@ stdenv.mkDerivation rec {
libusb1
ncurses
rtl-sdr
- ];
+ hackrf
+ ] ++ lib.optional stdenv.isLinux limesuite;
+
+ NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
+ "-Wno-implicit-function-declaration -Wno-int-conversion";
+
+ buildFlags = [ "dump1090" "view1090" ];
+
+ doCheck = true;
installPhase = ''
runHook preInstall
@@ -41,7 +51,7 @@ stdenv.mkDerivation rec {
description = "A simple Mode S decoder for RTLSDR devices";
homepage = "https://github.com/flightaware/dump1090";
license = licenses.gpl2Plus;
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = with maintainers; [ earldouglas ];
};
}
diff --git a/pkgs/applications/radio/flex-ncat/default.nix b/pkgs/applications/radio/flex-ncat/default.nix
new file mode 100644
index 000000000000..360769a44dda
--- /dev/null
+++ b/pkgs/applications/radio/flex-ncat/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "flex-ncat";
+ version = "0.0-20210420.0";
+
+ src = fetchFromGitHub {
+ owner = "kc2g-flex-tools";
+ repo = "nCAT";
+ rev = "v${version}";
+ sha256 = "0wrdmlp9rrr4n0g9pj0j20ddskllyr59dr3p5fm9z0avkncn3a0m";
+ };
+
+ vendorSha256 = "0npzhvpyaxvfaivycnscvh45lp0ycdg9xrlfm8vhfr835yj2adiv";
+
+ meta = with lib; {
+ homepage = "https://github.com/kc2g-flex-tools/nCAT";
+ description = "FlexRadio remote control (CAT) via hamlib/rigctl protocol";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mvs ];
+ };
+}
diff --git a/pkgs/applications/radio/flex-ndax/default.nix b/pkgs/applications/radio/flex-ndax/default.nix
new file mode 100644
index 000000000000..4d27907cdd18
--- /dev/null
+++ b/pkgs/applications/radio/flex-ndax/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub, pulseaudio }:
+
+buildGoModule rec {
+ pname = "flex-ndax";
+ version = "0.1-20210714.0";
+
+ src = fetchFromGitHub {
+ owner = "kc2g-flex-tools";
+ repo = "nDAX";
+ rev = "v${version}";
+ sha256 = "16zx6kbax59rcxyz9dhq7m8yx214knz3xayna1gzb85m6maly8v8";
+ };
+
+ buildInputs = [ pulseaudio ];
+
+ vendorSha256 = "0qn8vg84j9kp0ycn24lkaqjnnk339j3vis4bn48ia3z5vfc22gi5";
+
+ meta = with lib; {
+ homepage = "https://github.com/kc2g-flex-tools/nDAX";
+ description = "FlexRadio digital audio transport (DAX) connector for PulseAudio";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mvs ];
+ };
+}
diff --git a/pkgs/applications/radio/freedv/default.nix b/pkgs/applications/radio/freedv/default.nix
new file mode 100644
index 000000000000..b369a5475e53
--- /dev/null
+++ b/pkgs/applications/radio/freedv/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, codec2
+, libsamplerate
+, libsndfile
+, lpcnetfreedv
+, portaudio
+, speexdsp
+, hamlib
+, wxGTK31-gtk3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "freedv";
+ version = "1.6.1";
+
+ src = fetchFromGitHub {
+ owner = "drowe67";
+ repo = "freedv-gui";
+ rev = "v${version}";
+ sha256 = "1dzhf944vgla9a5ilcgwivhzgdbfaknqnwbpb071a0rz8rajnv0q";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [
+ codec2
+ libsamplerate
+ libsndfile
+ lpcnetfreedv
+ portaudio
+ speexdsp
+ hamlib
+ wxGTK31-gtk3
+ ];
+
+ cmakeFlags = [
+ "-DUSE_INTERNAL_CODEC2:BOOL=FALSE"
+ "-DUSE_STATIC_DEPS:BOOL=FALSE"
+ ];
+
+ meta = with lib; {
+ homepage = "https://freedv.org/";
+ description = "Digital voice for HF radio";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ mvs ];
+ };
+}
diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix
index 44a8ed14c2ec..479b3b641cd3 100644
--- a/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/pkgs/applications/radio/gnss-sdr/default.nix
@@ -8,6 +8,7 @@
, openssl
, gflags
, gnuradio3_8
+, thrift
, libpcap
, orc
, pkg-config
@@ -21,6 +22,8 @@
gnuradio3_8.pkgs.mkDerivation rec {
pname = "gnss-sdr";
+ # There's an issue with cpufeatures on 0.0.15, see:
+ # https://github.com/NixOS/nixpkgs/pull/142557#issuecomment-950217925
version = "0.0.13";
src = fetchFromGitHub {
@@ -56,6 +59,9 @@ gnuradio3_8.pkgs.mkDerivation rec {
protobuf
gnuradio3_8.pkgs.osmosdr
libpcap
+ ] ++ lib.optionals (gnuradio3_8.hasFeature "gr-ctrlport") [
+ thrift
+ gnuradio3_8.unwrapped.python.pkgs.thrift
];
cmakeFlags = [
diff --git a/pkgs/applications/radio/gnuradio/3.7.nix b/pkgs/applications/radio/gnuradio/3.7.nix
index 3e423e025b76..372300895ca2 100644
--- a/pkgs/applications/radio/gnuradio/3.7.nix
+++ b/pkgs/applications/radio/gnuradio/3.7.nix
@@ -44,8 +44,6 @@
minor = "14";
patch = "0";
}
-# We use our build of volk and not the one bundled with the release
-, fetchSubmodules ? false
}:
let
@@ -213,7 +211,6 @@ let
sourceSha256
overrideSrc
fetchFromGitHub
- fetchSubmodules
;
qt = qt4;
gtk = gtk2;
@@ -238,34 +235,34 @@ stdenv.mkDerivation rec {
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
- } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+ } // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are
# not detected properly (slightly different then what's in
# ./default.nix).
- ++ lib.optionals (hasFeature "gr-vocoder" features) [
+ ++ lib.optionals (hasFeature "gr-vocoder") [
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIR=${codec2}/include"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
]
- ++ lib.optionals (hasFeature "volk" features && volk != null) [
+ ++ lib.optionals (hasFeature "volk" && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
stripDebugList = shared.stripDebugList
# gr-fcd feature was dropped in 3.8
- ++ lib.optionals (hasFeature "gr-fcd" features) [ "share/gnuradio/examples/fcd" ]
+ ++ lib.optionals (hasFeature "gr-fcd") [ "share/gnuradio/examples/fcd" ]
;
preConfigure = ""
# wxgui and pygtk are not looked up properly, so we force them to be
# detected as found, if they are requested by the `features` attrset.
- + lib.optionalString (hasFeature "gr-wxgui" features) ''
+ + lib.optionalString (hasFeature "gr-wxgui") ''
sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt
''
- + lib.optionalString (hasFeature "gnuradio-companion" features) ''
+ + lib.optionalString (hasFeature "gnuradio-companion") ''
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
''
;
diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix
index 05a87a480f39..0e5b7701e987 100644
--- a/pkgs/applications/radio/gnuradio/3.8.nix
+++ b/pkgs/applications/radio/gnuradio/3.8.nix
@@ -1,5 +1,6 @@
{ lib, stdenv
, fetchFromGitHub
+, fetchpatch
, cmake
# Remove gcc and python references
, removeReferencesTo
@@ -15,6 +16,7 @@
, python
, codec2
, gsm
+, thrift
, fftwFloat
, alsa-lib
, libjack2
@@ -41,15 +43,13 @@
, pname ? "gnuradio"
, versionAttr ? {
major = "3.8";
- minor = "3";
- patch = "1";
+ minor = "4";
+ patch = "0";
}
-# We use our build of volk and not the one bundled with the release
-, fetchSubmodules ? false
}:
let
- sourceSha256 = "0vd39azp8n576dbqsanax7bgsnxwc80riaxid2ihxs4xzyjmbw9r";
+ sourceSha256 = "sha256-C8S3iF7vj9A8SpxriW9y7idrhXzonvenoQtVAMex+Iw=";
featuresInfo = {
# Needed always
basic = {
@@ -65,7 +65,7 @@ let
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
- ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
+ ++ lib.optionals (!(hasFeature "gr-qtgui")) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
@@ -101,13 +101,19 @@ let
cmakeEnableFlag = "GNURADIO_RUNTIME";
};
gr-ctrlport = {
- # Thrift support is not really working well, and even the patch they
- # recommend applying on 0.9.2 won't apply. See:
- # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
cmakeEnableFlag = "GR_CTRLPORT";
native = [
swig
];
+ runtime = [
+ thrift
+ ];
+ pythonRuntime = with python.pkgs; [
+ python.pkgs.thrift
+ # For gr-perf-monitorx
+ matplotlib
+ networkx
+ ];
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
@@ -171,9 +177,14 @@ let
};
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
+ pythonRuntime = with python.pkgs; [
+ # For gr_plot
+ matplotlib
+ ];
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
+ setuptools
click
click-plugins
];
@@ -208,7 +219,6 @@ let
sourceSha256
overrideSrc
fetchFromGitHub
- fetchSubmodules
;
qt = qt5;
gtk = gtk3;
@@ -230,12 +240,21 @@ stdenv.mkDerivation rec {
dontWrapQtApps
meta
;
+ patches = [
+ # Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
+ ./modtool-newmod-permissions.3_8.patch
+ (fetchpatch {
+ # https://github.com/gnuradio/gnuradio/pull/5226
+ url = "https://github.com/gnuradio/gnuradio/commit/9d7343526dd793120b6425cd9a6969416ed32503.patch";
+ sha256 = "sha256-usSoRDDuClUfdX4yFbQNu8wDzve6UEhZYTFj1oZbFic=";
+ })
+ ];
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
- } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+ } // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
- } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+ } // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit (libsForQt5) qwt;
};
cmakeFlags = shared.cmakeFlags
@@ -246,7 +265,7 @@ stdenv.mkDerivation rec {
#
# NOTE: qradiolink needs libcodec2 to be detected in
# order to build, see https://github.com/qradiolink/qradiolink/issues/67
- ++ lib.optionals (hasFeature "gr-vocoder" features) [
+ ++ lib.optionals (hasFeature "gr-vocoder") [
"-DLIBCODEC2_FOUND=TRUE"
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
@@ -255,7 +274,7 @@ stdenv.mkDerivation rec {
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
]
- ++ lib.optionals (hasFeature "volk" features && volk != null) [
+ ++ lib.optionals (hasFeature "volk" && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
@@ -263,7 +282,7 @@ stdenv.mkDerivation rec {
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed (3.7 doesn't
# set that reference).
- + lib.optionalString (!hasFeature "python-support" features) ''
+ + lib.optionalString (!hasFeature "python-support") ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
''
;
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index c62b031d8133..d92af80701b1 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -26,6 +26,7 @@
, libsodium
, libsndfile
, libunwind
+, thrift
, cppzmq
, zeromq
# Needed only if qt-gui is disabled, from some reason
@@ -45,14 +46,13 @@
, pname ? "gnuradio"
, versionAttr ? {
major = "3.9";
- minor = "2";
+ minor = "3";
patch = "0";
}
-, fetchSubmodules ? false
}:
let
- sourceSha256 = "01wyqazrpphmb0fl69j93k0w4vm4d1l4177m1fyg7qx8hzia0aaq";
+ sourceSha256 = "sha256-jVfExv1CcnlOaaj/XtnfhWAHnQsshZJ1l/zXo0uovdo=";
featuresInfo = {
# Needed always
basic = {
@@ -69,7 +69,7 @@ let
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
- ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
+ ++ lib.optionals (!(hasFeature "gr-qtgui")) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
@@ -100,11 +100,15 @@ let
];
};
gr-ctrlport = {
- # Thrift support is not really working well, and even the patch they
- # recommend applying on 0.9.2 won't apply. See:
- # https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
runtime = [
libunwind
+ thrift
+ ];
+ pythonRuntime = with python.pkgs; [
+ python.pkgs.thrift
+ # For gr-perf-monitorx
+ matplotlib
+ networkx
];
cmakeEnableFlag = "GR_CTRLPORT";
};
@@ -140,6 +144,10 @@ let
gr-filter = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FILTER";
+ pythonRuntime = with python.pkgs; [
+ scipy
+ pyqtgraph
+ ];
};
gr-analog = {
cmakeEnableFlag = "GR_ANALOG";
@@ -174,11 +182,22 @@ let
];
cmakeEnableFlag = "GR_UHD";
};
+ gr-uhd-rfnoc = {
+ runtime = [
+ uhd
+ ];
+ cmakeEnableFlag = "UHD_RFNOC";
+ };
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
+ pythonRuntime = with python.pkgs; [
+ # For gr_plot
+ matplotlib
+ ];
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
+ setuptools
click
click-plugins
];
@@ -225,7 +244,6 @@ let
sourceSha256
overrideSrc
fetchFromGitHub
- fetchSubmodules
;
qt = qt5;
gtk = gtk3;
@@ -248,18 +266,27 @@ stdenv.mkDerivation rec {
dontWrapQtApps
meta
;
+ patches = [
+ # Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
+ ./modtool-newmod-permissions.patch
+ (fetchpatch {
+ # https://github.com/gnuradio/gnuradio/pull/5225
+ url = "https://github.com/gnuradio/gnuradio/commit/4cef46e3ea0faf04e05ca1a5846cd1568fa51bb2.patch";
+ sha256 = "sha256-6AlGbtD1S0c3I9JSoLTMP4YqwDU17i2j+XRkuR+QTuc=";
+ })
+ ];
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
- } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+ } // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
- } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+ } // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit (libsForQt5) qwt;
};
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed.
- + lib.optionalString (!hasFeature "python-support" features) ''
+ + lib.optionalString (!hasFeature "python-support") ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
diff --git a/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.3_8.patch b/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.3_8.patch
new file mode 100644
index 000000000000..f6a6a06e89c4
--- /dev/null
+++ b/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.3_8.patch
@@ -0,0 +1,26 @@
+commit bf870157e0a9c3d19e968afb276b4e7d96b4df30
+Author: Doron Behar
+Date: Thu Oct 21 13:10:42 2021 +0300
+
+ gr-modtool: Don't copy source permissions
+
+ This is needed for systems such as NixOS, where the build tree isn't
+ writable and the files copied should be.
+
+ Signed-off-by: Doron Behar
+
+diff --git a/gr-utils/python/modtool/core/newmod.py b/gr-utils/python/modtool/core/newmod.py
+index 123059907..0c734e7ae 100644
+--- a/gr-utils/python/modtool/core/newmod.py
++++ b/gr-utils/python/modtool/core/newmod.py
+@@ -78,7 +78,9 @@ class ModToolNewModule(ModTool):
+ self._setup_scm(mode='new')
+ logger.info("Creating out-of-tree module in {}...".format(self.dir))
+ try:
+- shutil.copytree(self.srcdir, self.dir)
++ # https://stackoverflow.com/a/17022146/4935114
++ shutil.copystat = lambda x, y: x
++ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
+ os.chdir(self.dir)
+ except OSError:
+ raise ModToolException('Could not create directory {}.'.format(self.dir))
diff --git a/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.patch b/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.patch
new file mode 100644
index 000000000000..7cab73fede0c
--- /dev/null
+++ b/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.patch
@@ -0,0 +1,15 @@
+diff --git c/gr-utils/modtool/core/newmod.py w/gr-utils/modtool/core/newmod.py
+index babebfcde..9a02f663e 100644
+--- c/gr-utils/modtool/core/newmod.py
++++ w/gr-utils/modtool/core/newmod.py
+@@ -62,7 +62,9 @@ class ModToolNewModule(ModTool):
+ self._setup_scm(mode='new')
+ logger.info(f"Creating out-of-tree module in {self.dir}...")
+ try:
+- shutil.copytree(self.srcdir, self.dir)
++ # https://stackoverflow.com/a/17022146/4935114
++ shutil.copystat = lambda x, y: x
++ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
+ try:
+ shutil.copyfile(os.path.join(gr.prefix(), 'share', 'gnuradio', 'clang-format.conf'),
+ os.path.join(self.dir, '.clang-format'))
diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix
index f8ea2f0b1601..ea97864bc615 100644
--- a/pkgs/applications/radio/gnuradio/shared.nix
+++ b/pkgs/applications/radio/gnuradio/shared.nix
@@ -11,7 +11,6 @@
# the main expressions
, overrideSrc
, fetchFromGitHub
-, fetchSubmodules
}:
rec {
@@ -26,12 +25,11 @@ rec {
owner = "gnuradio";
rev = "v${version}";
sha256 = sourceSha256;
- inherit fetchSubmodules;
}
;
# Check if a feature is enabled, while defaulting to true if feat is not
# specified.
- hasFeature = feat: features: (
+ hasFeature = feat: (
if builtins.hasAttr feat features then
features.${feat}
else
@@ -39,7 +37,7 @@ rec {
);
nativeBuildInputs = lib.flatten (lib.mapAttrsToList (
feat: info: (
- if hasFeature feat features then
+ if hasFeature feat then
(if builtins.hasAttr "native" info then info.native else []) ++
(if builtins.hasAttr "pythonNative" info then info.pythonNative else [])
else
@@ -48,7 +46,7 @@ rec {
) featuresInfo);
buildInputs = lib.flatten (lib.mapAttrsToList (
feat: info: (
- if hasFeature feat features then
+ if hasFeature feat then
(if builtins.hasAttr "runtime" info then info.runtime else []) ++
(if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else [])
else
@@ -63,7 +61,7 @@ rec {
# satisfied, let only our cmakeFlags decide.
"-DENABLE_DEFAULT=OFF"
else
- if hasFeature feat features then
+ if hasFeature feat then
"-DENABLE_${info.cmakeEnableFlag}=ON"
else
"-DENABLE_${info.cmakeEnableFlag}=OFF"
@@ -75,17 +73,17 @@ rec {
stdenv.cc.cc
]
# If python-support is disabled, we probably don't want it referenced
- ++ lib.optionals (!hasFeature "python-support" features) [ python ]
+ ++ lib.optionals (!hasFeature "python-support") [ python ]
;
# Gcc references from examples
stripDebugList = [ "lib" "bin" ]
- ++ lib.optionals (hasFeature "gr-audio" features) [ "share/gnuradio/examples/audio" ]
- ++ lib.optionals (hasFeature "gr-uhd" features) [ "share/gnuradio/examples/uhd" ]
- ++ lib.optionals (hasFeature "gr-qtgui" features) [ "share/gnuradio/examples/qt-gui" ]
+ ++ lib.optionals (hasFeature "gr-audio") [ "share/gnuradio/examples/audio" ]
+ ++ lib.optionals (hasFeature "gr-uhd") [ "share/gnuradio/examples/uhd" ]
+ ++ lib.optionals (hasFeature "gr-qtgui") [ "share/gnuradio/examples/qt-gui" ]
;
postInstall = ""
# Gcc references
- + lib.optionalString (hasFeature "gnuradio-runtime" features) ''
+ + lib.optionalString (hasFeature "gnuradio-runtime") ''
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
''
;
@@ -101,9 +99,9 @@ rec {
featuresInfo
python
;
- } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+ } // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit qt;
- } // lib.optionalAttrs (hasFeature "gnuradio-companion" features) {
+ } // lib.optionalAttrs (hasFeature "gnuradio-companion") {
inherit gtk;
};
# Wrapping is done with an external wrapper
diff --git a/pkgs/applications/radio/gnuradio/wrapper.nix b/pkgs/applications/radio/gnuradio/wrapper.nix
index 7dcb6d467d62..4cbccbd51819 100644
--- a/pkgs/applications/radio/gnuradio/wrapper.nix
+++ b/pkgs/applications/radio/gnuradio/wrapper.nix
@@ -33,25 +33,20 @@
}:
let
+ # We don't check if `python-support` feature is on, as it's unlikely someone
+ # may wish to wrap GR without python support.
pythonPkgs = extraPythonPackages
+ ++ [ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
# Add the extraPackages as python modules as well
++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
++ lib.flatten (lib.mapAttrsToList (
feat: info: (
- if unwrapped.hasFeature feat unwrapped.features then
+ if unwrapped.hasFeature feat then
(if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else [])
else
[]
)
) unwrapped.featuresInfo)
- ++ lib.optionals
- (unwrapped.hasFeature "python-support" unwrapped.features)
- (
- # Add unwrapped itself as a python module
- [ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
- # Add all extraPackages as python modules
- ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
- )
;
pythonEnv = unwrapped.python.withPackages(ps: pythonPkgs);
@@ -60,8 +55,8 @@ let
]
# Emulating wrapGAppsHook & wrapQtAppsHook working together
++ lib.optionals (
- (unwrapped.hasFeature "gnuradio-companion" unwrapped.features)
- || (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
+ (unwrapped.hasFeature "gnuradio-companion")
+ || (unwrapped.hasFeature "gr-qtgui")
) [
"--prefix" "XDG_DATA_DIRS" ":" "$out/share"
"--prefix" "XDG_DATA_DIRS" ":" "$out/share/gsettings-schemas/${name}"
@@ -71,7 +66,7 @@ let
# https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1764890.html
"--prefix" "PATH" ":" "${lib.getBin glib}/bin"
]
- ++ lib.optionals (unwrapped.hasFeature "gnuradio-companion" unwrapped.features) [
+ ++ lib.optionals (unwrapped.hasFeature "gnuradio-companion") [
"--set" "GDK_PIXBUF_MODULE_FILE" "${librsvg}/${gdk-pixbuf.moduleDir}.cache"
"--prefix" "GIO_EXTRA_MODULES" ":" "${lib.getLib dconf}/lib/gio/modules"
"--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk}/share"
@@ -94,7 +89,7 @@ let
++ lib.optionals (extraPackages != []) [
"--prefix" "GRC_BLOCKS_PATH" ":" "${lib.makeSearchPath "share/gnuradio/grc/blocks" extraPackages}"
]
- ++ lib.optionals (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
+ ++ lib.optionals (unwrapped.hasFeature "gr-qtgui")
# 3.7 builds with qt4
(if lib.versionAtLeast unwrapped.versionAttr.major "3.8" then
[
diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix
index 272c381db897..572efa3fac6c 100644
--- a/pkgs/applications/radio/gqrx/default.nix
+++ b/pkgs/applications/radio/gqrx/default.nix
@@ -4,6 +4,7 @@
, pkg-config
, qt5
, gnuradio3_8Minimal
+, thrift
, log4cpp
, mpir
, fftwFloat
@@ -19,13 +20,13 @@ assert pulseaudioSupport -> libpulseaudio != null;
gnuradio3_8Minimal.pkgs.mkDerivation rec {
pname = "gqrx";
- version = "2.14.4";
+ version = "2.14.6";
src = fetchFromGitHub {
owner = "csete";
repo = "gqrx";
rev = "v${version}";
- sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ=";
+ sha256 = "sha256-DMmQXcGPudAVOwuc+LVrcIzfwMMQVBZPbM6Bt1w56D8=";
};
nativeBuildInputs = [
@@ -45,6 +46,9 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
gnuradio3_8Minimal.pkgs.osmosdr
rtl-sdr
hackrf
+ ] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
+ thrift
+ gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
postInstall = ''
diff --git a/pkgs/applications/radio/hackrf/default.nix b/pkgs/applications/radio/hackrf/default.nix
index 98dce802c5c5..a81227ddd46d 100644
--- a/pkgs/applications/radio/hackrf/default.nix
+++ b/pkgs/applications/radio/hackrf/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "hackrf";
- version = "2018.01.1";
+ version = "2021.03.1";
src = fetchFromGitHub {
- owner = "mossmann";
+ owner = "greatscottgadgets";
repo = "hackrf";
rev = "v${version}";
- sha256 = "0idh983xh6gndk9kdgx5nzz76x3mxb42b02c5xvdqahadsfx3b9w";
+ sha256 = "sha256-2kEfTco95I9YLz/18nfjJSd7U/HE5sBCEioWL2t804k=";
};
nativeBuildInputs = [
@@ -27,6 +27,11 @@ stdenv.mkDerivation rec {
cd host
'';
+ postPatch = ''
+ substituteInPlace host/cmake/modules/FindFFTW.cmake \
+ --replace "find_library (FFTW_LIBRARIES NAMES fftw3)" "find_library (FFTW_LIBRARIES NAMES fftw3f)"
+ '';
+
meta = with lib; {
description = "An open source SDR platform";
homepage = "https://greatscottgadgets.com/hackrf/";
diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix
index 9d61ab4b6019..0f0b89d43165 100644
--- a/pkgs/applications/radio/inspectrum/default.nix
+++ b/pkgs/applications/radio/inspectrum/default.nix
@@ -1,5 +1,6 @@
{ lib
, gnuradio3_8Minimal
+, thrift
, fetchFromGitHub
, pkg-config
, cmake
@@ -28,6 +29,9 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
fftwFloat
liquid-dsp
qt5.qtbase
+ ] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
+ thrift
+ gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
];
meta = with lib; {
diff --git a/pkgs/applications/radio/kalibrate-hackrf/default.nix b/pkgs/applications/radio/kalibrate-hackrf/default.nix
index 5792031c802d..f10840e1bea9 100644
--- a/pkgs/applications/radio/kalibrate-hackrf/default.nix
+++ b/pkgs/applications/radio/kalibrate-hackrf/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fftw, hackrf, libusb1 }:
stdenv.mkDerivation {
- name = "kalibrate-hackrf-unstable-20160827";
+ pname = "kalibrate-hackrf";
+ version = "unstable-2016-08-27";
# There are no tags/releases, so use the latest commit from git master.
# Currently, the latest commit is from 2016-07-03.
diff --git a/pkgs/applications/radio/kalibrate-rtl/default.nix b/pkgs/applications/radio/kalibrate-rtl/default.nix
index 255938b11d52..4fe9ad086781 100644
--- a/pkgs/applications/radio/kalibrate-rtl/default.nix
+++ b/pkgs/applications/radio/kalibrate-rtl/default.nix
@@ -1,17 +1,18 @@
-{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, fftw, rtl-sdr, libusb1 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fftw, rtl-sdr, libusb1 }:
stdenv.mkDerivation {
- name = "kalibrate-rtl-20131214";
+ pname = "kalibrate-rtl";
+ version = "unstable-2013-12-14";
- # There are no tags/releases, so use the latest commit from git master.
- # Currently, the latest commit is from 2013-12-14.
- src = fetchgit {
- url = "https://github.com/steve-m/kalibrate-rtl.git";
+ src = fetchFromGitHub {
+ owner = "steve-m";
+ repo = "kalibrate-rtl";
rev = "aae11c8a8dc79692a94ccfee39ba01e8c8c05d38";
sha256 = "1spbfflkqnw9s8317ppsf7b1nnkicqsmaqsnz1zf8i49ix70i6kn";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
+
buildInputs = [ fftw rtl-sdr libusb1 ];
meta = with lib; {
@@ -26,6 +27,6 @@ stdenv.mkDerivation {
homepage = "https://github.com/steve-m/kalibrate-rtl";
license = licenses.bsd2;
platforms = platforms.linux;
- maintainers = [ maintainers.bjornfor ];
+ maintainers = with maintainers; [ bjornfor ];
};
}
diff --git a/pkgs/applications/radio/kappanhang/default.nix b/pkgs/applications/radio/kappanhang/default.nix
new file mode 100644
index 000000000000..a236de8d9468
--- /dev/null
+++ b/pkgs/applications/radio/kappanhang/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub, pkg-config, pulseaudio }:
+
+buildGoModule rec {
+ pname = "kappanhang";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "nonoo";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ycy8avq5s7zspfi0d9klqcwwkpmcaz742cigd7pmcnbbhspcicp";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ pulseaudio ];
+
+ vendorSha256 = "1srjngcis42wfskwfqxxj101y9xyzrans1smy53bh1c9zm856xha";
+
+ meta = with lib; {
+ homepage = "https://github.com/nonoo/kappanhang";
+ description = "Remote control for Icom radio transceivers";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mvs ];
+ };
+}
diff --git a/pkgs/applications/radio/openwebrx/default.nix b/pkgs/applications/radio/openwebrx/default.nix
new file mode 100644
index 000000000000..928bc4168ebd
--- /dev/null
+++ b/pkgs/applications/radio/openwebrx/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, buildPythonPackage, buildPythonApplication, fetchFromGitHub
+, pkg-config, cmake, setuptools
+, rtl-sdr, soapysdr-with-plugins, csdr, direwolf
+}:
+
+let
+
+ js8py = buildPythonPackage rec {
+ pname = "js8py";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "1j80zclg1cl5clqd00qqa16prz7cyc32bvxqz2mh540cirygq24w";
+ };
+
+ pythonImportsCheck = [ "js8py" "test" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/js8py";
+ description = "A library to decode the output of the js8 binary of JS8Call";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ astro ];
+ };
+ };
+
+ owrx_connector = stdenv.mkDerivation rec {
+ pname = "owrx_connector";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "0gz4nf2frrkx1mpjfjpz2j919fkc99g5lxd8lhva3lgqyisvf4yj";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ rtl-sdr
+ soapysdr-with-plugins
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/owrx_connector";
+ description = "A set of connectors that are used by OpenWebRX to interface with SDR hardware";
+ license = licenses.gpl3Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ astro ];
+ };
+ };
+
+in
+buildPythonApplication rec {
+ pname = "openwebrx";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "0maxs07yx235xknvkbmhi2zds3vfkd66l6wz6kspz3jzl4c0v1f9";
+ };
+
+ propagatedBuildInputs = [
+ setuptools
+ csdr
+ js8py
+ soapysdr-with-plugins
+ owrx_connector
+ direwolf
+ ];
+
+ pythonImportsCheck = [ "csdr" "owrx" "test" ];
+
+ passthru = {
+ inherit js8py owrx_connector;
+ };
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/openwebrx";
+ description = "A simple DSP library and command-line tool for Software Defined Radio";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ astro ];
+ };
+}
diff --git a/pkgs/applications/radio/pothos/default.nix b/pkgs/applications/radio/pothos/default.nix
index 77a7d8cf69f4..817013dbf3ec 100644
--- a/pkgs/applications/radio/pothos/default.nix
+++ b/pkgs/applications/radio/pothos/default.nix
@@ -69,6 +69,6 @@ mkDerivation rec {
homepage = "https://github.com/pothosware/PothosCore/wiki";
license = licenses.boost;
platforms = platforms.linux;
- maintainers = with maintainers; [ eduardosm ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/radio/qradiolink/default.nix b/pkgs/applications/radio/qradiolink/default.nix
index 2f31761537d0..31be8f4fb8b6 100644
--- a/pkgs/applications/radio/qradiolink/default.nix
+++ b/pkgs/applications/radio/qradiolink/default.nix
@@ -4,6 +4,7 @@
, libconfig
# Needs a gnuradio built with qt gui support
, gnuradio3_8
+, thrift
# Not gnuradioPackages'
, codec2
, log4cpp
@@ -61,6 +62,9 @@ gnuradio3_8.pkgs.mkDerivation rec {
libftdi
libsndfile
gnuradio3_8.qwt
+ ] ++ lib.optionals (gnuradio3_8.hasFeature "gr-ctrlport") [
+ thrift
+ gnuradio3_8.unwrapped.python.pkgs.thrift
];
nativeBuildInputs = [
protobuf
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index e9a15aaed194..2ba379400382 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -33,13 +33,13 @@
mkDerivation rec {
pname = "sdrangel";
- version = "6.16.2";
+ version = "6.17.2";
src = fetchFromGitHub {
owner = "f4exb";
repo = "sdrangel";
rev = "v${version}";
- sha256 = "sha256-wWGKJWd3JDaT0dDMUrxv9ShMVe+q4zvH8SjyKw7UIbo=";
+ sha256 = "sha256-sMD2JTJJlssMdXCUHdFYjEqGknhGGuG4szfnvFFN7t4=";
fetchSubmodules = false;
};
diff --git a/pkgs/applications/radio/sdrpp/default.nix b/pkgs/applications/radio/sdrpp/default.nix
new file mode 100644
index 000000000000..5a993f4fc100
--- /dev/null
+++ b/pkgs/applications/radio/sdrpp/default.nix
@@ -0,0 +1,116 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
+, libX11, glfw, glew, fftwFloat, volk, AppKit
+# Sources
+, airspy_source ? true, airspy
+, airspyhf_source ? true, airspyhf
+, bladerf_source ? false, libbladeRF
+, file_source ? true
+, hackrf_source ? true, hackrf
+, limesdr_source ? false, limesuite
+, sddc_source ? false
+, rtl_sdr_source ? true, librtlsdr, libusb1
+, rtl_tcp_source ? true
+, sdrplay_source ? false, sdrplay
+, soapy_source ? true, soapysdr
+, spyserver_source ? true
+, plutosdr_source ? stdenv.isLinux, libiio, libad9361
+# Sinks
+, audio_sink ? true, rtaudio
+, portaudio_sink ? false, portaudio
+, network_sink ? true
+# Decoders
+, falcon9_decoder ? false
+, m17_decoder ? false, codec2
+, meteor_demodulator ? true
+, radio ? true
+, weather_sat_decoder ? true
+# Misc
+, discord_presence ? true
+, frequency_manager ? true
+, recorder ? true
+, rigctl_server ? true
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sdrpp";
+ version = "1.0.4";
+
+ src = fetchFromGitHub {
+ owner = "AlexandreRouma";
+ repo = "SDRPlusPlus";
+ rev = version;
+ hash = "sha256-g9tpWvVRMXRhPfgvOeJhX6IMouF9+tLUr9wo5r35i/c=";
+ };
+
+ patches = [ ./runtime-prefix.patch ];
+
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "/usr/share" "share" \
+ --replace "set(CMAKE_INSTALL_PREFIX" "#set(CMAKE_INSTALL_PREFIX"
+ substituteInPlace decoder_modules/m17_decoder/src/m17dsp.h \
+ --replace "codec2.h" "codec2/codec2.h"
+ '';
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ glfw glew fftwFloat volk ]
+ ++ lib.optional stdenv.isDarwin AppKit
+ ++ lib.optional stdenv.isLinux libX11
+ ++ lib.optional airspy_source airspy
+ ++ lib.optional airspyhf_source airspyhf
+ ++ lib.optional bladerf_source libbladeRF
+ ++ lib.optional hackrf_source hackrf
+ ++ lib.optional limesdr_source limesuite
+ ++ lib.optionals rtl_sdr_source [ librtlsdr libusb1 ]
+ ++ lib.optional sdrplay_source sdrplay
+ ++ lib.optional soapy_source soapysdr
+ ++ lib.optionals plutosdr_source [ libiio libad9361 ]
+ ++ lib.optional audio_sink rtaudio
+ ++ lib.optional portaudio_sink portaudio
+ ++ lib.optional m17_decoder codec2;
+
+ cmakeFlags = lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") {
+ OPT_BUILD_AIRSPY_SOURCE = airspy_source;
+ OPT_BUILD_AIRSPYHF_SOURCE = airspyhf_source;
+ OPT_BUILD_BLADERF_SOURCE = bladerf_source;
+ OPT_BUILD_FILE_SOURCE = file_source;
+ OPT_BUILD_HACKRF_SOURCE = hackrf_source;
+ OPT_BUILD_LIMESDR_SOURCE = limesdr_source;
+ OPT_BUILD_SDDC_SOURCE = sddc_source;
+ OPT_BUILD_RTL_SDR_SOURCE = rtl_sdr_source;
+ OPT_BUILD_RTL_TCP_SOURCE = rtl_tcp_source;
+ OPT_BUILD_SDRPLAY_SOURCE = sdrplay_source;
+ OPT_BUILD_SOAPY_SOURCE = soapy_source;
+ OPT_BUILD_SPYSERVER_SOURCE = spyserver_source;
+ OPT_BUILD_PLUTOSDR_SOURCE = plutosdr_source;
+ OPT_BUILD_AUDIO_SINK = audio_sink;
+ OPT_BUILD_PORTAUDIO_SINK = portaudio_sink;
+ OPT_BUILD_NETWORK_SINK = network_sink;
+ OPT_BUILD_NEW_PORTAUDIO_SINK = portaudio_sink;
+ OPT_BUILD_FALCON9_DECODER = falcon9_decoder;
+ OPT_BUILD_M17_DECODER = m17_decoder;
+ OPT_BUILD_METEOR_DEMODULATOR = meteor_demodulator;
+ OPT_BUILD_RADIO = radio;
+ OPT_BUILD_WEATHER_SAT_DECODER = weather_sat_decoder;
+ OPT_BUILD_DISCORD_PRESENCE = discord_presence;
+ OPT_BUILD_FREQUENCY_MANAGER = frequency_manager;
+ OPT_BUILD_RECORDER = recorder;
+ OPT_BUILD_RIGCTL_SERVER = rigctl_server;
+ };
+
+ CXXFLAGS = lib.optional stdenv.cc.isClang "-std=c++17";
+ LDFLAGS = lib.optional stdenv.cc.isClang "-lc++fs";
+
+ NIX_CFLAGS_COMPILE = "-fpermissive";
+
+ hardeningDisable = lib.optional stdenv.cc.isClang "format";
+
+ meta = with lib; {
+ description = "Cross-Platform SDR Software";
+ homepage = "https://github.com/AlexandreRouma/SDRPlusPlus";
+ license = licenses.gpl3Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/pkgs/applications/radio/sdrpp/runtime-prefix.patch b/pkgs/applications/radio/sdrpp/runtime-prefix.patch
new file mode 100644
index 000000000000..55ecd8ce3eee
--- /dev/null
+++ b/pkgs/applications/radio/sdrpp/runtime-prefix.patch
@@ -0,0 +1,60 @@
+From a80a739163d2013ec400223a68a387f4f9297b2a Mon Sep 17 00:00:00 2001
+From: Nikolay Korotkiy
+Date: Fri, 29 Oct 2021 01:38:21 +0300
+Subject: [PATCH] Fix sdrpp breaking every time the package is rebuilt.
+
+On NixOS, the INSTALL_PREFIX changes on every rebuild to the package, but sdrpp
+fills it in as part of the default config and then installs that config
+to the users home folder. Fix this by not substituting @INSTALL_PREFIX@ in the
+default config until runtime.
+---
+ core/src/core.cpp | 8 ++++++--
+ core/src/gui/main_window.cpp | 6 ++++++
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/core/src/core.cpp b/core/src/core.cpp
+index 9546e60..98d6065 100644
+--- a/core/src/core.cpp
++++ b/core/src/core.cpp
+@@ -242,8 +242,8 @@ int sdrpp_main(int argc, char *argv[]) {
+ defConfig["modulesDirectory"] = "./modules";
+ defConfig["resourcesDirectory"] = "./res";
+ #else
+- defConfig["modulesDirectory"] = INSTALL_PREFIX "/lib/sdrpp/plugins";
+- defConfig["resourcesDirectory"] = INSTALL_PREFIX "/share/sdrpp";
++ defConfig["modulesDirectory"] = "@prefix@/lib/sdrpp/plugins";
++ defConfig["resourcesDirectory"] = "@prefix@/share/sdrpp";
+ #endif
+
+ // Load config
+@@ -290,6 +290,10 @@ int sdrpp_main(int argc, char *argv[]) {
+ int winHeight = core::configManager.conf["windowSize"]["h"];
+ maximized = core::configManager.conf["maximized"];
+ std::string resDir = core::configManager.conf["resourcesDirectory"];
++ {
++ std::size_t pos = resDir.find("@prefix@");
++ if (pos != std::string::npos) resDir.replace(pos, 8, INSTALL_PREFIX);
++ }
+ json bandColors = core::configManager.conf["bandColors"];
+ core::configManager.release();
+
+diff --git a/core/src/gui/main_window.cpp b/core/src/gui/main_window.cpp
+index 954dbd6..52f0eed 100644
+--- a/core/src/gui/main_window.cpp
++++ b/core/src/gui/main_window.cpp
+@@ -44,6 +44,12 @@ void MainWindow::init() {
+ json menuElements = core::configManager.conf["menuElements"];
+ std::string modulesDir = core::configManager.conf["modulesDirectory"];
+ std::string resourcesDir = core::configManager.conf["resourcesDirectory"];
++ {
++ std::size_t pos = modulesDir.find("@prefix@");
++ if (pos != std::string::npos) modulesDir.replace(pos, 8, INSTALL_PREFIX);
++ pos = resourcesDir.find("@prefix@");
++ if (pos != std::string::npos) resourcesDir.replace(pos, 8, INSTALL_PREFIX);
++ }
+ core::configManager.release();
+
+ // Load menu elements
+--
+2.33.0
+
diff --git a/pkgs/applications/radio/soapyrtlsdr/default.nix b/pkgs/applications/radio/soapyrtlsdr/default.nix
index 855213fc5140..5adf07053ab3 100644
--- a/pkgs/applications/radio/soapyrtlsdr/default.nix
+++ b/pkgs/applications/radio/soapyrtlsdr/default.nix
@@ -26,6 +26,6 @@ in stdenv.mkDerivation {
description = "SoapySDR plugin for RTL-SDR devices";
license = licenses.mit;
maintainers = with maintainers; [ ragge ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/radio/soapysdr/default.nix b/pkgs/applications/radio/soapysdr/default.nix
index c6335b51c416..efd438adf637 100644
--- a/pkgs/applications/radio/soapysdr/default.nix
+++ b/pkgs/applications/radio/soapysdr/default.nix
@@ -50,6 +50,6 @@ in stdenv.mkDerivation {
description = "Vendor and platform neutral SDR support library";
license = licenses.boost;
maintainers = with maintainers; [ markuskowa ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/radio/wsjtx/default.nix b/pkgs/applications/radio/wsjtx/default.nix
index 8dbdd5d4ff27..3e889c210649 100644
--- a/pkgs/applications/radio/wsjtx/default.nix
+++ b/pkgs/applications/radio/wsjtx/default.nix
@@ -4,12 +4,12 @@
stdenv.mkDerivation rec {
pname = "wsjtx";
- version = "2.4.0";
+ version = "2.5.1";
# This is a "superbuild" tarball containing both wsjtx and a hamlib fork
src = fetchurl {
url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
- sha256 = "sha256-LpfGzI/Hpsp7/K0ZZu2EFVlvWcN0cnAQ1RNAxCMugcg=";
+ sha256 = "sha256-aof+OavQ+IBw3eef1+bQ9YwIXCdecYiADS+eRXTrmvQ=";
};
# Hamlib builds with autotools, wsjtx builds with cmake
diff --git a/pkgs/applications/radio/xlog/default.nix b/pkgs/applications/radio/xlog/default.nix
index 06b7c108fa96..59af9a94d96b 100644
--- a/pkgs/applications/radio/xlog/default.nix
+++ b/pkgs/applications/radio/xlog/default.nix
@@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, glib, gtk2, pkg-config, hamlib }:
stdenv.mkDerivation rec {
pname = "xlog";
- version = "2.0.23";
+ version = "2.0.24";
src = fetchurl {
url = "https://download.savannah.gnu.org/releases/xlog/${pname}-${version}.tar.gz";
- sha256 = "sha256-JSPyXOJbYOCeWY6h0v8fbmBkf1Dop1gdmnn4gKdBgac=";
+ sha256 = "sha256-jUU6xt3H9bY9CAQRTFQjprlsC77VwjIB/6sSRNzE+Lw=";
};
# glib-2.62 deprecations
diff --git a/pkgs/applications/science/astronomy/celestia/default.nix b/pkgs/applications/science/astronomy/celestia/default.nix
index 37f04e0ba5a0..6b76c2de4b05 100644
--- a/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/pkgs/applications/science/astronomy/celestia/default.nix
@@ -31,7 +31,6 @@ stdenv.mkDerivation rec {
description = "Real-time 3D simulation of space";
changelog = "https://github.com/CelestiaProject/Celestia/releases/tag/${version}";
license = licenses.gpl2Plus;
- maintainers = with maintainers; [ peti ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/astronomy/gravit/default.nix b/pkgs/applications/science/astronomy/gravit/default.nix
index baf9ed7fc184..d557f32bb6da 100644
--- a/pkgs/applications/science/astronomy/gravit/default.nix
+++ b/pkgs/applications/science/astronomy/gravit/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, SDL, SDL_ttf, SDL_image, libSM, libICE, libGLU, libGL, libpng, lua5, autoconf, automake }:
stdenv.mkDerivation rec {
- name = "gravit-0.5.1";
+ pname = "gravit";
+ version = "0.5.1";
src = fetchurl {
- url = "https://gravit.slowchop.com/media/downloads/${name}.tgz";
+ url = "https://gravit.slowchop.com/media/downloads/gravit-${version}.tgz";
sha256 = "14vf7zj2bgrl96wsl3f1knsggc8h9624354ajzd72l46y09x5ky7";
};
diff --git a/pkgs/applications/science/astronomy/kstars/default.nix b/pkgs/applications/science/astronomy/kstars/default.nix
index cf3ea143cedf..c7e76b6ad923 100644
--- a/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/pkgs/applications/science/astronomy/kstars/default.nix
@@ -14,11 +14,11 @@
mkDerivation rec {
pname = "kstars";
- version = "3.5.4";
+ version = "3.5.5";
src = fetchurl {
url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
- sha256 = "sha256-JCdSYcogvoUmu+vB/vye+6ZMIJqVoScAKreh89dxoDU=";
+ sha256 = "sha256-cD31YFBnKvEPyBQils6qJxNKagDoIi8/Znfxj/Gsa0M=";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
@@ -33,11 +33,6 @@ mkDerivation rec {
cfitsio indi-full xplanet libnova libraw gsl wcslib stellarsolver
];
- # See https://bugs.kde.org/show_bug.cgi?id=439541
- preConfigure = ''
- rm po/de/docs/kstars/index.docbook
- '';
-
cmakeFlags = [
"-DINDI_PREFIX=${indi-full}"
"-DXPLANET_PREFIX=${xplanet}"
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index 2e28d9d83e58..f54dcb94e23b 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
mkDerivation rec {
pname = "stellarium";
- version = "0.21.1";
+ version = "0.21.2";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${version}";
- sha256 = "sha256-dAdB57phD5phl8dQZIHtqtnA2LZqR+JoXTzIBtqBevA=";
+ sha256 = "sha256-bh00o++l3sqELX5kgRhiCcQOLVqvjEyEMcJTnnVPNU8=";
};
nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
@@ -28,15 +28,11 @@ mkDerivation rec {
'SET(CMAKE_INSTALL_PREFIX "${placeholder "out"}/Stellarium.app/Contents")'
'';
- postFixup = lib.optionalString stdenv.isDarwin ''
- wrapQtApp "$out"/Stellarium.app/Contents/MacOS/stellarium
- '';
-
meta = with lib; {
description = "Free open-source planetarium";
homepage = "http://stellarium.org/";
license = licenses.gpl2;
platforms = platforms.unix;
- maintainers = with maintainers; [ peti ma27 ];
+ maintainers = with maintainers; [ ma27 ];
};
}
diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix
index bdcd82ed4324..ac332f271662 100644
--- a/pkgs/applications/science/biology/ants/default.nix
+++ b/pkgs/applications/science/biology/ants/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [ cmake makeWrapper ];
- buildInputs = [ itk4 vtk_7 ] ++ lib.optional stdenv.isDarwin [ Cocoa ];
+ buildInputs = [ itk4 vtk_7 ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
diff --git a/pkgs/applications/science/biology/blast/default.nix b/pkgs/applications/science/biology/blast/default.nix
index 877b5b7d34c0..15e1b3eb9891 100644
--- a/pkgs/applications/science/biology/blast/default.nix
+++ b/pkgs/applications/science/biology/blast/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "blast";
- version = "2.11.0";
+ version = "2.12.0";
src = fetchurl {
url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${version}/ncbi-blast-${version}+-src.tar.gz";
- sha256 = "0m0r9vkw631ky1za1wilsfk9k9spwqh22nkrb9a57rbwmrc1i3nq";
+ sha256 = "122bf45cyj3s3zv2lw1y1rhz7g22v0va560ai30xdjl8sk4wk8zx";
};
sourceRoot = "ncbi-blast-${version}+-src/c++";
diff --git a/pkgs/applications/science/biology/cmtk/default.nix b/pkgs/applications/science/biology/cmtk/default.nix
index f147c0422e45..b6286d11c8cb 100644
--- a/pkgs/applications/science/biology/cmtk/default.nix
+++ b/pkgs/applications/science/biology/cmtk/default.nix
@@ -1,11 +1,12 @@
-{lib, stdenv, fetchurl, cmake}:
+{ lib, stdenv, fetchurl, cmake }:
-stdenv.mkDerivation {
- name = "cmtk-3.3.1";
+stdenv.mkDerivation rec {
+ pname = "cmtk";
+ version = "3.3.1";
src = fetchurl {
name = "cmtk-source.tar.gz";
- url = "https://www.nitrc.org/frs/download.php/8198/CMTK-3.3.1-Source.tar.gz//?i_agree=1&download_now=1";
+ url = "https://www.nitrc.org/frs/download.php/8198/CMTK-${version}-Source.tar.gz//?i_agree=1&download_now=1";
sha256 = "1nmsga9m7vcc4y4a6zl53ra3mwlgjwdgsq1j291awkn7zr1az6qs";
};
@@ -14,13 +15,13 @@ stdenv.mkDerivation {
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
meta = with lib; {
- description = "Computational Morphometry Toolkit ";
+ description = "Computational Morphometry Toolkit ";
longDescription = ''A software toolkit for computational morphometry of
biomedical images, CMTK comprises a set of command line tools and a
back-end general-purpose library for processing and I/O'';
maintainers = with maintainers; [ tbenst ];
platforms = platforms.all;
- license = licenses.gpl3;
- homepage = "https://www.nitrc.org/projects/cmtk/";
+ license = licenses.gpl3;
+ homepage = "https://www.nitrc.org/projects/cmtk/";
};
}
diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix
index 6224ccabb069..36dddad5db5a 100644
--- a/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -6,14 +6,14 @@
}:
stdenv.mkDerivation rec {
- version = "1.0.20210317";
+ version = "1.0.20211006";
pname = "dcm2niix";
src = fetchFromGitHub {
owner = "rordenlab";
repo = "dcm2niix";
rev = "v${version}";
- sha256 = "05rjk0xsrzcxa979vlx25k1rdz1in84gkfm9l1h9f7k4a4aa5r6j";
+ sha256 = "sha256-fQAVOzynMdSLDfhcYWcaXkFW/mnv4zySGLVJNE7ql/c=";
};
nativeBuildInputs = [ cmake git ];
diff --git a/pkgs/applications/science/biology/diamond/default.nix b/pkgs/applications/science/biology/diamond/default.nix
index 2e11c1d8c58c..4f23f3f9a82c 100644
--- a/pkgs/applications/science/biology/diamond/default.nix
+++ b/pkgs/applications/science/biology/diamond/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake, zlib }:
-stdenv.mkDerivation {
- name = "diamond-0.8.36";
+stdenv.mkDerivation rec {
+ pname = "diamond";
+ version = "0.8.36";
src = fetchurl {
- url = "https://github.com/bbuchfink/diamond/archive/v0.8.36.tar.gz";
+ url = "https://github.com/bbuchfink/diamond/archive/v${version}.tar.gz";
sha256 = "092smzzjcg51n3x4h84k52ijpz9m40ri838j9k2i463ribc3c8rh";
};
@@ -30,7 +31,7 @@ stdenv.mkDerivation {
B. Buchfink, Xie C., D. Huson,
"Fast and sensitive protein alignment using DIAMOND",
Nature Methods 12, 59-60 (2015).
- '';
+ '';
homepage = "https://github.com/bbuchfink/diamond";
license = {
fullName = "University of Tuebingen, Benjamin Buchfink";
diff --git a/pkgs/applications/science/biology/ecopcr/default.nix b/pkgs/applications/science/biology/ecopcr/default.nix
index 019370378605..4ed11857a30e 100644
--- a/pkgs/applications/science/biology/ecopcr/default.nix
+++ b/pkgs/applications/science/biology/ecopcr/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, gcc, zlib, python27 }:
stdenv.mkDerivation rec {
- name = "ecopcr-0.8.0";
+ pname = "ecopcr";
+ version = "0.8.0";
src = fetchurl {
- url = "https://git.metabarcoding.org/obitools/ecopcr/uploads/6f37991b325c8c171df7e79e6ae8d080/${name}.tar.gz";
+ url = "https://git.metabarcoding.org/obitools/ecopcr/uploads/6f37991b325c8c171df7e79e6ae8d080/ecopcr-${version}.tar.gz";
sha256 = "10c58hj25z78jh0g3zcbx4890yd2qrvaaanyx8mn9p49mmyf5pk6";
};
diff --git a/pkgs/applications/science/biology/emboss/default.nix b/pkgs/applications/science/biology/emboss/default.nix
index 5cbcd46ee07c..29669d027303 100644
--- a/pkgs/applications/science/biology/emboss/default.nix
+++ b/pkgs/applications/science/biology/emboss/default.nix
@@ -1,9 +1,11 @@
-{lib, stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib}:
+{ lib, stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "emboss";
+ version = "6.6.0";
-stdenv.mkDerivation {
- name = "emboss-6.6.0";
src = fetchurl {
- url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.6.0.tar.gz";
+ url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-${version}.tar.gz";
sha256 = "7184a763d39ad96bb598bfd531628a34aa53e474db9e7cac4416c2a40ab10c6e";
};
@@ -16,13 +18,13 @@ stdenv.mkDerivation {
'';
meta = {
- description = "The European Molecular Biology Open Software Suite";
+ description = "The European Molecular Biology Open Software Suite";
longDescription = ''EMBOSS is a free Open Source software analysis package
specially developed for the needs of the molecular biology (e.g. EMBnet)
user community, including libraries. The software automatically copes with
data in a variety of formats and even allows transparent retrieval of
sequence data from the web.'';
- license = lib.licenses.gpl2;
- homepage = "http://emboss.sourceforge.net/";
+ license = lib.licenses.gpl2;
+ homepage = "http://emboss.sourceforge.net/";
};
}
diff --git a/pkgs/applications/science/biology/fastp/default.nix b/pkgs/applications/science/biology/fastp/default.nix
index c4cae59d1c4e..2e44113f40ef 100644
--- a/pkgs/applications/science/biology/fastp/default.nix
+++ b/pkgs/applications/science/biology/fastp/default.nix
@@ -1,20 +1,23 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, zlib
+, libdeflate
+, isa-l
}:
stdenv.mkDerivation rec {
pname = "fastp";
- version = "0.22.0";
+ version = "0.23.1";
src = fetchFromGitHub {
owner = "OpenGene";
repo = "fastp";
rev = "v${version}";
- sha256 = "sha256-XR76hNz7iGXQYSBbBandHZ+oU3wyTf1AKlu9Xeq/GyE=";
+ sha256 = "sha256-vRJlNtg2JabBAUaX91Y04z8MdyxEnreBAlIHn7VB+u4=";
};
- buildInputs = [ zlib ];
+ buildInputs = [ zlib libdeflate isa-l ];
installPhase = ''
install -D fastp $out/bin/fastp
diff --git a/pkgs/applications/science/biology/iv/default.nix b/pkgs/applications/science/biology/iv/default.nix
index 72cf9c86e65b..ba1b91298bb3 100644
--- a/pkgs/applications/science/biology/iv/default.nix
+++ b/pkgs/applications/science/biology/iv/default.nix
@@ -1,32 +1,43 @@
-{ lib, stdenv, fetchurl, neuron-version
-, libX11, libXext, patchelf
+{ lib
+, stdenv
+, fetchurl
+, neuron-version
+, libX11
+, libXext
+, patchelf
}:
-stdenv.mkDerivation rec
- { name = "iv-19";
- src = fetchurl
- { url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/${name}.tar.gz";
- sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
- };
- nativeBuildInputs = [ patchelf ];
- buildInputs = [ libXext ];
- propagatedBuildInputs = [ libX11 ];
- hardeningDisable = [ "format" ];
- postInstall = ''
- for dir in $out/*; do # */
- if [ -d $dir/lib ]; then
- mv $dir/* $out # */
- rmdir $dir
- break
- fi
- done
- '' + lib.optionalString stdenv.isLinux ''
- patchelf --add-needed ${libX11}/lib/libX11.so $out/lib/libIVhines.so
- '';
- meta = with lib;
- { description = "InterViews graphical library for Neuron";
- license = licenses.bsd3;
- homepage = "http://www.neuron.yale.edu/neuron";
- platforms = platforms.all;
- };
- }
+stdenv.mkDerivation rec {
+ pname = "iv";
+ version = "19";
+
+ src = fetchurl {
+ url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/iv-${version}.tar.gz";
+ sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
+ };
+
+ nativeBuildInputs = [ patchelf ];
+ buildInputs = [ libXext ];
+ propagatedBuildInputs = [ libX11 ];
+
+ hardeningDisable = [ "format" ];
+
+ postInstall = ''
+ for dir in $out/*; do # */
+ if [ -d $dir/lib ]; then
+ mv $dir/* $out # */
+ rmdir $dir
+ break
+ fi
+ done
+ '' + lib.optionalString stdenv.isLinux ''
+ patchelf --add-needed ${libX11}/lib/libX11.so $out/lib/libIVhines.so
+ '';
+
+ meta = with lib; {
+ description = "InterViews graphical library for Neuron";
+ license = licenses.bsd3;
+ homepage = "http://www.neuron.yale.edu/neuron";
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index 0c5b81452fd5..8de0580a8199 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, unzip, zlib, python3, parallel }:
+{ lib, stdenv, fetchFromGitLab, unzip, zlib, python3, parallel }:
stdenv.mkDerivation rec {
pname = "last";
- version = "1179";
+ version = "1256";
- src = fetchurl {
- url = "http://last.cbrc.jp/last-${version}.zip";
- sha256 = "sha256-949oiE7ZNkCOJuOK/huPkCN0c4TlVaTskkBe0joc0HU=";
+ src = fetchFromGitLab {
+ owner = "mcfrith";
+ repo = "last";
+ rev = version;
+ sha256 = "sha256-lOsU0X4K6jYcbkTzwQV+KAerQh9odE4zCLtSgZrYH6s=";
};
nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/science/biology/mosdepth/default.nix b/pkgs/applications/science/biology/mosdepth/default.nix
index 715f2ea313b4..b6cc5e406153 100644
--- a/pkgs/applications/science/biology/mosdepth/default.nix
+++ b/pkgs/applications/science/biology/mosdepth/default.nix
@@ -1,23 +1,9 @@
-{lib, stdenv, fetchFromGitHub, nim, htslib, pcre}:
+{lib, nimPackages, fetchFromGitHub, pcre}:
-let
- hts-nim = fetchFromGitHub {
- owner = "brentp";
- repo = "hts-nim";
- rev = "v0.3.4";
- sha256 = "0670phk1bq3l9j2zaa8i5wcpc5dyfrc0l2a6c21g0l2mmdczffa7";
- };
-
- docopt = fetchFromGitHub {
- owner = "docopt";
- repo = "docopt.nim";
- rev = "v0.6.7";
- sha256 = "1ga7ckg21fzwwvh26jp2phn2h3pvkn8g8sm13dxif33rp471bv37";
- };
-
-in stdenv.mkDerivation rec {
+nimPackages.buildNimPackage rec {
pname = "mosdepth";
version = "0.3.2";
+ nimBinOnly = true;
src = fetchFromGitHub {
owner = "brentp";
@@ -26,15 +12,7 @@ in stdenv.mkDerivation rec {
sha256 = "sha256-uui4yC7ok+pvbXVKfBVsAarH40fnH4fnP8P4uzOqztQ=";
};
- nativeBuildInputs = [ nim ];
- buildInputs = [ htslib pcre ];
-
- buildPhase = ''
- HOME=$TMPDIR
- nim -p:${hts-nim}/src -p:${docopt}/src c --nilseqs:on -d:release mosdepth.nim
- '';
-
- installPhase = "install -Dt $out/bin mosdepth";
+ buildInputs = with nimPackages; [ docopt hts-nim pcre ];
meta = with lib; {
description = "fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing";
diff --git a/pkgs/applications/science/biology/obitools/obitools3.nix b/pkgs/applications/science/biology/obitools/obitools3.nix
index c636942ca781..b38af2f64b54 100644
--- a/pkgs/applications/science/biology/obitools/obitools3.nix
+++ b/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -1,10 +1,6 @@
-{ lib, fetchurl, python3Packages, cmake, python3 }:
+{ stdenv, lib, fetchurl, python3Packages, cmake, python3 }:
-let
- pythonPackages = python3Packages;
-in
-
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "obitools3";
version = "3.0.1b11";
@@ -13,15 +9,18 @@ pythonPackages.buildPythonApplication rec {
sha256 = "1x7a0nrr9agg1pfgq8i1j8r1p6c0jpyxsv196ylix1dd2iivmas1";
};
+ nativeBuildInputs = [ python3Packages.cython cmake ];
+
+ postPatch = lib.optionalString stdenv.isAarch64 ''
+ substituteInPlace setup.py \
+ --replace "'-msse2'," ""
+ '';
+
preBuild = ''
substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/lib/${python3.libPrefix}/site-packages";
export NIX_CFLAGS_COMPILE="-L $out/lib/${python3.libPrefix}/site-packages $NIX_CFLAGS_COMPILE"
'';
- disabled = !pythonPackages.isPy3k;
-
- nativeBuildInputs = [ pythonPackages.cython cmake ];
-
dontConfigure = true;
doCheck = true;
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index a5b226bd0a9f..855f90a74a32 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "picard-tools";
- version = "2.26.2";
+ version = "2.26.4";
src = fetchurl {
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
- sha256 = "sha256-mfqxaZpzX9BIoFl1okN3TxzJnoepsoMR1KqHLQY5BHQ=";
+ sha256 = "sha256-KVOQuqudne0SAdgFEft/lTuoDn9vcpuDtMAafztYvPo=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/biology/samtools/default.nix b/pkgs/applications/science/biology/samtools/default.nix
index 20d9565bce44..99210092a154 100644
--- a/pkgs/applications/science/biology/samtools/default.nix
+++ b/pkgs/applications/science/biology/samtools/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "samtools";
- version = "1.11";
+ version = "1.13";
src = fetchurl {
url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2";
- sha256 = "1dp5wknak4arnw5ghhif9mmljlfnw5bgm91wib7z0j8wdjywx0z2";
+ sha256 = "sha256-YWyi4FHMgAmh6cAc/Yx8r4twkW3f9m87dpFAeUZfjGA=";
};
nativeBuildInputs = [ perl ];
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index 9ad53502cd76..4328bbd975a8 100644
--- a/pkgs/applications/science/biology/star/default.nix
+++ b/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "star";
- version = "2.7.8a";
+ version = "2.7.9a";
src = fetchFromGitHub {
repo = "STAR";
owner = "alexdobin";
rev = version;
- sha256 = "sha256-2qqdCan67bcoUGgr5ro2LGGHDAyS/egTrT8pWX1chX0=";
+ sha256 = "sha256-p1yaIbSGu8K5AkqJj0BAzuoWsXr25eCNoQmLXYQeg4E=";
};
sourceRoot = "source/source";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
description = "Spliced Transcripts Alignment to a Reference";
homepage = "https://github.com/alexdobin/STAR";
license = licenses.gpl3Plus;
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.arcadio ];
};
}
diff --git a/pkgs/applications/science/chemistry/avogadro/default.nix b/pkgs/applications/science/chemistry/avogadro/default.nix
index f5c6d79e28aa..c6339bab1228 100644
--- a/pkgs/applications/science/chemistry/avogadro/default.nix
+++ b/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkg-config, libGLU, libGL, libX11, doxygen }:
stdenv.mkDerivation rec {
- name = "avogadro-1.1.1";
+ pname = "avogadro";
+ version = "1.1.1";
src = fetchurl {
- url = "mirror://sourceforge/avogadro/${name}.tar.bz2";
+ url = "mirror://sourceforge/avogadro/avogadro-${version}.tar.bz2";
sha256 = "050ag9p4vg7jg8hj1wqfv7lsm6ar2isxjw2vw85s49vsl7g7nvzy";
};
diff --git a/pkgs/applications/science/chemistry/avogadro2/default.nix b/pkgs/applications/science/chemistry/avogadro2/default.nix
index 437123faafd8..6931c8621c96 100644
--- a/pkgs/applications/science/chemistry/avogadro2/default.nix
+++ b/pkgs/applications/science/chemistry/avogadro2/default.nix
@@ -2,17 +2,29 @@
, openbabel, qttools, wrapQtAppsHook
}:
-stdenv.mkDerivation rec {
+let
+ avogadroI18N = fetchFromGitHub {
+ owner = "OpenChemistry";
+ repo = "avogadro-i18n";
+ rev = "3b8a86cc37e988b043d1503d2f11068389b0aca3";
+ sha256 = "9wLY7/EJyIZYnlUAMsViCwD5kGc1vCNbk8vUhb90LMQ=";
+ };
+
+in stdenv.mkDerivation rec {
pname = "avogadro2";
- version = "1.94.0";
+ version = "1.95.1";
src = fetchFromGitHub {
owner = "OpenChemistry";
repo = "avogadroapp";
rev = version;
- sha256 = "6RaiX23YUMfTYAuSighcLGGlJtqeydNgi3PWGF77Jp8=";
+ sha256 = "9GnsxQsMuik6CPDmJbJPF0/+LXbZHf/JLevpSsMEoP0=";
};
+ postUnpack = ''
+ cp -r ${avogadroI18N} avogadro-i18n
+ '';
+
nativeBuildInputs = [ cmake wrapQtAppsHook ];
buildInputs = [
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index 732e97b9b095..0434bfe120c8 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -11,13 +11,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec {
pname = "octopus";
- version = "10.5";
+ version = "11.2";
src = fetchFromGitLab {
owner = "octopus-code";
repo = "octopus";
rev = version;
- sha256 = "1bgdkmsp6pwq3b6nxxkimrdmz71wqr8qi25gdzwpcv9wmcf1q27v";
+ sha256 = "sha256-leEcUSjpiP13l65K9WKN2GXTtTa8vvK/MFxR2zH6Xno=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix
index 8efe537dcacd..1c3203354873 100644
--- a/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -5,9 +5,9 @@
} :
let
- version = "21.06";
+ version = "21.10";
# The tag keeps moving, fix a hash instead
- gitLabRev = "dd982ad4bc94dec8ac1e3e99cb6a7dd249ff71de";
+ gitLabRev = "117305462bac932106e8e3a0347238b768bcb058";
python = python3.withPackages (ps : with ps; [ six pyparsing ]);
@@ -19,7 +19,7 @@ in stdenv.mkDerivation {
owner = "Molcas";
repo = "OpenMolcas";
rev = gitLabRev;
- sha256 = "07dm73n0s7ckif561yb3s9yqxsv39a73kb9qwny4yp39wdvv52hz";
+ sha256 = "sha256-GMi2dsNBog+TmpmP6fhQcp6Z5Bh2LelV//MqLnvRP5c=";
};
patches = [
@@ -27,9 +27,15 @@ in stdenv.mkDerivation {
./openblasPath.patch
];
- nativeBuildInputs = [ perl cmake texlive.combined.scheme-minimal makeWrapper ];
- buildInputs = [
+ nativeBuildInputs = [
+ perl
gfortran
+ cmake
+ texlive.combined.scheme-minimal
+ makeWrapper
+ ];
+
+ buildInputs = [
openblas
hdf5-cpp
python
@@ -50,7 +56,9 @@ in stdenv.mkDerivation {
"-DOPENBLASROOT=${openblas.dev}"
];
- GAROOT=globalarrays;
+ preConfigure = ''
+ export GAROOT=${globalarrays};
+ '';
postConfigure = ''
# The Makefile will install pymolcas during the build grrr.
diff --git a/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/pkgs/applications/science/chemistry/quantum-espresso/default.nix
index 6889aec53577..9933d0d8c727 100644
--- a/pkgs/applications/science/chemistry/quantum-espresso/default.nix
+++ b/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -28,7 +28,9 @@ stdenv.mkDerivation rec {
patchShebangs configure
'';
- buildInputs = [ fftw blas lapack gfortran ]
+ nativeBuildInputs = [ gfortran ];
+
+ buildInputs = [ fftw blas lapack ]
++ (lib.optionals useMpi [ mpi ]);
configureFlags = if useMpi then [ "LD=${mpi}/bin/mpif90" ] else [ "LD=${gfortran}/bin/gfortran" ];
diff --git a/pkgs/applications/science/chemistry/siesta/default.nix b/pkgs/applications/science/chemistry/siesta/default.nix
index 02ff4c1ca440..7ee46f7d7e22 100644
--- a/pkgs/applications/science/chemistry/siesta/default.nix
+++ b/pkgs/applications/science/chemistry/siesta/default.nix
@@ -1,23 +1,28 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv
, gfortran, blas, lapack, scalapack
, useMpi ? false
, mpi
+, fetchFromGitLab
}:
-stdenv.mkDerivation {
- version = "4.1-b3";
+stdenv.mkDerivation rec {
+ version = "4.1.5";
pname = "siesta";
- src = fetchurl {
- url = "https://launchpad.net/siesta/4.1/4.1-b3/+download/siesta-4.1-b3.tar.gz";
- sha256 = "1450jsxj5aifa0b5fcg7mxxq242fvqnp4zxpgzgbkdp99vrp06gm";
+ src = fetchFromGitLab {
+ owner = "siesta-project";
+ repo = "siesta";
+ rev = "v${version}";
+ sha256 = "0lz8rfl5xwdj17zn7a30ipi7cgjwqki21a7wg9rdg7iwx27bpnmg";
};
passthru = {
inherit mpi;
};
- buildInputs = [ blas lapack gfortran ]
+ nativeBuildInputs = [ gfortran ];
+
+ buildInputs = [ blas lapack ]
++ lib.optionals useMpi [ mpi scalapack ];
enableParallelBuilding = true;
@@ -62,7 +67,7 @@ stdenv.mkDerivation {
matching the quality of other approaches, such as plane-wave
and all-electron methods.
'';
- homepage = "https://www.quantum-espresso.org/";
+ homepage = "https://siesta-project.org/siesta/";
license = licenses.gpl2;
platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.costrouc ];
diff --git a/pkgs/applications/science/electronics/archimedes/default.nix b/pkgs/applications/science/electronics/archimedes/default.nix
index 731f2db56af5..8bceed08e1db 100644
--- a/pkgs/applications/science/electronics/archimedes/default.nix
+++ b/pkgs/applications/science/electronics/archimedes/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "archimedes-2.0.1";
+ pname = "archimedes";
+ version = "2.0.1";
src = fetchurl {
- url = "mirror://gnu/archimedes/${name}.tar.gz";
+ url = "mirror://gnu/archimedes/archimedes-${version}.tar.gz";
sha256 = "0jfpnd3pns5wxcxbiw49v5sgpmm5b4v8s4q1a5292hxxk2hzmb3z";
};
diff --git a/pkgs/applications/science/electronics/diylc/default.nix b/pkgs/applications/science/electronics/diylc/default.nix
index 96a2c9a0489b..987f6156b4b9 100644
--- a/pkgs/applications/science/electronics/diylc/default.nix
+++ b/pkgs/applications/science/electronics/diylc/default.nix
@@ -71,6 +71,6 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/bancika/diy-layout-creator/releases";
license = licenses.gpl3Plus;
platforms = platforms.linux;
- maintainers = with maintainers; [ eduardosm ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/science/electronics/dwfv/default.nix b/pkgs/applications/science/electronics/dwfv/default.nix
new file mode 100644
index 000000000000..ed340271f262
--- /dev/null
+++ b/pkgs/applications/science/electronics/dwfv/default.nix
@@ -0,0 +1,20 @@
+{ lib, rustPlatform, fetchCrate }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "dwfv";
+ version = "0.4.1";
+
+ src = fetchCrate {
+ inherit version pname;
+ sha256 = "0xxgwbbbzaldbl04k5ksk61wa6i4f9mc84q04ljg438z0k8q6cr7";
+ };
+
+ cargoSha256 = "1z51yx3psdxdzmwny0rzlch5hjx2pssll73q79qij2bc7wgyjscy";
+
+ meta = with lib; {
+ description = "A simple digital waveform viewer with vi-like key bindings";
+ homepage = "https://github.com/psurply/dwfv";
+ license = licenses.mit;
+ maintainers = with maintainers; [ newam ];
+ };
+}
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix
index 30cbd8f92b57..c5723dbab98e 100644
--- a/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/pkgs/applications/science/electronics/fritzing/default.nix
@@ -1,6 +1,7 @@
{ mkDerivation
, lib
, fetchFromGitHub
+, fetchpatch
, qmake
, pkg-config
, qtbase
@@ -9,45 +10,49 @@
, qtserialport
, boost
, libgit2
+, quazip
}:
let
- # build number corresponding to a release, has no further relation
- # see https://github.com/fritzing/fritzing-app/releases/tag/CD-498
- # fritzingBuild = "498";
- # version 0.9.6 is properly tagged, hope it continues
-
# SHA256 of the fritzing-parts HEAD on the master branch,
# which contains the latest stable parts definitions
- partsSha = "6f04697be286768bc9e4d64f8707e8e40cbcafcb";
+ partsSha = "640fa25650211afccd369f960375ade8ec3e8653";
+
+ parts = fetchFromGitHub {
+ owner = "fritzing";
+ repo = "fritzing-parts";
+ rev = partsSha;
+ sha256 = "sha256-4S65eX4LCnXCFQAOxmdvr8d0nAgTWcJooE2SpLYpcXI=";
+ };
in
mkDerivation rec {
pname = "fritzing";
- version = "0.9.6";
+ version = "unstable-2021-09-22";
src = fetchFromGitHub {
owner = pname;
repo = "fritzing-app";
- rev = version;
- sha256 = "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs";
+ rev = "f0af53a9077f7cdecef31d231b85d8307de415d4";
+ sha256 = "sha256-fF38DrBoeZ0aKwVMNyYMPWa5rFPbIVXRARZT+eRat5Q=";
};
- parts = fetchFromGitHub {
- owner = pname;
- repo = "fritzing-parts";
- name = "fritzing-parts";
- rev = partsSha;
- sha256 = "1f4w0hz44n4iw1rc5vhcgzvlji54rf4yr8bvzkqv99hn2xf5pjgs";
- };
-
- buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ];
+ buildInputs = [ qtbase qtsvg qtserialport boost libgit2 quazip ];
nativeBuildInputs = [ qmake pkg-config qttools ];
+ patches = [
+ # Add support for QuaZip 1.x
+ (fetchpatch {
+ url = "https://github.com/fritzing/fritzing-app/commit/ef83ebd9113266bb31b3604e3e9d0332bb48c999.patch";
+ sha256 = "sha256-J43E6iBRIVbsuuo82gPk3Q7tyLhNkuuyYwtH8hUfcPU=";
+ })
+ ];
+
postPatch = ''
substituteInPlace phoenix.pro \
--replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false'
+ #TODO: Do not hardcode SHA.
substituteInPlace src/fapplication.cpp \
--replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";'
@@ -55,21 +60,25 @@ mkDerivation rec {
cp -a ${parts}/* parts/
'';
+ qmakeFlags = [
+ "phoenix.pro"
+ "DEFINES=QUAZIP_INSTALLED"
+ "DEFINES+=QUAZIP_1X"
+ ];
+
postFixup = ''
# generate the parts.db file
QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" \
-db "$out/share/fritzing/parts/parts.db" \
- -pp "$out/fritzing/parts" \
+ -pp "$out/share/fritzing/parts" \
-folder "$out/share/fritzing"
'';
- qmakeFlags = [ "phoenix.pro" ];
-
meta = with lib; {
description = "An open source prototyping tool for Arduino-based projects";
homepage = "https://fritzing.org/";
license = with licenses; [ gpl3 cc-by-sa-30 ];
- maintainers = with maintainers; [ robberer ];
+ maintainers = with maintainers; [ robberer musfay ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index b539df7592a5..bb6af8a20fd1 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -1,16 +1,29 @@
-{ lib, stdenv, fetchurl, glib, gtk3, gperf, pkg-config, bzip2, tcl, tk, wrapGAppsHook, judy, xz }:
+{ bzip2
+, fetchurl
+, glib
+, gperf
+, gtk3
+, judy
+, lib
+, pkg-config
+, stdenv
+, tcl
+, tk
+, wrapGAppsHook
+, xz
+}:
stdenv.mkDerivation rec {
pname = "gtkwave";
- version = "3.3.110";
+ version = "3.3.111";
src = fetchurl {
- url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
- sha256 = "sha256-Ku25IVa8ot3SWxODeMrOaxBY5X022TnvD3l2kAa3Wao=";
+ url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
+ sha256 = "0cv222qhgldfniz6zys52zhrynfsp5v0h8ia857lng7v33vw5qdl";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook ];
- buildInputs = [ glib gtk3 gperf bzip2 tcl tk judy xz ];
+ buildInputs = [ bzip2 glib gperf gtk3 judy tcl tk xz ];
configureFlags = [
"--with-tcl=${tcl}/lib"
@@ -21,9 +34,9 @@ stdenv.mkDerivation rec {
meta = {
description = "VCD/Waveform viewer for Unix and Win32";
- homepage = "http://gtkwave.sourceforge.net";
- license = lib.licenses.gpl2Plus;
+ homepage = "http://gtkwave.sourceforge.net";
+ license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ thoughtpolice ];
- platforms = lib.platforms.linux;
+ platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index 346483b9231e..f1d34062d2aa 100644
--- a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -1,17 +1,17 @@
{ lib, stdenv, fetchFromGitHub, cmake, ninja, pkg-config, python3Packages
, boost, rapidjson, qtbase, qtsvg, igraph, spdlog, wrapQtAppsHook
-, fmt, graphviz, llvmPackages, z3
+, graphviz, llvmPackages, z3
}:
stdenv.mkDerivation rec {
- version = "3.2.6";
+ version = "3.3.0";
pname = "hal-hardware-analyzer";
src = fetchFromGitHub {
owner = "emsec";
repo = "hal";
rev = "v${version}";
- sha256 = "sha256-GRHRrAxZ10hmAXkGGSQEwNJTbnMbJ9jMyKnOUq+KoWo=";
+ sha256 = "sha256-uNpELHhSAVRJL/4iypvnl3nX45SqB419r37lthd2WmQ=";
};
# make sure bundled dependencies don't get in the way - install also otherwise
# copies them in full to the output, bloating the package
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ cmake ninja pkg-config ];
- buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog fmt graphviz wrapQtAppsHook z3 ]
+ buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog graphviz wrapQtAppsHook z3 ]
++ (with python3Packages; [ python pybind11 ])
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix
index d7398f39ec43..0b024d5c947e 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -183,7 +183,7 @@ stdenv.mkDerivation rec {
Just the build products, optionally with the i18n linked in
the libraries are passed via an env var in the wrapper, default.nix
'';
- homepage = "https://www.kicad-pcb.org/";
+ homepage = "https://www.kicad.org/";
license = lib.licenses.agpl3;
platforms = lib.platforms.all;
};
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 770b73c71244..9d7b1b7e5636 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -277,7 +277,7 @@ stdenv.mkDerivation rec {
then "Open Source Electronics Design Automation suite"
else "Open Source EDA suite, development build")
+ (if (!with3d) then ", without 3D models" else "");
- homepage = "https://www.kicad-pcb.org/";
+ homepage = "https://www.kicad.org/";
longDescription = ''
KiCad is an open source software suite for Electronic Design Automation.
The Programs handle Schematic Capture, and PCB Layout with Gerber output.
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index ae403d3f7332..463e5b7d8211 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,25 +3,25 @@
{
"kicad" = {
kicadVersion = {
- version = "5.1.10";
+ version = "5.1.11";
src = {
- rev = "88a1d61d58fdd62149bd1e00984e01540148ca1b";
- sha256 = "10ix560bqy0lprnik1bprxw9ix4g8w2ipvyikx551ak9ryvgwjcc";
+ rev = "d6b7f2349bcdbc45b223e7fe0460d9f169343209";
+ sha256 = "03658kfd313lnvr4jihq1i72g2dfbzba8j1z2y4fxg3vrs54y7a0";
};
};
libVersion = {
- version = "5.1.10";
+ version = "5.1.11";
libSources = {
- i18n.rev = "f081afe79be4660d5c49a9d674e3cb666d76d4d0";
+ i18n.rev = "0b8cef6bd08818cc0360f240544733dce509da3f";
i18n.sha256 = "0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6";
- symbols.rev = "6dec5004b6a2679c19d4857bda2f90c5ab3a5726";
- symbols.sha256 = "0n25rq32jwyigfw26faqraillwv6zbi2ywy26dkz5zqlf5xp56ad";
- templates.rev = "1ccbaf3704e8ff4030d0915f71e051af621ef7d7";
- templates.sha256 = "1a8xfcbdbb4ylrb5m7n2jjk9kwvgmlx1pmnn2cwj327a2b3m4jjs";
- footprints.rev = "302ac78bac21825532f970fb92714fa5973ad79b";
- footprints.sha256 = "0gyqxryda273hjn2rv8dha461j9bjh054y5dlpiw1wiha65lrf9i";
- packages3d.rev = "7abe02f30fd79b8f4f66c01589861df7f8f72f04";
- packages3d.sha256 = "1szcin52fcsyb55bj7xq7lz6ig187dpz3lk7blwab7b9c4dn3c3y";
+ symbols.rev = "7d4cbbddceafa1f69858449e16ac7229abef3c9a";
+ symbols.sha256 = "1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2";
+ templates.rev = "f4c74f4130c8432399089c8b2dc21319b769bbe9";
+ templates.sha256 = "1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g";
+ footprints.rev = "e53d53ac4a30959b03ed3297d7659ea82244fb45";
+ footprints.sha256 = "0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s";
+ packages3d.rev = "be0ba9377b4ec0f11a4b9aceda150eed93027f72";
+ packages3d.sha256 = "12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr";
};
};
};
diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix
index 53a67cea40bc..15b64938b256 100644
--- a/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/pkgs/applications/science/electronics/librepcb/default.nix
@@ -1,37 +1,22 @@
{ stdenv, lib, fetchFromGitHub
-, qtbase, qttools, qmake, wrapQtAppsHook
+, qtbase, qttools, cmake, wrapQtAppsHook
}:
stdenv.mkDerivation rec {
pname = "librepcb";
- version = "0.1.5";
+ version = "0.1.6";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "0ag8h3id2c1k9ds22rfrvyhf2vjhkv82xnrdrz4n1hnlr9566vcx";
+ sha256 = "0gzf3asdgdicpikb412134ybqnbbark948yrfhvba2w4i9cwbk2r";
fetchSubmodules = true;
};
- nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
+ nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
buildInputs = [ qtbase ];
- qmakeFlags = ["-r"];
-
- # the build system tries to use 'git' at build time to find the HEAD hash.
- # that's a no-no, so replace it with a quick hack. NOTE: the # adds a comment
- # at the end of the line to remove the git call.
- postPatch = ''
- substituteInPlace ./libs/librepcb/common/common.pro \
- --replace 'GIT_COMMIT_SHA' 'GIT_COMMIT_SHA="\\\"${src.rev}\\\"" # '
- '';
-
- postInstall = ''
- mkdir -p $out/share/librepcb/fontobene
- cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
- '';
-
meta = with lib; {
description = "A free EDA software to develop printed circuit boards";
homepage = "https://librepcb.org/";
diff --git a/pkgs/applications/science/electronics/picoscope/default.nix b/pkgs/applications/science/electronics/picoscope/default.nix
new file mode 100644
index 000000000000..344d54d10a6d
--- /dev/null
+++ b/pkgs/applications/science/electronics/picoscope/default.nix
@@ -0,0 +1,136 @@
+{ stdenv, lib, fetchurl, dpkg, makeWrapper , mono, gtk-sharp-3_0
+, glib, libusb1 , zlib, gtk3-x11, callPackage
+, scopes ? [
+ "picocv"
+ "ps2000"
+ "ps2000a"
+ "ps3000"
+ "ps3000a"
+ "ps4000"
+ "ps4000a"
+ "ps5000"
+ "ps5000a"
+ "ps6000"
+ "ps6000a"
+] }:
+
+let
+ shared_meta = lib:
+ with lib; {
+ homepage = "https://www.picotech.com/downloads/linux";
+ maintainers = with maintainers; [ expipiplus1 yorickvp wirew0rm ];
+ platforms = [ "x86_64-linux" ];
+ license = licenses.unfree;
+ };
+
+ libpicoipp = callPackage ({ stdenv, lib, fetchurl, autoPatchelfHook, dpkg }:
+ stdenv.mkDerivation rec {
+ pname = "libpicoipp";
+ inherit (sources.libpicoipp) version;
+ src = fetchurl { inherit (sources.libpicoipp) url sha256; };
+ nativeBuildInputs = [ dpkg autoPatchelfHook ];
+ buildInputs = [ stdenv.cc.cc.lib ];
+ sourceRoot = ".";
+ unpackCmd = "dpkg-deb -x $src .";
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/lib
+ cp -d opt/picoscope/lib/* $out/lib
+ install -Dt $out/usr/share/doc/libpicoipp usr/share/doc/libpicoipp/copyright
+ runHook postInstall
+ '';
+ meta = with lib;
+ shared_meta lib // {
+ description = "library for picotech oscilloscope software";
+ };
+ }) { };
+
+ # If we don't have a platform available, put a dummy version here, so at
+ # least evaluation succeeds.
+ sources =
+ (lib.importJSON ./sources.json).${stdenv.system} or { picoscope.version = "unknown"; };
+
+ scopePkg = name:
+ { url, version, sha256 }:
+ stdenv.mkDerivation rec {
+ pname = "lib${name}";
+ inherit version;
+ src = fetchurl { inherit url sha256; };
+ # picoscope does a signature check, so we can't patchelf these
+ nativeBuildInputs = [ dpkg ];
+ sourceRoot = ".";
+ unpackCmd = "dpkg-deb -x $src .";
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/lib
+ cp -d opt/picoscope/lib/* $out/lib
+ runHook postInstall
+ '';
+ meta = with lib;
+ shared_meta lib // {
+ description = "library for picotech oscilloscope ${name} series";
+ };
+ };
+
+ scopePkgs = lib.mapAttrs scopePkg sources;
+
+in stdenv.mkDerivation rec {
+ pname = "picoscope";
+ inherit (sources.picoscope) version;
+
+ src = fetchurl { inherit (sources.picoscope) url sha256; };
+
+ nativeBuildInputs = [ dpkg makeWrapper ];
+ buildInputs = [ gtk-sharp-3_0 mono glib libusb1 zlib ];
+
+ unpackCmd = "dpkg-deb -x $src .";
+ sourceRoot = ".";
+ scopeLibs = lib.attrVals (map (x: "lib${x}") scopes) scopePkgs;
+ MONO_PATH = "${gtk-sharp-3_0}/lib/mono/gtk-sharp-3.0:" + (lib.makeLibraryPath
+ ([
+ glib
+ gtk3-x11
+ gtk-sharp-3_0
+ libusb1
+ zlib
+ libpicoipp
+ ] ++ scopeLibs));
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/
+ cp -dr usr/share $out/share
+ cp -dr opt/picoscope/* $out/
+ makeWrapper "$(command -v mono)" $out/bin/picoscope \
+ --add-flags $out/lib/PicoScope.GTK.exe \
+ --prefix MONO_PATH : "$MONO_PATH" \
+ --prefix LD_LIBRARY_PATH : "$MONO_PATH"
+ runHook postInstall
+ '';
+
+ # usage:
+ # services.udev.packages = [ pkgs.picoscope.rules ];
+ # users.groups.pico = {};
+ # users.users.you.extraGroups = [ "pico" ];
+ passthru.rules = lib.writeTextDir "lib/udev/rules.d/95-pico.rules" ''
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ce9", MODE="664",GROUP="pico"
+ '';
+
+ meta = with lib;
+ shared_meta lib // {
+ description =
+ "Oscilloscope application that works with all PicoScope models";
+ longDescription = ''
+ PicoScope for Linux is a powerful oscilloscope application that works
+ with all PicoScope models. The most important features from PicoScope
+ for Windows are included—scope, spectrum analyzer, advanced triggers,
+ automated measurements, interactive zoom, persistence modes and signal
+ generator control. More features are being added all the time.
+
+ Waveform captures can be saved for off-line analysis, and shared with
+ PicoScope for Linux, PicoScope for macOS and PicoScope for Windows
+ users, or exported in text, CSV and MathWorks MATLAB 4 formats.
+ '';
+ };
+}
+
diff --git a/pkgs/applications/science/electronics/picoscope/sources.json b/pkgs/applications/science/electronics/picoscope/sources.json
new file mode 100644
index 000000000000..7404259b231e
--- /dev/null
+++ b/pkgs/applications/science/electronics/picoscope/sources.json
@@ -0,0 +1,69 @@
+{
+ "x86_64-linux": {
+ "libpicocv": {
+ "sha256": "c2e74c2b0679df0226993d063b38d0eda5b05ff59f29bbfa12ded5226df37024",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicocv/libpicocv_1.1.27-1r153_amd64.deb",
+ "version": "1.1.27-1r153"
+ },
+ "libpicoipp": {
+ "sha256": "87ae49cd5e8dda4a73a835b95ea13e4c3fc4d1c4c9d6495c9affdf6fa6b1b4aa",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicoipp/libpicoipp_1.3.0-4r121_amd64.deb",
+ "version": "1.3.0-4r121"
+ },
+ "libps2000": {
+ "sha256": "792e506c08cebbd617e833e1547d3e5a13a186f93cea3f84608b7ed9451fb077",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000/libps2000_3.0.75-3r2957_amd64.deb",
+ "version": "3.0.75-3r2957"
+ },
+ "libps2000a": {
+ "sha256": "f31b3a8e9c6af14a59e348e4b302f12f582cdb08a47a3c04d8a6a612b4630305",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000a/libps2000a_2.1.75-5r2957_amd64.deb",
+ "version": "2.1.75-5r2957"
+ },
+ "libps3000": {
+ "sha256": "27dce3c924bb0169768a4964ce567b4a18ce74079537ca1fcba61e9234691580",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000/libps3000_4.0.75-3r2957_amd64.deb",
+ "version": "4.0.75-3r2957"
+ },
+ "libps3000a": {
+ "sha256": "31cf00ce136526af6e8b211a44a56b221d137de6eaec4d6fd7f31593b4245d62",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000a/libps3000a_2.1.75-6r2957_amd64.deb",
+ "version": "2.1.75-6r2957"
+ },
+ "libps4000": {
+ "sha256": "c976f09647f1fd2c980aafd1efe7f557bfc7c283fb9c135725c38dd59cc297e9",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000/libps4000_2.1.75-2r2957_amd64.deb",
+ "version": "2.1.75-2r2957"
+ },
+ "libps4000a": {
+ "sha256": "727f24fa74759385902d41d52a26a4636b3e3f08a8743901d15cc49622207b97",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000a/libps4000a_2.1.75-2r2957_amd64.deb",
+ "version": "2.1.75-2r2957"
+ },
+ "libps5000": {
+ "sha256": "3237c1dfdb384079b7039d2b4a8e0b0126e804830b29d60e89ae018182667edb",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000/libps5000_2.1.75-3r2957_amd64.deb",
+ "version": "2.1.75-3r2957"
+ },
+ "libps5000a": {
+ "sha256": "27947f8461a16cf59d64cd23d7a78ddd27826e38dfe9fca3902e3b553591fb19",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000a/libps5000a_2.1.75-5r2957_amd64.deb",
+ "version": "2.1.75-5r2957"
+ },
+ "libps6000": {
+ "sha256": "d65e923db969e306fb9f3f3892229a297d6187574d901dde44375270cc1e1404",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000/libps6000_2.1.75-6r2957_amd64.deb",
+ "version": "2.1.75-6r2957"
+ },
+ "libps6000a": {
+ "sha256": "eff8644ad44f9cc1cf9052e27786a1480a4ab599766c1c01e370fef40a76b224",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000a/libps6000a_1.0.75-0r2957_amd64.deb",
+ "version": "1.0.75-0r2957"
+ },
+ "picoscope": {
+ "sha256": "3d2a0e360c8143fc03c29b394c16bfc2387164e33099a46b6905af992cfab440",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/p/picoscope/picoscope_7.0.83-1r9320_amd64.deb",
+ "version": "7.0.83-1r9320"
+ }
+ }
+}
diff --git a/pkgs/applications/science/electronics/picoscope/update.py b/pkgs/applications/science/electronics/picoscope/update.py
new file mode 100755
index 000000000000..ecbd2292030d
--- /dev/null
+++ b/pkgs/applications/science/electronics/picoscope/update.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell --pure -i python3 -p "python3.withPackages (ps: with ps; [ requests ])"
+import json
+import os
+import requests
+import sys
+
+def parse_packages(text):
+ res = []
+ for package in resp.text.split("\n\n"):
+ if not package: continue
+ pkg = {}
+ for field in package.split("\n"):
+ if field.startswith(" "): # multiline string
+ pkg[k] += "\n" + field[1:]
+ else:
+ [k, v] = field.split(": ", 1)
+ pkg[k] = v
+ res.append(pkg)
+ return res
+
+def generate_sources(packages):
+ sources_spec = {}
+ for pkg in pkgs:
+ sources_spec[pkg['Package']] = {
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/" + pkg["Filename"],
+ "sha256": pkg["SHA256"],
+ "version": pkg["Version"]
+ }
+ return sources_spec
+
+out = {}
+for nix_system, release in {"x86_64-linux": "amd64"}.items():
+ resp = requests.get("https://labs.picotech.com/rc/picoscope7/debian//dists/picoscope/main/binary-"+release+"/Packages")
+ if resp.status_code != 200:
+ print("error: could not fetch data for release {} (code {})".format(release, resp.code), file=sys.stderr)
+ sys.exit(1)
+ pkgs = parse_packages(resp.text)
+ out[nix_system] = generate_sources(pkgs)
+
+with open(os.path.dirname(__file__) + "/sources.json", "w") as f:
+ json.dump(out, f, indent=2, sort_keys=True)
+ f.write('\n')
+
diff --git a/pkgs/applications/science/electronics/qfsm/default.nix b/pkgs/applications/science/electronics/qfsm/default.nix
index de79abc3e511..b2e3704cba70 100644
--- a/pkgs/applications/science/electronics/qfsm/default.nix
+++ b/pkgs/applications/science/electronics/qfsm/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, qt4, cmake, graphviz, pkg-config }:
stdenv.mkDerivation rec {
- name = "qfsm-0.54.0";
+ pname = "qfsm";
+ version = "0.54.0";
src = fetchurl {
- url = "mirror://sourceforge/qfsm/${name}-Source.tar.bz2";
+ url = "mirror://sourceforge/qfsm/qfsm-${version}-Source.tar.bz2";
sha256 = "0rl7bc5cr29ng67yij4akciyid9z7npal812ys4c3m229vjvflrb";
};
diff --git a/pkgs/applications/science/electronics/tkgate/1.x.nix b/pkgs/applications/science/electronics/tkgate/1.x.nix
index 5a46e8f63840..f8741cd8d180 100644
--- a/pkgs/applications/science/electronics/tkgate/1.x.nix
+++ b/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -5,10 +5,11 @@ let
libiconvLib = lib.optionalString stdenv.isLinux "${glibc.out}/lib";
in
stdenv.mkDerivation rec {
- name = "tkgate-1.8.7";
+ pname = "tkgate";
+ version = "1.8.7";
src = fetchurl {
- url = "http://www.tkgate.org/downloads/${name}.tgz";
+ url = "http://www.tkgate.org/downloads/tkgate-${version}.tgz";
sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
};
@@ -36,7 +37,6 @@ stdenv.mkDerivation rec {
description = "Event driven digital circuit simulator with a TCL/TK-based graphical editor";
homepage = "http://www.tkgate.org/";
license = lib.licenses.gpl2Plus;
- maintainers = [ lib.maintainers.peti ];
hydraPlatforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/science/geometry/antiprism/default.nix b/pkgs/applications/science/geometry/antiprism/default.nix
index 8dee645646c5..e5779478936e 100644
--- a/pkgs/applications/science/geometry/antiprism/default.nix
+++ b/pkgs/applications/science/geometry/antiprism/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "antiprism";
- version = "0.26";
+ version = "0.29";
src = fetchFromGitHub {
owner = "antiprism";
repo = pname;
rev = version;
- sha256 = "sha256-5FE6IbYKk7eMT985R9NCX3GDXE8SrdVHFcCpKeJvKtQ=";
+ sha256 = "sha256-MHzetkmRDLBXq3KrfXmUhxURY60/Y8z5zQsExT6N4cY=";
};
nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/science/geometry/tetgen/1.4.nix b/pkgs/applications/science/geometry/tetgen/1.4.nix
index 245d4c12bfe0..684f5913f79f 100644
--- a/pkgs/applications/science/geometry/tetgen/1.4.nix
+++ b/pkgs/applications/science/geometry/tetgen/1.4.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "tetgen-1.4.3";
+ pname = "tetgen";
+ version = "1.4.3";
src = fetchurl {
- url = "${meta.homepage}/files/tetgen1.4.3.tar.gz";
+ url = "${meta.homepage}/files/tetgen${version}.tar.gz";
sha256 = "0d70vjqdapmy1ghlsxjlvl5z9yp310zw697bapc4zxmp0sxi29wm";
};
diff --git a/pkgs/applications/science/logic/abella/default.nix b/pkgs/applications/science/logic/abella/default.nix
index 14ceb53f9bb0..3d752b7d7b93 100644
--- a/pkgs/applications/science/logic/abella/default.nix
+++ b/pkgs/applications/science/logic/abella/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "abella";
- version = "2.0.6";
+ version = "2.0.7";
src = fetchurl {
url = "http://abella-prover.org/distributions/${pname}-${version}.tar.gz";
- sha256 = "164q9gngckg6q69k13lwx2pq3cnc9ckw1qi8dnpxqfjgwfqr7xyi";
+ sha256 = "sha256-/eOiebMFHgrurtrSHPlgZO3xmmxBOUmyAzswXZLd3Yc=";
};
buildInputs = [ rsync ] ++ (with ocamlPackages; [ ocaml ocamlbuild findlib ]);
diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix
index 963015b11d50..837f25e320f7 100644
--- a/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -2,13 +2,13 @@
let
pname = "alt-ergo";
- version = "2.4.0";
+ version = "2.4.1";
src = fetchFromGitHub {
owner = "OCamlPro";
repo = pname;
rev = version;
- sha256 = "1jm1yrvsg8iyfp9bb728zdx2i7yb6z7minjrfs27k5ncjqkjm65g";
+ sha256 = "0hglj1p0753w2isds01h90knraxa42d2jghr35dpwf9g8a1sm9d3";
};
useDune2 = true;
diff --git a/pkgs/applications/science/logic/aspino/default.nix b/pkgs/applications/science/logic/aspino/default.nix
index f9cc97893da8..fc16423b671e 100644
--- a/pkgs/applications/science/logic/aspino/default.nix
+++ b/pkgs/applications/science/logic/aspino/default.nix
@@ -8,7 +8,8 @@ let
in
stdenv.mkDerivation {
- name = "aspino-unstable-2017-03-09";
+ pname = "aspino";
+ version = "unstable-2017-03-09";
src = fetchFromGitHub {
owner = "alviano";
diff --git a/pkgs/applications/science/logic/cadical/default.nix b/pkgs/applications/science/logic/cadical/default.nix
index f0cb1efb3050..c6b1f6652451 100644
--- a/pkgs/applications/science/logic/cadical/default.nix
+++ b/pkgs/applications/science/logic/cadical/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
install -Dm0755 build/cadical "$out/bin/cadical"
install -Dm0755 build/mobical "$out/bin/mobical"
install -Dm0644 src/ccadical.h "$dev/include/ccadical.h"
+ install -Dm0644 src/cadical.hpp "$dev/include/cadical.hpp"
install -Dm0644 build/libcadical.a "$lib/lib/libcadical.a"
mkdir -p "$out/share/doc/${pname}/"
install -Dm0755 {LICEN?E,README*,VERSION} "$out/share/doc/${pname}/"
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index cd19b9a94424..16db7384df17 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -9,7 +9,7 @@
, customOCamlPackages ? null
, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
, buildIde ? true
-, glib, gnome, wrapGAppsHook
+, glib, gnome, wrapGAppsHook, makeDesktopItem, copyDesktopItems
, csdp ? null
, version, coq-version ? null,
}@args:
@@ -44,6 +44,7 @@ let
"8.13.0".sha256 = "0sjbqmz6qcvnz0hv87xha80qbhvmmyd675wyc5z4rgr34j2l1ymd";
"8.13.1".sha256 = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
"8.13.2".sha256 = "1884vbmwmqwn9ngibax6dhnqh4cc02l0s2ajc6jb1xgr0i60whjk";
+ "8.14.0".sha256 = "04y2z0qyvag66zanfyc3f9agvmzbn4lsr0p1l7ck6yjhqx7vbm17";
};
releaseRev = v: "V${v}";
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@@ -124,7 +125,9 @@ self = stdenv.mkDerivation {
'';
};
- nativeBuildInputs = [ pkg-config ] ++ optional (!versionAtLeast "8.6") gnumake42;
+ nativeBuildInputs = [ pkg-config ]
+ ++ optional buildIde copyDesktopItems
+ ++ optional (!versionAtLeast "8.6") gnumake42;
buildInputs = [ ncurses ] ++ ocamlBuildInputs
++ optionals buildIde
(if versionAtLeast "8.10"
@@ -161,17 +164,31 @@ self = stdenv.mkDerivation {
prefixKey = "-prefix ";
- buildFlags = [ "revision" "coq" "coqide" "bin/votour" ];
+ buildFlags = [ "revision" "coq" "coqide" ] ++ optional (!versionAtLeast "8.14") "bin/votour";
enableParallelBuilding = true;
createFindlibDestdir = true;
- postInstall = ''
+ desktopItems = optional buildIde (makeDesktopItem {
+ name = "coqide";
+ exec = "coqide";
+ icon = "coq";
+ desktopName = "CoqIDE";
+ comment = "Graphical interface for the Coq proof assistant";
+ categories = "Development;Science;Math;IDE;GTK";
+ });
+
+ postInstall = let suffix = if versionAtLeast "8.14" then "-core" else ""; in ''
cp bin/votour $out/bin/
- ln -s $out/lib/coq $OCAMLFIND_DESTDIR/coq
+ ln -s $out/lib/coq${suffix} $OCAMLFIND_DESTDIR/coq${suffix}
+ '' + optionalString (versionAtLeast "8.14") ''
+ ln -s $out/lib/coqide-server $OCAMLFIND_DESTDIR/coqide-server
+ '' + optionalString buildIde ''
+ mkdir -p "$out/share/pixmaps"
+ ln -s "$out/share/coq/coq.png" "$out/share/pixmaps/"
'';
- meta = with lib; {
+ meta = {
description = "Coq proof assistant";
longDescription = ''
Coq is a formal proof management system. It provides a formal language
diff --git a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
index b382e6f9e754..48b1263e7961 100644
--- a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -1,11 +1,11 @@
diff --git a/src/elan-dist/src/component/package.rs b/src/elan-dist/src/component/package.rs
-index fd9fe74..0fefa39 100644
+index c51e76d..d0a26d7 100644
--- a/src/elan-dist/src/component/package.rs
+++ b/src/elan-dist/src/component/package.rs
-@@ -50,11 +50,35 @@ fn unpack_without_first_dir(archive: &mut tar::Archive, path: &Path)
- };
-
- try!(entry.unpack(&full_path).chain_err(|| ErrorKind::ExtractingPackage));
+@@ -56,11 +56,35 @@ fn unpack_without_first_dir(archive: &mut tar::Archive, path: &Path)
+ entry
+ .unpack(&full_path)
+ .chain_err(|| ErrorKind::ExtractingPackage)?;
+ nix_patchelf_if_needed(&full_path);
}
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index 1fb4693d64a2..a5709b69fbb8 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -7,16 +7,16 @@ in
rustPlatform.buildRustPackage rec {
pname = "elan";
- version = "1.0.7";
+ version = "1.3.1";
src = fetchFromGitHub {
owner = "leanprover";
repo = "elan";
rev = "v${version}";
- sha256 = "sha256-SFY9RbUHoaOXCaK+uIqhnKbzSkbtWiS6os/JvsggagI=";
+ sha256 = "sha256-QNVzpnT77+9PXhq4Yz0q3o+GiQTVy7dOrg2yBTscoek=";
};
- cargoSha256 = "sha256-6TFionZw76V4htYQrz8eLX7ioW7Fbgd63rtz53s0TLU=";
+ cargoSha256 = "sha256-G70QopoMqFrkOnuui3+3cEHYvmnf0meX1Ecv4q8FCpM=";
nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage rec {
postInstall = ''
pushd $out/bin
mv elan-init elan
- for link in lean leanpkg leanchecker leanc leanmake; do
+ for link in lean leanpkg leanchecker leanc leanmake lake; do
ln -s elan $link
done
popd
diff --git a/pkgs/applications/science/logic/gappa/default.nix b/pkgs/applications/science/logic/gappa/default.nix
index be1d6f253bc5..af6673caa54f 100644
--- a/pkgs/applications/science/logic/gappa/default.nix
+++ b/pkgs/applications/science/logic/gappa/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, gmp, mpfr, boost }:
-stdenv.mkDerivation {
- name = "gappa-1.4.0";
+stdenv.mkDerivation rec {
+ pname = "gappa";
+ version = "1.4.0";
src = fetchurl {
- url = "https://gforge.inria.fr/frs/download.php/file/38436/gappa-1.4.0.tar.gz";
+ url = "https://gforge.inria.fr/frs/download.php/file/38436/gappa-${version}.tar.gz";
sha256 = "12x42z901pr05ldmparqdi8sq9s7fxbavhzk2dbq3l6hy247dwbb";
};
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 24faa98f777b..e66fe992e189 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -3,11 +3,11 @@
let
load_num =
if num == null then "" else
- ''
- -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
- -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
- -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
- '';
+ ''
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+ '';
start_script =
''
@@ -21,19 +21,22 @@ let
in
stdenv.mkDerivation {
- name = "hol_light-2019-10-06";
+ pname = "hol_light";
+ version = "unstable-2019-10-06";
src = fetchFromGitHub {
- owner = "jrh13";
- repo = "hol-light";
- rev = "5c91b2ded8a66db571824ecfc18b4536c103b23e";
+ owner = "jrh13";
+ repo = "hol-light";
+ rev = "5c91b2ded8a66db571824ecfc18b4536c103b23e";
sha256 = "0sxsk8z08ba0q5aixdyczcx5l29lb51ba4ip3d2fry7y604kjsx6";
};
- patches = [(fetchpatch {
- url = "https://salsa.debian.org/ocaml-team/hol-light/-/raw/master/debian/patches/0004-Fix-compilation-with-camlp5-7.11.patch";
- sha256 = "180qmxbrk3vb1ix7j77hcs8vsar91rs11s5mm8ir5352rz7ylicr";
- })];
+ patches = [
+ (fetchpatch {
+ url = "https://salsa.debian.org/ocaml-team/hol-light/-/raw/master/debian/patches/0004-Fix-compilation-with-camlp5-7.11.patch";
+ sha256 = "180qmxbrk3vb1ix7j77hcs8vsar91rs11s5mm8ir5352rz7ylicr";
+ })
+ ];
buildInputs = [ ocaml camlp5 ];
propagatedBuildInputs = [ num ];
@@ -47,9 +50,9 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Interactive theorem prover based on Higher-Order Logic";
- homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
- license = licenses.bsd2;
- platforms = platforms.unix;
+ homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice maggesi vbgl ];
};
}
diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix
index 5c6ad241cb76..218a27541877 100644
--- a/pkgs/applications/science/logic/lean/default.nix
+++ b/pkgs/applications/science/logic/lean/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "lean";
- version = "3.32.1";
+ version = "3.35.0";
src = fetchFromGitHub {
owner = "leanprover-community";
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
# from. this is then used to check whether an olean file should be
# rebuilt. don't use a tag as rev because this will get replaced into
# src/githash.h.in in preConfigure.
- rev = "35b3a9c4e2d35cccb5ed220ea2f2909a4ed2ca90";
- sha256 = "0s69smknsvycvydbk2f3vcqj1z3jrbv3k048z2r46391dai5iwhf";
+ rev = "a68d251bfc57341d8f1f6d8c6e548a0b08ff3b92";
+ sha256 = "0f91kvd4z7rsjyagfx56y1vxmf4wjds7bnz6yh3sd4xx770z58d4";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/leo2/default.nix b/pkgs/applications/science/logic/leo2/default.nix
index fc2c1e5cba4c..cbc85c5544cc 100644
--- a/pkgs/applications/science/logic/leo2/default.nix
+++ b/pkgs/applications/science/logic/leo2/default.nix
@@ -1,20 +1,31 @@
-{ lib, stdenv, fetchurl, makeWrapper, eprover, ocaml, perl, zlib }:
+{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, eprover, ocaml, camlp4, perl, zlib }:
stdenv.mkDerivation rec {
pname = "leo2";
- version = "1.6.2";
+ version = "1.7.0";
src = fetchurl {
url = "https://page.mi.fu-berlin.de/cbenzmueller/leo/leo2_v${version}.tgz";
- sha256 = "1wjpmizb181iygnd18lx7p77fwaci2clgzs5ix5j51cc8f3pazmv";
+ sha256 = "sha256:1b2q7vsz6s9ighypsigqjm1mzjiq3xgnz5id5ssb4rh9zm190r82";
};
nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ eprover ocaml perl zlib ];
+ buildInputs = [ eprover ocaml camlp4 perl zlib ];
- sourceRoot = "leo2/src";
+ patches = [ (fetchpatch {
+ url = "https://github.com/niklasso/minisat/commit/7eb6015313561a2586032574788fcb133eeaa19f.patch";
+ stripLen = 1;
+ extraPrefix = "lib/";
+ sha256 = "sha256:01ln7hi6nvvkqkhn9hciqizizz5qspvqffgksvgmzn9x7kdd9pnh";
+ })
+ ];
- preConfigure = "patchShebangs configure";
+ preConfigure = ''
+ cd src
+ patchShebangs configure
+ substituteInPlace Makefile.pre \
+ --replace '+camlp4' "${camlp4}/lib/ocaml/${ocaml.version}/site-lib/camlp4"
+ '';
buildFlags = [ "opt" ];
diff --git a/pkgs/applications/science/logic/logisim-evolution/default.nix b/pkgs/applications/science/logic/logisim-evolution/default.nix
index 10266abffea1..cf7470b5475b 100644
--- a/pkgs/applications/science/logic/logisim-evolution/default.nix
+++ b/pkgs/applications/science/logic/logisim-evolution/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "logisim-evolution";
- version = "3.5.0";
+ version = "3.7.1";
src = fetchurl {
url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${version}/logisim-evolution-${version}-all.jar";
- sha256 = "1r6im4gmjbnckx8jig6bxi5lxv06lwdnpxkyfalsfmw4nybd5arw";
+ sha256 = "04q9bzhnzpi8cgv3ly4ii88qvmlw9n09c4p1qmg8dhxqkskdqj6h";
};
dontUnpack = true;
@@ -30,8 +30,11 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/logisim-evolution --add-flags "-jar $src"
- unzip $src resources/logisim/img/logisim-icon.svg
- install -D resources/logisim/img/logisim-icon.svg $out/share/pixmaps/logisim-evolution.svg
+ # Create icons
+ unzip $src "resources/logisim/img/*"
+ for size in 16 32 48 128 256; do
+ install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim-evolution.png"
+ done
runHook postInstall
'';
diff --git a/pkgs/applications/science/logic/open-wbo/default.nix b/pkgs/applications/science/logic/open-wbo/default.nix
index 77db8ae3384d..193f603656dc 100644
--- a/pkgs/applications/science/logic/open-wbo/default.nix
+++ b/pkgs/applications/science/logic/open-wbo/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, zlib, gmp }:
stdenv.mkDerivation {
- name = "open-wbo-2.0";
+ pname = "open-wbo";
+ version = "2.0";
src = fetchFromGitHub {
owner = "sat-group";
diff --git a/pkgs/applications/science/logic/opensmt/default.nix b/pkgs/applications/science/logic/opensmt/default.nix
index 2ef494cca266..e701fb2711f0 100644
--- a/pkgs/applications/science/logic/opensmt/default.nix
+++ b/pkgs/applications/science/logic/opensmt/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "opensmt";
- version = "2.1.1";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "usi-verification-and-security";
repo = "opensmt";
rev = "v${version}";
- sha256 = "sha256-StnEvkSSKDHGYXIQsDUu9T9Ztl+RtDTP47JvnRyH0bE=";
+ sha256 = "sha256-6VkBGDzqG3mplpvFh5DIR0I1I2/J0Pi7xYk/yVn04Kg=";
};
nativeBuildInputs = [ cmake bison flex ];
diff --git a/pkgs/applications/science/logic/prover9/default.nix b/pkgs/applications/science/logic/prover9/default.nix
index 7fedca72b698..aa01469bfbb8 100644
--- a/pkgs/applications/science/logic/prover9/default.nix
+++ b/pkgs/applications/science/logic/prover9/default.nix
@@ -1,7 +1,8 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
stdenv.mkDerivation {
- name = "prover9-2009-11a";
+ pname = "prover9";
+ version = "2009-11a";
src = fetchurl {
url = "https://www.cs.unm.edu/~mccune/mace4/download/LADR-2009-11A.tar.gz";
@@ -10,7 +11,7 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ];
- patchPhase = ''
+ postPatch = ''
RM=$(type -tp rm)
MV=$(type -tp mv)
CP=$(type -tp cp)
@@ -30,16 +31,16 @@ stdenv.mkDerivation {
cp bin/* $out/bin
'';
- meta = {
+ meta = with lib; {
homepage = "https://www.cs.unm.edu/~mccune/mace4/";
- license = "GPL";
+ license = licenses.gpl1;
description = "Automated theorem prover for first-order and equational logic";
longDescription = ''
Prover9 is a resolution/paramodulation automated theorem prover
for first-order and equational logic. Prover9 is a successor of
the Otter Prover. This is the LADR command-line version.
'';
- platforms = lib.platforms.linux;
- maintainers = [];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/science/logic/proverif/default.nix b/pkgs/applications/science/logic/proverif/default.nix
index ba46d87581e0..fbc9eb2d8a15 100644
--- a/pkgs/applications/science/logic/proverif/default.nix
+++ b/pkgs/applications/science/logic/proverif/default.nix
@@ -2,28 +2,28 @@
stdenv.mkDerivation rec {
pname = "proverif";
- version = "2.02pl1";
+ version = "2.03";
src = fetchurl {
- url = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
- sha256 = "1jmzfpx0hdgfmkq0jp6i3k5av9xxgndjaj743wfy37svn0ga4jjx";
+ url = "https://bblanche.gitlabpages.inria.fr/proverif/proverif${version}.tar.gz";
+ sha256 = "sha256:1q5mp9il09jylimcaqczb3kh34gb5px88js127gxv0jj5b4bqfc7";
};
- buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
+ buildInputs = with ocamlPackages; [ ocaml findlib ];
- buildPhase = "./build";
+ buildPhase = "./build -nointeract";
installPhase = ''
- mkdir -p $out/bin
- cp ./proverif $out/bin
- cp ./proveriftotex $out/bin
+ runHook preInstall
+ install -D -t $out/bin proverif proveriftotex
install -D -t $out/share/emacs/site-lisp/ emacs/proverif.el
+ runHook postInstall
'';
meta = {
- description = "Cryptographic protocol verifier in the Dolev-Yao model";
- homepage = "https://prosecco.gforge.inria.fr/personal/bblanche/proverif/";
+ description = "Cryptographic protocol verifier in the formal model";
+ homepage = "https://bblanche.gitlabpages.inria.fr/proverif/";
license = lib.licenses.gpl2;
platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.thoughtpolice ];
+ maintainers = with lib.maintainers; [ thoughtpolice vbgl ];
};
}
diff --git a/pkgs/applications/science/logic/redprl/default.nix b/pkgs/applications/science/logic/redprl/default.nix
index 43a2ec7e97e2..eece691bfd78 100644
--- a/pkgs/applications/science/logic/redprl/default.nix
+++ b/pkgs/applications/science/logic/redprl/default.nix
@@ -1,28 +1,37 @@
-{ lib, stdenv, fetchgit, mlton }:
+{ lib, stdenv, fetchFromGitHub, mlton }:
+
stdenv.mkDerivation {
- name = "redprl-2017-03-28";
- src = fetchgit {
- url = "https://github.com/RedPRL/sml-redprl.git";
+ pname = "redprl";
+ version = "unstable-2017-03-28";
+
+ src = fetchFromGitHub {
+ owner = "RedPRL";
+ repo = "sml-redprl";
rev = "bdf027de732e4a8d10f9f954389dfff0c822f18b";
- sha256 = "0cihwnd78d3ksxp6mppifm7xpi3fsii5mixvicajy87ggw8z305c";
fetchSubmodules = true;
+ sha256 = "0cihwnd78d3ksxp6mppifm7xpi3fsii5mixvicajy87ggw8z305c";
};
+
buildInputs = [ mlton ];
- patchPhase = ''
+
+ postPatch = ''
patchShebangs ./script/
'';
+
buildPhase = ''
./script/mlton.sh
'';
+
installPhase = ''
mkdir -p $out/bin
mv ./bin/redprl $out/bin
'';
- meta = {
+
+ meta = with lib; {
description = "A proof assistant for Nominal Computational Type Theory";
homepage = "http://www.redprl.org/";
- license = lib.licenses.mit;
- maintainers = [ lib.maintainers.acowley ];
- platforms = lib.platforms.unix;
+ license = licenses.mit;
+ maintainers = with maintainers; [ acowley ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/science/logic/sad/default.nix b/pkgs/applications/science/logic/sad/default.nix
index fe0ca1b3017b..a509d70ed462 100644
--- a/pkgs/applications/science/logic/sad/default.nix
+++ b/pkgs/applications/science/logic/sad/default.nix
@@ -1,9 +1,10 @@
{ lib, stdenv, fetchurl, haskell, spass }:
-stdenv.mkDerivation {
- name = "system-for-automated-deduction-2.3.25";
+stdenv.mkDerivation rec {
+ pname = "system-for-automated-deduction";
+ version = "2.3.25";
src = fetchurl {
- url = "http://nevidal.org/download/sad-2.3-25.tar.gz";
+ url = "http://nevidal.org/download/sad-${version}.tar.gz";
sha256 = "10jd93xgarik7xwys5lq7fx4vqp7c0yg1gfin9cqfch1k1v8ap4b";
};
buildInputs = [ haskell.compiler.ghc844 spass ];
@@ -15,7 +16,7 @@ stdenv.mkDerivation {
];
postPatch = ''
substituteInPlace Alice/Main.hs --replace init.opt $out/init.opt
- '';
+ '';
installPhase = ''
mkdir -p $out/{bin,provers}
install alice $out/bin
@@ -23,18 +24,18 @@ stdenv.mkDerivation {
substituteAll provers/provers.dat $out/provers/provers.dat
substituteAll init.opt $out/init.opt
cp -r examples $out
- '';
+ '';
inherit spass;
meta = {
description = "A program for automated proving of mathematical texts";
longDescription = ''
The system for automated deduction is intended for automated processing of formal mathematical texts
written in a special language called ForTheL (FORmal THEory Language) or in a traditional first-order language
- '';
+ '';
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.schmitthenner ];
homepage = "http://nevidal.org/sad.en.html";
platforms = lib.platforms.linux;
- broken = true; # ghc-8.4.4 is gone from Nixpkgs
+ broken = true; # ghc-8.4.4 is gone from Nixpkgs
};
}
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index 118bb8ecd206..87bd1e2e6370 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation {
pname = "symbiyosys";
- version = "2020.08.22";
+ version = "2021.09.13";
src = fetchFromGitHub {
owner = "YosysHQ";
repo = "SymbiYosys";
- rev = "33b0bb7d836fe2a73dc7b10587222f2a718beef4";
- sha256 = "03rbrbwsji1sqcp2yhgbc0fca04zsryv2g4izjhdzv64nqjzjyhn";
+ rev = "15278f13467bea24a7300e23ebc5555b9261facf";
+ sha256 = "sha256-gp9F4MaGgD6XfD7AjuB/LmMVcxFurqWHEiXPeyzlQzk=";
};
buildInputs = [ ];
diff --git a/pkgs/applications/science/logic/tamarin-prover/default.nix b/pkgs/applications/science/logic/tamarin-prover/default.nix
index a77f2dbac442..76dc559cb7ae 100644
--- a/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -4,12 +4,12 @@
}:
let
- version = "1.6.0";
+ version = "1.6.1";
src = fetchFromGitHub {
owner = "tamarin-prover";
repo = "tamarin-prover";
rev = version;
- sha256 = "1pl3kz7gyw9g6s4x5j90z4snd10vq6296g3ajlr8d4n53p3c9i3w";
+ sha256 = "sha256:0cz1v7k4d0im749ag632nc34n91b51b0pq4z05rzw1p59a5lza92";
};
# tamarin has its own dependencies, but they're kept inside the repo,
@@ -85,15 +85,11 @@ mkDerivation (common "tamarin-prover" src // {
executableHaskellDepends = (with haskellPackages; [
binary-instances binary-orphans blaze-html conduit file-embed
- gitrev http-types lifted-base monad-control monad-unlift
+ gitrev http-types lifted-base monad-control
resourcet shakespeare threads wai warp yesod-core yesod-static
]) ++ [ tamarin-prover-utils
tamarin-prover-sapic
tamarin-prover-term
tamarin-prover-theory
];
-
- # tamarin-prover 1.6 is incompatible with maude 3.1.
- hydraPlatforms = lib.platforms.none;
- broken = true;
})
diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix
index b9f14332f9d8..78631486554a 100644
--- a/pkgs/applications/science/logic/why3/default.nix
+++ b/pkgs/applications/science/logic/why3/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
# S-expression output for why3pp
ppx_deriving ppx_sexp_conv
# Coq Support
- coqPackages.coq coqPackages.flocq ocamlPackages.camlp5
+ coqPackages.coq coqPackages.flocq
];
propagatedBuildInputs = with ocamlPackages; [ camlzip num re sexplib ];
diff --git a/pkgs/applications/science/logic/yices/default.nix b/pkgs/applications/science/logic/yices/default.nix
index c26504bf7bdc..c81d5a9ca618 100644
--- a/pkgs/applications/science/logic/yices/default.nix
+++ b/pkgs/applications/science/logic/yices/default.nix
@@ -1,18 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, gmp-static, gperf, autoreconfHook, libpoly }:
+{ lib, stdenv, fetchFromGitHub, cudd, gmp-static, gperf, autoreconfHook, libpoly }:
stdenv.mkDerivation rec {
pname = "yices";
- version = "2.6.1";
+ # We never want X.Y.${odd} versions as they are moving development tags.
+ version = "2.6.2";
src = fetchFromGitHub {
owner = "SRI-CSL";
repo = "yices2";
rev = "Yices-${version}";
- sha256 = "04vf468spsh00jh7gj94cjnq8kjyfwy9l6r4z7l2pm0zgwkqgyhm";
+ sha256 = "1jx3854zxvfhxrdshbipxfgyq1yxb9ll9agjc2n0cj4vxkjyh9mn";
};
+ patches = [
+ # musl las no ldconfig, create symlinks explicitly
+ ./linux-no-ldconfig.patch
+ ];
+ postPatch = "patchShebangs tests/regress/check.sh";
+
nativeBuildInputs = [ autoreconfHook ];
- buildInputs = [ gmp-static gperf libpoly ];
+ buildInputs = [ cudd gmp-static gperf libpoly ];
configureFlags =
[ "--with-static-gmp=${gmp-static.out}/lib/libgmp.a"
"--with-static-gmp-include-dir=${gmp-static.dev}/include"
@@ -22,18 +29,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doCheck = true;
- # Usual shenanigans
- patchPhase = "patchShebangs tests/regress/check.sh";
-
- # Includes a fix for the embedded soname being libyices.so.2.5, but
- # only installing the libyices.so.2.5.x file.
- installPhase = let
- ver_XdotY = lib.versions.majorMinor version;
- in ''
- make install LDCONFIG=true
- ln -sfr $out/lib/libyices.so.{${version},${ver_XdotY}}
- '';
-
meta = with lib; {
description = "A high-performance theorem prover and SMT solver";
homepage = "http://yices.csl.sri.com";
diff --git a/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch b/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch
new file mode 100644
index 000000000000..bad3da6ad4a2
--- /dev/null
+++ b/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch
@@ -0,0 +1,13 @@
+--- a/Makefile.build
++++ b/Makefile.build
+@@ -474,8 +474,9 @@ install-darwin: install-default
+ install-solaris: install-default
+ $(LDCONFIG) -n $(DESTDIR)$(libdir) && (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so)
+
++# avoid ldconfig as it's not present on musl
+ install-linux install-unix: install-default
+- $(LDCONFIG) -n $(DESTDIR)$(libdir) && (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so)
++ (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so.$(MAJOR).$(MINOR) && $(LN_S) -f libyices.so.$(MAJOR).$(MINOR) libyices.so)
+
+ # on FreeBSD: the library file is libyices.so.X.Y and ldconfig does not take -n
+ # TODO: fix this. We must also create a symbolic link: libyices.so.X in libdir
diff --git a/pkgs/applications/science/logic/z3/4.4.0.nix b/pkgs/applications/science/logic/z3/4.4.0.nix
index 9b7dabeb7200..2fbaa0a28caf 100644
--- a/pkgs/applications/science/logic/z3/4.4.0.nix
+++ b/pkgs/applications/science/logic/z3/4.4.0.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
# z3's install phase is stupid because it tries to calculate the
# python package store location itself, meaning it'll attempt to
# write files into the nix store, and fail.
- soext = if stdenv.system == "x86_64-darwin" then ".dylib" else ".so";
+ soext = stdenv.hostPlatform.extensions.sharedLibrary;
installPhase = ''
mkdir -p $out/bin $out/lib/${python.libPrefix}/site-packages $out/include
cp ../src/api/z3*.h $out/include
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index e482a071bb43..4153ba5f66fc 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -19,13 +19,13 @@ with lib;
stdenv.mkDerivation rec {
pname = "z3";
- version = "4.8.10";
+ version = "4.8.12";
src = fetchFromGitHub {
owner = "Z3Prover";
repo = pname;
rev = "z3-${version}";
- sha256 = "1w1ym2l0gipvjx322npw7lhclv8rslq58gnj0d9i96masi3gbycf";
+ sha256 = "1wbcdc7h3mag8infspvxxja2hiz4igjwxzvss2kqar1rjj4ivfx0";
};
nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
diff --git a/pkgs/applications/science/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix
index 47b826078f24..911d0043ed26 100644
--- a/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -1,13 +1,39 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, ctags, swig
-# data, compression
-, bzip2, curl, hdf5, json_c, xz, lzo, protobuf, snappy
-# maths
-, blas, lapack, eigen, nlopt, lp_solve, colpack, glpk
-# libraries
-, libarchive, libxml2
-# extra support
-, pythonSupport ? true, pythonPackages ? null
-, opencvSupport ? false, opencv ? null
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchurl
+ # build
+, cmake
+, ctags
+, pythonPackages
+, swig
+ # math
+, eigen
+, blas
+, lapack
+, glpk
+ # data
+, protobuf
+, json_c
+, libxml2
+, hdf5
+, curl
+ # compression
+, libarchive
+, bzip2
+, xz
+, snappy
+, lzo
+ # more math
+, nlopt
+, lp_solve
+, colpack
+ # extra support
+, pythonSupport ? true
+, opencvSupport ? false
+, opencv ? null
+, withSvmLight ? false
}:
assert pythonSupport -> pythonPackages != null;
@@ -18,8 +44,10 @@ assert (!blas.isILP64) && (!lapack.isILP64);
let
pname = "shogun";
version = "6.1.4";
+
rxcppVersion = "4.0.0";
gtestVersion = "1.8.0";
+
srcs = {
toolbox = fetchFromGitHub {
owner = pname + "-toolbox";
@@ -28,7 +56,8 @@ let
sha256 = "05s9dclmk7x5d7wnnj4qr6r6c827m72a44gizcv09lxr28pr9inz";
fetchSubmodules = true;
};
- # we need the packed archive
+
+ # The CMake external projects expect the packed archives
rxcpp = fetchurl {
url = "https://github.com/Reactive-Extensions/RxCpp/archive/v${rxcppVersion}.tar.gz";
sha256 = "0y2isr8dy2n1yjr9c5570kpc9lvdlch6jv0jvw000amwn5d3krsh";
@@ -41,57 +70,117 @@ let
in
stdenv.mkDerivation rec {
-
inherit pname version;
+ outputs = [ "out" "dev" "doc" ];
+
src = srcs.toolbox;
- postUnpack = ''
- mkdir -p $sourceRoot/third_party/{rxcpp,gtest}
- ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
- ln -s ${srcs.gtest} $sourceRoot/third_party/gtest/release-${gtestVersion}.tar.gz
- '';
-
- # broken
- doCheck = false;
-
patches = [
+ # Fix compile errors with json-c
+ # https://github.com/shogun-toolbox/shogun/pull/4104
(fetchpatch {
- url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
+ url = "https://github.com/shogun-toolbox/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
})
+
+ # Fix compile errors with GCC 9+
+ # https://github.com/shogun-toolbox/shogun/pull/4811
+ (fetchpatch {
+ url = "https://github.com/shogun-toolbox/shogun/commit/c8b670be4790e0f06804b048a6f3d77c17c3ee95.patch";
+ sha256 = "sha256-MxsR3Y2noFQevfqWK3nmX5iK4OVWeKBl5tfeDNgjcXk=";
+ })
+ (fetchpatch {
+ url = "https://github.com/shogun-toolbox/shogun/commit/5aceefd9fb0e2132c354b9a0c0ceb9160cc9b2f7.patch";
+ sha256 = "sha256-AgJJKQA8vc5oKaTQDqMdwBR4hT4sn9+uW0jLe7GteJw=";
+ })
+
+ # Fix compile errors with Eigen 3.4
+ ./eigen-3.4.patch
+
+ ] ++ lib.optional (!withSvmLight) ./svmlight-scrubber.patch;
+
+ nativeBuildInputs = [ cmake swig ctags ]
+ ++ (with pythonPackages; [ python jinja2 ply ]);
+
+ buildInputs = [
+ eigen
+ blas
+ lapack
+ glpk
+ protobuf
+ json_c
+ libxml2
+ hdf5
+ curl
+ libarchive
+ bzip2
+ xz
+ snappy
+ lzo
+ nlopt
+ lp_solve
+ colpack
+ ] ++ lib.optionals pythonSupport (with pythonPackages; [ python numpy ])
+ ++ lib.optional opencvSupport opencv;
+
+ cmakeFlags = let
+ enableIf = cond: if cond then "ON" else "OFF";
+ in [
+ "-DBUILD_META_EXAMPLES=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_CPLEX=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_Mosek=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_TFLogger=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_ViennaCL=ON"
+ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+ "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;TrainedModelSerialization'" # Sporadic segfault
+ "-DENABLE_TESTING=${enableIf doCheck}"
+ "-DDISABLE_META_INTEGRATION_TESTS=ON"
+ "-DTRAVIS_DISABLE_META_CPP=ON"
+ "-DPythonModular=${enableIf pythonSupport}"
+ "-DOpenCV=${enableIf opencvSupport}"
+ "-DUSE_SVMLIGHT=${enableIf withSvmLight}"
];
- CCACHE_DISABLE="1";
- CCACHE_DIR=".ccache";
+ CXXFLAGS = "-faligned-new";
- nativeBuildInputs = [ cmake ];
- buildInputs = with lib; [
- blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve xz lzo
- protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk
- ]
- ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
- ++ optional (opencvSupport) opencv;
+ doCheck = true;
- NIX_CFLAGS_COMPILE="-faligned-new";
+ postUnpack = ''
+ mkdir -p $sourceRoot/third_party/{rxcpp,GoogleMock}
+ ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
+ ln -s ${srcs.gtest} $sourceRoot/third_party/GoogleMock/release-${gtestVersion}.tar.gz
+ '';
- cmakeFlags =
- let
- onOff = b: if b then "ON" else "OFF";
- flag = n: b: "-D"+n+"="+onOff b;
- in
- with lib; [
- (flag "ENABLE_TESTING" doCheck)
- (flag "BUILD_META_EXAMPLES" doCheck)
- (flag "CMAKE_VERBOSE_MAKEFILE:BOOL" doCheck)
- (flag "PythonModular" pythonSupport)
- (flag "OpenCV" opencvSupport)
- ];
+ postPatch = ''
+ # Fix preprocessing SVMlight code
+ sed -i \
+ -e 's@#ifdef SVMLIGHT@#ifdef USE_SVMLIGHT@' \
+ -e '/^#ifdef USE_SVMLIGHT/,/^#endif/ s@#endif@#endif //USE_SVMLIGHT@' \
+ src/shogun/kernel/string/CommUlongStringKernel.cpp
+ sed -i -e 's/#if USE_SVMLIGHT/#ifdef USE_SVMLIGHT/' src/interfaces/swig/Machine.i
+ sed -i -e 's@// USE_SVMLIGHT@//USE_SVMLIGHT@' src/interfaces/swig/Transfer.i
+ sed -i -e 's@/\* USE_SVMLIGHT \*/@//USE_SVMLIGHT@' src/interfaces/swig/Transfer_includes.i
+ '' + lib.optionalString (!withSvmLight) ''
+ # Run SVMlight scrubber
+ patchShebangs scripts/light-scrubber.sh
+ echo "removing SVMlight code"
+ ./scripts/light-scrubber.sh
+ '';
+
+ postInstall = ''
+ mkdir -p $doc/share/doc/shogun/examples
+ mv $out/share/shogun/examples/cpp $doc/share/doc/shogun/examples
+ cp ../examples/undocumented/libshogun/*.cpp $doc/share/doc/shogun/examples/cpp
+ rm -r $out/share
+ '';
meta = with lib; {
description = "A toolbox which offers a wide range of efficient and unified machine learning methods";
homepage = "http://shogun-toolbox.org/";
- license = licenses.gpl3;
- maintainers = with maintainers; [ edwtjo ];
+ license = if withSvmLight then licenses.unfree else licenses.gpl3Plus;
+ maintainers = with maintainers; [ edwtjo smancill ];
};
}
diff --git a/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch b/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch
new file mode 100644
index 000000000000..863bd75918b0
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch
@@ -0,0 +1,74 @@
+From: Sebastián Mancilla
+Subject: [PATCH] Fix compile errors when using Eigen 3.4
+
+---
+ .../machine/gp/MultiLaplaceInferenceMethod.cpp | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp b/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
+index 2e27678d2..60050afea 100644
+--- a/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
++++ b/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
+@@ -84,9 +84,9 @@ class CMultiPsiLine : public func_base
+ float64_t result=0;
+ for(index_t bl=0; blblock(bl*n,0,n,1)*CMath::exp(log_scale*2.0);
+- result+=alpha->block(bl*n,0,n,1).dot(eigen_f.block(bl*n,0,n,1))/2.0;
+- eigen_f.block(bl*n,0,n,1)+=eigen_m;
++ eigen_f.segment(bl*n,n)=K*alpha->segment(bl*n,n)*CMath::exp(log_scale*2.0);
++ result+=alpha->segment(bl*n,n).dot(eigen_f.segment(bl*n,n))/2.0;
++ eigen_f.segment(bl*n,n)+=eigen_m;
+ }
+
+ // get first and second derivatives of log likelihood
+@@ -272,7 +272,7 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ {
+ Map alpha(m_alpha.vector, m_alpha.vlen);
+ for(index_t bl=0; bl chol_tmp((eigen_sD*eigen_sD.transpose()).cwiseProduct(eigen_ktrtr*CMath::exp(m_log_scale*2.0))+
+ MatrixXd::Identity(m_ktrtr.num_rows, m_ktrtr.num_cols));
+ MatrixXd eigen_L_tmp=chol_tmp.matrixU();
+@@ -341,11 +341,11 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ VectorXd tmp2=m_tmp.array().rowwise().sum();
+
+ for(index_t bl=0; bl &eigen_c=eigen_W;
+ for(index_t bl=0; bl c_tmp(eigen_c.data(),n,C);
+
+@@ -409,7 +409,7 @@ float64_t CMultiLaplaceInferenceMethod::get_derivative_helper(SGMatrix CMultiLaplaceInferenceMethod::get_derivative_wrt_mean(
+ result[i]=0;
+ //currently only compute the explicit term
+ for(index_t bl=0; bl
+Subject: Update SVMlight scrubber script
+
+This requires previously fixing a few wrong preprocessor directives that
+are supposed to fence code using SVMlight.
+
+- The script was too eager and removing *.light files in SVMlight format
+ that are used by other tests. The code reading those files doesn't use
+ any SVMlight code so it should be fine to keep it and run the tests.
+
+- The Python test *domainadaptationsvm.py was not removed because of
+ wrong globbing.
+
+- Remove a couple of examples using SVMlight that were missed.
+
+- The script is actually modifying (and breaking) itself because the
+ grep for the USE_SVMLIGHT macro is too eager again and matches itself
+ (and the version stored in upstream's Debian package control tarball
+ is broken because of it). Just fix it by grepping for preprocessor
+ directives only.
+
+- No need to fix the Transfer_includes.i file in the script with a final
+ %} when its preprocessor directives have been fixed.
+
+- The Swig files were moved to a new directory at some point but the
+ script was not updated accordingly.
+---
+ scripts/light-scrubber.sh | 16 ++++++----------
+ 1 file changed, 6 insertions(+), 10 deletions(-)
+
+diff a/scripts/light-scrubber.sh b/scripts/light-scrubber.sh
+--- a/scripts/light-scrubber.sh
++++ b/scripts/light-scrubber.sh
+@@ -26,14 +26,16 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see .
+ #
+-rm -rf examples/*/*/{*light*,*_domainadaptationsvm_*} \
++rm -rf examples/*/*/{*light*.*,*domainadaptationsvm*} \
+ examples/undocumented/matlab_and_octave/tests/*light* \
++ examples/undocumented/python/serialization_string_kernels.py \
++ examples/undocumented/python/mkl_binclass.py \
+ src/shogun/classifier/svm/SVMLight.* \
+ src/shogun/classifier/svm/SVMLightOneClass.* \
+ src/shogun/regression/svr/SVRLight.* \
+ doc/md/LICENSE_SVMlight*
+
+-for _file in `grep -rl USE_SVMLIGHT .`
++grep -rl '^#ifdef USE_SVMLIGHT' . | while read -r _file
+ do
+ sed -i.orig -e \
+ '/\#ifdef USE_SVMLIGHT/,/\#endif \/\/USE_SVMLIGHT/c \\' ${_file} && \
+@@ -41,7 +43,7 @@ do
+ rm -rf ${_file}.orig
+ done
+
+-for _file in `find . -depth -name 'CMakeLists.txt'`
++find . -depth -name 'CMakeLists.txt' | while read -r _file
+ do
+ sed -i.orig -e 's!.*_sv[mr]light_.*!!g' ${_file} && \
+ touch -r ${_file}.orig ${_file} && \
+@@ -56,13 +58,7 @@ do
+ rm -rf ${_file}.orig
+ done
+
+-_file="src/interfaces/modular/Transfer_includes.i" && \
+-cp -a ${_file} ${_file}.orig && \
+-echo '%}' >> ${_file} && \
+-touch -r ${_file}.orig ${_file} && \
+-rm -rf ${_file}.orig
+-
+-_file="src/interfaces/modular/Machine.i" && \
++_file="src/interfaces/swig/Machine.i" && \
+ sed -i.orig -e '/.*CSVRLight.*/d' ${_file} && \
+ touch -r ${_file}.orig ${_file} && \
+ rm -rf ${_file}.orig
diff --git a/pkgs/applications/science/machine-learning/starspace/default.nix b/pkgs/applications/science/machine-learning/starspace/default.nix
index ca7500cd5c35..81e0ccc71d66 100644
--- a/pkgs/applications/science/machine-learning/starspace/default.nix
+++ b/pkgs/applications/science/machine-learning/starspace/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "General-purpose neural model for efficient learning of entity embeddings";
- homepage = https://ai.facebook.com/tools/starspace/;
+ homepage = "https://ai.facebook.com/tools/starspace/";
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.mausch ];
diff --git a/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix b/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
index 7ecbe09f5e18..7e9b322b4157 100644
--- a/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
+++ b/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, boost, flatbuffers, fmt, rapidjson, spdlog, zlib }:
+{ lib, stdenv, fetchFromGitHub, cmake, boost, flatbuffers, rapidjson, spdlog, zlib }:
stdenv.mkDerivation rec {
pname = "vowpal-wabbit";
@@ -16,7 +16,6 @@ stdenv.mkDerivation rec {
buildInputs = [
boost
flatbuffers
- fmt
rapidjson
spdlog
zlib
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index a8fdfe8571a6..0a9a976f18a3 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -14,11 +14,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec {
pname = "R";
- version = "4.1.1";
+ version = "4.1.2";
src = fetchurl {
url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
- sha256 = "0r6kpnxjbvb7gdfg4m1z8zc6xd225vw81wrnf05ps9ajawk06pji";
+ sha256 = "sha256-IDYiXp9yB9TOCX5Ulyrs2qi0DX2ZEc0mSR+sWg+rOK8=";
};
dontUseImakeConfigure = true;
@@ -31,7 +31,6 @@ stdenv.mkDerivation rec {
patches = [
./no-usr-local-search-paths.patch
- ./skip-check-for-aarch64.patch
];
prePatch = lib.optionalString stdenv.isDarwin ''
@@ -118,8 +117,7 @@ stdenv.mkDerivation rec {
'';
platforms = platforms.all;
- hydraPlatforms = platforms.linux;
- maintainers = with maintainers; [ peti ] ++ teams.sage.members;
+ maintainers = with maintainers; [ jbedo ] ++ teams.sage.members;
};
}
diff --git a/pkgs/applications/science/math/R/skip-check-for-aarch64.patch b/pkgs/applications/science/math/R/skip-check-for-aarch64.patch
deleted file mode 100644
index 8721bf6b422d..000000000000
--- a/pkgs/applications/science/math/R/skip-check-for-aarch64.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur a/src/library/stats/man/nls.Rd b/src/library/stats/man/nls.Rd
---- a/src/library/stats/man/nls.Rd 2021-05-21 19:15:02.000000000 -0300
-+++ b/src/library/stats/man/nls.Rd 2021-08-12 12:39:00.094758280 -0300
-@@ -287,7 +287,7 @@
- options(digits = 10) # more accuracy for 'trace'
- ## IGNORE_RDIFF_BEGIN
- try(nlm1 <- update(nlmod, control = list(tol = 1e-7))) # where central diff. work here:
-- (nlm2 <- update(nlmod, control = list(tol = 8e-8, nDcentral=TRUE), trace=TRUE))
-+ (nlm2 <- update(nlmod, control = list(tol = 8e-8, nDcentral=TRUE, warnOnly=TRUE), trace=TRUE))
- ## --> convergence tolerance 4.997e-8 (in 11 iter.)
- ## IGNORE_RDIFF_END
diff --git a/pkgs/applications/science/math/bcal/default.nix b/pkgs/applications/science/math/bcal/default.nix
index 1494b5324872..85bcd1b2d2fc 100644
--- a/pkgs/applications/science/math/bcal/default.nix
+++ b/pkgs/applications/science/math/bcal/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "bcal";
- version = "2.2";
+ version = "2.3";
src = fetchFromGitHub {
owner = "jarun";
repo = "bcal";
rev = "v${version}";
- sha256 = "4vR5rcbNkoEdSRNoMH9qMHP3iWFxejkVfXNiYfwbo/A=";
+ sha256 = "sha256-1k8Q+I1Mc196QL+x4yXzRi7WLBf30U4sJyl0rXisW7k=";
};
buildInputs = [ readline ];
diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index 08bf84be7c89..462a05d300ce 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -91,7 +91,11 @@ stdenv.mkDerivation rec {
inherit (python.sourceVersion) major minor; # Should be changed in case of PyPy
});
- postPatch = lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
+ postPatch = ''
+ substituteInPlace src/caffe/util/io.cpp --replace \
+ 'SetTotalBytesLimit(kProtoReadBytesLimit, 536870912)' \
+ 'SetTotalBytesLimit(kProtoReadBytesLimit)'
+ '' + lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
# CUDA 9.0 doesn't support sm_20
sed -i 's,20 21(20) ,,' cmake/Cuda.cmake
'';
diff --git a/pkgs/applications/science/math/cemu/default.nix b/pkgs/applications/science/math/cemu/default.nix
index 9d56ac70d921..35b9200a4774 100644
--- a/pkgs/applications/science/math/cemu/default.nix
+++ b/pkgs/applications/science/math/cemu/default.nix
@@ -1,6 +1,5 @@
{ fetchFromGitHub
, lib
-, mkDerivation
, SDL2
, libGL
, libarchive
@@ -10,9 +9,11 @@
, git
, libpng_apng
, pkg-config
+, wrapQtAppsHook
+, stdenv
}:
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "CEmu";
version = "1.3";
src = fetchFromGitHub {
@@ -26,6 +27,7 @@ mkDerivation rec {
nativeBuildInputs = [
qmake
git
+ wrapQtAppsHook
pkg-config
];
@@ -40,6 +42,7 @@ mkDerivation rec {
qmakeFlags = [
"gui/qt"
+ "CONFIG+=ltcg"
];
meta = with lib; {
@@ -49,5 +52,6 @@ mkDerivation rec {
license = licenses.gpl3;
maintainers = with maintainers; [ luc65r ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ broken = stdenv.isDarwin;
};
}
diff --git a/pkgs/applications/science/math/cntk/default.nix b/pkgs/applications/science/math/cntk/default.nix
index c007490c94d0..ba2225b903fa 100644
--- a/pkgs/applications/science/math/cntk/default.nix
+++ b/pkgs/applications/science/math/cntk/default.nix
@@ -1,4 +1,5 @@
{ lib, stdenv, fetchgit, fetchFromGitHub, cmake
+, fetchpatch
, openblas, blas, lapack, opencv3, libzip, boost, protobuf, mpi
, onebitSGDSupport ? false
, cudaSupport ? false, addOpenGLRunpath, cudatoolkit, nvidia_x11
@@ -28,6 +29,26 @@ in stdenv.mkDerivation rec {
sha256 = "18l9k7s966a26ywcf7flqyhm61788pcb9fj3wk61jrmgkhy2pcns";
};
+ patches = [
+ # Fix build with protobuf 3.18+
+ # Remove with onnx submodule bump to 1.9+
+ (fetchpatch {
+ url = "https://github.com/onnx/onnx/commit/d3bc82770474761571f950347560d62a35d519d7.patch";
+ extraPrefix = "Source/CNTKv2LibraryDll/proto/onnx/onnx_repo/";
+ stripLen = 1;
+ sha256 = "00raqj8wx30b06ky6cdp5vvc1mrzs7hglyi6h58hchw5lhrwkzxp";
+ })
+ ];
+
+ postPatch = ''
+ # Fix build with protobuf 3.18+
+ substituteInPlace Source/CNTKv2LibraryDll/Serialization.cpp \
+ --replace 'SetTotalBytesLimit(INT_MAX, INT_MAX)' \
+ 'SetTotalBytesLimit(INT_MAX)' \
+ --replace 'SetTotalBytesLimit(limit, limit)' \
+ 'SetTotalBytesLimit(limit)'
+ '';
+
nativeBuildInputs = [ cmake ] ++ lib.optional cudaSupport addOpenGLRunpath;
# Force OpenMPI to use g++ in PATH.
diff --git a/pkgs/applications/science/math/csdp/default.nix b/pkgs/applications/science/math/csdp/default.nix
index 02c4c134f92e..6ce03008d3a9 100644
--- a/pkgs/applications/science/math/csdp/default.nix
+++ b/pkgs/applications/science/math/csdp/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, blas, gfortran, lapack }:
-stdenv.mkDerivation {
- name = "csdp-6.1.1";
+stdenv.mkDerivation rec {
+ pname = "csdp";
+ version = "6.1.1";
src = fetchurl {
- url = "https://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz";
+ url = "https://www.coin-or.org/download/source/Csdp/Csdp-${version}.tgz";
sha256 = "1f9ql6cjy2gwiyc51ylfan24v1ca9sjajxkbhszlds1lqmma8n05";
};
diff --git a/pkgs/applications/science/math/eukleides/default.nix b/pkgs/applications/science/math/eukleides/default.nix
index 6b6bfd7d6e5f..0c3ef25909bb 100644
--- a/pkgs/applications/science/math/eukleides/default.nix
+++ b/pkgs/applications/science/math/eukleides/default.nix
@@ -63,6 +63,5 @@ lib.fix (eukleides: stdenv.mkDerivation rec {
'';
platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.peti ];
};
})
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index 58b2a617bd63..808d89ef9636 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchurl, ocamlPackages, makeWrapper
-, libGLU, libGL, freeglut, mpfr, gmp
+{ lib
+, stdenv
+, fetchurl
+, ocamlPackages
+, makeWrapper
+, libGLU
+, libGL
+, freeglut
+, mpfr
+, gmp
, pkgsHostTarget
}:
@@ -7,24 +15,32 @@ let
inherit (pkgsHostTarget.targetPackages.stdenv) cc;
in
-stdenv.mkDerivation {
- name = "glsurf-3.3.1";
+stdenv.mkDerivation rec {
+ pname = "glsurf";
+ version = "3.3.1";
src = fetchurl {
- url = "https://raffalli.eu/~christophe/glsurf/glsurf-3.3.1.tar.gz";
+ url = "https://raffalli.eu/~christophe/glsurf/glsurf-${version}.tar.gz";
sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
};
nativeBuildInputs = [
makeWrapper
] ++ (with ocamlPackages; [
- ocaml findlib
+ ocaml
+ findlib
]);
buildInputs = [
- freeglut libGL libGLU mpfr gmp
+ freeglut
+ libGL
+ libGLU
+ mpfr
+ gmp
] ++ (with ocamlPackages; [
- camlp4 lablgl camlimages_4_2_4
+ camlp4
+ lablgl
+ camlimages_4_2_4
]);
postPatch = ''
diff --git a/pkgs/applications/science/math/jags/default.nix b/pkgs/applications/science/math/jags/default.nix
index 2e5986651342..3ddcd6206d68 100644
--- a/pkgs/applications/science/math/jags/default.nix
+++ b/pkgs/applications/science/math/jags/default.nix
@@ -1,18 +1,24 @@
-{lib, stdenv, fetchurl, gfortran, blas, lapack}:
+{ lib, stdenv, fetchurl, gfortran, blas, lapack }:
stdenv.mkDerivation rec {
- name = "JAGS-4.3.0";
+ pname = "JAGS";
+ version = "4.3.0";
+
src = fetchurl {
- url = "mirror://sourceforge/mcmc-jags/${name}.tar.gz";
+ url = "mirror://sourceforge/mcmc-jags/JAGS-${version}.tar.gz";
sha256 = "1z3icccg2ic56vmhyrpinlsvpq7kcaflk1731rgpvz9bk1bxvica";
};
- buildInputs = [gfortran blas lapack];
+
+ nativeBuildInputs = [ gfortran ];
+
+ buildInputs = [ blas lapack ];
+
configureFlags = [ "--with-blas=-lblas" "--with-lapack=-llapack" ];
meta = with lib; {
description = "Just Another Gibbs Sampler";
- license = licenses.gpl2;
- homepage = "http://mcmc-jags.sourceforge.net";
+ license = licenses.gpl2;
+ homepage = "http://mcmc-jags.sourceforge.net";
maintainers = [ maintainers.andres ];
platforms = platforms.unix;
};
diff --git a/pkgs/applications/science/math/mathematica/9.nix b/pkgs/applications/science/math/mathematica/9.nix
index 88db3c4b2e92..90a7ada99504 100644
--- a/pkgs/applications/science/math/mathematica/9.nix
+++ b/pkgs/applications/science/math/mathematica/9.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, coreutils
, patchelf
, requireFile
@@ -22,11 +23,11 @@ let
throw "Mathematica requires i686-linux or x86_64 linux";
in
stdenv.mkDerivation rec {
-
- name = "mathematica-9.0.0";
+ pname = "mathematica";
+ version = "9.0.0";
src = requireFile {
- name = "Mathematica_9.0.0_LINUX.sh";
+ name = "Mathematica_${version}_LINUX.sh";
message = ''
This nix expression requires that Mathematica_9.0.0_LINUX.sh is
already part of the store. Find the file on your Mathematica CD
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
ldpath = lib.makeLibraryPath buildInputs
+ lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
- (":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+ (":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs);
phases = "unpackPhase installPhase fixupPhase";
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 2b82a8f81705..3f295b416fb0 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -113,6 +113,5 @@ stdenv.mkDerivation ({
'';
platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.peti ];
};
})
diff --git a/pkgs/applications/science/math/msieve/default.nix b/pkgs/applications/science/math/msieve/default.nix
index 588df51554ab..6456608e7dbc 100644
--- a/pkgs/applications/science/math/msieve/default.nix
+++ b/pkgs/applications/science/math/msieve/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, zlib, gmp, ecm }:
+{ lib, stdenv, fetchurl, zlib, gmp, ecm }:
-stdenv.mkDerivation {
- name = "msieve-1.53";
+stdenv.mkDerivation rec {
+ pname = "msieve";
+ version = "1.53";
src = fetchurl {
- url = "mirror://sourceforge/msieve/msieve/Msieve%20v1.53/msieve153_src.tar.gz";
+ url = "mirror://sourceforge/msieve/msieve/Msieve%20v${version}/msieve${lib.replaceStrings ["."] [""] version}_src.tar.gz";
sha256 = "1d1vv7j4rh3nnxsmvafi73qy7lw7n3akjlm5pjl3m936yapvmz65";
};
diff --git a/pkgs/applications/science/math/nasc/default.nix b/pkgs/applications/science/math/nasc/default.nix
index dffbdaa23aa8..2fe027365cdc 100644
--- a/pkgs/applications/science/math/nasc/default.nix
+++ b/pkgs/applications/science/math/nasc/default.nix
@@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
maintainers = teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3Plus;
+ mainProgram = "com.github.parnold_x.nasc";
};
}
diff --git a/pkgs/applications/science/math/pcalc/default.nix b/pkgs/applications/science/math/pcalc/default.nix
index cbf07135dec2..97888b712eb1 100644
--- a/pkgs/applications/science/math/pcalc/default.nix
+++ b/pkgs/applications/science/math/pcalc/default.nix
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://vapier.github.io/pcalc/";
description = "Programmer's calculator";
- license = licenses.gpl2;
- maintainers = with lib.maintainers; [ ftrvxmtrx ];
- platforms = lib.platforms.linux;
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ftrvxmtrx ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/science/math/perseus/default.nix b/pkgs/applications/science/math/perseus/default.nix
index d53236d8070c..4545203dacca 100644
--- a/pkgs/applications/science/math/perseus/default.nix
+++ b/pkgs/applications/science/math/perseus/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
- name = "perseus-4-beta";
+ pname = "perseus";
version = "4-beta";
nativeBuildInputs = [ unzip ];
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
'';
homepage = "http://www.sas.upenn.edu/~vnanda/perseus/index.html";
license = lib.licenses.gpl3;
- maintainers = with lib.maintainers; [erikryb];
+ maintainers = with lib.maintainers; [ erikryb ];
platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/science/math/ries/default.nix b/pkgs/applications/science/math/ries/default.nix
index e46553d7b09e..eb759723256d 100644
--- a/pkgs/applications/science/math/ries/default.nix
+++ b/pkgs/applications/science/math/ries/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchzip }:
-stdenv.mkDerivation {
- name = "ries-2018-04-11";
+stdenv.mkDerivation rec {
+ pname = "ries";
+ version = "2018.04.11-1";
# upstream does not provide a stable link
src = fetchzip {
- url = "https://salsa.debian.org/debian/ries/-/archive/debian/2018.04.11-1/ries-debian-2018.04.11-1.zip";
+ url = "https://salsa.debian.org/debian/ries/-/archive/debian/${version}/ries-debian-${version}.zip";
sha256 = "1h2wvd4k7f0l0i1vm9niz453xdbcs3nxccmri50qyrzzzc1b0842";
};
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 3ba21cf6c8be..ed10121e5cdf 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -110,6 +110,14 @@ stdenv.mkDerivation rec {
rev = "9808325853ba9eb035115e5b056305a1c9d362a0";
sha256 = "sha256-gJSqycCtbAVr5qnVEbHFUvIuTOvaxFIeffpzd6nH4DE=";
})
+
+ # https://trac.sagemath.org/ticket/32420
+ (fetchSageDiff {
+ base = "9.5.beta2";
+ name = "sympy-1.9-update.patch";
+ rev = "beed4e16aff32e47d0c3b1c58cb1e2f4c38590f8";
+ sha256 = "sha256-3eJPfWfCrCAQ5filIn7FbzjRQeO9QyTIVl/HyRuqFtE=";
+ })
];
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index d53947d806d1..76bbc90773b4 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
networkx
ipykernel
ipywidgets
- jupyter_client
+ jupyter-client
]);
unpackPhase = ''
diff --git a/pkgs/applications/science/math/sage/threejs-sage.nix b/pkgs/applications/science/math/sage/threejs-sage.nix
index 0e4ad4dee955..bc7230f333ab 100644
--- a/pkgs/applications/science/math/sage/threejs-sage.nix
+++ b/pkgs/applications/science/math/sage/threejs-sage.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
};
installPhase = ''
- mkdir -p $out/lib/node_modules/three
- cp -r build version $out/lib/node_modules/three
+ mkdir -p "$out/lib/node_modules/three/"
+ cp version "$out/lib/node_modules/three"
+ cp -r build "$out/lib/node_modules/three/$(cat version)"
'';
}
diff --git a/pkgs/applications/science/math/scilab/default.nix b/pkgs/applications/science/math/scilab/default.nix
index 95c6c23fb09a..4ce04340f3a1 100644
--- a/pkgs/applications/science/math/scilab/default.nix
+++ b/pkgs/applications/science/math/scilab/default.nix
@@ -19,11 +19,12 @@ stdenv.mkDerivation rec {
sha256 = "1adk6jqlj7i3gjklvlf1j3il1nb22axnp4rvwl314an62siih0sc";
};
- buildInputs = [gfortran ncurses]
- ++ lib.optionals withGtk [gtk2]
- ++ lib.optionals withOCaml [ocaml]
- ++ lib.optional withX xlibsWrapper
- ;
+ nativeBuildInputs = [ gfortran ];
+
+ buildInputs = [ ncurses ]
+ ++ lib.optionals withGtk [ gtk2 ]
+ ++ lib.optionals withOCaml [ ocaml ]
+ ++ lib.optional withX xlibsWrapper;
/*
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 2205e96383a4..57e4a6f1d336 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -26,6 +26,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
homepage = "https://wxmaxima-developers.github.io/wxmaxima/";
platforms = platforms.linux;
- maintainers = [ maintainers.peti ];
};
}
diff --git a/pkgs/applications/science/medicine/xmedcon/default.nix b/pkgs/applications/science/medicine/xmedcon/default.nix
index e4a5f22891e8..bee2be729d1e 100644
--- a/pkgs/applications/science/medicine/xmedcon/default.nix
+++ b/pkgs/applications/science/medicine/xmedcon/default.nix
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "xmedcon";
- version = "0.21.0";
+ version = "0.21.2";
src = fetchurl {
- url = "https://prdownloads.sourceforge.net/${pname}/${pname}-${version}.tar.bz2";
- sha256 = "0yfnbrcil5i76z1wbg308pb1mnjbcxy6nih46qpqs038v1lhh4q8";
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "0svff8rc3j2p47snaq1hx9mv4ydmxawpb0hf3d165g1ccjwvmm6m";
};
buildInputs = [
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
homepage = "https://xmedcon.sourceforge.io/Main/HomePage";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ arianvp flokli ];
- platforms = with platforms; [ darwin linux ];
+ platforms = platforms.darwin ++ platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/cwltool/default.nix b/pkgs/applications/science/misc/cwltool/default.nix
index 21e3c47b323d..7cbd9354a372 100644
--- a/pkgs/applications/science/misc/cwltool/default.nix
+++ b/pkgs/applications/science/misc/cwltool/default.nix
@@ -1,22 +1,35 @@
{ lib
-, python3Packages
+, fetchFromGitHub
+, git
+, nodejs
+, python3
}:
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
pname = "cwltool";
- version = "3.1.20210628163208";
+ version = "3.1.20211104071347";
+ format = "setuptools";
- src = python3Packages.fetchPypi {
- inherit pname version;
- sha256 = "21b885f725420413d2f87eadc5e81c08a9c91beceda89b35d1a702ec4df47e52";
+ disabled = python3.pythonOlder "3.6";
+
+ src = fetchFromGitHub {
+ owner = "common-workflow-language";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-tp4SdilW2PKav7b3/BchXYl33W9U0aQH6FPdOhHSvIQ=";
};
postPatch = ''
substituteInPlace setup.py \
- --replace 'prov == 1.5.1' 'prov'
+ --replace 'prov == 1.5.1' 'prov' \
+ --replace "setup_requires=PYTEST_RUNNER," ""
'';
- propagatedBuildInputs = with python3Packages; [
+ nativeBuildInputs = [
+ git
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
argcomplete
bagit
coloredlogs
@@ -24,18 +37,41 @@ python3Packages.buildPythonApplication rec {
prov
psutil
pydot
+ rdflib
+ requests
+ ruamel-yaml
schema-salad
shellescape
typing-extensions
];
- doCheck = false; # hard to setup
- pythonImportsCheck = [ "cwltool" ];
+ checkInputs = with python3.pkgs; [
+ mock
+ nodejs
+ pytest-mock
+ pytest-xdist
+ pytestCheckHook
+ ];
+
+ disabledTests = [
+ "test_content_types"
+ "test_env_filtering"
+ "test_http_path_mapping"
+ ];
+
+ disabledTestPaths = [
+ "tests/test_udocker.py"
+ "tests/test_provenance.py"
+ ];
+
+ pythonImportsCheck = [
+ "cwltool"
+ ];
meta = with lib; {
+ description = "Common Workflow Language reference implementation";
homepage = "https://www.commonwl.org";
license = with licenses; [ asl20 ];
- description = "Common Workflow Language reference implementation";
maintainers = with maintainers; [ veprbl ];
};
}
diff --git a/pkgs/applications/science/misc/cytoscape/default.nix b/pkgs/applications/science/misc/cytoscape/default.nix
index 3ab7d57f95a3..783381f9db03 100644
--- a/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/pkgs/applications/science/misc/cytoscape/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "cytoscape";
- version = "3.8.2";
+ version = "3.9.0";
src = fetchurl {
url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
- sha256 = "0zgsq9qnyvmq96pgf7372r16rm034fd0r4qa72xi9zbd4f2r7z8w";
+ sha256 = "sha256-7YDmojzQujHrsDuB7WC0C3Z2srTd9QUveh1baod3KvU=";
};
patches = [
diff --git a/pkgs/applications/science/misc/gplates/default.nix b/pkgs/applications/science/misc/gplates/default.nix
index d0315d159674..67ab202160ca 100644
--- a/pkgs/applications/science/misc/gplates/default.nix
+++ b/pkgs/applications/science/misc/gplates/default.nix
@@ -1,31 +1,69 @@
-{ lib, stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal, cgal
-, proj, boost, cmake, python2, doxygen, graphviz, gmp, mpfr }:
+{ lib
+, mkDerivation
+, fetchurl
+, cmake
+, doxygen
+, graphviz
+, boost
+, cgal_5
+, gdal
+, glew
+, gmp
+, libGL
+, libGLU
+, mpfr
+, proj
+, python3
+, qtxmlpatterns
+, qwt
+}:
-stdenv.mkDerivation rec {
+let
+ python = python3.withPackages (ps: with ps; [
+ numpy
+ ]);
+ boost' = boost.override {
+ enablePython = true;
+ inherit python;
+ };
+ cgal = cgal_5.override {
+ boost = boost';
+ };
+in mkDerivation rec {
pname = "gplates";
- version = "2.2.0";
+ version = "2.3.0";
src = fetchurl {
- url = "mirror://sourceforge/gplates/${pname}-${version}-unixsrc.tar.bz2";
- sha256 = "1jrcv498vpcs8xklhbsgg12yfa90f96p2mwq6x5sjnrlpf8mh50b";
+ name = "gplates_${version}_src.tar.bz2";
+ url = "https://www.earthbyte.org/download/8421/?uid=b89bb31428";
+ sha256 = "0lrcmcxc924ixddii8cyglqlwwxvk7f00g4yzbss5i3fgcbh8n96";
};
- nativeBuildInputs = [ cmake ];
- buildInputs = [
- qt4 qwt6_qt4 libGLU libGL glew gdal cgal proj python2
- doxygen graphviz gmp mpfr
- (boost.override {
- enablePython = true;
- python = python2;
- })
+ nativeBuildInputs = [
+ cmake
+ doxygen
+ graphviz
];
- NIX_CFLAGS_LINK="-ldl -lpthread -lutil";
+ buildInputs = [
+ boost'
+ cgal
+ gdal
+ glew
+ gmp
+ libGL
+ libGLU
+ mpfr
+ proj
+ python
+ qtxmlpatterns
+ qwt
+ ];
meta = with lib; {
description = "Desktop software for the interactive visualisation of plate-tectonics";
homepage = "https://www.gplates.org";
- license = licenses.gpl2;
+ license = licenses.gpl2Only;
platforms = platforms.all;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/combined/default.nix b/pkgs/applications/science/misc/openmodelica/combined/default.nix
index 459a325111e2..0c2220b7ea28 100644
--- a/pkgs/applications/science/misc/openmodelica/combined/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/combined/default.nix
@@ -24,7 +24,7 @@ symlinkJoin {
description = "An open-source Modelica-based modeling and simulation environment intended for industrial and academic usage";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/mkderivation/default.nix b/pkgs/applications/science/misc/openmodelica/mkderivation/default.nix
index 94029fead48e..088fa83b7d92 100644
--- a/pkgs/applications/science/misc/openmodelica/mkderivation/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/mkderivation/default.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation (pkg // {
inherit omtarget postPatch preAutoreconf configureFlags configurePhase preBuild makeFlags installFlags;
src = fetchgit (import ./src-main.nix);
- version = "1.17.0";
+ version = "1.18.0";
nativeBuildInputs = getAttrDef "nativeBuildInputs" [ ] pkg
++ [ autoconf automake libtool cmake autoreconfHook ];
diff --git a/pkgs/applications/science/misc/openmodelica/mkderivation/src-main.nix b/pkgs/applications/science/misc/openmodelica/mkderivation/src-main.nix
index c31b23d2f948..1ab8d9390db3 100644
--- a/pkgs/applications/science/misc/openmodelica/mkderivation/src-main.nix
+++ b/pkgs/applications/science/misc/openmodelica/mkderivation/src-main.nix
@@ -1,7 +1,7 @@
{
url = "https://github.com/OpenModelica/OpenModelica/";
- rev = "08fd3f9144235f209a4ed7602bfadb32b1823628";
- sha256 = "0clgqk9ilnr43iyl5sdzwfzqpnw9amfy1npdgkpgm1wfnsvz6xrw";
+ rev = "49be4faa5a625a18efbbd74cc2f5be86aeea37bb";
+ sha256 = "0klqiy4sdizl1djb9hb0arcvfcjz2mmnakrjx81mmxcbr8yq2016";
fetchSubmodules = true;
}
-# Update with: nix run -f ./nixpkgs/default.nix nix-prefetch-git -c nix-prefetch-git 'https://github.com/OpenModelica/OpenModelica/' 'v1.17.0' --fetch-submodules
+# Update with: nix run -f ./nixpkgs/default.nix nix-prefetch-git -c nix-prefetch-git 'https://github.com/OpenModelica/OpenModelica/' 'v1.18.0' --fetch-submodules
diff --git a/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix b/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix
index b49c0f0f60ca..39591eceb40d 100644
--- a/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix
@@ -55,7 +55,7 @@ mkOpenModelicaDerivation ({
description = "Modelica compiler from OpenModelica suite";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
} // lib.optionalAttrs isCross {
diff --git a/pkgs/applications/science/misc/openmodelica/omedit/default.nix b/pkgs/applications/science/misc/openmodelica/omedit/default.nix
index b0cc530ba37b..b24a43f702bb 100644
--- a/pkgs/applications/science/misc/openmodelica/omedit/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omedit/default.nix
@@ -32,7 +32,7 @@ mkOpenModelicaDerivation rec {
description = "A Modelica connection editor for OpenModelica";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix b/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix
index 006daf18812f..a89b73eb8664 100644
--- a/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix
@@ -31,7 +31,7 @@ mkOpenModelicaDerivation {
including Modelica Standard Library";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/omlibrary/src-libs.nix b/pkgs/applications/science/misc/openmodelica/omlibrary/src-libs.nix
index c91addf78040..dff5ee78936a 100644
--- a/pkgs/applications/science/misc/openmodelica/omlibrary/src-libs.nix
+++ b/pkgs/applications/science/misc/openmodelica/omlibrary/src-libs.nix
@@ -1,83 +1,81 @@
[
- { url = "https://github.com/modelica-3rdparty/AdvancedNoise.git"; rev = "5ce57acd279dadd0d25b76a6b02d3f9e9d061246"; sha256 = "07jjbj0y6bak269md3xniqb5lgc33m92ar5qixqxj5yxdjaahfs2"; fetchSubmodules = true; }
- { url = "https://github.com/RWTH-EBC/AixLib.git"; rev = "b00e01d911e2e54e148f24e36ee387a8b457d89c"; sha256 = "1sljddxkx208nill0975sz9b1xd701n97aia4wxihr140dgs4dgb"; fetchSubmodules = true; }
- { url = "https://github.com/RWTH-EBC/AixLib.git"; rev = "v0.4.0"; sha256 = "0dw34mjq29n55xh51g1c9a9d0d8gbpn16gj309dfxn4v2hbnfvzx"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/AlgebraTestSuite.git"; rev = "b937e1a7f447138c59abec9b2092f84f16bf02e8"; sha256 = "0406inasx61dk7vcnziiyhxkna7g61a5hn0znnbxj817hz6q11zn"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ApproxSpline.git"; rev = "28420f5c1a88c9cd069defbd8c05e4a78a090675"; sha256 = "07gpyi2brj5zpvrlsnflqjnhbrgxvpqbdshp8lp4lh9mnj5jv95d"; fetchSubmodules = true; }
- { url = "https://github.com/OpenModelica/BioChem.git"; rev = "v1.0.2"; sha256 = "037bvj2lqrslg8k5r0rjgdzccslj9bj25b55k4g440vabm5p05qm"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/BondGraph.git"; rev = "20c23e60d12989bd4668ccac47659d82d39d29cc"; sha256 = "0yrkk708v4bvf423xb4zgpmnaj8qhq5primdg758ayddgli23wa9"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/BrineProp.git"; rev = "c2f564ae284726a2df6252a8561856691681572b"; sha256 = "01c2i2rlry7b4a6f2skkvzphcrfg5a2waxv4i7zgx5q275fg06i1"; fetchSubmodules = true; }
- { url = "https://github.com/EDF-TREE/BuildSysPro.git"; rev = "v3.3.0"; sha256 = "1cvcany3q9p1xndarxa2d8mmqxdnqk22476q8l61nayz5qy25x61"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/BuildingControlLib.git"; rev = "v1.0.0"; sha256 = "0ckdxway0m755mbrl94k4458sijzgknlzsrf7xs5bjymxchm8r2m"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/BuildingSystems.git"; rev = "1e07bb475b921a4eedc6155c5310d1f9f3ef7550"; sha256 = "1xg831vqh6zw88cxxcb3sjgz44l7ygsgxddl05fp6xvz5sjpfcna"; fetchSubmodules = true; }
- { url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "v6.0.0"; sha256 = "0rnnk1clji0myzr7adggki6knbl6v8381vwnqgiz8mkxbmzdwm4f"; fetchSubmodules = true; }
- { url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "v7.0.0"; sha256 = "04n04pp4zvyg8n8h7h79c3wyk7lmn940mh7qzs0lv76g1ybypnlz"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Chemical.git"; rev = "5645573fced862430b7b598b4d7ec1a39c7aa0fa"; sha256 = "1kh7kpmjfz55pb8553srlnrh8l00nw21xf5mjzh7nx9b1rndnmyg"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/DeployStructLib.git"; rev = "v1.0"; sha256 = "1k4zw9lnd0javw4zigxc15l58yf7xdz36b7808g65qxy89w6ksr2"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/DisHeatLib.git"; rev = "b11f53379c122870a52f2da9b1705d2c911cd21d"; sha256 = "1vm96a4z0b40r0nisxrrzyvan4yphjdkx4ad655phva2636xb5rr"; fetchSubmodules = true; }
- { url = "https://github.com/AHaumer/DriveControl.git"; rev = "b7233fd97a92867bb4ec2c3647c7f7e888398644"; sha256 = "0nyp1n8wrkjzfypsmjjzac0g9p4wbc1cxxr040fj20bqdg9l3h1b"; fetchSubmodules = true; }
- # A broken one. The revision is lost.
- # { url = "https://github.com/AHaumer/EMOTH.git"; rev = "fa890c8c2781f0c0b2f8efe955ed8a27875dd9ac"; sha256 = ""; fetchSubmodules = true; }
- { url = "https://github.com/christiankral/ElectroMechanicalDrives.git"; rev = "v2.2.0"; sha256 = "0012phmn1y9fgpph45lwbjk0yhm5czidf2z6khm8lddvk93wf31b"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ExternData.git"; rev = "v2.5.0"; sha256 = "19dsyq1mk5vl54fqaffzqafm5w94l011cy7pg16c7i933dbqnkki"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/ExternalMedia.git"; rev = "159518edd538b64e28cd70983a9cc47730323cc4"; sha256 = "0qjd5fk65bln3s1jhs0cqcv54c22m6x2akbmxj09y4x0lkd1kgqn"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ExternalMemoryLib.git"; rev = "6488d5815bda23c665123baa916789e283e16d2c"; sha256 = "06y1i5w690b3b9x23nzls8y67fl7yd7bn4xl5j0dmyi4qx33aqda"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/FMITest.git"; rev = "a67a276083f4010b249802ad8fc70dc30c09adfd"; sha256 = "0mg8jlvlwql2nsjiy7c3rdibv73bkfk149ac0450d5pc0hfn9mln"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/FailureModes.git"; rev = "v1.2.1"; sha256 = "1z8bwrld1rkydgssab5gnrd76frrbky8qxi1lvlaf2jidj6bzn1l"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/FaultTriggering.git"; rev = "v0.6.6"; sha256 = "0a08yyrbg4a49s0bgqgyds6pidx9xr47yspvl9bdak1mq34qibip"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/FeedDriveLibrary.git"; rev = "1.0.1"; sha256 = "15fi9dj6zgl0fr90cwxqjbpphj0dwrrmk74hf25j6zd85w2ycqdz"; fetchSubmodules = true; }
- { url = "https://github.com/DLR-SR/FractionalOrder.git"; rev = "99918820e346c362c3ad52d782c8215e5deeac4c"; sha256 = "1pycss6fqh86frfdbdfffjhaz09fz1558f9azgckhf8drx6ry1qs"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Greenhouses-Library.git"; rev = "89ae0e8097eb0751abce2013d304fa5f9c09b885"; sha256 = "1q77xj6aysqsn3d7kjmcq7dihbw18iqm35ifzdi75xgf3cgwla4f"; fetchSubmodules = true; }
- { url = "https://github.com/christiankral/HanserModelica.git"; rev = "v1.1.0"; sha256 = "0zwkrhg2y42m18p4z51izrickiv1vikgz0z7fpjia4dbppckav8i"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/HelmholtzMedia.git"; rev = "3b4a4bca94d388744b2d045344ea2f9b0b4d405b"; sha256 = "17fzpan89075vb5vbhw5ylgxcdsmj2vjnmmka7cgzh06izb69nvh"; fetchSubmodules = true; }
- { url = "https://github.com/ibpsa/modelica-ibpsa.git"; rev = "v3.0.0"; sha256 = "0xwgfndlw76zfmiiqadl85l9na9igsqlmfcawx526sdw2lhhgics"; fetchSubmodules = true; }
- { url = "https://github.com/open-ideas/IDEAS.git"; rev = "v2.1.0"; sha256 = "0xp0zg6ib5536d5vl361lsn5w5faqdf6djhcmfxns629wjima8rn"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/IndustrialControlSystems.git"; rev = "v1.1.0"; sha256 = "1nvgx94iy1pws0768anrl7ssjlzslb5mbp21j7xvf6wpqfmj0npc"; fetchSubmodules = true; }
- { url = "https://github.com/christiankral/KeyWordIO.git"; rev = "v0.9.0"; sha256 = "10kvj6zn2r6m3403ja8nkkxbfcchkz0pfk3g70ibr76zivxb5nim"; fetchSubmodules = true; }
- { url = "https://github.com/FishSim/LibRAS.git"; rev = "fca9de50a484a2213f3ca1b39e275c237c471688"; sha256 = "0w1c87sifq8klq0f2l70qxjrlvahyxy1cx9rln80rni4d427yc1k"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/LinearMPC.git"; rev = "v1.0"; sha256 = "1crj60i5f33l9pgip0xbv6ankcga7px0644cj7c2wnzn1fjmn2k8"; fetchSubmodules = true; }
- { url = "https://github.com/looms-polimi/MEV.git"; rev = "v1.0.1"; sha256 = "1a7ih9lc01wzaq8a8aznggpi4aqnczyzq49q5hc4fqvmfwl7l0j3"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ModPowerSystems.git"; rev = "df3afce27d5e935c4111f392275744a655abe216"; sha256 = "1b1fikm92lv6gj82imka3hxbjwv04i4h33y69yhcxdpqa6z6hm4z"; fetchSubmodules = true; }
- { url = "https://github.com/OpenModelica/OpenModelica-ModelicaStandardLibrary.git"; rev = "614a148f61c1ab5d6788d8c11197803132ec7c2f"; sha256 = "0fg0pbahybx3srv5npk8pw49k23kaw2ns6c00f15iy93mvfrmfsk"; fetchSubmodules = true; }
- { url = "https://github.com/OpenModelica/OpenModelica-ModelicaStandardLibrary.git"; rev = "34fe8cf3c7127ae09ca5f41e26b48fb6044e1e34"; sha256 = "0yz82k9dsp9d1jxqgxcm27fw1jz718km43qfginmgg0m9kfh2336"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Modelica-Arduino.git"; rev = "v0.1.0"; sha256 = "1n34dksqhrn1synv2mp2ifk4dxyhp15f5v1jb1b3dbw9n19951qb"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Modelica-GNU_ScientificLibrary.git"; rev = "9235ab28bdd7f0fe3e7abba48af53d73332858ec"; sha256 = "168g9gg12lfa863ifs41bnx6yd0yyjnal6986dgpm51dj5arw6id"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Modelica-MVEM.git"; rev = "v1.0.1"; sha256 = "1p68691dnl06lgwm4bl9g036brn4vl7m5x3gq4rxc291339frixk"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ModelicaADS.git"; rev = "v1.0.1"; sha256 = "0fhxrl07d7v3wa79d30psm1gxydc0p7s2akfirdx6dai0633skp9"; fetchSubmodules = true; }
- { url = "https://github.com/xogeny/ModelicaBook.git"; rev = "v0.6.0"; sha256 = "0yqbll6p738yvpi1x11cjngpz2glda07mljrkjlm23p7l53x63dc"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-compliance/compliance.git"; rev = "8a91e75d8a26acc4de30fc0e5d5e9db83c970bd6"; sha256 = "1cym1wlgsvfrryq8zqzzrgs4wam1l7pc20q07hk3d615nhq21lg6"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ModelicaDFR.git"; rev = "37a441934d05330cf3d13e9ec551954d27eca84c"; sha256 = "13rpcs8cl9x15vi655150zmhmg1iaxpzvxrl3rqif46zpl5dhlj2"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/Modelica_DeviceDrivers.git"; rev = "v1.8.2"; sha256 = "16c0p9zn0qrraz59ivinibmikdd251plm1vqngznzhksjwvz6bja"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/Modelica_LinearSystems2.git"; rev = "v2.3.5"; sha256 = "0rzicynqgayydxqynnairxk7ybg4alv1xnfz8cgkrpicl2g9bacg"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Modelica_Requirements.git"; rev = "a427b5cb7997e9036c577d219e6b8a5d0c28389a"; sha256 = "1ihx46kifnfi9kw1g8nmd9sarl766whbzdk6a44alczsya4gg45k"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/Modelica_Synchronous.git"; rev = "c8350276bfd945086962cf4150ba941b9c57ed13"; sha256 = "12ad7fpjy50ky3lvl65r9d5xvlzvw5yqdnbp4rsgl3qw7s3wrmja"; fetchSubmodules = true; }
- { url = "https://github.com/jwindahlModelon/MultiPhaseMixtureMedia.git"; rev = "0bda0c58af6384f8e0edf7aa7520afb369af3e38"; sha256 = "11bqm69504bh4h05dxlwdmjfxwls06mr49cz47kl8jmrygkfi4i2"; fetchSubmodules = true; }
- { url = "https://github.com/OpenIPSL/OpenIPSL.git"; rev = "v1.5.0"; sha256 = "09xrcz0rdxdy220ki5zyl7920y0a4lg24p0aibna4ad15vszhhwj"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Optimisers.git"; rev = "e33c69edaad6dad8029167b0ca00533964a6fe37"; sha256 = "0hcxsrr2n4fzaxdjvgvqayz38kpfk86cclvg5pzcfmjc5bznb8bs"; fetchSubmodules = true; }
- { url = "https://github.com/lochel/PNlib.git"; rev = "ab9b6b8527c0c78140365e7b105ae469d4954a64"; sha256 = "0y7bfbnvzv9bnz4v8wvmy42dji3cqpy5b2fmd2jj0rhlzs1infzh"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/PVSystems.git"; rev = "v0.6.2"; sha256 = "0vcgvdaqfbn46lpzk0kvsif3d55wf8yzhkbdpf5zv04kv7zw25w9"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/PhotoVoltaics.git"; rev = "v1.6.0"; sha256 = "0zqx77z217iln3vfxn2v3c2jl0jz5kgcd96ylvimjnwr30mxr09n"; fetchSubmodules = true; }
- { url = "https://github.com/MarekMatejak/Physiolibrary.git"; rev = "v2.3.1"; sha256 = "0nxfw63m278gaff18zz29n2s1vk4kwdbv2qvbjmcq86fl1i5b3bg"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Physiomodel.git"; rev = "v1.0.0"; sha256 = "1sdhv5qgjqv3zdq57pkkrh04ainwv9n5zqd8mb9a3ybjmwdjf6f9"; fetchSubmodules = true; }
- { url = "https://github.com/dzimmer/PlanarMechanics.git"; rev = "55224a9e76de8aa7f708236bd4d7dee624ecba50"; sha256 = "0hf7vi44adss86x5ahk5if7bdjgw773d8mb3d8ianq12g8azycyd"; fetchSubmodules = true; }
- { url = "https://github.com/PowerGrids/PowerGrids.git"; rev = "v1.0.0"; sha256 = "06bx8mqvmizhfwg99djdfgh2mblc4wzmg0zq4ilrp586jwfninmz"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/PowerSystems.git"; rev = "v1.0.0"; sha256 = "1xwhwich7gi6vl33zl2r78xdjklchgkjcnvww6390j20l1wjznkn"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/PowerSystems.git"; rev = "7369976265a9d7b62097340aba5e463c62cc5061"; sha256 = "1f0h148v2g057l6ixf646d8ymsx1jzqn14xlram8h62la2k6nmvw"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/RealTimeCoordinationLibrary.git"; rev = "v1.0.2"; sha256 = "0ch4la04hm059ii5wzph9gsbvqhnfqrvvpqi57qn27bm10c4la0m"; fetchSubmodules = true; }
- { url = "https://github.com/casella/ScalableTestSuite.git"; rev = "v1.11.5"; sha256 = "0bhj1q9b8d29nrbr253zszy1w1yvyizvyr3law1pqjj6mhbqmg4i"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Servomechanisms.git"; rev = "3bf82ba5d3f31b4a0ae05f99ae690037358e153e"; sha256 = "1swka7d58wkg5pqv59lqgfi7gv6rg5vra4j6r76pn9czx9ddal8w"; fetchSubmodules = true; }
- { url = "https://github.com/SolarTherm/SolarTherm.git"; rev = "d80fc335d1fa5d1628c45c2e73204bcb8a614b21"; sha256 = "18d8cqlh0ic2yfcxzkz0ar9z19486z9x4sc7c9mpggxib28p39aa"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/Soltermica.git"; rev = "9f7224bd89335f95dffe1ccdaa094df5a3279fdf"; sha256 = "1bif3cnwjas6x7b8ahwkm7dbrqrfdqwwa26zmdc6zrpfncl3kqd0"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/SystemDynamics.git"; rev = "2f6bd9382c5aac2aff9148cd9113a418767734b6"; sha256 = "0ii2mj6ngwjir3gzyad8wsj86pvd6wzal91nz2y7gzwj1djchb3x"; fetchSubmodules = true; }
- { url = "https://github.com/thom-marx/ThermalSeparation.git"; rev = "ffa0495ba829ecab105be4bfb3b7652625ec9c03"; sha256 = "1czm97bcrpp2jv0a0kd31a929wqlrlzdhdxvyy4w499dn20jzv1l"; fetchSubmodules = true; }
- { url = "https://github.com/casella/ThermoPower.git"; rev = "82d21eba0d330005899dd50a6a0ceb7d09c4caeb"; sha256 = "0n83b40hjisy7lpnbz692947d2q3hw5hk4rak7fg0w5dbm4i719p"; fetchSubmodules = true; }
- { url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "db81ae1b5a6a85f6c6c7693244cafa6087e18ff5"; sha256 = "12fsf0xxxc1ja6vmm9ff85f8j5sg1lb7w4g57s2w3fkf4d3a7d0c"; fetchSubmodules = true; }
- { url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "5cef9acb4dedf8af6f4638a4448f08a544ebd30b"; sha256 = "0ihnz1s4rs42yis9zym9nw29ia2lqz2yx2wblc50p6f221w7q78s"; fetchSubmodules = true; }
- { url = "https://github.com/lenaRB/VVDRlib.git"; rev = "eae4981674642eddffc7f2aa3690320fcaddee0e"; sha256 = "0qxxk2xlas5mqyc1h8ndic208qj1sm5mr5y8664kv3py7i8jdqi4"; fetchSubmodules = true; }
- { url = "https://github.com/modelica/VehicleInterfaces.git"; rev = "v1.2.5"; sha256 = "044k17cpc88wprrvw03p6crm6dy6x9a6xj5104d5nln71lqz5sdq"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/WasteWater.git"; rev = "v2.1.0"; sha256 = "1dxr4m9j7b5266daj4klbrhvnkqr73sximdw9bk9v5qf0s28li99"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/WindPowerPlants.git"; rev = "v1.2.0"; sha256 = "1lyrqwsb6sm1wc7vlj72zk5cpjhhzh27fviiqayddqy2b903xish"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/ipsl.git"; rev = "v1.1.1"; sha256 = "1w2iah8c5d8n01wmxydjk0rrcxh88g8yjy2zmv403azcccq7byzp"; fetchSubmodules = true; }
- { url = "https://github.com/modelica-3rdparty/netCDF-DataReader.git"; rev = "v2.5.0"; sha256 = "1pd5xf5bgz010lryv8bj6lvlfqn9p184csiffwj8icx7rycnlcqb"; fetchSubmodules = true; }
- { url = "https://github.com/joewa/open-bldc-modelica.git"; rev = "58a83b5b36f267613de4676c95163489b1ddc2e7"; sha256 = "0wf6dn64d2psv9b3xg5227vzpk109r3dqzi4m2wwhrilaxs3v004"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/AdvancedNoise.git"; rev = "5ce57acd279dadd0d25b76a6b02d3f9e9d061246"; sha256 = "07jjbj0y6bak269md3xniqb5lgc33m92ar5qixqxj5yxdjaahfs2"; fetchSubmodules = true; }
+{ url = "https://github.com/RWTH-EBC/AixLib.git"; rev = "65e49ddf5c935846888a61aa303e52c909619079"; sha256 = "18xn8j3x3j4x9bpjgqnq0b6p3yzzsg5n62fv1ldqbbjcmi0vimd5"; fetchSubmodules = true; }
+{ url = "https://github.com/RWTH-EBC/AixLib.git"; rev = "v0.4.0"; sha256 = "0dw34mjq29n55xh51g1c9a9d0d8gbpn16gj309dfxn4v2hbnfvzx"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/AlgebraTestSuite.git"; rev = "b937e1a7f447138c59abec9b2092f84f16bf02e8"; sha256 = "0406inasx61dk7vcnziiyhxkna7g61a5hn0znnbxj817hz6q11zn"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ApproxSpline.git"; rev = "28420f5c1a88c9cd069defbd8c05e4a78a090675"; sha256 = "07gpyi2brj5zpvrlsnflqjnhbrgxvpqbdshp8lp4lh9mnj5jv95d"; fetchSubmodules = true; }
+{ url = "https://github.com/OpenModelica/BioChem.git"; rev = "v1.0.2"; sha256 = "037bvj2lqrslg8k5r0rjgdzccslj9bj25b55k4g440vabm5p05qm"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/BondGraph.git"; rev = "20c23e60d12989bd4668ccac47659d82d39d29cc"; sha256 = "0yrkk708v4bvf423xb4zgpmnaj8qhq5primdg758ayddgli23wa9"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/BrineProp.git"; rev = "834fb3519ca8f89efe268582d39d00a7c3991150"; sha256 = "1iwqh4kr36wgxc0gci63gdgbqln2sap1w4bkydk1vkss2s302lg4"; fetchSubmodules = true; }
+{ url = "https://github.com/EDF-TREE/BuildSysPro.git"; rev = "v3.3.0"; sha256 = "1cvcany3q9p1xndarxa2d8mmqxdnqk22476q8l61nayz5qy25x61"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/BuildingControlLib.git"; rev = "v1.0.0"; sha256 = "0ckdxway0m755mbrl94k4458sijzgknlzsrf7xs5bjymxchm8r2m"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/BuildingSystems.git"; rev = "c3070d48015ee75c1577f349cb388a498bef7270"; sha256 = "0r876wm6f1xx4cli1lqlylpl3zgaddmy06hcafbnzry9j38vbz4y"; fetchSubmodules = true; }
+{ url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "v6.0.0"; sha256 = "0rnnk1clji0myzr7adggki6knbl6v8381vwnqgiz8mkxbmzdwm4f"; fetchSubmodules = true; }
+{ url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "v7.0.0"; sha256 = "04n04pp4zvyg8n8h7h79c3wyk7lmn940mh7qzs0lv76g1ybypnlz"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Chemical.git"; rev = "5645573fced862430b7b598b4d7ec1a39c7aa0fa"; sha256 = "1kh7kpmjfz55pb8553srlnrh8l00nw21xf5mjzh7nx9b1rndnmyg"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/DeployStructLib.git"; rev = "v1.0"; sha256 = "1k4zw9lnd0javw4zigxc15l58yf7xdz36b7808g65qxy89w6ksr2"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/DisHeatLib.git"; rev = "b11f53379c122870a52f2da9b1705d2c911cd21d"; sha256 = "1vm96a4z0b40r0nisxrrzyvan4yphjdkx4ad655phva2636xb5rr"; fetchSubmodules = true; }
+{ url = "https://github.com/AHaumer/DriveControl.git"; rev = "b7233fd97a92867bb4ec2c3647c7f7e888398644"; sha256 = "0nyp1n8wrkjzfypsmjjzac0g9p4wbc1cxxr040fj20bqdg9l3h1b"; fetchSubmodules = true; }
+{ url = "https://github.com/christiankral/ElectroMechanicalDrives.git"; rev = "v2.2.0"; sha256 = "0012phmn1y9fgpph45lwbjk0yhm5czidf2z6khm8lddvk93wf31b"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ExternData.git"; rev = "v2.5.0"; sha256 = "19dsyq1mk5vl54fqaffzqafm5w94l011cy7pg16c7i933dbqnkki"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/ExternalMedia.git"; rev = "6138312c96142ff3c01190147e6277991bfa2fca"; sha256 = "1d9g2hbdvgz13j7kdi1kglkkllj9f00x3dwdp5piyypvs464jsn5"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ExternalMemoryLib.git"; rev = "6488d5815bda23c665123baa916789e283e16d2c"; sha256 = "06y1i5w690b3b9x23nzls8y67fl7yd7bn4xl5j0dmyi4qx33aqda"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/FMITest.git"; rev = "a67a276083f4010b249802ad8fc70dc30c09adfd"; sha256 = "0mg8jlvlwql2nsjiy7c3rdibv73bkfk149ac0450d5pc0hfn9mln"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/FailureModes.git"; rev = "v1.2.1"; sha256 = "1z8bwrld1rkydgssab5gnrd76frrbky8qxi1lvlaf2jidj6bzn1l"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/FaultTriggering.git"; rev = "v0.6.6"; sha256 = "0a08yyrbg4a49s0bgqgyds6pidx9xr47yspvl9bdak1mq34qibip"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/FeedDriveLibrary.git"; rev = "1.0.1"; sha256 = "15fi9dj6zgl0fr90cwxqjbpphj0dwrrmk74hf25j6zd85w2ycqdz"; fetchSubmodules = true; }
+{ url = "https://github.com/DLR-SR/FractionalOrder.git"; rev = "99918820e346c362c3ad52d782c8215e5deeac4c"; sha256 = "1pycss6fqh86frfdbdfffjhaz09fz1558f9azgckhf8drx6ry1qs"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Greenhouses-Library.git"; rev = "89ae0e8097eb0751abce2013d304fa5f9c09b885"; sha256 = "1q77xj6aysqsn3d7kjmcq7dihbw18iqm35ifzdi75xgf3cgwla4f"; fetchSubmodules = true; }
+{ url = "https://github.com/christiankral/HanserModelica.git"; rev = "v1.1.0"; sha256 = "0zwkrhg2y42m18p4z51izrickiv1vikgz0z7fpjia4dbppckav8i"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/HelmholtzMedia.git"; rev = "3b4a4bca94d388744b2d045344ea2f9b0b4d405b"; sha256 = "17fzpan89075vb5vbhw5ylgxcdsmj2vjnmmka7cgzh06izb69nvh"; fetchSubmodules = true; }
+{ url = "https://github.com/ibpsa/modelica-ibpsa.git"; rev = "v3.0.0"; sha256 = "0xwgfndlw76zfmiiqadl85l9na9igsqlmfcawx526sdw2lhhgics"; fetchSubmodules = true; }
+{ url = "https://github.com/open-ideas/IDEAS.git"; rev = "v2.1.0"; sha256 = "0xp0zg6ib5536d5vl361lsn5w5faqdf6djhcmfxns629wjima8rn"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/IndustrialControlSystems.git"; rev = "v1.1.0"; sha256 = "1nvgx94iy1pws0768anrl7ssjlzslb5mbp21j7xvf6wpqfmj0npc"; fetchSubmodules = true; }
+{ url = "https://github.com/christiankral/KeyWordIO.git"; rev = "v0.9.0"; sha256 = "10kvj6zn2r6m3403ja8nkkxbfcchkz0pfk3g70ibr76zivxb5nim"; fetchSubmodules = true; }
+{ url = "https://github.com/FishSim/LibRAS.git"; rev = "fca9de50a484a2213f3ca1b39e275c237c471688"; sha256 = "0w1c87sifq8klq0f2l70qxjrlvahyxy1cx9rln80rni4d427yc1k"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/LinearMPC.git"; rev = "v1.0"; sha256 = "1crj60i5f33l9pgip0xbv6ankcga7px0644cj7c2wnzn1fjmn2k8"; fetchSubmodules = true; }
+{ url = "https://github.com/looms-polimi/MEV.git"; rev = "v1.0.1"; sha256 = "1a7ih9lc01wzaq8a8aznggpi4aqnczyzq49q5hc4fqvmfwl7l0j3"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ModPowerSystems.git"; rev = "df3afce27d5e935c4111f392275744a655abe216"; sha256 = "1b1fikm92lv6gj82imka3hxbjwv04i4h33y69yhcxdpqa6z6hm4z"; fetchSubmodules = true; }
+{ url = "https://github.com/OpenModelica/OpenModelica-ModelicaStandardLibrary.git"; rev = "4a91d52248b0f17415bba1d58881fc730bd94215"; sha256 = "19caxz6hvlrsls3b2387a24zwwnykbb138jpb42gwpy8jlh93yzi"; fetchSubmodules = true; }
+{ url = "https://github.com/OpenModelica/OpenModelica-ModelicaStandardLibrary.git"; rev = "cab27240a4a3ed4ea137226f056bbc0d79543f7a"; sha256 = "06y911i2hs7hg4ykhb8wngvxhwnaww8rsakwa7ssd047a7glzsb0"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Modelica-Arduino.git"; rev = "v0.1.0"; sha256 = "1n34dksqhrn1synv2mp2ifk4dxyhp15f5v1jb1b3dbw9n19951qb"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Modelica-GNU_ScientificLibrary.git"; rev = "9235ab28bdd7f0fe3e7abba48af53d73332858ec"; sha256 = "168g9gg12lfa863ifs41bnx6yd0yyjnal6986dgpm51dj5arw6id"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Modelica-MVEM.git"; rev = "v1.0.1"; sha256 = "1p68691dnl06lgwm4bl9g036brn4vl7m5x3gq4rxc291339frixk"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ModelicaADS.git"; rev = "v1.0.1"; sha256 = "0fhxrl07d7v3wa79d30psm1gxydc0p7s2akfirdx6dai0633skp9"; fetchSubmodules = true; }
+{ url = "https://github.com/xogeny/ModelicaBook.git"; rev = "v0.6.0"; sha256 = "0yqbll6p738yvpi1x11cjngpz2glda07mljrkjlm23p7l53x63dc"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-compliance/compliance.git"; rev = "8a91e75d8a26acc4de30fc0e5d5e9db83c970bd6"; sha256 = "1cym1wlgsvfrryq8zqzzrgs4wam1l7pc20q07hk3d615nhq21lg6"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ModelicaDFR.git"; rev = "37a441934d05330cf3d13e9ec551954d27eca84c"; sha256 = "13rpcs8cl9x15vi655150zmhmg1iaxpzvxrl3rqif46zpl5dhlj2"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/Modelica_DeviceDrivers.git"; rev = "v1.8.2"; sha256 = "16c0p9zn0qrraz59ivinibmikdd251plm1vqngznzhksjwvz6bja"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/Modelica_LinearSystems2.git"; rev = "v2.3.5"; sha256 = "0rzicynqgayydxqynnairxk7ybg4alv1xnfz8cgkrpicl2g9bacg"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Modelica_Requirements.git"; rev = "a427b5cb7997e9036c577d219e6b8a5d0c28389a"; sha256 = "1ihx46kifnfi9kw1g8nmd9sarl766whbzdk6a44alczsya4gg45k"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/Modelica_Synchronous.git"; rev = "c8350276bfd945086962cf4150ba941b9c57ed13"; sha256 = "12ad7fpjy50ky3lvl65r9d5xvlzvw5yqdnbp4rsgl3qw7s3wrmja"; fetchSubmodules = true; }
+{ url = "https://github.com/jwindahlModelon/MultiPhaseMixtureMedia.git"; rev = "0bda0c58af6384f8e0edf7aa7520afb369af3e38"; sha256 = "11bqm69504bh4h05dxlwdmjfxwls06mr49cz47kl8jmrygkfi4i2"; fetchSubmodules = true; }
+{ url = "https://github.com/OpenIPSL/OpenIPSL.git"; rev = "v1.5.0"; sha256 = "09xrcz0rdxdy220ki5zyl7920y0a4lg24p0aibna4ad15vszhhwj"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Optimisers.git"; rev = "e33c69edaad6dad8029167b0ca00533964a6fe37"; sha256 = "0hcxsrr2n4fzaxdjvgvqayz38kpfk86cclvg5pzcfmjc5bznb8bs"; fetchSubmodules = true; }
+{ url = "https://github.com/lochel/PNlib.git"; rev = "059545d48dd9ceeccfa3b4e47689ec8dd334dcd8"; sha256 = "1a0hxkgsi4klw9c8zav1dy2p1c85ald29gx82hfacwv55xl9f127"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/PVSystems.git"; rev = "v0.6.2"; sha256 = "0vcgvdaqfbn46lpzk0kvsif3d55wf8yzhkbdpf5zv04kv7zw25w9"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/PhotoVoltaics.git"; rev = "v1.6.0"; sha256 = "0zqx77z217iln3vfxn2v3c2jl0jz5kgcd96ylvimjnwr30mxr09n"; fetchSubmodules = true; }
+{ url = "https://github.com/MarekMatejak/Physiolibrary.git"; rev = "v2.3.1"; sha256 = "0nxfw63m278gaff18zz29n2s1vk4kwdbv2qvbjmcq86fl1i5b3bg"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Physiomodel.git"; rev = "v1.0.0"; sha256 = "1sdhv5qgjqv3zdq57pkkrh04ainwv9n5zqd8mb9a3ybjmwdjf6f9"; fetchSubmodules = true; }
+{ url = "https://github.com/dzimmer/PlanarMechanics.git"; rev = "55224a9e76de8aa7f708236bd4d7dee624ecba50"; sha256 = "0hf7vi44adss86x5ahk5if7bdjgw773d8mb3d8ianq12g8azycyd"; fetchSubmodules = true; }
+{ url = "https://github.com/PowerGrids/PowerGrids.git"; rev = "v1.0.0"; sha256 = "06bx8mqvmizhfwg99djdfgh2mblc4wzmg0zq4ilrp586jwfninmz"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/PowerSystems.git"; rev = "v1.0.0"; sha256 = "1xwhwich7gi6vl33zl2r78xdjklchgkjcnvww6390j20l1wjznkn"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/PowerSystems.git"; rev = "f0721333f4875143565147a7d043bee1c300873b"; sha256 = "0gbvx0gzf3akb0w7yvdxfq2y4ps91cy5b93iwnvnw7652x716813"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/RealTimeCoordinationLibrary.git"; rev = "v1.0.2"; sha256 = "0ch4la04hm059ii5wzph9gsbvqhnfqrvvpqi57qn27bm10c4la0m"; fetchSubmodules = true; }
+{ url = "https://github.com/casella/ScalableTestSuite.git"; rev = "v1.11.5"; sha256 = "0bhj1q9b8d29nrbr253zszy1w1yvyizvyr3law1pqjj6mhbqmg4i"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Servomechanisms.git"; rev = "3bf82ba5d3f31b4a0ae05f99ae690037358e153e"; sha256 = "1swka7d58wkg5pqv59lqgfi7gv6rg5vra4j6r76pn9czx9ddal8w"; fetchSubmodules = true; }
+{ url = "https://github.com/SolarTherm/SolarTherm.git"; rev = "203fb5af3b95c731c7fcbe2833d51fd420e80796"; sha256 = "1bh4y4igzd0k59xm8j14p52gnlbwkiwwy6bhhyarpr361yrchn33"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/Soltermica.git"; rev = "9f7224bd89335f95dffe1ccdaa094df5a3279fdf"; sha256 = "1bif3cnwjas6x7b8ahwkm7dbrqrfdqwwa26zmdc6zrpfncl3kqd0"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/SystemDynamics.git"; rev = "2f6bd9382c5aac2aff9148cd9113a418767734b6"; sha256 = "0ii2mj6ngwjir3gzyad8wsj86pvd6wzal91nz2y7gzwj1djchb3x"; fetchSubmodules = true; }
+{ url = "https://github.com/thom-marx/ThermalSeparation.git"; rev = "ffa0495ba829ecab105be4bfb3b7652625ec9c03"; sha256 = "1czm97bcrpp2jv0a0kd31a929wqlrlzdhdxvyy4w499dn20jzv1l"; fetchSubmodules = true; }
+{ url = "https://github.com/casella/ThermoPower.git"; rev = "650be2c8cbd5abc3535e92b865e509073afc8aeb"; sha256 = "08ijrx8xw43dadz5s3kiwa17ax9faq2wyq9gm0vlz9ddbkj0hcaq"; fetchSubmodules = true; }
+{ url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "db81ae1b5a6a85f6c6c7693244cafa6087e18ff5"; sha256 = "12fsf0xxxc1ja6vmm9ff85f8j5sg1lb7w4g57s2w3fkf4d3a7d0c"; fetchSubmodules = true; }
+{ url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "5cef9acb4dedf8af6f4638a4448f08a544ebd30b"; sha256 = "0ihnz1s4rs42yis9zym9nw29ia2lqz2yx2wblc50p6f221w7q78s"; fetchSubmodules = true; }
+{ url = "https://github.com/lenaRB/VVDRlib.git"; rev = "eae4981674642eddffc7f2aa3690320fcaddee0e"; sha256 = "0qxxk2xlas5mqyc1h8ndic208qj1sm5mr5y8664kv3py7i8jdqi4"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica/VehicleInterfaces.git"; rev = "v1.2.5"; sha256 = "044k17cpc88wprrvw03p6crm6dy6x9a6xj5104d5nln71lqz5sdq"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/WasteWater.git"; rev = "v2.1.0"; sha256 = "1dxr4m9j7b5266daj4klbrhvnkqr73sximdw9bk9v5qf0s28li99"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/WindPowerPlants.git"; rev = "v1.2.0"; sha256 = "1lyrqwsb6sm1wc7vlj72zk5cpjhhzh27fviiqayddqy2b903xish"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/ipsl.git"; rev = "v1.1.1"; sha256 = "1w2iah8c5d8n01wmxydjk0rrcxh88g8yjy2zmv403azcccq7byzp"; fetchSubmodules = true; }
+{ url = "https://github.com/modelica-3rdparty/netCDF-DataReader.git"; rev = "v2.5.0"; sha256 = "1pd5xf5bgz010lryv8bj6lvlfqn9p184csiffwj8icx7rycnlcqb"; fetchSubmodules = true; }
+{ url = "https://github.com/joewa/open-bldc-modelica.git"; rev = "58a83b5b36f267613de4676c95163489b1ddc2e7"; sha256 = "0wf6dn64d2psv9b3xg5227vzpk109r3dqzi4m2wwhrilaxs3v004"; fetchSubmodules = true; }
]
diff --git a/pkgs/applications/science/misc/openmodelica/omparser/default.nix b/pkgs/applications/science/misc/openmodelica/omparser/default.nix
index fcf5acd29ee9..cbf8f2255e76 100644
--- a/pkgs/applications/science/misc/openmodelica/omparser/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omparser/default.nix
@@ -22,7 +22,7 @@ mkOpenModelicaDerivation rec {
suite";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/omplot/default.nix b/pkgs/applications/science/misc/openmodelica/omplot/default.nix
index 7edc4b6efb22..51ab89407f4c 100644
--- a/pkgs/applications/science/misc/openmodelica/omplot/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omplot/default.nix
@@ -28,7 +28,7 @@ mkOpenModelicaDerivation rec {
description = "Plotting tool for OpenModelica-generated results files";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/omshell/default.nix b/pkgs/applications/science/misc/openmodelica/omshell/default.nix
index 2f8c5203c07a..3c39d62f92d6 100644
--- a/pkgs/applications/science/misc/openmodelica/omshell/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omshell/default.nix
@@ -34,7 +34,7 @@ mkOpenModelicaDerivation rec {
description = "Interactive OpenModelica session shell";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix b/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix
index 448cdee6c263..d91d427a0770 100644
--- a/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix
@@ -20,7 +20,7 @@ mkOpenModelicaDerivation rec {
description = "The OpenModelica FMI & SSP-based co-simulation environment";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ smironov ];
+ maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/science/misc/openmvs/default.nix b/pkgs/applications/science/misc/openmvs/default.nix
index 731230130caf..a92920c5e795 100644
--- a/pkgs/applications/science/misc/openmvs/default.nix
+++ b/pkgs/applications/science/misc/openmvs/default.nix
@@ -1,9 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake
-, eigen, opencv, ceres-solver, cgal, boost, vcg
-, gmp, mpfr, glog, gflags, libjpeg_turbo }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, eigen
+, opencv
+, ceres-solver
+, cgal
+, boost
+, vcg
+, gmp
+, mpfr
+, glog
+, gflags
+, libjpeg_turbo
+}:
stdenv.mkDerivation {
- name = "openmvs-unstable-2018-05-26";
+ pname = "openmvs";
+ version = "unstable-2018-05-26";
src = fetchFromGitHub {
owner = "cdcseacave";
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 4ff751ff8d18..40c102fc6822 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -2,7 +2,7 @@
python3Packages.buildPythonApplication rec {
pname = "snakemake";
- version = "6.7.0";
+ version = "6.10.0";
propagatedBuildInputs = with python3Packages; [
appdirs
@@ -31,7 +31,7 @@ python3Packages.buildPythonApplication rec {
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "6f53d54044c5d1718c7858f45286beeffb220c794fe5f602a5c20bf0caf8ec07";
+ sha256 = "199a86c8d1fcfdb88c4271a1507b0ab371a15bc407f2dad9b0ab8c43438adff8";
};
doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
diff --git a/pkgs/applications/science/misc/vite/default.nix b/pkgs/applications/science/misc/vite/default.nix
index ed9d18528756..7d284d5eebb7 100644
--- a/pkgs/applications/science/misc/vite/default.nix
+++ b/pkgs/applications/science/misc/vite/default.nix
@@ -10,7 +10,8 @@ let
};
in
stdenv.mkDerivation {
- name = "vite-1.2pre${rev}";
+ pname = "vite";
+ version = "1.2pre${rev}";
src = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/trunk";
diff --git a/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix b/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
index 16d858b00bed..cf4584979ba2 100644
--- a/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
@@ -11,7 +11,9 @@ stdenv.mkDerivation {
sha256 = "1r76zvln3bwycxlmqday0sqzv5j260y7mdh66as2aqny6jzd5ld7";
};
- buildInputs = [ mpi gfortran ];
+ nativeBuildInputs = [ gfortran ];
+
+ buildInputs = [ mpi ];
configurePhase = ''
cd source
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index bdec2ccc669f..bbe8f6f9f536 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -1,12 +1,7 @@
-{ lib, stdenv
-, fetchurl
-, cmake
-, hwloc
-, fftw
-, perl
+{ lib, stdenv, fetchurl, cmake, hwloc, fftw, perl, blas, lapack, mpi, cudatoolkit
, singlePrec ? true
-, mpiEnabled ? false
-, mpi
+, enableMpi ? false
+, enableCuda ? false
, cpuAcceleration ? null
}:
@@ -24,20 +19,32 @@ let
in stdenv.mkDerivation rec {
pname = "gromacs";
- version = "2020.4";
+ version = "2021.4";
src = fetchurl {
url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
- sha256 = "1rplvgna60nqyb8nspaz3bfkwb044kv3zxdaa5whql5m441nj6am";
+ sha256 = "07ds8abxq0k7vfpjvxb8in3fhb6lz0pbdzbmlidyzaw37qz8lw6b";
};
nativeBuildInputs = [ cmake ];
- buildInputs = [ fftw perl hwloc ]
- ++ (lib.optionals mpiEnabled [ mpi ]);
+
+ buildInputs = [
+ fftw
+ perl
+ hwloc
+ blas
+ lapack
+ ] ++ lib.optional enableMpi mpi
+ ++ lib.optional enableCuda cudatoolkit
+ ;
+
+ propagatedBuildInputs = lib.optional enableMpi mpi;
+ propagatedUserEnvPkgs = lib.optional enableMpi mpi;
cmakeFlags = [
"-DGMX_SIMD:STRING=${SIMD cpuAcceleration}"
"-DGMX_OPENMP:BOOL=TRUE"
+ "-DBUILD_SHARED_LIBS=ON"
] ++ (
if singlePrec then [
"-DGMX_DOUBLE=OFF"
@@ -46,13 +53,15 @@ in stdenv.mkDerivation rec {
"-DGMX_DEFAULT_SUFFIX=OFF"
]
) ++ (
- if mpiEnabled then [
- "-DGMX_MPI:BOOL=TRUE"
- "-DGMX_THREAD_MPI:BOOL=FALSE"
- ] else [
- "-DGMX_MPI:BOOL=FALSE"
- ]
- );
+ if enableMpi
+ then [
+ "-DGMX_MPI:BOOL=TRUE"
+ "-DGMX_THREAD_MPI:BOOL=FALSE"
+ ]
+ else [
+ "-DGMX_MPI:BOOL=FALSE"
+ ]
+ ) ++ lib.optional enableCuda "-DGMX_GPU=CUDA";
meta = with lib; {
homepage = "http://www.gromacs.org";
@@ -78,5 +87,6 @@ in stdenv.mkDerivation rec {
See: http://www.gromacs.org/About_Gromacs for details.
'';
platforms = platforms.unix;
+ maintainers = with maintainers; [ sheepforce markuskowa ];
};
}
diff --git a/pkgs/applications/science/physics/elmerfem/default.nix b/pkgs/applications/science/physics/elmerfem/default.nix
index 5033b28bd3b3..cd9b7430b99f 100644
--- a/pkgs/applications/science/physics/elmerfem/default.nix
+++ b/pkgs/applications/science/physics/elmerfem/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];
- nativeBuildInputs = [ cmake pkg-config git ];
- buildInputs = [ gfortran mpi blas liblapack qt4 qwt6_qt4 ];
+ nativeBuildInputs = [ cmake gfortran pkg-config git ];
+ buildInputs = [ mpi blas liblapack qt4 qwt6_qt4 ];
preConfigure = ''
patchShebangs ./
diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix
index eb718be12e4a..dd726c96606e 100644
--- a/pkgs/applications/science/physics/sherpa/default.nix
+++ b/pkgs/applications/science/physics/sherpa/default.nix
@@ -1,19 +1,21 @@
-{ lib, stdenv, fetchurl, gfortran, hepmc2, fastjet, lhapdf, rivet, sqlite }:
+{ lib, stdenv, fetchurl, autoconf, gfortran, hepmc2, fastjet, lhapdf, rivet, sqlite }:
stdenv.mkDerivation rec {
pname = "sherpa";
- version = "2.2.10";
+ version = "2.2.11";
src = fetchurl {
url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz";
- sha256 = "1iwa17s8ipj6a2b8zss5csb1k5y9s5js38syvq932rxcinbyjsl4";
+ sha256 = "sha256-DrA/h/f/MjGylKxAtVMq6OLvEdb6yB7pRt8UJXNmwi0=";
};
postPatch = lib.optionalString (stdenv.hostPlatform.libc == "glibc") ''
sed -ie '/sys\/sysctl.h/d' ATOOLS/Org/Run_Parameter.C
'';
- buildInputs = [ gfortran sqlite lhapdf rivet ];
+ nativeBuildInputs = [ autoconf gfortran ];
+
+ buildInputs = [ sqlite lhapdf rivet ];
enableParallelBuilding = true;
diff --git a/pkgs/applications/science/physics/xflr5/default.nix b/pkgs/applications/science/physics/xflr5/default.nix
index 85e20f38b668..dd3fef5bf26c 100644
--- a/pkgs/applications/science/physics/xflr5/default.nix
+++ b/pkgs/applications/science/physics/xflr5/default.nix
@@ -13,7 +13,7 @@ mkDerivation rec {
meta = with lib; {
description = "An analysis tool for airfoils, wings and planes";
- homepage = https://sourceforge.net/projects/xflr5/;
+ homepage = "https://sourceforge.net/projects/xflr5/";
license = licenses.gpl3;
maintainers = [ maintainers.esclear ];
platforms = platforms.linux;
diff --git a/pkgs/applications/science/robotics/emuflight-configurator/default.nix b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
index ab94df9ef18f..ca486006fecb 100644
--- a/pkgs/applications/science/robotics/emuflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "emuflight-configurator";
- version = "0.3.6";
+ version = "0.4.0";
src = fetchurl {
url = "https://github.com/emuflight/EmuConfigurator/releases/download/${version}/emuflight-configurator_${version}_linux64.zip";
- sha256 = "sha256-egSUd/+RNo0vr2EJibgk9nNnql5sHC11gctUMK+DzW0=";
+ sha256 = "sha256-s5AE+r9Fw6S7IG2cDW2T7vctcYIAY8al7eCFIDjD5oI=";
};
nativeBuildInputs = [ wrapGAppsHook unzip copyDesktopItems ];
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index 1d08043f5ff7..12d8ef7c0bb2 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
buildPythonApplication rec {
pname = "MAVProxy";
- version = "1.8.42";
+ version = "1.8.45";
src = fetchPypi {
inherit pname version;
- sha256 = "787f29f10d2cb7572206f874a255949d0da9a4e2ffd2bc28b94b78bb73cf05d8";
+ sha256 = "f1010cefb5b97a5d392d32aa1425bdb7df995161125f8686f2c7383c2a86e9e5";
};
postPatch = ''
diff --git a/pkgs/applications/search/doodle/default.nix b/pkgs/applications/search/doodle/default.nix
index c4f6362465ff..2016d6afff74 100644
--- a/pkgs/applications/search/doodle/default.nix
+++ b/pkgs/applications/search/doodle/default.nix
@@ -1,12 +1,13 @@
{ lib, stdenv, fetchurl, libextractor, gettext }:
stdenv.mkDerivation rec {
- name = "doodle-0.7.2";
+ pname = "doodle";
+ version = "0.7.2";
buildInputs = [ libextractor gettext ];
src = fetchurl {
- url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
+ url = "https://grothoff.org/christian/doodle/download/doodle-${version}.tar.gz";
sha256 = "sha256-dtRPfUjhBNgN+5zHMYmszISmBv1+K6yjKsbQBiAXWRA=";
};
@@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
homepage = "https://grothoff.org/christian/doodle/";
description = "Tool to quickly index and search documents on a computer";
license = lib.licenses.gpl2Plus;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/pkgs/applications/system/monitor/default.nix b/pkgs/applications/system/monitor/default.nix
index afe18c399a3a..6b535e5ad418 100644
--- a/pkgs/applications/system/monitor/default.nix
+++ b/pkgs/applications/system/monitor/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, meson
@@ -10,22 +11,24 @@
, gettext
, glib
, gtk3
-, bamf
, libwnck
, libgee
, libgtop
+, libhandy
+, sassc
+, udisks2
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "monitor";
- version = "0.9.5";
+ version = "0.11.0";
src = fetchFromGitHub {
owner = "stsdc";
repo = "monitor";
rev = version;
- sha256 = "sha256-eTsPn2Z1++KsZnnBnZ2s9fKK2HguPw+JqaRRkxQDiAk=";
+ sha256 = "sha256-xWhhjn7zk/juXx50wLG2TpB5aqU+588kWBBquWrVJbM=";
fetchSubmodules = true;
};
@@ -40,14 +43,16 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- bamf
glib
gtk3
pantheon.granite
pantheon.wingpanel
libgee
libgtop
+ libhandy
libwnck
+ sassc
+ udisks2
];
postPatch = ''
@@ -72,5 +77,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl3;
+ mainProgram = "com.github.stsdc.monitor";
};
}
diff --git a/pkgs/applications/system/pantheon-tweaks/default.nix b/pkgs/applications/system/pantheon-tweaks/default.nix
index 5834e8d96308..67e1bb32aeab 100644
--- a/pkgs/applications/system/pantheon-tweaks/default.nix
+++ b/pkgs/applications/system/pantheon-tweaks/default.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "pantheon-tweaks";
- version = "1.0.1";
+ version = "1.0.2";
src = fetchFromGitHub {
owner = "pantheon-tweaks";
repo = pname;
rev = version;
- sha256 = "sha256-tAfDxX/RD7pO5PN/LaZ92Cj/iZtBI/EHb0+pORfYnPM=";
+ sha256 = "sha256-2spZ6RQ5PhBNrv/xG1TNbYsJrmuRpaZ72CeH2s8+P8g=";
};
patches = [
@@ -38,9 +38,12 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
libgee
- pantheon.granite
- pantheon.switchboard
- ];
+ ] ++ (with pantheon; [
+ elementary-files # settings schemas
+ elementary-terminal # settings schemas
+ granite
+ switchboard
+ ]);
postPatch = ''
chmod +x meson/post_install.py
diff --git a/pkgs/applications/terminal-emulators/alacritty/default.nix b/pkgs/applications/terminal-emulators/alacritty/default.nix
index 0a23d63e3eab..a25613ba58e5 100644
--- a/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -1,6 +1,7 @@
{ stdenv
, lib
, fetchFromGitHub
+, fetchpatch
, rustPlatform
, cmake
@@ -87,6 +88,14 @@ rustPlatform.buildRustPackage rec {
outputs = [ "out" "terminfo" ];
+ patches = [
+ # Handle PTY EIO error for Rust 1.55+
+ (fetchpatch {
+ url = "https://github.com/alacritty/alacritty/commit/58985a4dcbe464230b5d2566ee68e2d34a1788c8.patch";
+ sha256 = "sha256-Z6589yRrQtpx3/vNqkMiGgGsLysd/QyfaX7trqX+k5c=";
+ })
+ ];
+
postPatch = ''
substituteInPlace alacritty/src/config/ui_config.rs \
--replace xdg-open ${xdg-utils}/bin/xdg-open
diff --git a/pkgs/applications/terminal-emulators/aminal/default.nix b/pkgs/applications/terminal-emulators/aminal/default.nix
deleted file mode 100644
index 70d0d083dcf3..000000000000
--- a/pkgs/applications/terminal-emulators/aminal/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ buildGoPackage
-, Carbon
-, Cocoa
-, Kernel
-, fetchFromGitHub
-, lib
-, mesa_glu
-, stdenv
-, xorg
-}:
-
-buildGoPackage rec {
- pname = "aminal";
- version = "0.9.0";
-
- goPackagePath = "github.com/liamg/aminal";
-
- buildInputs =
- lib.optionals stdenv.isLinux [
- mesa_glu
- xorg.libX11
- xorg.libXcursor
- xorg.libXi
- xorg.libXinerama
- xorg.libXrandr
- xorg.libXxf86vm
- ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa Kernel ];
-
- src = fetchFromGitHub {
- owner = "liamg";
- repo = "aminal";
- rev = "v${version}";
- sha256 = "0syv9md7blnl6i19zf8s1xjx5vfz6s755fxyg2ply0qc1pwhsj8n";
- };
-
- ldflags = [
- "-X ${goPackagePath}/version.Version=${version}"
- ];
-
- meta = with lib; {
- description = "Golang terminal emulator from scratch";
- longDescription = ''
- Aminal is a modern terminal emulator for Mac/Linux implemented in Golang
- and utilising OpenGL.
-
- The project is experimental at the moment, so you probably won't want to
- rely on Aminal as your main terminal for a while.
-
- Features:
- - Unicode support
- - OpenGL rendering
- - Customisation options
- - True colour support
- - Support for common ANSI escape sequences a la xterm
- - Scrollback buffer
- - Clipboard access
- - Clickable URLs
- - Multi platform support (Windows coming soon...)
- - Sixel support
- - Hints/overlays
- - Built-in patched fonts for powerline
- - Retina display support
- '';
- homepage = "https://github.com/liamg/aminal";
- license = licenses.gpl3;
- maintainers = with maintainers; [ kalbasit ];
- platforms = platforms.linux ++ platforms.darwin;
- };
-}
diff --git a/pkgs/applications/terminal-emulators/ctx/default.nix b/pkgs/applications/terminal-emulators/ctx/default.nix
new file mode 100644
index 000000000000..78c673d035a0
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/ctx/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchgit
+, SDL2
+, alsa-lib
+, babl
+, curl
+, libdrm # Not documented
+, pkg-config
+, enableFb ? false
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ctx";
+ version = "0.pre+date=2021-10-09";
+
+ src = fetchgit {
+ name = "ctx-source"; # because of a dash starting the directory
+ url = "https://ctx.graphics/.git/";
+ rev = "d11d0d1a719a3c77712528e2feed8c0878e0ea64";
+ sha256 = "sha256-Az3POgdvDOVaaRtzLlISDODhAKbefpGx5KgwO3dttqs=";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ ];
+
+ buildInputs = [
+ SDL2
+ alsa-lib
+ babl
+ curl
+ libdrm
+ ];
+
+ configureScript = "./configure.sh";
+ configureFlags = lib.optional enableFb "--enable-fb";
+ dontAddPrefix = true;
+
+ hardeningDisable = [ "format" ];
+
+ installFlags = [
+ "PREFIX=${placeholder "out"}"
+ ];
+
+ meta = with lib; {
+ homepage = "https://ctx.graphics/";
+ description = "Vector graphics terminal";
+ longDescription= ''
+ ctx is an interactive 2D vector graphics, audio, text- canvas and
+ terminal, with escape sequences that enable a 2D vector drawing API using
+ a vector graphics protocol.
+ '';
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index ec75454514c4..837b2b45a391 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -27,7 +27,7 @@
}:
let
- version = "1.9.0";
+ version = "1.9.2";
# build stimuli file for PGO build and the script to generate it
# independently of the foot's build, so we can cache the result
@@ -36,8 +36,7 @@ let
#
# For every bump, make sure that the hash is still accurate.
stimulusGenerator = stdenv.mkDerivation {
- pname = "foot-generate-alt-random-writes";
- inherit version;
+ name = "foot-generate-alt-random-writes";
src = fetchurl {
url = "https://codeberg.org/dnkl/foot/raw/tag/${version}/scripts/generate-alt-random-writes.py";
@@ -100,7 +99,7 @@ stdenv.mkDerivation rec {
owner = "dnkl";
repo = pname;
rev = version;
- sha256 = "0mkzq5lbgl5qp5nj8sk5gyg9hrrklmbjdqzlcr2a6rlmilkxlhwm";
+ sha256 = "15h01ijx87i60bdgjjap1ymwlxggsxc6iziykh3bahj8432s1836";
};
depsBuildBuild = [
@@ -144,16 +143,15 @@ stdenv.mkDerivation rec {
mesonBuildType = "release";
+ # See https://codeberg.org/dnkl/foot/src/tag/1.9.2/INSTALL.md#options
mesonFlags = [
+ # Use lto
"-Db_lto=true"
- # Prevent foot from installing its terminfo file into a custom location,
- # we need to do this manually in postInstall.
- # See https://codeberg.org/dnkl/foot/pulls/673,
- # https://codeberg.org/dnkl/foot/src/tag/1.9.0/INSTALL.md#options
- "-Dterminfo=disabled"
+ # “Build” and install terminfo db
+ "-Dterminfo=enabled"
# Ensure TERM=foot is used
"-Ddefault-terminfo=foot"
- # Tell foot what to set TERMINFO to
+ # Tell foot to set TERMINFO and where to install the terminfo files
"-Dcustom-terminfo-install-location=${terminfoDir}"
];
@@ -174,13 +172,6 @@ stdenv.mkDerivation rec {
outputs = [ "out" "terminfo" ];
- postInstall = ''
- # build and install foot's terminfo to the standard location
- # instead of its custom location
- mkdir -p "${terminfoDir}"
- tic -o "${terminfoDir}" -x -e foot,foot-direct "$NIX_BUILD_TOP/$sourceRoot/foot.info"
- '';
-
passthru.tests = {
clang-default-compilation = foot.override {
inherit (llvmPackages) stdenv;
@@ -193,6 +184,13 @@ stdenv.mkDerivation rec {
noPgo = foot.override {
allowPgo = false;
};
+
+ # By changing name, this will get rebuilt everytime we change version,
+ # even if the hash stays the same. Consequently it'll fail if we introduce
+ # a hash mismatch when updating.
+ stimulus-script-is-current = stimulusGenerator.src.overrideAttrs (_: {
+ name = "generate-alt-random-writes-${version}.py";
+ });
};
meta = with lib; {
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 1d200824535d..423c31fd05be 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -15,11 +15,11 @@ let
in
stdenv.mkDerivation rec {
pname = "hyper";
- version = "3.1.3";
+ version = "3.1.4";
src = fetchurl {
url = "https://github.com/vercel/hyper/releases/download/v${version}/hyper_${version}_amd64.deb";
- sha256 = "sha256-w+FISIeGf3K1dnykIEzU3KevyaFNl4X0beT6DdLW+zQ=";
+ sha256 = "sha256-4C0vx4m/ojOJl5ownsbasSFiIrJ9kfJJWh0y4j/DGIQ=";
};
nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index cfd46a613f77..4cd8f72b790f 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -100,6 +100,9 @@ buildPythonApplication rec {
else "linux-package/bin";
in
''
+ # Fontconfig error: Cannot load default config file: No such file: (null)
+ export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+
env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
'';
diff --git a/pkgs/applications/terminal-emulators/mrxvt/default.nix b/pkgs/applications/terminal-emulators/mrxvt/default.nix
index bd01b0843fb1..ba6c6ab87c15 100644
--- a/pkgs/applications/terminal-emulators/mrxvt/default.nix
+++ b/pkgs/applications/terminal-emulators/mrxvt/default.nix
@@ -1,11 +1,27 @@
-{ lib, stdenv, fetchurl, libX11, libXft, libXi, xorgproto, libSM, libICE
-, freetype, pkg-config, which }:
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXft
+, libXi
+, xorgproto
+, libSM
+, libICE
+, freetype
+, pkg-config
+, which
+}:
-stdenv.mkDerivation {
- name = "mrxvt-0.5.4";
+stdenv.mkDerivation rec {
+ pname = "mrxvt";
+ version = "0.5.4";
- buildInputs =
- [ libX11 libXft libXi xorgproto libSM libICE freetype pkg-config which ];
+ src = fetchurl {
+ url = "mirror://sourceforge/materm/mrxvt-${version}.tar.gz";
+ sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
+ };
+
+ buildInputs = [ libX11 libXft libXi xorgproto libSM libICE freetype pkg-config which ];
configureFlags = [
"--with-x"
@@ -22,11 +38,6 @@ stdenv.mkDerivation {
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype.dev}/include/freetype2";
'';
- src = fetchurl {
- url = "mirror://sourceforge/materm/mrxvt-0.5.4.tar.gz";
- sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
- };
-
meta = with lib; {
description = "Lightweight multitabbed feature-rich X11 terminal emulator";
longDescription = "
@@ -36,6 +47,7 @@ stdenv.mkDerivation {
homepage = "https://sourceforge.net/projects/materm";
license = licenses.gpl2;
platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
knownVulnerabilities = [
"Usage of ANSI escape sequences causes unexpected newline-termination, leading to unexpected command execution (https://www.openwall.com/lists/oss-security/2021/05/17/1)"
];
diff --git a/pkgs/applications/terminal-emulators/nimmm/default.nix b/pkgs/applications/terminal-emulators/nimmm/default.nix
index bb09fa776b62..0e0d75ab8012 100644
--- a/pkgs/applications/terminal-emulators/nimmm/default.nix
+++ b/pkgs/applications/terminal-emulators/nimmm/default.nix
@@ -1,30 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, nim, termbox, pcre }:
+{ lib, nimPackages, fetchFromGitHub, nim, termbox, pcre }:
-let
- noise = fetchFromGitHub {
- owner = "jangko";
- repo = "nim-noise";
- rev = "v0.1.14";
- sha256 = "0wndiphznfyb1pac6zysi3bqljwlfwj6ziarcwnpf00sw2zni449";
- };
-
- nimbox = fetchFromGitHub {
- owner = "dom96";
- repo = "nimbox";
- rev = "6a56e76c01481176f16ae29b7d7c526bd83f229b";
- sha256 = "15x1sdfxa1xcqnr68705jfnlv83lm0xnp2z9iz3pgc4bz5vwn4x1";
- };
-
- lscolors = fetchFromGitHub {
- owner = "joachimschmidt557";
- repo = "nim-lscolors";
- rev = "v0.3.3";
- sha256 = "0526hqh46lcfsvymb67ldsc8xbfn24vicn3b8wrqnh6mag8wynf4";
- };
-
-in stdenv.mkDerivation rec {
+nimPackages.buildNimPackage rec {
pname = "nimmm";
version = "0.2.0";
+ nimBinOnly = true;
src = fetchFromGitHub {
owner = "joachimschmidt557";
@@ -33,17 +12,8 @@ in stdenv.mkDerivation rec {
sha256 = "168n61avphbxsxfq8qzcnlqx6wgvz5yrjvs14g25cg3k46hj4xqg";
};
- nativeBuildInputs = [ nim ];
- buildInputs = [ termbox pcre ];
-
- buildPhase = ''
- export HOME=$TMPDIR;
- nim -p:${noise} -p:${nimbox} -p:${lscolors}/src c -d:release src/nimmm.nim
- '';
-
- installPhase = ''
- install -Dt $out/bin src/nimmm
- '';
+ buildInputs = [ termbox pcre ]
+ ++ (with nimPackages; [ noise nimbox lscolors ]);
meta = with lib; {
description = "Terminal file manager written in nim";
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
index b9c72c97d6de..9ecaffb185cc 100644
--- a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, wmctrl }:
stdenv.mkDerivation {
- name = "urxvt-perl-2015-01-16";
+ pname = "urxvt-perl";
+ version = "unstable-2015-01-16";
src = fetchFromGitHub {
owner = "effigies";
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
index 303555db7224..c7510568e264 100644
--- a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
@@ -1,14 +1,15 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
- rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
- name = "urxvt-theme-switch-2014-12-21_rev${builtins.substring 0 1 rev}";
+ pname = "urxvt-theme-switch";
+ version = "unstable-2014-12-21";
+
dontPatchShebangs = true;
src = fetchFromGitHub {
owner = "felixr";
repo = "urxvt-theme-switch";
- inherit rev;
+ rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
sha256 = "0x27m1vdqprn3lqpwgxvffill7prmaj6j9rhgvkvi13mzl5wmlli";
};
@@ -23,6 +24,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/felixr/urxvt-theme-switch";
license = "CCBYNC";
maintainers = with maintainers; [ ];
- platforms = with platforms; unix;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
index 446126aad748..7d3d69122f62 100644
--- a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
@@ -1,13 +1,13 @@
{ lib, stdenv, fetchgit, perl }:
stdenv.mkDerivation {
-
- name = "rxvt-unicode-vtwheel-0.3.2";
+ pname = "rxvt-unicode-vtwheel";
+ version = "0.3.2";
src = fetchgit {
- url = "https://aur.archlinux.org/urxvt-vtwheel.git";
- rev = "36d3e861664aeae36a45f96100f10f8fe2218035";
- sha256 = "1h3vrsbli5q9kr84j5ijbivlhpwlh3l8cv233pg362v2zz4ja8i7";
+ url = "https://aur.archlinux.org/urxvt-vtwheel.git";
+ rev = "36d3e861664aeae36a45f96100f10f8fe2218035";
+ sha256 = "1h3vrsbli5q9kr84j5ijbivlhpwlh3l8cv233pg362v2zz4ja8i7";
};
installPhase = ''
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix b/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
index 02f1b100f49f..2c130bf02d3e 100644
--- a/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
configureFlags = [
- "--with-terminfo=$terminfo/share/terminfo"
+ "--with-terminfo=${placeholder "terminfo"}/share/terminfo"
"--enable-256-color"
(enableFeature perlSupport "perl")
(enableFeature unicode3Support "unicode3")
diff --git a/pkgs/applications/terminal-emulators/st/lukesmithxyz-st/default.nix b/pkgs/applications/terminal-emulators/st/lukesmithxyz-st/default.nix
index f285d0fc73b9..2f1476697ea9 100644
--- a/pkgs/applications/terminal-emulators/st/lukesmithxyz-st/default.nix
+++ b/pkgs/applications/terminal-emulators/st/lukesmithxyz-st/default.nix
@@ -12,7 +12,7 @@
stdenv.mkDerivation rec {
pname = "lukesmithxyz-st";
- version = "0.0.0+unstable=2021-08-10";
+ version = "0.pre+unstable=2021-08-10";
src = fetchFromGitHub {
owner = "LukeSmithxyz";
diff --git a/pkgs/applications/terminal-emulators/st/mcaimi-st.nix b/pkgs/applications/terminal-emulators/st/mcaimi-st.nix
index 847638f304f3..11c89cfab670 100644
--- a/pkgs/applications/terminal-emulators/st/mcaimi-st.nix
+++ b/pkgs/applications/terminal-emulators/st/mcaimi-st.nix
@@ -11,7 +11,7 @@
stdenv.mkDerivation rec {
pname = "mcaimi-st";
- version = "0.0.0+unstable=2021-08-30";
+ version = "0.pre+unstable=2021-08-30";
src = fetchFromGitHub {
owner = "mcaimi";
diff --git a/pkgs/applications/terminal-emulators/st/siduck76-st.nix b/pkgs/applications/terminal-emulators/st/siduck76-st.nix
index 55fcebff0e3d..a6753a105c6d 100644
--- a/pkgs/applications/terminal-emulators/st/siduck76-st.nix
+++ b/pkgs/applications/terminal-emulators/st/siduck76-st.nix
@@ -12,7 +12,7 @@
stdenv.mkDerivation rec {
pname = "siduck76-st";
- version = "0.0.0+unstable=2021-08-20";
+ version = "0.pre+unstable=2021-08-20";
src = fetchFromGitHub {
owner = "siduck76";
diff --git a/pkgs/applications/terminal-emulators/terminator/default.nix b/pkgs/applications/terminal-emulators/terminator/default.nix
index e922a34423c0..67c7196e24da 100644
--- a/pkgs/applications/terminal-emulators/terminator/default.nix
+++ b/pkgs/applications/terminal-emulators/terminator/default.nix
@@ -56,6 +56,12 @@ python3.pkgs.buildPythonApplication rec {
doCheck = false;
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
meta = with lib; {
description = "Terminal emulator with support for tiling and tabs";
longDescription = ''
diff --git a/pkgs/applications/terminal-emulators/tilix/default.nix b/pkgs/applications/terminal-emulators/tilix/default.nix
index a5c4b4574df3..c217ae7f991d 100644
--- a/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "gnunn1";
repo = "tilix";
- rev = "${version}";
+ rev = version;
sha256 = "sha256:020gr4q7kmqq8vnsh8rw97gf1p2n1yq4d7ncyjjh9l13zkaxqqv9";
};
diff --git a/pkgs/applications/terminal-emulators/xterm/default.nix b/pkgs/applications/terminal-emulators/xterm/default.nix
index 378fd7df01a6..4bb9386a112a 100644
--- a/pkgs/applications/terminal-emulators/xterm/default.nix
+++ b/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -4,14 +4,14 @@
stdenv.mkDerivation rec {
pname = "xterm";
- version = "368";
+ version = "369";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
];
- sha256 = "L/UWmTC2tJ7wuvteEzHJTxqYwxBEK7p3mK3YIcdq5xI=";
+ sha256 = "ce1qSNBkiT0hSXQaACeBqXNJb9JNUtrdNk9jQ5p2TiY=";
};
strictDeps = true;
diff --git a/pkgs/applications/version-management/commitizen/node-packages.nix b/pkgs/applications/version-management/commitizen/node-packages.nix
index 396dedf56fd9..bee45d1727ce 100644
--- a/pkgs/applications/version-management/commitizen/node-packages.nix
+++ b/pkgs/applications/version-management/commitizen/node-packages.nix
@@ -9061,7 +9061,7 @@ in
buildInputs = globalBuildInputs;
meta = {
description = "Git commit, but play nice with conventions.";
- homepage = https://github.com/commitizen/cz-cli;
+ homepage = "https://github.com/commitizen/cz-cli";
license = "MIT";
};
production = false;
diff --git a/pkgs/applications/version-management/cvs/default.nix b/pkgs/applications/version-management/cvs/default.nix
index 2879b688c6a5..9f039c4ab004 100644
--- a/pkgs/applications/version-management/cvs/default.nix
+++ b/pkgs/applications/version-management/cvs/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, fetchpatch, nano }:
-stdenv.mkDerivation {
- name = "cvs-1.12.13";
+stdenv.mkDerivation rec {
+ pname = "cvs";
+ version = "1.12.13";
src = fetchurl {
- url = "mirror://savannah/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2";
+ url = "mirror://savannah/cvs/source/feature/${version}/cvs-${version}.tar.bz2";
sha256 = "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq";
};
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index d9ebdbf53124..20b8c3c04d1c 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gerrit";
- version = "3.4.0";
+ version = "3.4.1";
src = fetchurl {
url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
- sha256 = "sha256-GNUpSK9cczGISyvo05KrLzeO+zRm5dEYOmX2Oy7TjzE=";
+ sha256 = "sha256-pHomYKYpV60SIKLoST5y9i3FprMV1VGy+5GjhpRhBUo=";
};
buildCommand = ''
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 46d19f2814db..acf647901e99 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "delta";
- version = "0.8.3";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "dandavison";
repo = pname;
rev = version;
- sha256 = "sha256-lwdsl3dzqrIL1JoBFmldwsCvNCWUcTlgeoEoCvmlTCQ=";
+ sha256 = "sha256-DJG8C7oSTf4YKeSVytN4pVF4qVImg1bsTYbnfkR+U94=";
};
- cargoSha256 = "sha256-7TvxkSJ3iWJnjD3Xe7WDXBNWIyl8U9XTCn9muUG1AmI=";
+ cargoSha256 = "sha256-mweH+ZIcNGGmoGUhnmZzaB5y14eO/XkHqrL8Nz/b3Jg=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index 565fe180ba13..b3613c8ff481 100644
--- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fast-export";
- version = "200213";
+ version = "210917";
src = fetchFromGitHub {
owner = "frej";
repo = pname;
rev = "v${version}";
- sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
+ sha256 = "0xg8r9rbqv7mriraqxdks2mgj7j4c9gap3kc05y1kxi3nniywyd3";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index ceb2c36d9615..17484ea31398 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gh";
- version = "2.0.0";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
- sha256 = "sha256-TjBUVP9/hMB8yFnupSxwHDr5bmtiMFwsDi1axsD5ykA=";
+ sha256 = "sha256-/czexUqpdsFQAteZ75ur2SFibrtZWffHpPBEPlLQXSY=";
};
- vendorSha256 = "sha256-ZsMzLJ+eHAKNxhVFpQxRyTv/rcWvxA/luKPjXT+Zt4Y=";
+ vendorSha256 = "sha256-slMl5dCyyVNBgDbpYECfYUbpJJ7sWuSGSutYR3rTzj0=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix b/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
index 35aada8b870f..decd3c51a392 100644
--- a/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
@@ -21,7 +21,6 @@ python3Packages.buildPythonApplication rec {
description = "Tool for visualization of Git repositories";
homepage = "https://github.com/git-big-picture/git-big-picture";
license = lib.licenses.gpl3Plus;
- platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.nthorne ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
index 0afcd8400c7b..046fcc763411 100644
--- a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchFromGitHub
-
-, coreutils
+{ lib
+, fetchFromGitHub
+, fetchpatch
, git
, libiconv
, ncurses
+, openssl
+, pkg-config
, rustPlatform
, sqlite
, stdenv
@@ -13,45 +15,38 @@
rustPlatform.buildRustPackage rec {
pname = "git-branchless";
- version = "0.3.2";
+ version = "0.3.7";
src = fetchFromGitHub {
owner = "arxanas";
repo = "git-branchless";
rev = "v${version}";
- sha256 = "0pfiyb23ah1h6risrhjr8ky7b1k1f3yfc3z70s92q3czdlrk6k07";
+ sha256 = "sha256-knRRjTjnhpedcQTVpJnBsrnaeRbjZ2i3aABeE0LrQ+c=";
};
- cargoSha256 = "0gplx80xhpz8kwry7l4nv4rlj9z02jg0sgb6zy1y3vd9s2j5wals";
+ cargoSha256 = "sha256-NyzsY5d4iC3zMSzmh9Qmd211oT6lmhUdvIfQdnzrtok=";
- # Remove path hardcodes patching if they get fixed upstream, see:
- # https://github.com/arxanas/git-branchless/issues/26
- postPatch = ''
- # Inline test hardcodes `echo` location.
- substituteInPlace ./src/commands/wrap.rs --replace '/bin/echo' '${coreutils}/bin/echo'
-
- # Tests in general hardcode `git` location.
- substituteInPlace ./src/testing.rs --replace '/usr/bin/git' '${git}/bin/git'
- '';
+ nativeBuildInputs = [ pkg-config ];
buildInputs = [
ncurses
+ openssl
sqlite
- ] ++ lib.optionals (stdenv.isDarwin) [
+ ] ++ lib.optionals stdenv.isDarwin [
Security
SystemConfiguration
libiconv
];
preCheck = ''
- # Tests require path to git.
export PATH_TO_GIT=${git}/bin/git
+ export GIT_EXEC_PATH=$(${git}/bin/git --exec-path)
'';
meta = with lib; {
description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
homepage = "https://github.com/arxanas/git-branchless";
- license = licenses.asl20;
- maintainers = with maintainers; [ msfjarvis nh2 ];
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ msfjarvis nh2 hmenke ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
index 74e617021c92..33bb73eb6348 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "git-cliff";
- version = "0.3.0";
+ version = "0.4.0";
src = fetchFromGitHub {
owner = "orhun";
repo = "git-cliff";
rev = "v${version}";
- sha256 = "sha256-d0qY0yGvFf1V8NhS9cHEawkTqMAN6roReAHJ6FT9qJ4=";
+ sha256 = "sha256-9F15XHyFxcE48/ePwjvB7lLkw9FxoQd49G758nupRuk=";
};
- cargoSha256 = "sha256-UxV9trTm4vZ/boWB7Sl6Dbwhjk8jQnB0QT6bC+aCL+A=";
+ cargoSha256 = "sha256-gPf4sGDbZzfzVJy+9k3FSOdJ5b8Xci1LTjIrCmP9bW8=";
# attempts to run the program on .git in src which is not deterministic
doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index f0ff57b2cb0a..61061dad7c01 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -5,13 +5,13 @@ let
in buildPythonApplication rec {
pname = "git-cola";
- version = "3.10.1";
+ version = "3.11.0";
src = fetchFromGitHub {
owner = "git-cola";
repo = "git-cola";
rev = "v${version}";
- sha256 = "120hds7v29v70qxz20ppxf2glmgbah16v7jyy9i6hb6cfqp68vr8";
+ sha256 = "1s58wlpnndypx1q0m9fx8jmcd6hzqvrwdaxxrk7gn5nf423wq4xv";
};
buildInputs = [ git gettext ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index 387a1cb59c58..2037122bf277 100644
--- a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -2,24 +2,30 @@
stdenv.mkDerivation rec {
pname = "git-extras";
- version = "6.2.0";
+ version = "6.3.0";
src = fetchFromGitHub {
owner = "tj";
repo = "git-extras";
rev = version;
- sha256 = "sha256-ACuTb1DGft2/32Ezg23jhpl9yua5kUTZ2kKL8KHU+BU=";
+ sha256 = "sha256-mmvDsK+SgBXQSKNKuPt+K4sgtdrtqPx9Df2E3kKLdJM=";
};
- nativeBuildInputs = [ unixtools.column which ];
+ postPatch = ''
+ patchShebangs check_dependencies.sh
+ '';
+
+ nativeBuildInputs = [
+ unixtools.column
+ which
+ ];
dontBuild = true;
- preInstall = ''
- patchShebangs .
- '';
-
- installFlags = [ "PREFIX=${placeholder "out"}" ];
+ installFlags = [
+ "PREFIX=${placeholder "out"}"
+ "SYSCONFDIR=${placeholder "out"}/share"
+ ];
postInstall = ''
# bash completion is already handled by make install
@@ -31,6 +37,6 @@ stdenv.mkDerivation rec {
description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more";
license = licenses.mit;
platforms = platforms.all;
- maintainers = with maintainers; [ spwhitt cko ];
+ maintainers = with maintainers; [ spwhitt cko SuperSandro2000 ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index d73ae5c960f4..97b96f7461f6 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -1,48 +1,53 @@
-{ lib, buildPythonApplication, fetchPypi
-, installShellFiles, pbr
-, flake8, mock, pycodestyle, pylint, tox
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, installShellFiles
+, git
+, stestr
, nix-update-script
-, testVersion, git-machete
+, testVersion
+, git-machete
}:
buildPythonApplication rec {
pname = "git-machete";
- version = "3.3.0";
+ version = "3.4.1";
- src = fetchPypi {
- inherit pname version;
- sha256 = "0mq6hmb3wvj0ash27h4zyl46l3fikpf0mv3ng330lcy6v7bhy5b8";
+ src = fetchFromGitHub {
+ owner = "virtuslab";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-drfMD9tQe1dc61MH3Cxu9oin137f4FsZJY3X2kDHdh4=";
};
- nativeBuildInputs = [ installShellFiles pbr ];
+ nativeBuildInputs = [ installShellFiles ];
- # TODO: Add missing check inputs (2019-11-22):
- # - stestr
- doCheck = false;
- checkInputs = [ flake8 mock pycodestyle pylint tox ];
+ checkInputs = [ git stestr ];
+
+ postCheck = ''
+ stestr run
+ '';
postInstall = ''
- installShellCompletion --bash --name git-machete completion/git-machete.completion.bash
- installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh
+ installShellCompletion --bash --name git-machete completion/git-machete.completion.bash
+ installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh
+ '';
+
+ postInstallCheck = ''
+ git init
+ test "$($out/bin/git-machete version)" = "git-machete version ${version}"
'';
passthru = {
updateScript = nix-update-script {
attrPath = pname;
};
-
- tests = {
- version = testVersion {
- package = git-machete;
- };
- };
};
meta = with lib; {
homepage = "https://github.com/VirtusLab/git-machete";
description = "Git repository organizer and rebase/merge workflow automation tool";
license = licenses.mit;
- platforms = platforms.all;
- maintainers = [ maintainers.blitz ];
+ maintainers = with maintainers; [ blitz ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
new file mode 100644
index 000000000000..2b7f26501969
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub
+, libiconv
+, openssl
+, pkg-config
+, rustPlatform
+, stdenv
+, Security
+, SystemConfiguration
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-quickfix";
+ version = "0.0.4";
+
+ src = fetchFromGitHub {
+ owner = "siedentop";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-JdRlrNzWMPS3yG1UvKKtHVRix3buSm9jfSoAUxP35BY=";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+ Security
+ SystemConfiguration
+ libiconv
+ ];
+
+ cargoSha256 = "sha256-ENeHPhEBniR9L3J5el6QZrIS1Q4O0pNiSzJqP1aQS9Q=";
+
+ meta = with lib; {
+ description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch";
+ homepage = "https://github.com/siedentop/git-quickfix";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ msfjarvis ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
index 69689a49a929..4490f8068e04 100644
--- a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -4,13 +4,13 @@
python3Packages.buildPythonApplication rec {
pname = "git-remote-hg";
- version = "unstable-2020-06-12";
+ version = "1.0.2.1";
src = fetchFromGitHub {
owner = "mnauw";
repo = "git-remote-hg";
- rev = "28ed63b707919734d230cb13bff7d231dfeee8fc";
- sha256 = "0dw48vbnk7pp0w6fzgl29mq8fyn52pacbya2w14z9c6jfvh5sha1";
+ rev = "v${version}";
+ sha256 = "1crgq13v2p9wmw1yhckmyzybh8h1nz3839qhqvzh48vxqkailzmn";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 1d02adc6397e..521e42e845f2 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -25,7 +25,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport;
let
- version = "2.33.0";
+ version = "2.33.1";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
- sha256 = "0kqcs8nj5h7rh3q86pw5777awq7gn77lgxk88ynjl1rfz2snlg5z";
+ sha256 = "sha256-4FSm5sKwiL0b/19h7ZulqpHJo81QlTmktBxd3wIgHy8=";
};
outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -65,6 +65,9 @@ stdenv.mkDerivation {
# Fix references to gettext introduced by ./git-sh-i18n.patch
substituteInPlace git-sh-i18n.sh \
--subst-var-by gettext ${gettext}
+
+ # ensure we are using the correct shell when executing the test scripts
+ patchShebangs t/*.sh
'';
nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
@@ -318,6 +321,7 @@ stdenv.mkDerivation {
# Flaky tests:
disable_test t5319-multi-pack-index
+ disable_test t6421-merge-partial-clone
${lib.optionalString (!perlSupport) ''
# request-pull is a Bash script that invokes Perl, so it is not available
@@ -329,6 +333,13 @@ stdenv.mkDerivation {
# XXX: Some tests added in 2.24.0 fail.
# Please try to re-enable on the next release.
disable_test t7816-grep-binary-pattern
+ # fail (as of 2.33.0)
+ #===( 18623;1208 8/? 224/? 2/? )= =fatal: Not a valid object name refs/tags/signed-empty
+ disable_test t6300-for-each-ref
+ #===( 22665;1651 9/? 1/? 0/? 0/? )= =/private/tmp/nix-build-git-2.33.0.drv-2/git-2.33.0/t/../contrib/completion/git-completion.bash: line 405: compgen: command not found
+ disable_test t9902-completion
+ # not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin)
+ disable_test t5003-archive-zip
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
# Test fails (as of 2.17.0, musl 1.1.19)
disable_test t3900-i18n-commit
@@ -358,6 +369,6 @@ stdenv.mkDerivation {
'';
platforms = lib.platforms.all;
- maintainers = with lib.maintainers; [ primeos peti wmertens globin ];
+ maintainers = with lib.maintainers; [ primeos wmertens globin ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git2cl/default.nix b/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
index a1c63538220b..b68179b182bc 100644
--- a/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
@@ -1,7 +1,8 @@
{ fetchgit, lib, stdenv, perl }:
-stdenv.mkDerivation {
- name = "git2cl-20080827";
+stdenv.mkDerivation rec {
+ pname = "git2cl";
+ version = "unstable-2008-08-27";
src = fetchgit {
url = "git://repo.or.cz/git2cl.git";
diff --git a/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index 20219be776a5..b46cfb8ee8df 100644
--- a/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,16 +1,16 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip, pkg-config }:
rustPlatform.buildRustPackage rec {
pname = "gitui";
- version = "0.17.1";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "extrawurst";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-dRHlbxNV4nS50WbJP5lD1zB7NkZmv7nlPUm3RlQIBtc=";
+ sha256 = "sha256-NzE2eT3QxnbDW63Cnv6M7IlYgb2XuymphwaL1PTfcyQ=";
};
- cargoSha256 = "sha256-9uRvxax0SrvRkD89mbZPxsfRItde11joA/ZgnXK9XBE=";
+ cargoSha256 = "sha256-9SWovdjYfeneqOVl+I+tuJTIC/htC7h1tXi2KUbdYb8=";
nativeBuildInputs = [ python3 perl pkg-config ];
buildInputs = [ openssl ]
diff --git a/pkgs/applications/version-management/git-and-tools/glab/default.nix b/pkgs/applications/version-management/git-and-tools/glab/default.nix
index c06c70e26789..047cc021924e 100644
--- a/pkgs/applications/version-management/git-and-tools/glab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/glab/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "glab";
- version = "1.20.0";
+ version = "1.21.1";
src = fetchFromGitHub {
owner = "profclems";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-MHNhl6lrBqHZ6M4fVOnSDxEcF6RqfWHWx5cvUhRXJKw=";
+ sha256 = "sha256-naCCJ9s63UPDxRWbVjVikXtGUlM4Lp7vyDHlESEtXeI=";
};
- vendorSha256 = "sha256-9+WBKc8PI0v6bnkC+78Ygv/eocQ3D7+xBb8lcv16QTE=";
+ vendorSha256 = "sha256-iiHDxiP6Dg7MK5jhSwly5oEhFZ8ByCx5WEyrbzL/u4w=";
runVend = true;
ldflags = [
diff --git a/pkgs/applications/version-management/git-and-tools/glitter/default.nix b/pkgs/applications/version-management/git-and-tools/glitter/default.nix
new file mode 100644
index 000000000000..ff781f471485
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/glitter/default.nix
@@ -0,0 +1,30 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "glitter";
+ version = "1.5.1";
+
+ src = fetchFromGitHub {
+ owner = "milo123459";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-AVHMDDvrSLg0OwoG4I5/W2ttWgBwzOG7553gr9bCDFs=";
+ };
+
+ cargoSha256 = "sha256-vBzy4gnlJMQwvVieuWuiVOm/HAr6rHkHcLmzY7eklT4=";
+
+ # tests require it to be in a git repository
+ preCheck = ''
+ git init
+ '';
+
+ # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
+ checkFlags = [ "--skip" "runs_correctly" ];
+
+ meta = with lib; {
+ description = "A git wrapper that allows you to compress multiple commands into one";
+ homepage = "https://github.com/milo123459/glitter";
+ license = licenses.mit;
+ maintainers = with maintainers; [ figsoda ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/gst/default.nix b/pkgs/applications/version-management/git-and-tools/gst/default.nix
index a323c61bf143..f0f347d14ca4 100644
--- a/pkgs/applications/version-management/git-and-tools/gst/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gst/default.nix
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "gst";
- version = "5.0.4";
+ version = "5.0.5";
src = fetchFromGitHub {
owner = "uetchy";
repo = "gst";
rev = "v${version}";
- sha256 = "0fqgkmhn84402hidxv4niy9himcdwm1h80prkfk9vghwcyynrbsj";
+ sha256 = "07cixz5wlzzb4cwcrncg2mz502wlhd3awql5js1glw9f6qfwc5in";
};
vendorSha256 = "0k5xl55vzpl64gwsgaff92jismpx6y7l2ia0kx7gamd1vklf0qwh";
diff --git a/pkgs/applications/version-management/git-and-tools/lab/default.nix b/pkgs/applications/version-management/git-and-tools/lab/default.nix
index 63f42963089a..f1be6a4fc8de 100644
--- a/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -2,18 +2,18 @@
buildGoModule rec {
pname = "lab";
- version = "0.22.0";
+ version = "0.23.0";
src = fetchFromGitHub {
owner = "zaquestion";
repo = "lab";
rev = "v${version}";
- sha256 = "sha256-CyXEmlsc40JtwDjRYNWqN+3cuoG8K07jAQdd1rktvS8=";
+ sha256 = "0g8v3cli8rvr0zsxiv4w0afzqmh0d85a832c4hc75b3f9amkr0dl";
};
subPackages = [ "." ];
- vendorSha256 = "sha256-PSS7OPbM+XsylqDlWc4h+oZrOua2kSWKLEuyjqo/cxM=";
+ vendorSha256 = "09xn5vycb9shygs13pfwxlb89j6rhrbplm10mfgxi4kzlvm7agl6";
doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index 374e68a71c79..bab5b5aa33dd 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "lefthook";
- version = "0.7.6";
+ version = "0.7.7";
src = fetchFromGitHub {
rev = "v${version}";
owner = "evilmartians";
repo = "lefthook";
- sha256 = "sha256-qCj6FsbzxnMISCITKFcIIYtqMiHzSNYNjlpgpE9S/Ss=";
+ sha256 = "sha256-XyuXegCTJSW4uO6fEaRKq/jZnE+JbrxZw0kcDvhpsVo=";
};
vendorSha256 = "sha256-Rp67FnFU27u85t02MIs7wZQoOa8oGsHVVPQ9OdIyTJg=";
diff --git a/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix b/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix
new file mode 100644
index 000000000000..7fd83e6bf7b9
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, withOpenCL ? true
+, stdenv
+, OpenCL
+, ocl-icd
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "lucky-commit";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "not-an-aardvark";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vs668i1yglfcqs94jhwdk90v0lja2w5kr5gakz082wykilms0zg";
+ };
+
+ cargoSha256 = "sha256-MvopLKhovwXaEmRgXnAzJeuhPgqnMjt0EtKUGSWFpaY=";
+
+ buildInputs = lib.optional withOpenCL (if stdenv.isDarwin then OpenCL else ocl-icd);
+
+ cargoBuildFlags = lib.optional (!withOpenCL) "--no-default-features";
+
+ # disable tests that require gpu
+ cargoTestFlags = [ "--no-default-features" ];
+
+ meta = with lib; {
+ description = "Change the start of your git commit hashes to whatever you want";
+ homepage = "https://github.com/not-an-aardvark/lucky-commit";
+ license = licenses.mit;
+ maintainers = with maintainers; [ figsoda ];
+ mainProgram = "lucky_commit";
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix b/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
index 1821dba0f006..a431a50af3b7 100644
--- a/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
@@ -2,13 +2,13 @@
buildPythonApplication rec {
pname = "pass-git-helper";
- version = "1.1.1";
+ version = "1.1.2";
src = fetchFromGitHub {
owner = "languitar";
repo = "pass-git-helper";
rev = "v${version}";
- sha256 = "sha256-GdsFPpBdoEaOCmdKxw5xTuFOcGFH94w5q/lV891lCUs=";
+ sha256 = "sha256-HEdOR6jS16c4UIatlgB6HeBtyyxePSab+6e2hu85dsI=";
};
propagatedBuildInputs = [ pyxdg ];
@@ -21,6 +21,6 @@ buildPythonApplication rec {
homepage = "https://github.com/languitar/pass-git-helper";
description = "A git credential helper interfacing with pass, the standard unix password manager";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ vanzef ];
+ maintainers = with maintainers; [ hmenke vanzef ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 4393a9dc51ce..1c3fdf90aa79 100644
--- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -4,6 +4,7 @@
, python3Packages
, asciidoc
, docbook_xsl
+, docbook_xml_dtd_45
, git
, perl
, xmlto
@@ -11,16 +12,16 @@
python3Packages.buildPythonApplication rec {
pname = "stgit";
- version = "1.1";
+ version = "1.4";
src = fetchFromGitHub {
owner = "stacked-git";
repo = "stgit";
rev = "v${version}";
- sha256 = "sha256-gfPf1yRmx1Mn1TyCBWmjQJBgXLlZrDcew32C9o6uNYk=";
+ sha256 = "0yx81d61kp33h7n0c14wvcrh8vvjjjq4xjh1qwq2sdbmqc43p3hg";
};
- nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl ];
+ nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl docbook_xml_dtd_45 ];
format = "other";
@@ -34,6 +35,14 @@ python3Packages.buildPythonApplication rec {
--replace http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
${docbook_xsl}/xml/xsl/docbook/html/docbook.xsl
done
+
+ substituteInPlace Documentation/texi.xsl \
+ --replace http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd \
+ ${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd
+
+ cat > stgit/_version.py < 1.1'
gem 'github-linguist', '~> 7.12', require: 'linguist'
gem 'gitlab-markup', '~> 1.7.1'
-gem 'activesupport', '~> 6.1.3.2'
+gem 'activesupport', '~> 6.1.4.1'
gem 'rdoc', '~> 6.0'
gem 'gitlab-gollum-lib', '~> 4.2.7.10.gitlab.1', require: false
gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.4.gitlab.1', require: false
@@ -13,7 +13,7 @@ gem 'faraday', '~> 1.0'
gem 'rbtrace', require: false
# Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.20.0'
+gem 'gitlab-labkit', '~> 0.21.1'
# Detects the open source license the repository includes
# This version needs to be in sync with GitLab CE/EE
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index f0e06b761dce..05e75a524139 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
remote: https://rubygems.org/
specs:
abstract_type (0.0.7)
- actionpack (6.1.3.2)
- actionview (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ actionpack (6.1.4.1)
+ actionview (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
- actionview (6.1.3.2)
- activesupport (= 6.1.3.2)
+ actionview (6.1.4.1)
+ activesupport (= 6.1.4.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
- activesupport (6.1.3.2)
+ activesupport (6.1.4.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -65,10 +65,10 @@ GEM
gitlab-gollum-rugged_adapter (0.4.4.4.gitlab.1)
mime-types (>= 1.15)
rugged (~> 1.0)
- gitlab-labkit (0.20.0)
+ gitlab-labkit (0.21.2)
actionpack (>= 5.0.0, < 7.0.0)
activesupport (>= 5.0.0, < 7.0.0)
- grpc (~> 1.19)
+ grpc (~> 1.30)
jaeger-client (~> 1.1)
opentracing (~> 0.4)
pg_query (~> 2.1)
@@ -94,7 +94,7 @@ GEM
reverse_markdown (~> 1.0)
rugged (>= 0.24, < 2.0)
thor (>= 0.19, < 2.0)
- loofah (2.10.0)
+ loofah (2.12.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
memoizable (0.4.2)
@@ -108,7 +108,7 @@ GEM
minitest (5.14.4)
msgpack (1.3.3)
multipart-post (2.1.1)
- nokogiri (1.11.5)
+ nokogiri (1.11.7)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
nokogumbo (1.5.0)
@@ -139,7 +139,7 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.3.0)
+ rails-html-sanitizer (1.4.2)
loofah (~> 2.3)
rainbow (3.0.0)
rbtrace (0.4.14)
@@ -147,7 +147,7 @@ GEM
msgpack (>= 0.4.3)
optimist (>= 3.0.0)
rdoc (6.3.2)
- redis (4.2.5)
+ redis (4.4.0)
regexp_parser (1.8.1)
reverse_markdown (1.4.0)
nokogiri
@@ -197,7 +197,7 @@ GEM
stringex (2.8.5)
thor (1.1.0)
thread_safe (0.3.6)
- thrift (0.14.1)
+ thrift (0.15.0)
timecop (0.9.1)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
@@ -216,13 +216,13 @@ PLATFORMS
ruby
DEPENDENCIES
- activesupport (~> 6.1.3.2)
+ activesupport (~> 6.1.4.1)
factory_bot
faraday (~> 1.0)
github-linguist (~> 7.12)
gitlab-gollum-lib (~> 4.2.7.10.gitlab.1)
gitlab-gollum-rugged_adapter (~> 0.4.4.4.gitlab.1)
- gitlab-labkit (~> 0.20.0)
+ gitlab-labkit (~> 0.21.1)
gitlab-markup (~> 1.7.1)
google-protobuf (~> 3.17.0)
grpc (~> 1.30.2)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 07a9a297a034..41e5908c629d 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -20,7 +20,8 @@ let
};
};
};
- version = "14.2.3";
+
+ version = "14.4.2";
gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}";
in
@@ -32,10 +33,10 @@ buildGoModule {
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
- sha256 = "sha256-TSA5CoNaLeMu7O02rsaR/rNciLwzxSIUUQsCo40Z15c=";
+ sha256 = "sha256-MzYUSoG+HjW9o2zn6Q9Pd5NfI7hZkw1xFXOXHbbxJvo=";
};
- vendorSha256 = "sha256-WhkNK+V7yXK+le1u8StAKajZIBzVKqV/WIau27oZBXE=";
+ vendorSha256 = "sha256-9RhPQosen70E9t1iAoc2SeKs9pYMMpMqgXLekWfKNf8=";
passthru = {
inherit rubyEnv;
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index f5e562ddf6e1..4aad9394cd6e 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1wdgv5llgbl4nayx5j78lfvhhjssrzfmypb45mjy37mgm8z5l5m5";
+ sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1r6db2g3fsrca1hp9kbyvjx9psipsxw0g306qharkcblxl8h1ysn";
+ sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -35,10 +35,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
+ sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
adamantium = {
dependencies = ["ice_nine" "memoizable"];
@@ -269,10 +269,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1krn6vi33i5vqbz3gmwzj9f9ifda41a3as3chpl899mrgni61q6r";
+ sha256 = "0xkzm6kri1dzjrmicm3wgbnxi9gk0byanr6ibfrflv7spd98fz19";
type = "gem";
};
- version = "0.20.0";
+ version = "0.21.2";
};
gitlab-markup = {
groups = ["default"];
@@ -383,10 +383,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "19vkaazjqyq7yj5ah8rpr4vl9n4mg95scdr5im93akhd5bjvkkly";
+ sha256 = "1nqcya57x2n58y1dify60i0dpla40n4yir928khp4nj5jrn9mgmw";
type = "gem";
};
- version = "2.10.0";
+ version = "2.12.0";
};
memoizable = {
dependencies = ["thread_safe"];
@@ -482,10 +482,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1i80ny61maqzqr1fq5wgpkijmh5j8abisrmhn16kv7mzmxqg5w0m";
+ sha256 = "1vrn31385ix5k9b0yalnlzv360isv6dincbcvi8psllnwz4sjxj9";
type = "gem";
};
- version = "1.11.5";
+ version = "1.11.7";
};
nokogumbo = {
dependencies = ["nokogiri"];
@@ -643,10 +643,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ sha256 = "09qrfi3pgllxb08r024lln9k0qzxs57v0slsj8616xf9c0cwnwbk";
type = "gem";
};
- version = "1.3.0";
+ version = "1.4.2";
};
rainbow = {
source = {
@@ -682,10 +682,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "15x2sr6h094rjbvg8pkq6m3lcd5abpyx93aifvfdz3wv6x55xa48";
+ sha256 = "1ig832dp0xmpp6a934nifzaj7wm9lzjxzasw911fagycs8p6m720";
type = "gem";
};
- version = "4.2.5";
+ version = "4.4.0";
};
regexp_parser = {
groups = ["default" "development" "test"];
@@ -899,10 +899,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1sfa4120a7yl3gxjcx990gyawsshfr22gfv5rvgpk72l2p9j2420";
+ sha256 = "0rb9nax4k72zbriq7k98shfcj4lf54sqjpin2xm6ma7bb48ra8mc";
type = "gem";
};
- version = "0.14.1";
+ version = "0.15.0";
};
timecop = {
source = {
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index ee039c4adb26..2ffc52f3b12c 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,19 +2,19 @@
buildGoModule rec {
pname = "gitlab-shell";
- version = "13.19.1";
+ version = "13.21.1";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-shell";
rev = "v${version}";
- sha256 = "sha256-F0TW0VjO5hc/lHqZhhMJJvpHazWRyR7Q7W324Fgn7fA=";
+ sha256 = "sha256-FBkxJLl58ZbqM1P4LohsozGiKg38gQwVGOV9AAjVE0M=";
};
buildInputs = [ ruby ];
patches = [ ./remove-hardcoded-locations.patch ];
- vendorSha256 = "sha256-+nUMxHWo/d/WrQ4LAEG2+ghtNBF9vcnSyg6Ki412rPA=";
+ vendorSha256 = "sha256-cE6phpVYcZNCEk6bElEksIf4GOr/5vJPRdlGCubRafE=";
postInstall = ''
cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 0e81b89b3db8..eaae6eacf44f 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -1,11 +1,11 @@
{ lib, fetchFromGitLab, git, buildGoModule }:
let
- data = (builtins.fromJSON (builtins.readFile ../data.json));
+ data = lib.importJSON ../data.json;
in
buildGoModule rec {
pname = "gitlab-workhorse";
- version = "14.2.3";
+ version = "14.4.2";
src = fetchFromGitLab {
owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
sourceRoot = "source/workhorse";
- vendorSha256 = "sha256-q0LuXmjoO6mjVZpMRVVGL862mA+MaCejTCx99Zi5VEI=";
+ vendorSha256 = "sha256-yLZY9FFUS4nJl4TkE6MwICCEwtPTXFc5zuj4FgiIy74=";
buildInputs = [ git ];
ldflags = [ "-X main.Version=${version}" ];
doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch b/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch
new file mode 100644
index 000000000000..25cbf775e635
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch
@@ -0,0 +1,13 @@
+diff --git a/railties/lib/rails/tasks/yarn.rake b/railties/lib/rails/tasks/yarn.rake
+index 0226da721a..365cdeb0f9 100644
+--- a/railties/lib/rails/tasks/yarn.rake
++++ b/railties/lib/rails/tasks/yarn.rake
+@@ -27,8 +27,3 @@ namespace :yarn do
+ exit 1
+ end
+ end
+-
+-# Run Yarn prior to Sprockets assets precompilation, so dependencies are available for use.
+-if Rake::Task.task_defined?("assets:precompile") && File.exist?(Rails.root.join("bin", "yarn"))
+- Rake::Task["assets:precompile"].enhance [ "yarn:install" ]
+-end
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 35017bd87d98..0713560ead89 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -2,7 +2,7 @@
source 'https://rubygems.org'
-gem 'rails', '~> 6.1.3.2'
+gem 'rails', '~> 6.1.4.1'
gem 'bootsnap', '~> 1.4.6'
@@ -18,7 +18,7 @@ gem 'default_value_for', '~> 3.4.0'
gem 'pg', '~> 1.1'
gem 'rugged', '~> 1.1'
-gem 'grape-path-helpers', '~> 1.6.3'
+gem 'grape-path-helpers', '~> 1.7.0'
gem 'faraday', '~> 1.0'
gem 'marginalia', '~> 1.10.0'
@@ -32,7 +32,7 @@ gem 'bcrypt', '~> 3.1', '>= 3.1.14'
gem 'doorkeeper', '~> 5.5.0.rc2'
gem 'doorkeeper-openid_connect', '~> 1.7.5'
gem 'rexml', '~> 3.2.5'
-gem 'ruby-saml', '~> 1.12.1'
+gem 'ruby-saml', '~> 1.13.0'
gem 'omniauth', '~> 1.8'
gem 'omniauth-auth0', '~> 2.0.0'
gem 'omniauth-azure-activedirectory-v2', '~> 1.0'
@@ -92,7 +92,7 @@ gem 'net-ldap', '~> 0.16.3'
# API
gem 'grape', '~> 1.5.2'
-gem 'grape-entity', '~> 0.9.0'
+gem 'grape-entity', '~> 0.10.0'
gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
# GraphQL API
@@ -120,7 +120,7 @@ gem 'carrierwave', '~> 1.3'
gem 'mini_magick', '~> 4.10.1'
# for backups
-gem 'fog-aws', '~> 3.9'
+gem 'fog-aws', '~> 3.12'
# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
# Also see config/initializers/fog_core_patch.rb.
gem 'fog-core', '= 2.1.0'
@@ -129,7 +129,7 @@ gem 'fog-local', '~> 0.6'
gem 'fog-openstack', '~> 1.0'
gem 'fog-rackspace', '~> 0.1.1'
gem 'fog-aliyun', '~> 0.3'
-gem 'gitlab-fog-azure-rm', '~> 1.1.1', require: false
+gem 'gitlab-fog-azure-rm', '~> 1.2.0', require: false
# for Google storage
gem 'google-api-client', '~> 0.33'
@@ -154,7 +154,7 @@ gem 'html-pipeline', '~> 2.13.2'
gem 'deckar01-task_list', '2.3.1'
gem 'gitlab-markup', '~> 1.7.1'
gem 'github-markup', '~> 1.7.0', require: 'github/markup'
-gem 'commonmarker', '~> 0.21'
+gem 'commonmarker', '~> 0.23.2'
gem 'kramdown', '~> 2.3.1'
gem 'RedCloth', '~> 4.3.2'
gem 'rdoc', '~> 6.3.2'
@@ -165,7 +165,7 @@ gem 'asciidoctor', '~> 2.0.10'
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
gem 'asciidoctor-plantuml', '~> 0.0.12'
gem 'asciidoctor-kroki', '~> 0.5.0', require: false
-gem 'rouge', '~> 3.26.0'
+gem 'rouge', '~> 3.26.1'
gem 'truncato', '~> 0.7.11'
gem 'bootstrap_form', '~> 4.2.0'
gem 'nokogiri', '~> 1.11.4'
@@ -195,10 +195,10 @@ gem 'state_machines-activerecord', '~> 0.8.0'
gem 'acts-as-taggable-on', '~> 7.0'
# Background jobs
-gem 'sidekiq', '~> 5.2.7'
+gem 'sidekiq', '~> 6.2.2'
gem 'sidekiq-cron', '~> 1.0'
gem 'redis-namespace', '~> 1.8.1'
-gem 'gitlab-sidekiq-fetcher', '0.5.6', require: 'sidekiq-reliable-fetch'
+gem 'gitlab-sidekiq-fetcher', '0.8.0', require: 'sidekiq-reliable-fetch'
# Cron Parser
gem 'fugit', '~> 1.2.1'
@@ -229,11 +229,11 @@ gem 'js_regex', '~> 3.7'
gem 'device_detector'
# Redis
-gem 'redis', '~> 4.1.4'
+gem 'redis', '~> 4.4.0'
gem 'connection_pool', '~> 2.0'
# Redis session store
-gem 'redis-rails', '~> 5.0.2'
+gem 'redis-actionpack', '~> 5.2.0'
# Discord integration
gem 'discordrb-webhooks', '~> 3.4', require: false
@@ -333,7 +333,7 @@ gem 'snowplow-tracker', '~> 0.6.1'
# Metrics
gem 'method_source', '~> 1.0', require: false
gem 'webrick', '~> 1.6.1', require: false
-gem 'prometheus-client-mmap', '~> 0.12.0', require: 'prometheus/client'
+gem 'prometheus-client-mmap', '~> 0.15.0', require: 'prometheus/client'
gem 'warning', '~> 1.2.0'
@@ -341,7 +341,7 @@ group :development do
gem 'lefthook', '~> 0.7.0', require: false
gem 'solargraph', '~> 0.43', require: false
- gem 'letter_opener_web', '~> 1.4.0'
+ gem 'letter_opener_web', '~> 1.4.1'
# Better errors handler
gem 'better_errors', '~> 2.9.0'
@@ -355,7 +355,7 @@ group :development, :test do
gem 'bullet', '~> 6.1.3'
gem 'pry-byebug'
gem 'pry-rails', '~> 0.3.9'
- gem 'pry-shell', '~> 0.4.0'
+ gem 'pry-shell', '~> 0.5.0'
gem 'awesome_print', require: false
@@ -372,7 +372,7 @@ group :development, :test do
gem 'spring', '~> 2.1.0'
gem 'spring-commands-rspec', '~> 1.0.4'
- gem 'gitlab-styles', '~> 6.2.0', require: false
+ gem 'gitlab-styles', '~> 6.3.0', require: false
gem 'haml_lint', '~> 0.36.0', require: false
gem 'bundler-audit', '~> 0.7.0.1', require: false
@@ -424,7 +424,7 @@ group :test do
gem 'webmock', '~> 3.9.1'
gem 'rails-controller-testing'
gem 'concurrent-ruby', '~> 1.1'
- gem 'test-prof', '~> 0.12.0'
+ gem 'test-prof', '~> 1.0.7'
gem 'rspec_junit_formatter'
gem 'guard-rspec'
@@ -474,7 +474,7 @@ end
gem 'spamcheck', '~> 0.1.0'
# Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 14.2.0.pre.rc2'
+gem 'gitaly', '~> 14.3.0.pre.rc2'
# KAS GRPC protocol definitions
gem 'kas-grpc', '~> 0.0.2'
@@ -522,7 +522,7 @@ gem 'lockbox', '~> 0.6.2'
gem 'valid_email', '~> 0.1'
# JSON
-gem 'json', '~> 2.3.0'
+gem 'json', '~> 2.5.1'
gem 'json_schemer', '~> 0.2.18'
gem 'oj', '~> 3.10.6'
gem 'multi_json', '~> 1.14.1'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 3c5286b5edd3..8a135d809ba1 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -4,63 +4,63 @@ GEM
RedCloth (4.3.2)
acme-client (2.0.6)
faraday (>= 0.17, < 2.0.0)
- actioncable (6.1.3.2)
- actionpack (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ actioncable (6.1.4.1)
+ actionpack (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
- actionmailbox (6.1.3.2)
- actionpack (= 6.1.3.2)
- activejob (= 6.1.3.2)
- activerecord (= 6.1.3.2)
- activestorage (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ actionmailbox (6.1.4.1)
+ actionpack (= 6.1.4.1)
+ activejob (= 6.1.4.1)
+ activerecord (= 6.1.4.1)
+ activestorage (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
mail (>= 2.7.1)
- actionmailer (6.1.3.2)
- actionpack (= 6.1.3.2)
- actionview (= 6.1.3.2)
- activejob (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ actionmailer (6.1.4.1)
+ actionpack (= 6.1.4.1)
+ actionview (= 6.1.4.1)
+ activejob (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (6.1.3.2)
- actionview (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ actionpack (6.1.4.1)
+ actionview (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
- actiontext (6.1.3.2)
- actionpack (= 6.1.3.2)
- activerecord (= 6.1.3.2)
- activestorage (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ actiontext (6.1.4.1)
+ actionpack (= 6.1.4.1)
+ activerecord (= 6.1.4.1)
+ activestorage (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
nokogiri (>= 1.8.5)
- actionview (6.1.3.2)
- activesupport (= 6.1.3.2)
+ actionview (6.1.4.1)
+ activesupport (= 6.1.4.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
- activejob (6.1.3.2)
- activesupport (= 6.1.3.2)
+ activejob (6.1.4.1)
+ activesupport (= 6.1.4.1)
globalid (>= 0.3.6)
- activemodel (6.1.3.2)
- activesupport (= 6.1.3.2)
- activerecord (6.1.3.2)
- activemodel (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ activemodel (6.1.4.1)
+ activesupport (= 6.1.4.1)
+ activerecord (6.1.4.1)
+ activemodel (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
activerecord-explain-analyze (0.1.0)
activerecord (>= 4)
pg
- activestorage (6.1.3.2)
- actionpack (= 6.1.3.2)
- activejob (= 6.1.3.2)
- activerecord (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ activestorage (6.1.4.1)
+ actionpack (= 6.1.4.1)
+ activejob (= 6.1.4.1)
+ activerecord (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
marcel (~> 1.0.0)
- mini_mime (~> 1.0.2)
- activesupport (6.1.3.2)
+ mini_mime (>= 1.1.0)
+ activesupport (6.1.4.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -193,8 +193,7 @@ GEM
open4 (~> 1.3)
coderay (1.1.3)
colored2 (3.1.2)
- commonmarker (0.21.0)
- ruby-enum (~> 0.5)
+ commonmarker (0.23.2)
concurrent-ruby (1.1.9)
connection_pool (2.2.2)
contracts (0.11.0)
@@ -365,7 +364,7 @@ GEM
faraday_middleware
multi_json
fast_blank (1.0.0)
- fast_gettext (1.6.0)
+ fast_gettext (2.1.0)
ffaker (2.10.0)
ffi (1.15.3)
ffi-compiler (1.0.1)
@@ -388,7 +387,7 @@ GEM
fog-json
ipaddress (~> 0.8)
xml-simple (~> 1.1)
- fog-aws (3.9.0)
+ fog-aws (3.12.0)
fog-core (~> 2.1)
fog-json (~> 1.1)
fog-xml (~> 0.1)
@@ -446,7 +445,7 @@ GEM
rails (>= 3.2.0)
git (1.7.0)
rchardet (~> 1.8)
- gitaly (14.2.0.pre.rc2)
+ gitaly (14.3.0.pre.rc2)
grpc (~> 1.0)
github-markup (1.7.0)
gitlab (4.16.1)
@@ -461,7 +460,7 @@ GEM
activesupport (>= 3.0)
request_store (>= 1.0)
scientist (~> 1.6, >= 1.6.0)
- gitlab-fog-azure-rm (1.1.1)
+ gitlab-fog-azure-rm (1.2.0)
azure-storage-blob (~> 2.0)
azure-storage-common (~> 2.0)
fog-core (= 2.1.0)
@@ -484,9 +483,9 @@ GEM
addressable (~> 2.7)
omniauth (~> 1.9)
openid_connect (~> 1.2)
- gitlab-sidekiq-fetcher (0.5.6)
- sidekiq (~> 5)
- gitlab-styles (6.2.0)
+ gitlab-sidekiq-fetcher (0.8.0)
+ sidekiq (~> 6.1)
+ gitlab-styles (6.3.0)
rubocop (~> 0.91, >= 0.91.1)
rubocop-gitlab-security (~> 0.1.1)
rubocop-performance (~> 1.9.2)
@@ -499,8 +498,8 @@ GEM
omniauth (~> 1.3)
pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
rubyntlm (~> 0.5)
- globalid (0.4.2)
- activesupport (>= 4.2.0)
+ globalid (0.5.2)
+ activesupport (>= 5.0)
gon (6.4.0)
actionpack (>= 3.0.20)
i18n (>= 0.7)
@@ -536,10 +535,10 @@ GEM
mustermann-grape (~> 1.0.0)
rack (>= 1.3.0)
rack-accept
- grape-entity (0.9.0)
+ grape-entity (0.10.0)
activesupport (>= 3.0.0)
multi_json (>= 1.3.2)
- grape-path-helpers (1.6.3)
+ grape-path-helpers (1.7.0)
activesupport
grape (~> 1.3)
rake (> 12)
@@ -650,7 +649,7 @@ GEM
character_set (~> 1.4)
regexp_parser (~> 2.1)
regexp_property_values (~> 1.0)
- json (2.3.0)
+ json (2.5.1)
json-jwt (1.13.0)
activesupport (>= 4.2)
aes_key_wrap
@@ -693,7 +692,7 @@ GEM
lefthook (0.7.5)
letter_opener (1.7.0)
launchy (~> 2.2)
- letter_opener_web (1.4.0)
+ letter_opener_web (1.4.1)
actionmailer (>= 3.2)
letter_opener (~> 1.0)
railties (>= 3.2)
@@ -721,7 +720,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
- loofah (2.11.0)
+ loofah (2.12.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
lru_redux (1.1.0)
@@ -740,7 +739,7 @@ GEM
mime-types-data (3.2020.0512)
mini_histogram (0.3.1)
mini_magick (4.10.1)
- mini_mime (1.0.2)
+ mini_mime (1.1.1)
mini_portile2 (2.5.3)
minitest (5.11.3)
mixlib-cli (2.1.8)
@@ -777,7 +776,7 @@ GEM
net-ssh (>= 2.6.5, < 7.0.0)
net-ssh (6.0.0)
netrc (0.11.0)
- nio4r (2.5.4)
+ nio4r (2.5.8)
no_proxy_fix (0.1.2)
nokogiri (1.11.7)
mini_portile2 (~> 2.5.0)
@@ -893,7 +892,7 @@ GEM
orm_adapter (0.5.0)
os (1.1.1)
parallel (1.20.1)
- parser (3.0.0.0)
+ parser (3.0.2.0)
ast (~> 2.4.1)
parslet (1.8.2)
pastel (0.8.0)
@@ -901,7 +900,7 @@ GEM
peek (1.1.0)
railties (>= 4.0.0)
pg (1.2.3)
- pg_query (2.1.0)
+ pg_query (2.1.1)
google-protobuf (>= 3.17.1)
plist (3.6.0)
png_quantizator (0.2.1)
@@ -918,7 +917,7 @@ GEM
coderay
parser
unparser
- prometheus-client-mmap (0.12.0)
+ prometheus-client-mmap (0.15.0)
pry (0.13.1)
coderay (~> 1.1)
method_source (~> 1.0)
@@ -927,7 +926,7 @@ GEM
pry (~> 0.13.0)
pry-rails (0.3.9)
pry (>= 0.10.4)
- pry-shell (0.4.1)
+ pry-shell (0.5.0)
pry (~> 0.13.0)
tty-markdown
tty-prompt
@@ -953,27 +952,25 @@ GEM
httpclient
json-jwt (>= 1.11.0)
rack (>= 2.1.0)
- rack-protection (2.0.5)
- rack
rack-proxy (0.6.0)
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
rack-timeout (0.5.2)
- rails (6.1.3.2)
- actioncable (= 6.1.3.2)
- actionmailbox (= 6.1.3.2)
- actionmailer (= 6.1.3.2)
- actionpack (= 6.1.3.2)
- actiontext (= 6.1.3.2)
- actionview (= 6.1.3.2)
- activejob (= 6.1.3.2)
- activemodel (= 6.1.3.2)
- activerecord (= 6.1.3.2)
- activestorage (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ rails (6.1.4.1)
+ actioncable (= 6.1.4.1)
+ actionmailbox (= 6.1.4.1)
+ actionmailer (= 6.1.4.1)
+ actionpack (= 6.1.4.1)
+ actiontext (= 6.1.4.1)
+ actionview (= 6.1.4.1)
+ activejob (= 6.1.4.1)
+ activemodel (= 6.1.4.1)
+ activerecord (= 6.1.4.1)
+ activestorage (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
bundler (>= 1.15.0)
- railties (= 6.1.3.2)
+ railties (= 6.1.4.1)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
@@ -982,16 +979,16 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.3.0)
+ rails-html-sanitizer (1.4.2)
loofah (~> 2.3)
rails-i18n (6.0.0)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 7)
- railties (6.1.3.2)
- actionpack (= 6.1.3.2)
- activesupport (= 6.1.3.2)
+ railties (6.1.4.1)
+ actionpack (= 6.1.4.1)
+ activesupport (= 6.1.4.1)
method_source
- rake (>= 0.8.7)
+ rake (>= 0.13)
thor (~> 1.0)
rainbow (3.0.0)
rake (13.0.6)
@@ -1011,24 +1008,17 @@ GEM
recaptcha (4.13.1)
json
recursive-open-struct (1.1.3)
- redis (4.1.4)
+ redis (4.4.0)
redis-actionpack (5.2.0)
actionpack (>= 5, < 7)
redis-rack (>= 2.1.0, < 3)
redis-store (>= 1.1.0, < 2)
- redis-activesupport (5.2.0)
- activesupport (>= 3, < 7)
- redis-store (>= 1.3, < 2)
redis-namespace (1.8.1)
redis (>= 3.0.4)
- redis-rack (2.1.2)
+ redis-rack (2.1.3)
rack (>= 2.0.8, < 3)
redis-store (>= 1.2, < 2)
- redis-rails (5.0.2)
- redis-actionpack (>= 5.0, < 6)
- redis-activesupport (>= 5.0, < 6)
- redis-store (>= 1.2, < 2)
- redis-store (1.8.1)
+ redis-store (1.9.0)
redis (>= 4, < 5)
regexp_parser (2.1.1)
regexp_property_values (1.0.0)
@@ -1052,7 +1042,7 @@ GEM
rexml (3.2.5)
rinku (2.0.0)
rotp (6.2.0)
- rouge (3.26.0)
+ rouge (3.26.1)
rqrcode (0.7.0)
chunky_png
rqrcode-rails3 (0.1.7)
@@ -1116,15 +1106,13 @@ GEM
rubocop-rspec (1.44.1)
rubocop (~> 0.87)
rubocop-ast (>= 0.7.1)
- ruby-enum (0.8.0)
- i18n
ruby-fogbugz (0.2.1)
crack (~> 0.4)
ruby-magic (0.4.0)
mini_portile2 (~> 2.5.0)
ruby-prof (1.3.1)
ruby-progressbar (1.11.0)
- ruby-saml (1.12.1)
+ ruby-saml (1.13.0)
nokogiri (>= 1.10.5)
rexml
ruby-statistics (2.1.2)
@@ -1176,11 +1164,10 @@ GEM
shellany (0.0.1)
shoulda-matchers (4.0.1)
activesupport (>= 4.2.0)
- sidekiq (5.2.9)
- connection_pool (~> 2.2, >= 2.2.2)
+ sidekiq (6.2.2)
+ connection_pool (>= 2.2.2)
rack (~> 2.0)
- rack-protection (>= 1.5.0)
- redis (>= 3.3.5, < 4.2)
+ redis (>= 4.2.0)
sidekiq-cron (1.0.4)
fugit (~> 1.1)
sidekiq (>= 4.2.1)
@@ -1258,7 +1245,7 @@ GEM
unicode-display_width (~> 1.1, >= 1.1.1)
terser (1.0.2)
execjs (>= 0.3.0, < 3)
- test-prof (0.12.0)
+ test-prof (1.0.7)
test_file_finder (0.1.4)
faraday (~> 1.0)
text (1.3.1)
@@ -1358,7 +1345,7 @@ GEM
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
webrick (1.6.1)
- websocket-driver (0.7.3)
+ websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
wikicloth (0.8.1)
@@ -1415,7 +1402,7 @@ DEPENDENCIES
capybara-screenshot (~> 1.0.22)
carrierwave (~> 1.3)
charlock_holmes (~> 0.7.7)
- commonmarker (~> 0.21)
+ commonmarker (~> 0.23.2)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.0)
countries (~> 3.0)
@@ -1453,7 +1440,7 @@ DEPENDENCIES
flipper-active_support_cache_store (~> 0.21.0)
flowdock (~> 0.7)
fog-aliyun (~> 0.3)
- fog-aws (~> 3.9)
+ fog-aws (~> 3.12)
fog-core (= 2.1.0)
fog-google (~> 1.15)
fog-local (~> 0.6)
@@ -1465,20 +1452,20 @@ DEPENDENCIES
gettext (~> 3.3)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
- gitaly (~> 14.2.0.pre.rc2)
+ gitaly (~> 14.3.0.pre.rc2)
github-markup (~> 1.7.0)
gitlab-chronic (~> 0.10.5)
gitlab-dangerfiles (~> 2.3.0)
gitlab-experiment (~> 0.6.4)
- gitlab-fog-azure-rm (~> 1.1.1)
+ gitlab-fog-azure-rm (~> 1.2.0)
gitlab-labkit (~> 0.21.1)
gitlab-license (~> 2.0)
gitlab-mail_room (~> 0.0.9)
gitlab-markup (~> 1.7.1)
gitlab-net-dns (~> 0.9.1)
gitlab-omniauth-openid-connect (~> 0.8.0)
- gitlab-sidekiq-fetcher (= 0.5.6)
- gitlab-styles (~> 6.2.0)
+ gitlab-sidekiq-fetcher (= 0.8.0)
+ gitlab-styles (~> 6.3.0)
gitlab_chronic_duration (~> 0.10.6.2)
gitlab_omniauth-ldap (~> 2.1.1)
gon (~> 6.4.0)
@@ -1486,8 +1473,8 @@ DEPENDENCIES
google-protobuf (~> 3.17.1)
gpgme (~> 2.0.19)
grape (~> 1.5.2)
- grape-entity (~> 0.9.0)
- grape-path-helpers (~> 1.6.3)
+ grape-entity (~> 0.10.0)
+ grape-path-helpers (~> 1.7.0)
grape_logging (~> 1.7)
graphiql-rails (~> 1.4.10)
graphlient (~> 0.4.0)
@@ -1510,7 +1497,7 @@ DEPENDENCIES
ipaddress (~> 0.8.3)
jira-ruby (~> 2.1.4)
js_regex (~> 3.7)
- json (~> 2.3.0)
+ json (~> 2.5.1)
json_schemer (~> 0.2.18)
jwt (~> 2.1.0)
kaminari (~> 1.0)
@@ -1519,7 +1506,7 @@ DEPENDENCIES
kramdown (~> 2.3.1)
kubeclient (~> 4.9.2)
lefthook (~> 0.7.0)
- letter_opener_web (~> 1.4.0)
+ letter_opener_web (~> 1.4.1)
license_finder (~> 6.0)
licensee (~> 9.14.1)
lockbox (~> 0.6.2)
@@ -1567,10 +1554,10 @@ DEPENDENCIES
pg_query (~> 2.1)
png_quantizator (~> 0.2.1)
premailer-rails (~> 1.10.3)
- prometheus-client-mmap (~> 0.12.0)
+ prometheus-client-mmap (~> 0.15.0)
pry-byebug
pry-rails (~> 0.3.9)
- pry-shell (~> 0.4.0)
+ pry-shell (~> 0.5.0)
puma (~> 5.3.1)
puma_worker_killer (~> 0.3.1)
rack (~> 2.2.3)
@@ -1579,7 +1566,7 @@ DEPENDENCIES
rack-oauth2 (~> 1.16.0)
rack-proxy (~> 0.6.0)
rack-timeout (~> 0.5.1)
- rails (~> 6.1.3.2)
+ rails (~> 6.1.4.1)
rails-controller-testing
rails-i18n (~> 6.0)
rainbow (~> 3.0)
@@ -1588,14 +1575,14 @@ DEPENDENCIES
rdoc (~> 6.3.2)
re2 (~> 1.2.0)
recaptcha (~> 4.11)
- redis (~> 4.1.4)
+ redis (~> 4.4.0)
+ redis-actionpack (~> 5.2.0)
redis-namespace (~> 1.8.1)
- redis-rails (~> 5.0.2)
request_store (~> 1.5)
responders (~> 3.0)
retriable (~> 3.1.2)
rexml (~> 3.2.5)
- rouge (~> 3.26.0)
+ rouge (~> 3.26.1)
rqrcode-rails3 (~> 0.1.7)
rspec-parameterized
rspec-rails (~> 5.0.1)
@@ -1606,7 +1593,7 @@ DEPENDENCIES
ruby-magic (~> 0.4)
ruby-prof (~> 1.3.0)
ruby-progressbar (~> 1.10)
- ruby-saml (~> 1.12.1)
+ ruby-saml (~> 1.13.0)
ruby_parser (~> 3.15)
rubyzip (~> 2.0.0)
rugged (~> 1.1)
@@ -1618,7 +1605,7 @@ DEPENDENCIES
sentry-raven (~> 3.1)
settingslogic (~> 2.0.9)
shoulda-matchers (~> 4.0.1)
- sidekiq (~> 5.2.7)
+ sidekiq (~> 6.2.2)
sidekiq-cron (~> 1.0)
simple_po_parser (~> 1.1.2)
simplecov (~> 0.18.5)
@@ -1635,7 +1622,7 @@ DEPENDENCIES
state_machines-activerecord (~> 0.8.0)
sys-filesystem (~> 1.1.6)
terser (= 1.0.2)
- test-prof (~> 0.12.0)
+ test-prof (~> 1.0.7)
test_file_finder (~> 0.1.3)
thin (~> 1.8.0)
thrift (>= 0.14.0)
@@ -1657,4 +1644,4 @@ DEPENDENCIES
yajl-ruby (~> 1.4.1)
BUNDLED WITH
- 2.2.20
+ 2.2.24
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index eb4a7467d50b..2c1f53c0b3ac 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -16,10 +16,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "15r6ab17iwhhq92by4ah9z4wwvjbr07qn16x8pn2ypgqwvfy74h7";
+ sha256 = "0ilq5mniarm0zlvnkagqj9n9p73ljrhphciz02aymrpfxxxclz2x";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
actionmailbox = {
dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -27,10 +27,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1q1r3x9fbq5wlgn4xhqw48la09q7f97zna7ld5fglk3jpmh973x5";
+ sha256 = "16azdnjws215clb056b9mabglx4b8f61hr82hv7hm80dmn89zqq6";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
actionmailer = {
dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
@@ -38,10 +38,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1nqdaykzgib8fsldkxdkw0w44jzz4grvb028crzg0qpwvv03g2wp";
+ sha256 = "00s07l2ac5igch1g2rpa0linmiq7mhgk6v6wxkckg8gbiqijb592";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
actionpack = {
dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -49,10 +49,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1wdgv5llgbl4nayx5j78lfvhhjssrzfmypb45mjy37mgm8z5l5m5";
+ sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
actiontext = {
dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -60,10 +60,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1zfrkcnp9wy1dm4b6iqf29858dp04a62asfmldainqmv4a7931q7";
+ sha256 = "0m4fy4qqh09vnzbhx383vjdfid6fzbs49bzzg415x05nmmjkx582";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -71,10 +71,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1r6db2g3fsrca1hp9kbyvjx9psipsxw0g306qharkcblxl8h1ysn";
+ sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
activejob = {
dependencies = ["activesupport" "globalid"];
@@ -82,10 +82,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0p80rbahcxhxlkxgf4bh580hbifn9q4gr5g9fy8fd0z5g6gr9xxq";
+ sha256 = "1q7c0i0kwarxgcbxk71wa9jnlg45grbxmhlrh7dk9bgcv7r7r7hn";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
activemodel = {
dependencies = ["activesupport"];
@@ -93,10 +93,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1gpd3hh4ryyr84drj6m0b5sy6929nyf50bfgksw1hpc594542nal";
+ sha256 = "16ixam4lni8b5lgx0whnax0imzh1dh10fy5r9pxs52n83yz5nbq3";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
activerecord = {
dependencies = ["activemodel" "activesupport"];
@@ -104,10 +104,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fg58qma2zgrz0gr61p61qcz8c3h88fd5lbdrkpkm96aq5shwh68";
+ sha256 = "1ccgvlj767ybps3pxlaa4iw77n7wbriw2sr8754id3ngjfap08ja";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
activerecord-explain-analyze = {
dependencies = ["activerecord" "pg"];
@@ -126,10 +126,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0sbpkk3r8qi47bd0ilznq4gpfyfwm2bwvxqb5z0wc75h3zj1jhqg";
+ sha256 = "17knzz9fvqg4x582vy0xmlgjkxfb13xyzl2rgw19qfma86hxsvvi";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -137,10 +137,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
+ sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
acts-as-taggable-on = {
dependencies = ["activerecord"];
@@ -790,15 +790,14 @@
version = "3.1.2";
};
commonmarker = {
- dependencies = ["ruby-enum"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0vwpkmwfr8lx8b6cfvwh56f1ygyf2da5ah37mxbdr9mxmfwig5fr";
+ sha256 = "0sshs8mvjgk73sfz3bi9apq0p99kfj7n9bg1cyldl4yyy2z05prs";
type = "gem";
};
- version = "0.21.0";
+ version = "0.23.2";
};
concurrent-ruby = {
groups = ["default" "development" "test"];
@@ -1598,10 +1597,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
+ sha256 = "05df0w58w748n3bwcb5cbbh6l203hwl6k59vl6p3qfq0bay5s28d";
type = "gem";
};
- version = "1.6.0";
+ version = "2.1.0";
};
ffaker = {
groups = ["development" "test"];
@@ -1705,10 +1704,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "10y32rm3vcfh82p2fdr2zq8ibknx1jslmai5m0r261bdr3brkssm";
+ sha256 = "0cl9b93mwhzm9fp0lmac1vzz359g3sq52k06kn0a0vnvxrxnhzjm";
type = "gem";
};
- version = "3.9.0";
+ version = "3.12.0";
};
fog-core = {
dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1911,10 +1910,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0y4zsl1s7ysb1z6piczfkscbjnx7hchda3jsdam42dmi40z654dp";
+ sha256 = "197db842msm326ib8r3gqlavf5d11r4cd9jg4wjnyar3ccyr9dn7";
type = "gem";
};
- version = "14.2.0.pre.rc2";
+ version = "14.3.0.pre.rc2";
};
github-markup = {
groups = ["default"];
@@ -1976,10 +1975,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1k5f3vyy2jqv3zdkdqal6sgn447zakz8xcc04432qd806s7g9i89";
+ sha256 = "1hi9v0zy863gnk17w0fp1ks2kr1s2z6q0bkx5wdbq6yawycjs94h";
type = "gem";
};
- version = "1.1.1";
+ version = "1.2.0";
};
gitlab-labkit = {
dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
@@ -2049,10 +2048,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0838p0vnyl65571d8j5hljwyfyhsnfs6dlj6di57gpmwrbl9sdpr";
+ sha256 = "0qkkwd2sj9l6nmvipd1308ni01m2n8ixqwl6syl493cm5am4qmlw";
type = "gem";
};
- version = "0.5.6";
+ version = "0.8.0";
};
gitlab-styles = {
dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -2060,10 +2059,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1lgjp6cfb92z7i03f9k519bjabnnh1k0bgzmagp5x15iza73sz4v";
+ sha256 = "1vxg5j9405r5xvwnswhm2r7pg9pn6pqg675pxz6f8d3sxy5z963p";
type = "gem";
};
- version = "6.2.0";
+ version = "6.3.0";
};
gitlab_chronic_duration = {
dependencies = ["numerizer"];
@@ -2093,10 +2092,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+ sha256 = "0k6ww3shk3mv119xvr9m99l6ql0czq91xhd66hm8hqssb18r2lvm";
type = "gem";
};
- version = "0.4.2";
+ version = "0.5.2";
};
gon = {
dependencies = ["actionpack" "i18n" "multi_json" "request_store"];
@@ -2191,10 +2190,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0sqk33djlyvkinj0vxblfcib86bk9dy0iq2c3j2yalxyrpns3kfr";
+ sha256 = "1zic5fx8s0424vdarhslmxdqmfnlfv3k4prfyxrrwvf9pdy1xvcs";
type = "gem";
};
- version = "0.9.0";
+ version = "0.10.0";
};
grape-path-helpers = {
dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"];
@@ -2202,10 +2201,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1jbajciakiq9wwax2x11jzhmwzkcpkb4c0gfl01aj8a3l99gvgs9";
+ sha256 = "1r9p47kcf1j56pd0zijakcqp1mi5563z3i2kkbhx2pc3y95zca6d";
type = "gem";
};
- version = "1.6.3";
+ version = "1.7.0";
};
grape_logging = {
dependencies = ["grape" "rack"];
@@ -2648,10 +2647,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+ sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
type = "gem";
};
- version = "2.3.0";
+ version = "2.5.1";
};
json-jwt = {
dependencies = ["activesupport" "aes_key_wrap" "bindata"];
@@ -2832,10 +2831,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0pianlrbf9n7jrqxpyxgsfk1j1d312d57d6gq7yxni6ax2q0293q";
+ sha256 = "0kgz2n0cyw3m8ipvijlikb6bldmzhnq451b9d7w5l74gw2fhqckg";
type = "gem";
};
- version = "1.4.0";
+ version = "1.4.1";
};
libyajl2 = {
groups = ["default"];
@@ -2917,10 +2916,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0pwik3x5fa92g6hbv4imz3n46nlkzgj69pkgql22ppmcr36knk6m";
+ sha256 = "1nqcya57x2n58y1dify60i0dpla40n4yir928khp4nj5jrn9mgmw";
type = "gem";
};
- version = "2.11.0";
+ version = "2.12.0";
};
lru_redux = {
groups = ["default"];
@@ -3054,10 +3053,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+ sha256 = "173dp4vqvx1sl6aq83daxwn5xvb5rn3jgynjmb91swl7gmgp17yl";
type = "gem";
};
- version = "1.0.2";
+ version = "1.1.1";
};
mini_portile2 = {
groups = ["default" "development" "test"];
@@ -3302,10 +3301,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+ sha256 = "0xk64wghkscs6bv2n22853k2nh39d131c6rfpnlw12mbjnnv9v1v";
type = "gem";
};
- version = "2.5.4";
+ version = "2.5.8";
};
no_proxy_fix = {
groups = ["default" "development"];
@@ -3752,10 +3751,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
+ sha256 = "06ma6w87ph8lnc9z4hi40ynmcdnjv0p8x53x0s3fjkz4q2p6sxh5";
type = "gem";
};
- version = "3.0.0.0";
+ version = "3.0.2.0";
};
parslet = {
groups = ["default" "development" "test"];
@@ -3805,10 +3804,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "12dibsqndfnckc24yryy8v467rxp7p80jx21jhm8z7swp8118jhx";
+ sha256 = "0cf1b97nznl6adkx25j2x96sq8xx2b4fpic230fx65k3vqqn8a4r";
type = "gem";
};
- version = "2.1.0";
+ version = "2.1.1";
};
plist = {
groups = ["default"];
@@ -3875,14 +3874,14 @@
version = "0.1.0";
};
prometheus-client-mmap = {
- groups = ["metrics"];
+ groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1i0h9ixdvxw1n9ynxsrbc1lkx3dvd6r78iiwgwnqfz3fap6jgd9p";
+ sha256 = "0vn736898qyyw29kjyjifx2bg18r6gfaw3q8xzjgmr0jk4jz29c3";
type = "gem";
};
- version = "0.12.0";
+ version = "0.15.0";
};
pry = {
dependencies = ["coderay" "method_source"];
@@ -3927,10 +3926,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1wyx2rz58lfys1h62h6inz7ggq8xckqyfxndk8jq2cbkkdi2n6d7";
+ sha256 = "1jn3f5d9h2kg3hc4q7nzxfian4bhs23hh8n6g6hm9nzxqqbh9448";
type = "gem";
};
- version = "0.4.1";
+ version = "0.5.0";
};
public_suffix = {
groups = ["default" "development" "test"];
@@ -4048,17 +4047,6 @@
};
version = "1.16.0";
};
- rack-protection = {
- dependencies = ["rack"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
- type = "gem";
- };
- version = "2.0.5";
- };
rack-proxy = {
dependencies = ["rack"];
groups = ["default"];
@@ -4097,10 +4085,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0flnpli87b9j0zvb3c4l5addjbznbpkbmp1wzfjc1gh8qxlhcs1n";
+ sha256 = "1y59m2x8rdc581bjgyyr9dabi3vk3frqhhpbb5ldpbj622kxfpbz";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
rails-controller-testing = {
dependencies = ["actionpack" "actionview" "activesupport"];
@@ -4130,10 +4118,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ sha256 = "09qrfi3pgllxb08r024lln9k0qzxs57v0slsj8616xf9c0cwnwbk";
type = "gem";
};
- version = "1.3.0";
+ version = "1.4.2";
};
rails-i18n = {
dependencies = ["i18n" "railties"];
@@ -4152,10 +4140,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "17r1pr8d467vh3zkciw4wmrcixj9zjrvd11nxn2z091bkzf66xq2";
+ sha256 = "1kwpm068cqys34p2g0j3l1g0cd5f3kxnsay5v7lmbd0sgarac0vy";
type = "gem";
};
- version = "6.1.3.2";
+ version = "6.1.4.1";
};
rainbow = {
groups = ["default" "development" "test"];
@@ -4300,10 +4288,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0j0p82yb2a0z2sv38jq9xdzs0kvbslpyfdxky9f3znpy3igxj6yh";
+ sha256 = "1ig832dp0xmpp6a934nifzaj7wm9lzjxzasw911fagycs8p6m720";
type = "gem";
};
- version = "4.1.4";
+ version = "4.4.0";
};
redis-actionpack = {
dependencies = ["actionpack" "redis-rack" "redis-store"];
@@ -4316,17 +4304,6 @@
};
version = "5.2.0";
};
- redis-activesupport = {
- dependencies = ["activesupport" "redis-store"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "14a3z8810j02ysvg53f3mvcfb4rw34m91yfd19zy9y5lb3yv2g59";
- type = "gem";
- };
- version = "5.2.0";
- };
redis-namespace = {
dependencies = ["redis"];
groups = ["default"];
@@ -4344,21 +4321,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0ldw5sxyd80pv0gr89kvn6ziszlbs8lv1a573fkm6d0f11fps413";
+ sha256 = "1nblbxg1f051dn83jp92lz3lc1wxm18nviglrabv2l0vz6rd0pkb";
type = "gem";
};
- version = "2.1.2";
- };
- redis-rails = {
- dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
- type = "gem";
- };
- version = "5.0.2";
+ version = "2.1.3";
};
redis-store = {
dependencies = ["redis"];
@@ -4366,10 +4332,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1isqzzds9kszc2nn8jiy8ikry01qspn7637ba9z2k6sk7vky46d9";
+ sha256 = "0cpzbf2svnk4j5awb24ncl0mih45zkbdrd7q23jdg1r8k3q7mdg6";
type = "gem";
};
- version = "1.8.1";
+ version = "1.9.0";
};
regexp_parser = {
groups = ["default" "development" "test"];
@@ -4487,14 +4453,14 @@
version = "6.2.0";
};
rouge = {
- groups = ["default"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
+ sha256 = "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf";
type = "gem";
};
- version = "3.26.0";
+ version = "3.26.1";
};
rqrcode = {
dependencies = ["chunky_png"];
@@ -4693,17 +4659,6 @@
};
version = "1.44.1";
};
- ruby-enum = {
- dependencies = ["i18n"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0d3dyx2z41zd6va9dwn3q8caf710vzdaf57xspc0y17aqmnprwnw";
- type = "gem";
- };
- version = "0.8.0";
- };
ruby-fogbugz = {
dependencies = ["crack"];
groups = ["default"];
@@ -4752,10 +4707,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0hczs2s490x6lj8z9xczlgi4c159nk9b10njsnl37nqbgjfkjgsw";
+ sha256 = "1706dyk5jdma75bnl9rhmx8vgzjw12ixnj3y32inmpcgzgsvs76k";
type = "gem";
};
- version = "1.12.1";
+ version = "1.13.0";
};
ruby-statistics = {
groups = ["default"];
@@ -5030,15 +4985,15 @@
version = "4.0.1";
};
sidekiq = {
- dependencies = ["connection_pool" "rack" "rack-protection" "redis"];
+ dependencies = ["connection_pool" "rack" "redis"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0kw4z9mr8h1rddx6f81gf7glw9pf90w0kvgc2fx4g9hspgh9xh7y";
+ sha256 = "104a97cl94aclg71ngrr097zjbdf6cibnz4q3rqjb88izmd7cfk6";
type = "gem";
};
- version = "5.2.9";
+ version = "6.2.2";
};
sidekiq-cron = {
dependencies = ["fugit" "sidekiq"];
@@ -5373,10 +5328,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1pdb0szrj4mbczhlx2inszpj54rgnayvy2f2fff4q7jll2iz61i0";
+ sha256 = "1vg0zjfgibdcgkzb4c25v0f4v6v8mvpzvgcag194rwglmkkyrwkx";
type = "gem";
};
- version = "0.12.0";
+ version = "1.0.7";
};
test_file_finder = {
dependencies = ["faraday"];
@@ -5846,10 +5801,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1i3rs4kcj0jba8idxla3s6xd1xfln3k8b4cb1dik2lda3ifnp3dh";
+ sha256 = "0a3bwxd9v3ghrxzjc4vxmf4xa18c6m4xqy5wb0yk5c6b9psc7052";
type = "gem";
};
- version = "0.7.3";
+ version = "0.7.5";
};
websocket-extensions = {
groups = ["default" "test"];
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index b644f59f780a..c8b4efc2478e 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix bundler nix-update nix nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log yarn2nix
+#! nix-shell -I nixpkgs=../../../.. -i python3 -p bundix bundler nix-update nix nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log prefetch-yarn-deps
import click
import click_log
@@ -9,6 +9,7 @@ import logging
import subprocess
import json
import pathlib
+import tempfile
from distutils.version import LooseVersion
from typing import Iterable
@@ -42,6 +43,12 @@ class GitLabRepo:
def get_git_hash(self, rev: str):
return subprocess.check_output(['nix-universal-prefetch', 'fetchFromGitLab', '--owner', self.owner, '--repo', self.repo, '--rev', rev]).decode('utf-8').strip()
+ def get_yarn_hash(self, rev: str):
+ with tempfile.TemporaryDirectory() as tmp_dir:
+ with open(tmp_dir + '/yarn.lock', 'w') as f:
+ f.write(self.get_file('yarn.lock', rev))
+ return subprocess.check_output(['prefetch-yarn-deps', tmp_dir + '/yarn.lock']).decode('utf-8').strip()
+
@staticmethod
def rev2version(tag: str) -> str:
"""
@@ -74,6 +81,7 @@ class GitLabRepo:
return dict(version=self.rev2version(rev),
repo_hash=self.get_git_hash(rev),
+ yarn_hash=self.get_yarn_hash(rev),
owner=self.owner,
repo=self.repo,
rev=rev,
@@ -142,26 +150,6 @@ def update_rubyenv():
subprocess.check_output(['bundix'], cwd=rubyenv_dir)
-@cli.command('update-yarnpkgs')
-def update_yarnpkgs():
- """Update yarnPkgs"""
-
- repo = GitLabRepo()
- yarnpkgs_dir = pathlib.Path(__file__).parent
-
- # load rev from data.json
- data = _get_data_json()
- rev = data['rev']
-
- with open(yarnpkgs_dir / 'yarn.lock', 'w') as f:
- f.write(repo.get_file('yarn.lock', rev))
-
- with open(yarnpkgs_dir / 'yarnPkgs.nix', 'w') as f:
- subprocess.run(['yarn2nix'], cwd=yarnpkgs_dir, check=True, stdout=f)
-
- os.unlink(yarnpkgs_dir / 'yarn.lock')
-
-
@cli.command('update-gitaly')
def update_gitaly():
"""Update gitaly"""
@@ -203,7 +191,6 @@ def update_all(ctx, rev: str):
"""Update all gitlab components to the latest stable release"""
ctx.invoke(update_data, rev=rev)
ctx.invoke(update_rubyenv)
- ctx.invoke(update_yarnpkgs)
ctx.invoke(update_gitaly)
ctx.invoke(update_gitlab_shell)
ctx.invoke(update_gitlab_workhorse)
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
deleted file mode 100644
index 8ec9091b970d..000000000000
--- a/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ /dev/null
@@ -1,14029 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
- offline_cache = linkFarm "offline" packages;
- packages = [
- {
- name = "_babel_code_frame___code_frame_7.12.11.tgz";
- path = fetchurl {
- name = "_babel_code_frame___code_frame_7.12.11.tgz";
- url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
- sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
- };
- }
- {
- name = "_babel_code_frame___code_frame_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_code_frame___code_frame_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
- sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
- };
- }
- {
- name = "_babel_compat_data___compat_data_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_compat_data___compat_data_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz";
- sha1 = "b1085ffe72cd17bf2c0ee790fc09f9626011b2db";
- };
- }
- {
- name = "_babel_core___core_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_core___core_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz";
- sha1 = "b73a87a3a3e7d142a66248bf6ad88b9ceb093425";
- };
- }
- {
- name = "_babel_generator___generator_7.12.15.tgz";
- path = fetchurl {
- name = "_babel_generator___generator_7.12.15.tgz";
- url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz";
- sha1 = "4617b5d0b25cc572474cc1aafee1edeaf9b5368f";
- };
- }
- {
- name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz";
- sha1 = "f6d08acc6f70bbd59b436262553fb2e259a1a268";
- };
- }
- {
- name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz";
- sha1 = "0ec7d9be8174934532661f87783eb18d72290059";
- };
- }
- {
- name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.2.tgz";
- path = fetchurl {
- name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.2.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz";
- sha1 = "a17d9723b6e2c750299d2a14d4637c76936d8285";
- };
- }
- {
- name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.2.tgz";
- path = fetchurl {
- name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.2.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz";
- sha1 = "7474295770f217dbcf288bf7572eb213db46ee67";
- };
- }
- {
- name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz";
- sha1 = "1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd";
- };
- }
- {
- name = "_babel_helper_define_map___helper_define_map_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_define_map___helper_define_map_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz";
- sha1 = "5e69ee8308648470dd7900d159c044c10285221d";
- };
- }
- {
- name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz";
- sha1 = "e9d76305ee1162ca467357ae25df94f179af2b7e";
- };
- }
- {
- name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
- sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
- };
- }
- {
- name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
- sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
- };
- }
- {
- name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz";
- sha1 = "7e77c82e5dcae1ebf123174c385aaadbf787d077";
- };
- }
- {
- name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz";
- sha1 = "c5715695b4f8bab32660dbdcdc2341dec7e3df40";
- };
- }
- {
- name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz";
- sha1 = "ec67e4404f41750463e455cc3203f6a32e93fcb0";
- };
- }
- {
- name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
- sha1 = "01afb052dcad2044289b7b20beb3fa8bd0265bea";
- };
- }
- {
- name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
- sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
- };
- }
- {
- name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
- path = fetchurl {
- name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
- sha1 = "2f75a831269d4f677de49986dff59927533cf375";
- };
- }
- {
- name = "_babel_helper_regex___helper_regex_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_regex___helper_regex_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz";
- sha1 = "021cf1a7ba99822f993222a001cc3fec83255b96";
- };
- }
- {
- name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz";
- sha1 = "bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432";
- };
- }
- {
- name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
- sha1 = "00ec4fb6862546bd3d0aff9aac56074277173121";
- };
- }
- {
- name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz";
- sha1 = "8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4";
- };
- }
- {
- name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
- sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
- };
- }
- {
- name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
- path = fetchurl {
- name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
- sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
- };
- }
- {
- name = "_babel_helper_wrap_function___helper_wrap_function_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_helper_wrap_function___helper_wrap_function_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz";
- sha1 = "956d1310d6696257a7afd47e4c42dfda5dfcedc9";
- };
- }
- {
- name = "_babel_helpers___helpers_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_helpers___helpers_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz";
- sha1 = "3c75e993632e4dadc0274eae219c73eb7645ba47";
- };
- }
- {
- name = "_babel_highlight___highlight_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_highlight___highlight_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz";
- sha1 = "8ab538393e00370b26271b01fa08f7f27f2e795c";
- };
- }
- {
- name = "_babel_parser___parser_7.12.15.tgz";
- path = fetchurl {
- name = "_babel_parser___parser_7.12.15.tgz";
- url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz";
- sha1 = "2b20de7f0b4b332d9b119dd9c33409c538b8aacf";
- };
- }
- {
- name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz";
- sha1 = "6911af5ba2e615c4ff3c497fe2f47b35bf6d7e55";
- };
- }
- {
- name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz";
- sha1 = "046bc7f6550bb08d9bd1d4f060f5f5a4f1087e01";
- };
- }
- {
- name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz";
- sha1 = "e36979dc1dc3b73f6d6816fc4951da2363488ef0";
- };
- }
- {
- name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz";
- sha1 = "b1e691ee24c651b5a5e32213222b2379734aff09";
- };
- }
- {
- name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz";
- sha1 = "02dca21673842ff2fe763ac253777f235e9bbf78";
- };
- }
- {
- name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz";
- sha1 = "a9a38bc34f78bdfd981e791c27c6fdcec478c123";
- };
- }
- {
- name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz";
- sha1 = "cba44908ac9f142650b4a65b8aa06bf3478d5fb6";
- };
- }
- {
- name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz";
- sha1 = "c9f86d99305f9fa531b568ff5ab8c964b8b223d2";
- };
- }
- {
- name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz";
- sha1 = "15f5d6d22708629451a91be28f8facc55b0e818c";
- };
- }
- {
- name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz";
- sha1 = "ed85e8058ab0fe309c3f448e5e1b73ca89cdb598";
- };
- }
- {
- name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz";
- sha1 = "dc04feb25e2dd70c12b05d680190e138fa2c0c6f";
- };
- }
- {
- name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
- sha1 = "a983fb1aeb2ec3f6ed042a210f640e90e786fe0d";
- };
- }
- {
- name = "_babel_plugin_syntax_bigint___plugin_syntax_bigint_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_bigint___plugin_syntax_bigint_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz";
- sha1 = "4c9a6f669f5d0cdf1b90a1671e9a146be5300cea";
- };
- }
- {
- name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz";
- sha1 = "d5bc0645913df5b17ad7eda0fa2308330bde34c5";
- };
- }
- {
- name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
- sha1 = "62bf98b2da3cd21d626154fc96ee5b3cb68eacb3";
- };
- }
- {
- name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.10.4.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.10.4.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz";
- sha1 = "ee601348c370fa334d2207be158777496521fd51";
- };
- }
- {
- name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
- sha1 = "01ca21b668cd8218c9e640cb6dd88c5412b2c96a";
- };
- }
- {
- name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.1.tgz";
- sha1 = "fffee77b4934ce77f3b427649ecdddbec1958550";
- };
- }
- {
- name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
- sha1 = "167ed70368886081f74b5c36c65a88c03b66d1a9";
- };
- }
- {
- name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz";
- sha1 = "25761ee7410bc8cf97327ba741ee94e4a61b7d99";
- };
- }
- {
- name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
- sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871";
- };
- }
- {
- name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
- sha1 = "6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1";
- };
- }
- {
- name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
- sha1 = "4f69c2ab95167e0180cd5336613f8c5788f7d48a";
- };
- }
- {
- name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz";
- sha1 = "8b8733f8c57397b3eaa47ddba8841586dcaef362";
- };
- }
- {
- name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz";
- sha1 = "cb5ee3a36f0863c06ead0b409b4cc43a889b295b";
- };
- }
- {
- name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz";
- sha1 = "e5153eb1a3e028f79194ed8a7a4bf55f862b2062";
- };
- }
- {
- name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz";
- sha1 = "146856e756d54b20fff14b819456b3e01820b85d";
- };
- }
- {
- name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz";
- sha1 = "47092d89ca345811451cd0dc5d91605982705d5e";
- };
- }
- {
- name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz";
- sha1 = "6e11dd6c4dfae70f540480a4702477ed766d733f";
- };
- }
- {
- name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz";
- sha1 = "59aa399064429d64dce5cf76ef9b90b7245ebd07";
- };
- }
- {
- name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz";
- sha1 = "abd58e51337815ca3a22a336b85f62b998e71907";
- };
- }
- {
- name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz";
- sha1 = "920b9fec2d78bb57ebb64a644d5c2ba67cc104ee";
- };
- }
- {
- name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz";
- sha1 = "c900a793beb096bc9d4d0a9d0cde19518ffc83b9";
- };
- }
- {
- name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz";
- sha1 = "279c3116756a60dd6e6f5e488ba7957db9c59eb3";
- };
- }
- {
- name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz";
- sha1 = "ff01119784eb0ee32258e8646157ba2501fcfda5";
- };
- }
- {
- name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz";
- sha1 = "4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d";
- };
- }
- {
- name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz";
- sha1 = "5794f8da82846b22e4e6631ea1658bce708eb46a";
- };
- }
- {
- name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz";
- sha1 = "90347cba31bca6f394b3f7bd95d2bbfd9fce2f39";
- };
- }
- {
- name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz";
- sha1 = "65950e8e05797ebd2fe532b96e19fc5482a1d52a";
- };
- }
- {
- name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
- sha1 = "66667c3eeda1ebf7896d41f1f16b17105a2fbca0";
- };
- }
- {
- name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz";
- sha1 = "9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6";
- };
- }
- {
- name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz";
- sha1 = "ea080911ffc6eb21840a5197a39ede4ee67b1595";
- };
- }
- {
- name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
- sha1 = "a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c";
- };
- }
- {
- name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz";
- sha1 = "6ee41a5e648da7632e22b6fb54012e87f612f324";
- };
- }
- {
- name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz";
- sha1 = "2e3016b0adbf262983bf0d5121d676a5ed9c4fde";
- };
- }
- {
- name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz";
- sha1 = "b25938a3c5fae0354144a720b07b32766f683ddd";
- };
- }
- {
- name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz";
- sha1 = "cffc7315219230ed81dc53e4625bf86815b6050d";
- };
- }
- {
- name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz";
- sha1 = "10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490";
- };
- }
- {
- name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz";
- sha1 = "0fc1027312b4d1c3276a57890c8ae3bcc0b64a86";
- };
- }
- {
- name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz";
- sha1 = "e8b54f238a1ccbae482c4dce946180ae7b3143f3";
- };
- }
- {
- name = "_babel_plugin_transform_spread___plugin_transform_spread_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_spread___plugin_transform_spread_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz";
- sha1 = "0c6d618a0c4461a274418460a28c9ccf5239a7c8";
- };
- }
- {
- name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz";
- sha1 = "90fc89b7526228bed9842cff3588270a7a393b00";
- };
- }
- {
- name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz";
- sha1 = "914c7b7f4752c570ea00553b4284dad8070e8628";
- };
- }
- {
- name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz";
- sha1 = "60c0239b69965d166b80a84de7315c1bc7e0bb0e";
- };
- }
- {
- name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz";
- sha1 = "add0f8483dab60570d9e03cecef6c023aa8c9940";
- };
- }
- {
- name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.1.tgz";
- path = fetchurl {
- name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.1.tgz";
- url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz";
- sha1 = "6b58f2aea7b68df37ac5025d9c88752443a6b43f";
- };
- }
- {
- name = "_babel_preset_env___preset_env_7.10.2.tgz";
- path = fetchurl {
- name = "_babel_preset_env___preset_env_7.10.2.tgz";
- url = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.2.tgz";
- sha1 = "715930f2cf8573b0928005ee562bed52fb65fdfb";
- };
- }
- {
- name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
- path = fetchurl {
- name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
- sha1 = "13242b53b5ef8c883c3cf7dddd55b36ce80fbc72";
- };
- }
- {
- name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
- path = fetchurl {
- name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
- url = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz";
- sha1 = "3511797ddf9a3d6f3ce46b99cc835184817eaa4e";
- };
- }
- {
- name = "_babel_runtime___runtime_7.14.0.tgz";
- path = fetchurl {
- name = "_babel_runtime___runtime_7.14.0.tgz";
- url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz";
- sha1 = "46794bc20b612c5f75e62dd071e24dfd95f1cbe6";
- };
- }
- {
- name = "_babel_standalone___standalone_7.10.2.tgz";
- path = fetchurl {
- name = "_babel_standalone___standalone_7.10.2.tgz";
- url = "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.10.2.tgz";
- sha1 = "49dbbadcbc4b199df064d7d8b3e21c915b84abdb";
- };
- }
- {
- name = "_babel_template___template_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_template___template_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
- sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
- };
- }
- {
- name = "_babel_traverse___traverse_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_traverse___traverse_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz";
- sha1 = "689f0e4b4c08587ad26622832632735fb8c4e0c0";
- };
- }
- {
- name = "_babel_types___types_7.12.13.tgz";
- path = fetchurl {
- name = "_babel_types___types_7.12.13.tgz";
- url = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz";
- sha1 = "8be1aa8f2c876da11a9cf650c0ecf656913ad611";
- };
- }
- {
- name = "_bcoe_v8_coverage___v8_coverage_0.2.3.tgz";
- path = fetchurl {
- name = "_bcoe_v8_coverage___v8_coverage_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz";
- sha1 = "75a2e8b51cb758a7553d6804a5932d7aace75c39";
- };
- }
- {
- name = "_braintree_sanitize_url___sanitize_url_3.1.0.tgz";
- path = fetchurl {
- name = "_braintree_sanitize_url___sanitize_url_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz";
- sha1 = "8ff71d51053cd5ee4981e5a501d80a536244f7fd";
- };
- }
- {
- name = "_cnakazawa_watch___watch_1.0.4.tgz";
- path = fetchurl {
- name = "_cnakazawa_watch___watch_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz";
- sha1 = "f864ae85004d0fcab6f50be9141c4da368d1656a";
- };
- }
- {
- name = "_eslint_eslintrc___eslintrc_0.4.3.tgz";
- path = fetchurl {
- name = "_eslint_eslintrc___eslintrc_0.4.3.tgz";
- url = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz";
- sha1 = "9e42981ef035beb3dd49add17acb96e8ff6f394c";
- };
- }
- {
- name = "_gitlab_at.js___at.js_1.5.7.tgz";
- path = fetchurl {
- name = "_gitlab_at.js___at.js_1.5.7.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/at.js/-/at.js-1.5.7.tgz";
- sha1 = "1ee6f838cc4410a1d797770934df91d90df8179e";
- };
- }
- {
- name = "_gitlab_eslint_plugin___eslint_plugin_9.0.2.tgz";
- path = fetchurl {
- name = "_gitlab_eslint_plugin___eslint_plugin_9.0.2.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-9.0.2.tgz";
- sha1 = "c7e0c8744001227d88624eb533047f3d5dd8d419";
- };
- }
- {
- name = "_gitlab_favicon_overlay___favicon_overlay_2.0.0.tgz";
- path = fetchurl {
- name = "_gitlab_favicon_overlay___favicon_overlay_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/favicon-overlay/-/favicon-overlay-2.0.0.tgz";
- sha1 = "2f32d0b6a4d5b8ac44e2927083d9ab478a78c984";
- };
- }
- {
- name = "_gitlab_stylelint_config___stylelint_config_2.3.0.tgz";
- path = fetchurl {
- name = "_gitlab_stylelint_config___stylelint_config_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/stylelint-config/-/stylelint-config-2.3.0.tgz";
- sha1 = "b27e8544ff52a4c5e23ff7a104c7efff1f7078f0";
- };
- }
- {
- name = "_gitlab_svgs___svgs_1.211.0.tgz";
- path = fetchurl {
- name = "_gitlab_svgs___svgs_1.211.0.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.211.0.tgz";
- sha1 = "0351fa4cc008c4830f366aede535df0a8e63dda6";
- };
- }
- {
- name = "_gitlab_tributejs___tributejs_1.0.0.tgz";
- path = fetchurl {
- name = "_gitlab_tributejs___tributejs_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/tributejs/-/tributejs-1.0.0.tgz";
- sha1 = "672befa222aeffc83e7d799b0500a7a4418e59b8";
- };
- }
- {
- name = "_gitlab_ui___ui_32.2.1.tgz";
- path = fetchurl {
- name = "_gitlab_ui___ui_32.2.1.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-32.2.1.tgz";
- sha1 = "e019124af981e8ceffd39f30cf08d315c53d4ac8";
- };
- }
- {
- name = "_gitlab_visual_review_tools___visual_review_tools_1.6.1.tgz";
- path = fetchurl {
- name = "_gitlab_visual_review_tools___visual_review_tools_1.6.1.tgz";
- url = "https://registry.yarnpkg.com/@gitlab/visual-review-tools/-/visual-review-tools-1.6.1.tgz";
- sha1 = "0d8f3ff9f51b05f7c80b9a107727703d48997e4e";
- };
- }
- {
- name = "_humanwhocodes_config_array___config_array_0.5.0.tgz";
- path = fetchurl {
- name = "_humanwhocodes_config_array___config_array_0.5.0.tgz";
- url = "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz";
- sha1 = "1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9";
- };
- }
- {
- name = "_humanwhocodes_object_schema___object_schema_1.2.0.tgz";
- path = fetchurl {
- name = "_humanwhocodes_object_schema___object_schema_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz";
- sha1 = "87de7af9c231826fdd68ac7258f77c429e0e5fcf";
- };
- }
- {
- name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
- path = fetchurl {
- name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
- sha1 = "fd3db1d59ecf7cf121e80650bb86712f9b55eced";
- };
- }
- {
- name = "_istanbuljs_schema___schema_0.1.2.tgz";
- path = fetchurl {
- name = "_istanbuljs_schema___schema_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz";
- sha1 = "26520bf09abe4a5644cd5414e37125a8954241dd";
- };
- }
- {
- name = "_jest_console___console_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_console___console_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/console/-/console-26.5.2.tgz";
- sha1 = "94fc4865b1abed7c352b5e21e6c57be4b95604a6";
- };
- }
- {
- name = "_jest_core___core_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_core___core_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/core/-/core-26.5.2.tgz";
- sha1 = "e39f14676f4ba4632ecabfdc374071ab22131f22";
- };
- }
- {
- name = "_jest_environment___environment_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_environment___environment_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/environment/-/environment-26.5.2.tgz";
- sha1 = "eba3cfc698f6e03739628f699c28e8a07f5e65fe";
- };
- }
- {
- name = "_jest_fake_timers___fake_timers_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_fake_timers___fake_timers_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.5.2.tgz";
- sha1 = "1291ac81680ceb0dc7daa1f92c059307eea6400a";
- };
- }
- {
- name = "_jest_globals___globals_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_globals___globals_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/globals/-/globals-26.5.2.tgz";
- sha1 = "c333f82c29e19ecb609a75d1a532915a5c956c59";
- };
- }
- {
- name = "_jest_reporters___reporters_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_reporters___reporters_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.5.2.tgz";
- sha1 = "0f1c900c6af712b46853d9d486c9c0382e4050f6";
- };
- }
- {
- name = "_jest_source_map___source_map_26.5.0.tgz";
- path = fetchurl {
- name = "_jest_source_map___source_map_26.5.0.tgz";
- url = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.5.0.tgz";
- sha1 = "98792457c85bdd902365cd2847b58fff05d96367";
- };
- }
- {
- name = "_jest_test_result___test_result_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_test_result___test_result_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.5.2.tgz";
- sha1 = "cc1a44cfd4db2ecee3fb0bc4e9fe087aa54b5230";
- };
- }
- {
- name = "_jest_test_sequencer___test_sequencer_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_test_sequencer___test_sequencer_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.5.2.tgz";
- sha1 = "c4559c7e134b27b020317303ee5399bf62917a4b";
- };
- }
- {
- name = "_jest_transform___transform_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_transform___transform_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/transform/-/transform-26.5.2.tgz";
- sha1 = "6a0033a1d24316a1c75184d010d864f2c681bef5";
- };
- }
- {
- name = "_jest_types___types_26.5.2.tgz";
- path = fetchurl {
- name = "_jest_types___types_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/@jest/types/-/types-26.5.2.tgz";
- sha1 = "44c24f30c8ee6c7f492ead9ec3f3c62a5289756d";
- };
- }
- {
- name = "_miragejs_pretender_node_polyfill___pretender_node_polyfill_0.1.2.tgz";
- path = fetchurl {
- name = "_miragejs_pretender_node_polyfill___pretender_node_polyfill_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/@miragejs/pretender-node-polyfill/-/pretender-node-polyfill-0.1.2.tgz";
- sha1 = "d26b6b7483fb70cd62189d05c95d2f67153e43f2";
- };
- }
- {
- name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
- path = fetchurl {
- name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
- url = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
- sha1 = "d4b3549a5db5de2683e0c1071ab4f140904bbf69";
- };
- }
- {
- name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
- path = fetchurl {
- name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
- sha1 = "a3f2dd61bab43b8db8fa108a121cfffe4c676655";
- };
- }
- {
- name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
- path = fetchurl {
- name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
- url = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
- sha1 = "cce9396b30aa5afe9e3756608f5831adcb53d063";
- };
- }
- {
- name = "_npmcli_move_file___move_file_1.0.1.tgz";
- path = fetchurl {
- name = "_npmcli_move_file___move_file_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz";
- sha1 = "de103070dac0f48ce49cf6693c23af59c0f70464";
- };
- }
- {
- name = "_nuxt_opencollective___opencollective_0.3.2.tgz";
- path = fetchurl {
- name = "_nuxt_opencollective___opencollective_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz";
- sha1 = "83cb70cdb2bac5fad6f8c93529e7b11187d49c02";
- };
- }
- {
- name = "_polka_url___url_1.0.0_next.12.tgz";
- path = fetchurl {
- name = "_polka_url___url_1.0.0_next.12.tgz";
- url = "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz";
- sha1 = "431ec342a7195622f86688bbda82e3166ce8cb28";
- };
- }
- {
- name = "_popperjs_core___core_2.9.2.tgz";
- path = fetchurl {
- name = "_popperjs_core___core_2.9.2.tgz";
- url = "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.2.tgz";
- sha1 = "adea7b6953cbb34651766b0548468e743c6a2353";
- };
- }
- {
- name = "_rails_actioncable___actioncable_6.1.3_2.tgz";
- path = fetchurl {
- name = "_rails_actioncable___actioncable_6.1.3_2.tgz";
- url = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.3-2.tgz";
- sha1 = "de22e2d7474dcca051f7060829450412a17ecc04";
- };
- }
- {
- name = "_rails_ujs___ujs_6.1.3_2.tgz";
- path = fetchurl {
- name = "_rails_ujs___ujs_6.1.3_2.tgz";
- url = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.3-2.tgz";
- sha1 = "5d7e161e7061654e738a116a7ec8b58b51721a11";
- };
- }
- {
- name = "_sentry_browser___browser_5.26.0.tgz";
- path = fetchurl {
- name = "_sentry_browser___browser_5.26.0.tgz";
- url = "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.26.0.tgz";
- sha1 = "e90a197fb94c5f26c8e05d6a539c118f33c7d598";
- };
- }
- {
- name = "_sentry_core___core_5.26.0.tgz";
- path = fetchurl {
- name = "_sentry_core___core_5.26.0.tgz";
- url = "https://registry.yarnpkg.com/@sentry/core/-/core-5.26.0.tgz";
- sha1 = "9b5fe4de8a869d733ebcc77f5ec9c619f8717a51";
- };
- }
- {
- name = "_sentry_hub___hub_5.26.0.tgz";
- path = fetchurl {
- name = "_sentry_hub___hub_5.26.0.tgz";
- url = "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.26.0.tgz";
- sha1 = "b2bbd8128cd5915f2ee59cbc29fff30272d74ec5";
- };
- }
- {
- name = "_sentry_minimal___minimal_5.26.0.tgz";
- path = fetchurl {
- name = "_sentry_minimal___minimal_5.26.0.tgz";
- url = "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.26.0.tgz";
- sha1 = "851dea3644153ed3ac4837fa8ed5661d94e7a313";
- };
- }
- {
- name = "_sentry_types___types_5.26.0.tgz";
- path = fetchurl {
- name = "_sentry_types___types_5.26.0.tgz";
- url = "https://registry.yarnpkg.com/@sentry/types/-/types-5.26.0.tgz";
- sha1 = "b0cbacb0b24cd86620fb296b46cf7277bb004a3e";
- };
- }
- {
- name = "_sentry_utils___utils_5.26.0.tgz";
- path = fetchurl {
- name = "_sentry_utils___utils_5.26.0.tgz";
- url = "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.26.0.tgz";
- sha1 = "09a3d01d91747f38f796cafeb24f8fd86e4fa05f";
- };
- }
- {
- name = "_sindresorhus_is___is_0.14.0.tgz";
- path = fetchurl {
- name = "_sindresorhus_is___is_0.14.0.tgz";
- url = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz";
- sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea";
- };
- }
- {
- name = "_sinonjs_commons___commons_1.8.1.tgz";
- path = fetchurl {
- name = "_sinonjs_commons___commons_1.8.1.tgz";
- url = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz";
- sha1 = "e7df00f98a203324f6dc7cc606cad9d4a8ab2217";
- };
- }
- {
- name = "_sinonjs_fake_timers___fake_timers_6.0.1.tgz";
- path = fetchurl {
- name = "_sinonjs_fake_timers___fake_timers_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
- sha1 = "293674fccb3262ac782c7aadfdeca86b10c75c40";
- };
- }
- {
- name = "_sourcegraph_code_host_integration___code_host_integration_0.0.59.tgz";
- path = fetchurl {
- name = "_sourcegraph_code_host_integration___code_host_integration_0.0.59.tgz";
- url = "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.59.tgz";
- sha1 = "ac64a9f90ff48363334407d12622542d0faa7720";
- };
- }
- {
- name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
- path = fetchurl {
- name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
- url = "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz";
- sha1 = "7e5a84ad181f4234a2480803422a47b8749af3d2";
- };
- }
- {
- name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
- path = fetchurl {
- name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
- url = "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz";
- sha1 = "0a540c4692f8dcdfc13c8e352c17e7bfee2bb391";
- };
- }
- {
- name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
- path = fetchurl {
- name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
- sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
- };
- }
- {
- name = "_testing_library_dom___dom_7.24.5.tgz";
- path = fetchurl {
- name = "_testing_library_dom___dom_7.24.5.tgz";
- url = "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.5.tgz";
- sha1 = "862124eec8c37ad184716379f09742476b23815d";
- };
- }
- {
- name = "_tiptap_core___core_2.0.0_beta.86.tgz";
- path = fetchurl {
- name = "_tiptap_core___core_2.0.0_beta.86.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.86.tgz";
- sha1 = "11b575aee4ad2f30f73114c786da5cd13dde30e0";
- };
- }
- {
- name = "_tiptap_extension_blockquote___extension_blockquote_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_blockquote___extension_blockquote_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.14.tgz";
- sha1 = "f49872981aecdd21341c4d5db32ab68cba945756";
- };
- }
- {
- name = "_tiptap_extension_bold___extension_bold_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_bold___extension_bold_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.14.tgz";
- sha1 = "6bf9ea70f7e24e6d674c7780471fcb6a7a4b91f4";
- };
- }
- {
- name = "_tiptap_extension_bubble_menu___extension_bubble_menu_2.0.0_beta.24.tgz";
- path = fetchurl {
- name = "_tiptap_extension_bubble_menu___extension_bubble_menu_2.0.0_beta.24.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.24.tgz";
- sha1 = "e6db5bc0386ccdbd483e57296b22eb6dd55914ba";
- };
- }
- {
- name = "_tiptap_extension_bullet_list___extension_bullet_list_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_bullet_list___extension_bullet_list_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.14.tgz";
- sha1 = "29b9bfa2e908cdb01943242f75daf82115f5afd1";
- };
- }
- {
- name = "_tiptap_extension_code_block_lowlight___extension_code_block_lowlight_2.0.0_beta.32.tgz";
- path = fetchurl {
- name = "_tiptap_extension_code_block_lowlight___extension_code_block_lowlight_2.0.0_beta.32.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.0.0-beta.32.tgz";
- sha1 = "ef9ff6883f2d669e6be79c69f26749641462e1ea";
- };
- }
- {
- name = "_tiptap_extension_code_block___extension_code_block_2.0.0_beta.16.tgz";
- path = fetchurl {
- name = "_tiptap_extension_code_block___extension_code_block_2.0.0_beta.16.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.16.tgz";
- sha1 = "7788ee1af04eb84fe194261bb1bb835dbe7ad59e";
- };
- }
- {
- name = "_tiptap_extension_code___extension_code_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_code___extension_code_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.0.0-beta.14.tgz";
- sha1 = "679a741589d63006140605553be7c6148c000814";
- };
- }
- {
- name = "_tiptap_extension_document___extension_document_2.0.0_beta.12.tgz";
- path = fetchurl {
- name = "_tiptap_extension_document___extension_document_2.0.0_beta.12.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.12.tgz";
- sha1 = "dfbc7e686075a38662a43708903cd2047cf7f4b2";
- };
- }
- {
- name = "_tiptap_extension_dropcursor___extension_dropcursor_2.0.0_beta.17.tgz";
- path = fetchurl {
- name = "_tiptap_extension_dropcursor___extension_dropcursor_2.0.0_beta.17.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.17.tgz";
- sha1 = "3ca59c264b49a91c1a5b2ce8de3e898903d0a5bc";
- };
- }
- {
- name = "_tiptap_extension_floating_menu___extension_floating_menu_2.0.0_beta.18.tgz";
- path = fetchurl {
- name = "_tiptap_extension_floating_menu___extension_floating_menu_2.0.0_beta.18.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.18.tgz";
- sha1 = "4d9b7f58c73f6c718a74503c5ff514b06f615e27";
- };
- }
- {
- name = "_tiptap_extension_gapcursor___extension_gapcursor_2.0.0_beta.18.tgz";
- path = fetchurl {
- name = "_tiptap_extension_gapcursor___extension_gapcursor_2.0.0_beta.18.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.18.tgz";
- sha1 = "67c2266ec21c90f003e989862b709475f5427fea";
- };
- }
- {
- name = "_tiptap_extension_hard_break___extension_hard_break_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_hard_break___extension_hard_break_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.14.tgz";
- sha1 = "dce00c49dc614caac82720b930501a59b38d5584";
- };
- }
- {
- name = "_tiptap_extension_heading___extension_heading_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_heading___extension_heading_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.14.tgz";
- sha1 = "63df6d7282afd3c2db2253af2e538c3bf2800751";
- };
- }
- {
- name = "_tiptap_extension_history___extension_history_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_history___extension_history_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.0.0-beta.14.tgz";
- sha1 = "7990a592a521ca4147e733eed78fcb738ed6ba95";
- };
- }
- {
- name = "_tiptap_extension_horizontal_rule___extension_horizontal_rule_2.0.0_beta.17.tgz";
- path = fetchurl {
- name = "_tiptap_extension_horizontal_rule___extension_horizontal_rule_2.0.0_beta.17.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.17.tgz";
- sha1 = "25c15bfab5794a3f1bcf6f4df03bef56ddac80aa";
- };
- }
- {
- name = "_tiptap_extension_image___extension_image_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_image___extension_image_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.0.0-beta.14.tgz";
- sha1 = "31eae69cce3d81af81a1c0fbd253beca3c253429";
- };
- }
- {
- name = "_tiptap_extension_italic___extension_italic_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_italic___extension_italic_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.14.tgz";
- sha1 = "5b56a806ef6507dc2001eaeeeb234ee0b25d8544";
- };
- }
- {
- name = "_tiptap_extension_link___extension_link_2.0.0_beta.18.tgz";
- path = fetchurl {
- name = "_tiptap_extension_link___extension_link_2.0.0_beta.18.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.0.0-beta.18.tgz";
- sha1 = "792c671daf3db79873b8425e68da43dd19af230b";
- };
- }
- {
- name = "_tiptap_extension_list_item___extension_list_item_2.0.0_beta.13.tgz";
- path = fetchurl {
- name = "_tiptap_extension_list_item___extension_list_item_2.0.0_beta.13.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.0.0-beta.13.tgz";
- sha1 = "49f32d70a554897ffa3b37b492ebaf5953f8a975";
- };
- }
- {
- name = "_tiptap_extension_ordered_list___extension_ordered_list_2.0.0_beta.14.tgz";
- path = fetchurl {
- name = "_tiptap_extension_ordered_list___extension_ordered_list_2.0.0_beta.14.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.14.tgz";
- sha1 = "54487f8b9246226586d0190d07a449a97536436a";
- };
- }
- {
- name = "_tiptap_extension_paragraph___extension_paragraph_2.0.0_beta.15.tgz";
- path = fetchurl {
- name = "_tiptap_extension_paragraph___extension_paragraph_2.0.0_beta.15.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.0.0-beta.15.tgz";
- sha1 = "89483a2f438d8412287d441c890304985c2ac07f";
- };
- }
- {
- name = "_tiptap_extension_strike___extension_strike_2.0.0_beta.16.tgz";
- path = fetchurl {
- name = "_tiptap_extension_strike___extension_strike_2.0.0_beta.16.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.16.tgz";
- sha1 = "cccce9713824e05ebde895f84f747b8bbed45f7d";
- };
- }
- {
- name = "_tiptap_extension_subscript___extension_subscript_2.0.0_beta.4.tgz";
- path = fetchurl {
- name = "_tiptap_extension_subscript___extension_subscript_2.0.0_beta.4.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-subscript/-/extension-subscript-2.0.0-beta.4.tgz";
- sha1 = "07907df58695eb02bf6904d2c3635111003b30fd";
- };
- }
- {
- name = "_tiptap_extension_superscript___extension_superscript_2.0.0_beta.4.tgz";
- path = fetchurl {
- name = "_tiptap_extension_superscript___extension_superscript_2.0.0_beta.4.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-superscript/-/extension-superscript-2.0.0-beta.4.tgz";
- sha1 = "16906d71dd8f9892101cf792f42005f8cd404516";
- };
- }
- {
- name = "_tiptap_extension_table_cell___extension_table_cell_2.0.0_beta.13.tgz";
- path = fetchurl {
- name = "_tiptap_extension_table_cell___extension_table_cell_2.0.0_beta.13.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.0.0-beta.13.tgz";
- sha1 = "c01eada4859d5ea487d61e68cc7fab7ed2e4842a";
- };
- }
- {
- name = "_tiptap_extension_table_header___extension_table_header_2.0.0_beta.15.tgz";
- path = fetchurl {
- name = "_tiptap_extension_table_header___extension_table_header_2.0.0_beta.15.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.0.0-beta.15.tgz";
- sha1 = "884d16f104671ee672f1f629f4e4fef0b096bfbb";
- };
- }
- {
- name = "_tiptap_extension_table_row___extension_table_row_2.0.0_beta.13.tgz";
- path = fetchurl {
- name = "_tiptap_extension_table_row___extension_table_row_2.0.0_beta.13.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.0.0-beta.13.tgz";
- sha1 = "3f9a61112afcde750228f4437ae3cd7b82d02f74";
- };
- }
- {
- name = "_tiptap_extension_table___extension_table_2.0.0_beta.25.tgz";
- path = fetchurl {
- name = "_tiptap_extension_table___extension_table_2.0.0_beta.25.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.0.0-beta.25.tgz";
- sha1 = "57accf19c07e96bd0db868eb791da20bd423af36";
- };
- }
- {
- name = "_tiptap_extension_task_item___extension_task_item_2.0.0_beta.17.tgz";
- path = fetchurl {
- name = "_tiptap_extension_task_item___extension_task_item_2.0.0_beta.17.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-task-item/-/extension-task-item-2.0.0-beta.17.tgz";
- sha1 = "e4e010c321b8f9aa5f49847c48e4e3a0695a47a9";
- };
- }
- {
- name = "_tiptap_extension_task_list___extension_task_list_2.0.0_beta.17.tgz";
- path = fetchurl {
- name = "_tiptap_extension_task_list___extension_task_list_2.0.0_beta.17.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-task-list/-/extension-task-list-2.0.0-beta.17.tgz";
- sha1 = "c0f40325abf1b6a23868e72ab32f9724a8b42a7b";
- };
- }
- {
- name = "_tiptap_extension_text___extension_text_2.0.0_beta.12.tgz";
- path = fetchurl {
- name = "_tiptap_extension_text___extension_text_2.0.0_beta.12.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.12.tgz";
- sha1 = "b857f36dda5e8cedd350f9bad7115e4060f8d9c0";
- };
- }
- {
- name = "_tiptap_vue_2___vue_2_2.0.0_beta.39.tgz";
- path = fetchurl {
- name = "_tiptap_vue_2___vue_2_2.0.0_beta.39.tgz";
- url = "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.0.0-beta.39.tgz";
- sha1 = "f6d75af99b072848381f0c443b50ec09186eb43b";
- };
- }
- {
- name = "_toast_ui_editor___editor_2.5.2.tgz";
- path = fetchurl {
- name = "_toast_ui_editor___editor_2.5.2.tgz";
- url = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.2.tgz";
- sha1 = "0637e1bbdb205c1ab53b6d3722ced26399b2f0ca";
- };
- }
- {
- name = "_toast_ui_vue_editor___vue_editor_2.5.2.tgz";
- path = fetchurl {
- name = "_toast_ui_vue_editor___vue_editor_2.5.2.tgz";
- url = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.2.tgz";
- sha1 = "0b54107a196471eacb18aabb7100101606917b27";
- };
- }
- {
- name = "_types_aria_query___aria_query_4.2.0.tgz";
- path = fetchurl {
- name = "_types_aria_query___aria_query_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz";
- sha1 = "14264692a9d6e2fa4db3df5e56e94b5e25647ac0";
- };
- }
- {
- name = "_types_babel__core___babel__core_7.1.9.tgz";
- path = fetchurl {
- name = "_types_babel__core___babel__core_7.1.9.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz";
- sha1 = "77e59d438522a6fb898fa43dc3455c6e72f3963d";
- };
- }
- {
- name = "_types_babel__generator___babel__generator_7.0.2.tgz";
- path = fetchurl {
- name = "_types_babel__generator___babel__generator_7.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz";
- sha1 = "d2112a6b21fad600d7674274293c85dce0cb47fc";
- };
- }
- {
- name = "_types_babel__template___babel__template_7.0.2.tgz";
- path = fetchurl {
- name = "_types_babel__template___babel__template_7.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz";
- sha1 = "4ff63d6b52eddac1de7b975a5223ed32ecea9307";
- };
- }
- {
- name = "_types_babel__traverse___babel__traverse_7.0.15.tgz";
- path = fetchurl {
- name = "_types_babel__traverse___babel__traverse_7.0.15.tgz";
- url = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz";
- sha1 = "db9e4238931eb69ef8aab0ad6523d4d4caa39d03";
- };
- }
- {
- name = "_types_codemirror___codemirror_0.0.71.tgz";
- path = fetchurl {
- name = "_types_codemirror___codemirror_0.0.71.tgz";
- url = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.71.tgz";
- sha1 = "861f1bcb3100c0a064567c5400f2981cf4ae8ca7";
- };
- }
- {
- name = "_types_color_name___color_name_1.1.1.tgz";
- path = fetchurl {
- name = "_types_color_name___color_name_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
- sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
- };
- }
- {
- name = "_types_estree___estree_0.0.44.tgz";
- path = fetchurl {
- name = "_types_estree___estree_0.0.44.tgz";
- url = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz";
- sha1 = "980cc5a29a3ef3bea6ff1f7d021047d7ea575e21";
- };
- }
- {
- name = "_types_events___events_1.2.0.tgz";
- path = fetchurl {
- name = "_types_events___events_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz";
- sha1 = "81a6731ce4df43619e5c8c945383b3e62a89ea86";
- };
- }
- {
- name = "_types_glob___glob_7.1.1.tgz";
- path = fetchurl {
- name = "_types_glob___glob_7.1.1.tgz";
- url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz";
- sha1 = "aa59a1c6e3fbc421e07ccd31a944c30eba521575";
- };
- }
- {
- name = "_types_graceful_fs___graceful_fs_4.1.3.tgz";
- path = fetchurl {
- name = "_types_graceful_fs___graceful_fs_4.1.3.tgz";
- url = "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz";
- sha1 = "039af35fe26bec35003e8d86d2ee9c586354348f";
- };
- }
- {
- name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.2.tgz";
- path = fetchurl {
- name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz";
- sha1 = "79d7a78bad4219f4c03d6557a1c72d9ca6ba62d5";
- };
- }
- {
- name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
- path = fetchurl {
- name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz";
- sha1 = "e5471e7fa33c61358dd38426189c037a58433b8c";
- };
- }
- {
- name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
- path = fetchurl {
- name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
- sha1 = "508b13aa344fa4976234e75dddcc34925737d821";
- };
- }
- {
- name = "_types_json_schema___json_schema_7.0.7.tgz";
- path = fetchurl {
- name = "_types_json_schema___json_schema_7.0.7.tgz";
- url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
- sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
- };
- }
- {
- name = "_types_json5___json5_0.0.29.tgz";
- path = fetchurl {
- name = "_types_json5___json5_0.0.29.tgz";
- url = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
- sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
- };
- }
- {
- name = "_types_lowlight___lowlight_0.0.3.tgz";
- path = fetchurl {
- name = "_types_lowlight___lowlight_0.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/lowlight/-/lowlight-0.0.3.tgz";
- sha1 = "433b03dd63894dde17860063f4c90a688431194b";
- };
- }
- {
- name = "_types_mdast___mdast_3.0.3.tgz";
- path = fetchurl {
- name = "_types_mdast___mdast_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz";
- sha1 = "2d7d671b1cd1ea3deb306ea75036c2a0407d2deb";
- };
- }
- {
- name = "_types_minimatch___minimatch_3.0.3.tgz";
- path = fetchurl {
- name = "_types_minimatch___minimatch_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
- sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
- };
- }
- {
- name = "_types_minimist___minimist_1.2.1.tgz";
- path = fetchurl {
- name = "_types_minimist___minimist_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz";
- sha1 = "283f669ff76d7b8260df8ab7a4262cc83d988256";
- };
- }
- {
- name = "_types_node___node_10.12.9.tgz";
- path = fetchurl {
- name = "_types_node___node_10.12.9.tgz";
- url = "https://registry.yarnpkg.com/@types/node/-/node-10.12.9.tgz";
- sha1 = "a07bfa74331471e1dc22a47eb72026843f7b95c8";
- };
- }
- {
- name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
- path = fetchurl {
- name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
- url = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
- sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
- };
- }
- {
- name = "_types_orderedmap___orderedmap_1.0.0.tgz";
- path = fetchurl {
- name = "_types_orderedmap___orderedmap_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/orderedmap/-/orderedmap-1.0.0.tgz";
- sha1 = "807455a192bba52cbbb4517044bc82bdbfa8c596";
- };
- }
- {
- name = "_types_parse_json___parse_json_4.0.0.tgz";
- path = fetchurl {
- name = "_types_parse_json___parse_json_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
- sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
- };
- }
- {
- name = "_types_parse5___parse5_5.0.0.tgz";
- path = fetchurl {
- name = "_types_parse5___parse5_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.0.tgz";
- sha1 = "9ae2106efc443d7c1e26570aa8247828c9c80f11";
- };
- }
- {
- name = "_types_prettier___prettier_2.0.2.tgz";
- path = fetchurl {
- name = "_types_prettier___prettier_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.2.tgz";
- sha1 = "5bb52ee68d0f8efa9cc0099920e56be6cc4e37f3";
- };
- }
- {
- name = "_types_prosemirror_commands___prosemirror_commands_1.0.4.tgz";
- path = fetchurl {
- name = "_types_prosemirror_commands___prosemirror_commands_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.4.tgz";
- sha1 = "d08551415127d93ae62e7239d30db0b5e7208e22";
- };
- }
- {
- name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.2.tgz";
- path = fetchurl {
- name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.2.tgz";
- sha1 = "476b90a661f32d6d6a21599f53fcd71e36c65a1f";
- };
- }
- {
- name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.4.tgz";
- path = fetchurl {
- name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.4.tgz";
- sha1 = "7df7d373edb33ea8da12084bfd462cf84cd69761";
- };
- }
- {
- name = "_types_prosemirror_history___prosemirror_history_1.0.3.tgz";
- path = fetchurl {
- name = "_types_prosemirror_history___prosemirror_history_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.3.tgz";
- sha1 = "f1110efbe758129b5475e466ff077f0a8d9b964f";
- };
- }
- {
- name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.4.tgz";
- path = fetchurl {
- name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.4.tgz";
- sha1 = "4cb75054d954aa0f6f42099be05eb6c0e6958bae";
- };
- }
- {
- name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.4.tgz";
- path = fetchurl {
- name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz";
- sha1 = "f73c79810e8d0e0a20d153d84f998f02e5afbc0c";
- };
- }
- {
- name = "_types_prosemirror_model___prosemirror_model_1.13.1.tgz";
- path = fetchurl {
- name = "_types_prosemirror_model___prosemirror_model_1.13.1.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.13.1.tgz";
- sha1 = "53df04ee174a7e1dc12747005b1b4c02565adcc4";
- };
- }
- {
- name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.3.tgz";
- path = fetchurl {
- name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz";
- sha1 = "bdf1893a7915fbdc5c49b3cac9368e96213d70de";
- };
- }
- {
- name = "_types_prosemirror_state___prosemirror_state_1.2.7.tgz";
- path = fetchurl {
- name = "_types_prosemirror_state___prosemirror_state_1.2.7.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.7.tgz";
- sha1 = "cd55062e4043a31e3426f47668f1d7038b5d8dfb";
- };
- }
- {
- name = "_types_prosemirror_transform___prosemirror_transform_1.1.4.tgz";
- path = fetchurl {
- name = "_types_prosemirror_transform___prosemirror_transform_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.1.4.tgz";
- sha1 = "c3565e81b2ef3ce3254e6927d6f63eb8d7bb20d0";
- };
- }
- {
- name = "_types_prosemirror_view___prosemirror_view_1.17.2.tgz";
- path = fetchurl {
- name = "_types_prosemirror_view___prosemirror_view_1.17.2.tgz";
- url = "https://registry.yarnpkg.com/@types/prosemirror-view/-/prosemirror-view-1.17.2.tgz";
- sha1 = "3aff71a0802bdfc310404db8a37ced2db69fd74f";
- };
- }
- {
- name = "_types_stack_utils___stack_utils_2.0.0.tgz";
- path = fetchurl {
- name = "_types_stack_utils___stack_utils_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz";
- sha1 = "7036640b4e21cc2f259ae826ce843d277dad8cff";
- };
- }
- {
- name = "_types_tern___tern_0.23.3.tgz";
- path = fetchurl {
- name = "_types_tern___tern_0.23.3.tgz";
- url = "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.3.tgz";
- sha1 = "4b54538f04a88c9ff79de1f6f94f575a7f339460";
- };
- }
- {
- name = "_types_unist___unist_2.0.3.tgz";
- path = fetchurl {
- name = "_types_unist___unist_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz";
- sha1 = "9c088679876f374eb5983f150d4787aa6fb32d7e";
- };
- }
- {
- name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
- path = fetchurl {
- name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
- url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
- sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
- };
- }
- {
- name = "_types_yargs___yargs_15.0.5.tgz";
- path = fetchurl {
- name = "_types_yargs___yargs_15.0.5.tgz";
- url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
- sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
- };
- }
- {
- name = "_types_zen_observable___zen_observable_0.8.0.tgz";
- path = fetchurl {
- name = "_types_zen_observable___zen_observable_0.8.0.tgz";
- url = "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz";
- sha1 = "8b63ab7f1aa5321248aad5ac890a485656dcea4d";
- };
- }
- {
- name = "_typescript_eslint_experimental_utils___experimental_utils_2.30.0.tgz";
- path = fetchurl {
- name = "_typescript_eslint_experimental_utils___experimental_utils_2.30.0.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz";
- sha1 = "9845e868c01f3aed66472c561d4b6bac44809dd0";
- };
- }
- {
- name = "_typescript_eslint_typescript_estree___typescript_estree_2.30.0.tgz";
- path = fetchurl {
- name = "_typescript_eslint_typescript_estree___typescript_estree_2.30.0.tgz";
- url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz";
- sha1 = "1b8e848b55144270255ffbfe4c63291f8f766615";
- };
- }
- {
- name = "_vue_component_compiler_utils___component_compiler_utils_3.1.1.tgz";
- path = fetchurl {
- name = "_vue_component_compiler_utils___component_compiler_utils_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.1.tgz";
- sha1 = "d4ef8f80292674044ad6211e336a302e4d2a6575";
- };
- }
- {
- name = "_vue_test_utils___test_utils_1.2.0.tgz";
- path = fetchurl {
- name = "_vue_test_utils___test_utils_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.2.0.tgz";
- sha1 = "3bc8c17ed549157275f0aec6b95da40887f7297f";
- };
- }
- {
- name = "_webassemblyjs_ast___ast_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_ast___ast_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz";
- sha1 = "bd850604b4042459a5a41cd7d338cbed695ed964";
- };
- }
- {
- name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
- sha1 = "3c3d3b271bddfc84deb00f71344438311d52ffb4";
- };
- }
- {
- name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
- sha1 = "203f676e333b96c9da2eeab3ccef33c45928b6a2";
- };
- }
- {
- name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
- sha1 = "a1442d269c5feb23fcbc9ef759dac3547f29de00";
- };
- }
- {
- name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
- sha1 = "647f8892cd2043a82ac0c8c5e75c36f1d9159f27";
- };
- }
- {
- name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
- sha1 = "c05256b71244214671f4b08ec108ad63b70eddb8";
- };
- }
- {
- name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
- sha1 = "25d8884b76839871a08a6c6f806c3979ef712f07";
- };
- }
- {
- name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
- sha1 = "4fed8beac9b8c14f8c58b70d124d549dd1fe5790";
- };
- }
- {
- name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
- sha1 = "5a4138d5a6292ba18b04c5ae49717e4167965346";
- };
- }
- {
- name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
- sha1 = "15c7a0fbaae83fb26143bbacf6d6df1702ad39e4";
- };
- }
- {
- name = "_webassemblyjs_leb128___leb128_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_leb128___leb128_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
- sha1 = "f19ca0b76a6dc55623a09cffa769e838fa1e1c95";
- };
- }
- {
- name = "_webassemblyjs_utf8___utf8_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_utf8___utf8_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
- sha1 = "04d33b636f78e6a6813227e82402f7637b6229ab";
- };
- }
- {
- name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
- sha1 = "3fe6d79d3f0f922183aa86002c42dd256cfee9cf";
- };
- }
- {
- name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
- sha1 = "50bc70ec68ded8e2763b01a1418bf43491a7a49c";
- };
- }
- {
- name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
- sha1 = "2211181e5b31326443cc8112eb9f0b9028721a61";
- };
- }
- {
- name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
- sha1 = "9d48e44826df4a6598294aa6c87469d642fff65e";
- };
- }
- {
- name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
- sha1 = "3031115d79ac5bd261556cecc3fa90a3ef451914";
- };
- }
- {
- name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
- path = fetchurl {
- name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
- sha1 = "4935d54c85fef637b00ce9f52377451d00d47899";
- };
- }
- {
- name = "_wry_context___context_0.4.4.tgz";
- path = fetchurl {
- name = "_wry_context___context_0.4.4.tgz";
- url = "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz";
- sha1 = "e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8";
- };
- }
- {
- name = "_wry_equality___equality_0.1.9.tgz";
- path = fetchurl {
- name = "_wry_equality___equality_0.1.9.tgz";
- url = "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.9.tgz";
- sha1 = "b13e18b7a8053c6858aa6c85b54911fb31e3a909";
- };
- }
- {
- name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
- path = fetchurl {
- name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
- sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
- };
- }
- {
- name = "_xtuc_long___long_4.2.2.tgz";
- path = fetchurl {
- name = "_xtuc_long___long_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
- sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
- };
- }
- {
- name = "_yarnpkg_lockfile___lockfile_1.1.0.tgz";
- path = fetchurl {
- name = "_yarnpkg_lockfile___lockfile_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz";
- sha1 = "e77a97fbd345b76d83245edcd17d393b1b41fb31";
- };
- }
- {
- name = "abab___abab_2.0.5.tgz";
- path = fetchurl {
- name = "abab___abab_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz";
- sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a";
- };
- }
- {
- name = "abbrev___abbrev_1.1.1.tgz";
- path = fetchurl {
- name = "abbrev___abbrev_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
- sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
- };
- }
- {
- name = "accepts___accepts_1.3.7.tgz";
- path = fetchurl {
- name = "accepts___accepts_1.3.7.tgz";
- url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
- sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
- };
- }
- {
- name = "acorn_globals___acorn_globals_6.0.0.tgz";
- path = fetchurl {
- name = "acorn_globals___acorn_globals_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz";
- sha1 = "46cdd39f0f8ff08a876619b55f5ac8a6dc770b45";
- };
- }
- {
- name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
- path = fetchurl {
- name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
- url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
- sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
- };
- }
- {
- name = "acorn_walk___acorn_walk_7.2.0.tgz";
- path = fetchurl {
- name = "acorn_walk___acorn_walk_7.2.0.tgz";
- url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz";
- sha1 = "0de889a601203909b0fbe07b8938dc21d2e967bc";
- };
- }
- {
- name = "acorn_walk___acorn_walk_8.0.2.tgz";
- path = fetchurl {
- name = "acorn_walk___acorn_walk_8.0.2.tgz";
- url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz";
- sha1 = "d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3";
- };
- }
- {
- name = "acorn___acorn_6.4.2.tgz";
- path = fetchurl {
- name = "acorn___acorn_6.4.2.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
- sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
- };
- }
- {
- name = "acorn___acorn_7.4.1.tgz";
- path = fetchurl {
- name = "acorn___acorn_7.4.1.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
- sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
- };
- }
- {
- name = "acorn___acorn_8.1.0.tgz";
- path = fetchurl {
- name = "acorn___acorn_8.1.0.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz";
- sha1 = "52311fd7037ae119cbb134309e901aa46295b3fe";
- };
- }
- {
- name = "after___after_0.8.2.tgz";
- path = fetchurl {
- name = "after___after_0.8.2.tgz";
- url = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
- sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
- };
- }
- {
- name = "agent_base___agent_base_4.3.0.tgz";
- path = fetchurl {
- name = "agent_base___agent_base_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
- sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
- };
- }
- {
- name = "aggregate_error___aggregate_error_3.0.1.tgz";
- path = fetchurl {
- name = "aggregate_error___aggregate_error_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz";
- sha1 = "db2fe7246e536f40d9b5442a39e117d7dd6a24e0";
- };
- }
- {
- name = "ajv_errors___ajv_errors_1.0.0.tgz";
- path = fetchurl {
- name = "ajv_errors___ajv_errors_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz";
- sha1 = "ecf021fa108fd17dfb5e6b383f2dd233e31ffc59";
- };
- }
- {
- name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
- path = fetchurl {
- name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
- url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
- sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
- };
- }
- {
- name = "ajv___ajv_6.12.6.tgz";
- path = fetchurl {
- name = "ajv___ajv_6.12.6.tgz";
- url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
- sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
- };
- }
- {
- name = "ajv___ajv_8.5.0.tgz";
- path = fetchurl {
- name = "ajv___ajv_8.5.0.tgz";
- url = "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz";
- sha1 = "695528274bcb5afc865446aa275484049a18ae4b";
- };
- }
- {
- name = "ansi_align___ansi_align_3.0.0.tgz";
- path = fetchurl {
- name = "ansi_align___ansi_align_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
- sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
- };
- }
- {
- name = "ansi_colors___ansi_colors_3.2.4.tgz";
- path = fetchurl {
- name = "ansi_colors___ansi_colors_3.2.4.tgz";
- url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz";
- sha1 = "e3a3da4bfbae6c86a9c285625de124a234026fbf";
- };
- }
- {
- name = "ansi_colors___ansi_colors_4.1.1.tgz";
- path = fetchurl {
- name = "ansi_colors___ansi_colors_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
- sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
- };
- }
- {
- name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
- path = fetchurl {
- name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz";
- sha1 = "a4ce2b33d6b214b7950d8595c212f12ac9cc569d";
- };
- }
- {
- name = "ansi_html___ansi_html_0.0.7.tgz";
- path = fetchurl {
- name = "ansi_html___ansi_html_0.0.7.tgz";
- url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
- sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
- };
- }
- {
- name = "ansi_regex___ansi_regex_2.1.1.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
- sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
- };
- }
- {
- name = "ansi_regex___ansi_regex_3.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
- sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
- };
- }
- {
- name = "ansi_regex___ansi_regex_4.1.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
- sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
- };
- }
- {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- path = fetchurl {
- name = "ansi_regex___ansi_regex_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
- sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
- };
- }
- {
- name = "ansi_styles___ansi_styles_3.2.1.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_3.2.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
- sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
- };
- }
- {
- name = "ansi_styles___ansi_styles_4.2.1.tgz";
- path = fetchurl {
- name = "ansi_styles___ansi_styles_4.2.1.tgz";
- url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
- sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
- };
- }
- {
- name = "anymatch___anymatch_2.0.0.tgz";
- path = fetchurl {
- name = "anymatch___anymatch_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
- sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
- };
- }
- {
- name = "anymatch___anymatch_3.1.1.tgz";
- path = fetchurl {
- name = "anymatch___anymatch_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
- sha1 = "c55ecf02185e2469259399310c173ce31233b142";
- };
- }
- {
- name = "apollo_cache_inmemory___apollo_cache_inmemory_1.6.6.tgz";
- path = fetchurl {
- name = "apollo_cache_inmemory___apollo_cache_inmemory_1.6.6.tgz";
- url = "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz";
- sha1 = "56d1f2a463a6b9db32e9fa990af16d2a008206fd";
- };
- }
- {
- name = "apollo_cache___apollo_cache_1.3.5.tgz";
- path = fetchurl {
- name = "apollo_cache___apollo_cache_1.3.5.tgz";
- url = "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz";
- sha1 = "9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461";
- };
- }
- {
- name = "apollo_client___apollo_client_2.6.10.tgz";
- path = fetchurl {
- name = "apollo_client___apollo_client_2.6.10.tgz";
- url = "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz";
- sha1 = "86637047b51d940c8eaa771a4ce1b02df16bea6a";
- };
- }
- {
- name = "apollo_link_batch_http___apollo_link_batch_http_1.2.14.tgz";
- path = fetchurl {
- name = "apollo_link_batch_http___apollo_link_batch_http_1.2.14.tgz";
- url = "https://registry.yarnpkg.com/apollo-link-batch-http/-/apollo-link-batch-http-1.2.14.tgz";
- sha1 = "4502109d3f32a94d88eabd3a89274ae3a6e2f56f";
- };
- }
- {
- name = "apollo_link_batch___apollo_link_batch_1.1.15.tgz";
- path = fetchurl {
- name = "apollo_link_batch___apollo_link_batch_1.1.15.tgz";
- url = "https://registry.yarnpkg.com/apollo-link-batch/-/apollo-link-batch-1.1.15.tgz";
- sha1 = "3a5b8c7d9cf1b7840ce630238249b95070e75e54";
- };
- }
- {
- name = "apollo_link_http_common___apollo_link_http_common_0.2.16.tgz";
- path = fetchurl {
- name = "apollo_link_http_common___apollo_link_http_common_0.2.16.tgz";
- url = "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz";
- sha1 = "756749dafc732792c8ca0923f9a40564b7c59ecc";
- };
- }
- {
- name = "apollo_link_http___apollo_link_http_1.5.17.tgz";
- path = fetchurl {
- name = "apollo_link_http___apollo_link_http_1.5.17.tgz";
- url = "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz";
- sha1 = "499e9f1711bf694497f02c51af12d82de5d8d8ba";
- };
- }
- {
- name = "apollo_link___apollo_link_1.2.14.tgz";
- path = fetchurl {
- name = "apollo_link___apollo_link_1.2.14.tgz";
- url = "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz";
- sha1 = "3feda4b47f9ebba7f4160bef8b977ba725b684d9";
- };
- }
- {
- name = "apollo_upload_client___apollo_upload_client_13.0.0.tgz";
- path = fetchurl {
- name = "apollo_upload_client___apollo_upload_client_13.0.0.tgz";
- url = "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-13.0.0.tgz";
- sha1 = "146d1ddd85d711fcac8ca97a72d3ca6787f2b71b";
- };
- }
- {
- name = "apollo_utilities___apollo_utilities_1.3.4.tgz";
- path = fetchurl {
- name = "apollo_utilities___apollo_utilities_1.3.4.tgz";
- url = "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz";
- sha1 = "6129e438e8be201b6c55b0f13ce49d2c7175c9cf";
- };
- }
- {
- name = "append_transform___append_transform_1.0.0.tgz";
- path = fetchurl {
- name = "append_transform___append_transform_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz";
- sha1 = "046a52ae582a228bd72f58acfbe2967c678759ab";
- };
- }
- {
- name = "aproba___aproba_1.2.0.tgz";
- path = fetchurl {
- name = "aproba___aproba_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
- sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
- };
- }
- {
- name = "argparse___argparse_1.0.10.tgz";
- path = fetchurl {
- name = "argparse___argparse_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
- sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
- };
- }
- {
- name = "argparse___argparse_2.0.1.tgz";
- path = fetchurl {
- name = "argparse___argparse_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
- sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
- };
- }
- {
- name = "aria_query___aria_query_4.2.2.tgz";
- path = fetchurl {
- name = "aria_query___aria_query_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz";
- sha1 = "0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b";
- };
- }
- {
- name = "arr_diff___arr_diff_4.0.0.tgz";
- path = fetchurl {
- name = "arr_diff___arr_diff_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
- sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
- };
- }
- {
- name = "arr_flatten___arr_flatten_1.1.0.tgz";
- path = fetchurl {
- name = "arr_flatten___arr_flatten_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
- sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
- };
- }
- {
- name = "arr_union___arr_union_3.1.0.tgz";
- path = fetchurl {
- name = "arr_union___arr_union_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
- sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
- };
- }
- {
- name = "array_find___array_find_1.0.0.tgz";
- path = fetchurl {
- name = "array_find___array_find_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz";
- sha1 = "6c8e286d11ed768327f8e62ecee87353ca3e78b8";
- };
- }
- {
- name = "array_flatten___array_flatten_1.1.1.tgz";
- path = fetchurl {
- name = "array_flatten___array_flatten_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
- sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
- };
- }
- {
- name = "array_flatten___array_flatten_2.1.1.tgz";
- path = fetchurl {
- name = "array_flatten___array_flatten_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz";
- sha1 = "426bb9da84090c1838d812c8150af20a8331e296";
- };
- }
- {
- name = "array_includes___array_includes_3.1.2.tgz";
- path = fetchurl {
- name = "array_includes___array_includes_3.1.2.tgz";
- url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz";
- sha1 = "a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8";
- };
- }
- {
- name = "array_union___array_union_1.0.2.tgz";
- path = fetchurl {
- name = "array_union___array_union_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
- sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
- };
- }
- {
- name = "array_union___array_union_2.1.0.tgz";
- path = fetchurl {
- name = "array_union___array_union_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
- sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
- };
- }
- {
- name = "array_uniq___array_uniq_1.0.3.tgz";
- path = fetchurl {
- name = "array_uniq___array_uniq_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
- sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
- };
- }
- {
- name = "array_unique___array_unique_0.3.2.tgz";
- path = fetchurl {
- name = "array_unique___array_unique_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
- sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
- };
- }
- {
- name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
- path = fetchurl {
- name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
- sha1 = "6ef638b43312bd401b4c6199fdec7e2dc9e9a123";
- };
- }
- {
- name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
- path = fetchurl {
- name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
- url = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz";
- sha1 = "3bbc4275dd584cc1b10809b89d4e8b63a69e7675";
- };
- }
- {
- name = "arrify___arrify_1.0.1.tgz";
- path = fetchurl {
- name = "arrify___arrify_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
- sha1 = "898508da2226f380df904728456849c1501a4b0d";
- };
- }
- {
- name = "asn1.js___asn1.js_4.10.1.tgz";
- path = fetchurl {
- name = "asn1.js___asn1.js_4.10.1.tgz";
- url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
- sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
- };
- }
- {
- name = "asn1___asn1_0.2.4.tgz";
- path = fetchurl {
- name = "asn1___asn1_0.2.4.tgz";
- url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
- sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
- };
- }
- {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- path = fetchurl {
- name = "assert_plus___assert_plus_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
- sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
- };
- }
- {
- name = "assert___assert_1.4.1.tgz";
- path = fetchurl {
- name = "assert___assert_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
- sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
- };
- }
- {
- name = "assign_symbols___assign_symbols_1.0.0.tgz";
- path = fetchurl {
- name = "assign_symbols___assign_symbols_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
- sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
- };
- }
- {
- name = "astral_regex___astral_regex_2.0.0.tgz";
- path = fetchurl {
- name = "astral_regex___astral_regex_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
- sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
- };
- }
- {
- name = "async_limiter___async_limiter_1.0.0.tgz";
- path = fetchurl {
- name = "async_limiter___async_limiter_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
- sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
- };
- }
- {
- name = "async___async_2.6.3.tgz";
- path = fetchurl {
- name = "async___async_2.6.3.tgz";
- url = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
- sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
- };
- }
- {
- name = "asynckit___asynckit_0.4.0.tgz";
- path = fetchurl {
- name = "asynckit___asynckit_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
- sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
- };
- }
- {
- name = "atob___atob_2.1.2.tgz";
- path = fetchurl {
- name = "atob___atob_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
- sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
- };
- }
- {
- name = "autoprefixer___autoprefixer_9.8.6.tgz";
- path = fetchurl {
- name = "autoprefixer___autoprefixer_9.8.6.tgz";
- url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz";
- sha1 = "3b73594ca1bf9266320c5acf1588d74dea74210f";
- };
- }
- {
- name = "autosize___autosize_4.0.2.tgz";
- path = fetchurl {
- name = "autosize___autosize_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz";
- sha1 = "073cfd07c8bf45da4b9fd153437f5bafbba1e4c9";
- };
- }
- {
- name = "aws_sdk___aws_sdk_2.637.0.tgz";
- path = fetchurl {
- name = "aws_sdk___aws_sdk_2.637.0.tgz";
- url = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.637.0.tgz";
- sha1 = "810e25e53acf2250d35fc74498f9d4492e154217";
- };
- }
- {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- path = fetchurl {
- name = "aws_sign2___aws_sign2_0.7.0.tgz";
- url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
- sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
- };
- }
- {
- name = "aws4___aws4_1.10.1.tgz";
- path = fetchurl {
- name = "aws4___aws4_1.10.1.tgz";
- url = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
- sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
- };
- }
- {
- name = "axios_mock_adapter___axios_mock_adapter_1.15.0.tgz";
- path = fetchurl {
- name = "axios_mock_adapter___axios_mock_adapter_1.15.0.tgz";
- url = "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.15.0.tgz";
- sha1 = "fbc06825d8302c95c3334d21023bba996255d45d";
- };
- }
- {
- name = "axios___axios_0.20.0.tgz";
- path = fetchurl {
- name = "axios___axios_0.20.0.tgz";
- url = "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz";
- sha1 = "057ba30f04884694993a8cd07fa394cff11c50bd";
- };
- }
- {
- name = "babel_eslint___babel_eslint_10.0.3.tgz";
- path = fetchurl {
- name = "babel_eslint___babel_eslint_10.0.3.tgz";
- url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz";
- sha1 = "81a2c669be0f205e19462fed2482d33e4687a88a";
- };
- }
- {
- name = "babel_jest___babel_jest_26.5.2.tgz";
- path = fetchurl {
- name = "babel_jest___babel_jest_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.5.2.tgz";
- sha1 = "164f367a35946c6cf54eaccde8762dec50422250";
- };
- }
- {
- name = "babel_loader___babel_loader_8.2.2.tgz";
- path = fetchurl {
- name = "babel_loader___babel_loader_8.2.2.tgz";
- url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz";
- sha1 = "9363ce84c10c9a40e6c753748e1441b60c8a0b81";
- };
- }
- {
- name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
- path = fetchurl {
- name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
- sha1 = "84fda19c976ec5c6defef57f9427b3def66e17a3";
- };
- }
- {
- name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz";
- path = fetchurl {
- name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz";
- sha1 = "e159ccdc9af95e0b570c75b4573b7c34d671d765";
- };
- }
- {
- name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_26.5.0.tgz";
- path = fetchurl {
- name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_26.5.0.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.5.0.tgz";
- sha1 = "3916b3a28129c29528de91e5784a44680db46385";
- };
- }
- {
- name = "babel_plugin_lodash___babel_plugin_lodash_3.3.4.tgz";
- path = fetchurl {
- name = "babel_plugin_lodash___babel_plugin_lodash_3.3.4.tgz";
- url = "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz";
- sha1 = "4f6844358a1340baed182adbeffa8df9967bc196";
- };
- }
- {
- name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_0.1.4.tgz";
- path = fetchurl {
- name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz";
- sha1 = "826f1f8e7245ad534714ba001f84f7e906c3b615";
- };
- }
- {
- name = "babel_preset_jest___babel_preset_jest_26.5.0.tgz";
- path = fetchurl {
- name = "babel_preset_jest___babel_preset_jest_26.5.0.tgz";
- url = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.5.0.tgz";
- sha1 = "f1b166045cd21437d1188d29f7fba470d5bdb0e7";
- };
- }
- {
- name = "babylon___babylon_7.0.0_beta.19.tgz";
- path = fetchurl {
- name = "babylon___babylon_7.0.0_beta.19.tgz";
- url = "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz";
- sha1 = "e928c7e807e970e0536b078ab3e0c48f9e052503";
- };
- }
- {
- name = "backo2___backo2_1.0.2.tgz";
- path = fetchurl {
- name = "backo2___backo2_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz";
- sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
- };
- }
- {
- name = "bail___bail_1.0.5.tgz";
- path = fetchurl {
- name = "bail___bail_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz";
- sha1 = "b6fa133404a392cbc1f8c4bf63f5953351e7a776";
- };
- }
- {
- name = "balanced_match___balanced_match_1.0.0.tgz";
- path = fetchurl {
- name = "balanced_match___balanced_match_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
- sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
- };
- }
- {
- name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
- path = fetchurl {
- name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
- url = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
- sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
- };
- }
- {
- name = "base64_js___base64_js_1.2.3.tgz";
- path = fetchurl {
- name = "base64_js___base64_js_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz";
- sha1 = "fb13668233d9614cf5fb4bce95a9ba4096cdf801";
- };
- }
- {
- name = "base64id___base64id_1.0.0.tgz";
- path = fetchurl {
- name = "base64id___base64id_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
- sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
- };
- }
- {
- name = "base___base_0.11.2.tgz";
- path = fetchurl {
- name = "base___base_0.11.2.tgz";
- url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
- sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
- };
- }
- {
- name = "batch___batch_0.6.1.tgz";
- path = fetchurl {
- name = "batch___batch_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
- sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
- };
- }
- {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- path = fetchurl {
- name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
- sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
- };
- }
- {
- name = "better_assert___better_assert_1.0.2.tgz";
- path = fetchurl {
- name = "better_assert___better_assert_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz";
- sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
- };
- }
- {
- name = "big.js___big.js_5.2.2.tgz";
- path = fetchurl {
- name = "big.js___big.js_5.2.2.tgz";
- url = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
- sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
- };
- }
- {
- name = "binary_extensions___binary_extensions_2.0.0.tgz";
- path = fetchurl {
- name = "binary_extensions___binary_extensions_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz";
- sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c";
- };
- }
- {
- name = "binaryextensions___binaryextensions_2.1.1.tgz";
- path = fetchurl {
- name = "binaryextensions___binaryextensions_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz";
- sha1 = "3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935";
- };
- }
- {
- name = "blob___blob_0.0.4.tgz";
- path = fetchurl {
- name = "blob___blob_0.0.4.tgz";
- url = "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz";
- sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
- };
- }
- {
- name = "bluebird___bluebird_3.5.5.tgz";
- path = fetchurl {
- name = "bluebird___bluebird_3.5.5.tgz";
- url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz";
- sha1 = "a8d0afd73251effbbd5fe384a77d73003c17a71f";
- };
- }
- {
- name = "bn.js___bn.js_4.11.9.tgz";
- path = fetchurl {
- name = "bn.js___bn.js_4.11.9.tgz";
- url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
- sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
- };
- }
- {
- name = "body_parser___body_parser_1.19.0.tgz";
- path = fetchurl {
- name = "body_parser___body_parser_1.19.0.tgz";
- url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
- sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
- };
- }
- {
- name = "bonjour___bonjour_3.5.0.tgz";
- path = fetchurl {
- name = "bonjour___bonjour_3.5.0.tgz";
- url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
- sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
- };
- }
- {
- name = "boolbase___boolbase_1.0.0.tgz";
- path = fetchurl {
- name = "boolbase___boolbase_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz";
- sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
- };
- }
- {
- name = "bootstrap_vue___bootstrap_vue_2.18.1.tgz";
- path = fetchurl {
- name = "bootstrap_vue___bootstrap_vue_2.18.1.tgz";
- url = "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.18.1.tgz";
- sha1 = "4378d26b713d4255b45b42b3f852f6fa0a11d400";
- };
- }
- {
- name = "bootstrap___bootstrap_4.5.3.tgz";
- path = fetchurl {
- name = "bootstrap___bootstrap_4.5.3.tgz";
- url = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz";
- sha1 = "c6a72b355aaf323920be800246a6e4ef30997fe6";
- };
- }
- {
- name = "boxen___boxen_4.2.0.tgz";
- path = fetchurl {
- name = "boxen___boxen_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz";
- sha1 = "e411b62357d6d6d36587c8ac3d5d974daa070e64";
- };
- }
- {
- name = "brace_expansion___brace_expansion_1.1.11.tgz";
- path = fetchurl {
- name = "brace_expansion___brace_expansion_1.1.11.tgz";
- url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
- sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
- };
- }
- {
- name = "braces___braces_2.3.2.tgz";
- path = fetchurl {
- name = "braces___braces_2.3.2.tgz";
- url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
- sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
- };
- }
- {
- name = "braces___braces_3.0.2.tgz";
- path = fetchurl {
- name = "braces___braces_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
- sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
- };
- }
- {
- name = "brorand___brorand_1.1.0.tgz";
- path = fetchurl {
- name = "brorand___brorand_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
- sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
- };
- }
- {
- name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
- path = fetchurl {
- name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
- sha1 = "3c9b4b7d782c8121e56f10106d84c0d0ffc94626";
- };
- }
- {
- name = "browserify_aes___browserify_aes_1.1.1.tgz";
- path = fetchurl {
- name = "browserify_aes___browserify_aes_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz";
- sha1 = "38b7ab55edb806ff2dcda1a7f1620773a477c49f";
- };
- }
- {
- name = "browserify_cipher___browserify_cipher_1.0.0.tgz";
- path = fetchurl {
- name = "browserify_cipher___browserify_cipher_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz";
- sha1 = "9988244874bf5ed4e28da95666dcd66ac8fc363a";
- };
- }
- {
- name = "browserify_des___browserify_des_1.0.0.tgz";
- path = fetchurl {
- name = "browserify_des___browserify_des_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz";
- sha1 = "daa277717470922ed2fe18594118a175439721dd";
- };
- }
- {
- name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
- path = fetchurl {
- name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
- sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
- };
- }
- {
- name = "browserify_sign___browserify_sign_4.0.4.tgz";
- path = fetchurl {
- name = "browserify_sign___browserify_sign_4.0.4.tgz";
- url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
- sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
- };
- }
- {
- name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
- path = fetchurl {
- name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
- sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
- };
- }
- {
- name = "browserslist___browserslist_4.16.6.tgz";
- path = fetchurl {
- name = "browserslist___browserslist_4.16.6.tgz";
- url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
- sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
- };
- }
- {
- name = "bser___bser_2.1.1.tgz";
- path = fetchurl {
- name = "bser___bser_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz";
- sha1 = "e6787da20ece9d07998533cfd9de6f5c38f4bc05";
- };
- }
- {
- name = "buffer_from___buffer_from_1.1.1.tgz";
- path = fetchurl {
- name = "buffer_from___buffer_from_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
- sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
- };
- }
- {
- name = "buffer_indexof___buffer_indexof_1.1.0.tgz";
- path = fetchurl {
- name = "buffer_indexof___buffer_indexof_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz";
- sha1 = "f54f647c4f4e25228baa656a2e57e43d5f270982";
- };
- }
- {
- name = "buffer_json___buffer_json_2.0.0.tgz";
- path = fetchurl {
- name = "buffer_json___buffer_json_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz";
- sha1 = "f73e13b1e42f196fe2fd67d001c7d7107edd7c23";
- };
- }
- {
- name = "buffer_xor___buffer_xor_1.0.3.tgz";
- path = fetchurl {
- name = "buffer_xor___buffer_xor_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
- sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
- };
- }
- {
- name = "buffer___buffer_4.9.1.tgz";
- path = fetchurl {
- name = "buffer___buffer_4.9.1.tgz";
- url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz";
- sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
- };
- }
- {
- name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
- path = fetchurl {
- name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
- sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
- };
- }
- {
- name = "bytes___bytes_3.0.0.tgz";
- path = fetchurl {
- name = "bytes___bytes_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
- sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
- };
- }
- {
- name = "bytes___bytes_3.1.0.tgz";
- path = fetchurl {
- name = "bytes___bytes_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
- sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
- };
- }
- {
- name = "cacache___cacache_12.0.3.tgz";
- path = fetchurl {
- name = "cacache___cacache_12.0.3.tgz";
- url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
- sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
- };
- }
- {
- name = "cacache___cacache_15.0.5.tgz";
- path = fetchurl {
- name = "cacache___cacache_15.0.5.tgz";
- url = "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz";
- sha1 = "69162833da29170d6732334643c60e005f5f17d0";
- };
- }
- {
- name = "cache_base___cache_base_1.0.1.tgz";
- path = fetchurl {
- name = "cache_base___cache_base_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
- sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
- };
- }
- {
- name = "cache_loader___cache_loader_4.1.0.tgz";
- path = fetchurl {
- name = "cache_loader___cache_loader_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz";
- sha1 = "9948cae353aec0a1fcb1eafda2300816ec85387e";
- };
- }
- {
- name = "cacheable_request___cacheable_request_6.1.0.tgz";
- path = fetchurl {
- name = "cacheable_request___cacheable_request_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz";
- sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912";
- };
- }
- {
- name = "call_bind___call_bind_1.0.2.tgz";
- path = fetchurl {
- name = "call_bind___call_bind_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
- sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
- };
- }
- {
- name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
- path = fetchurl {
- name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
- sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
- };
- }
- {
- name = "callsite___callsite_1.0.0.tgz";
- path = fetchurl {
- name = "callsite___callsite_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz";
- sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
- };
- }
- {
- name = "callsites___callsites_3.0.0.tgz";
- path = fetchurl {
- name = "callsites___callsites_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz";
- sha1 = "fb7eb569b72ad7a45812f93fd9430a3e410b3dd3";
- };
- }
- {
- name = "camel_case___camel_case_3.0.0.tgz";
- path = fetchurl {
- name = "camel_case___camel_case_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz";
- sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
- };
- }
- {
- name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
- path = fetchurl {
- name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
- url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
- sha1 = "5e755d6ba51aa223ec7d3d52f25778210f9dc3c0";
- };
- }
- {
- name = "camelcase___camelcase_5.3.1.tgz";
- path = fetchurl {
- name = "camelcase___camelcase_5.3.1.tgz";
- url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
- sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
- };
- }
- {
- name = "camelcase___camelcase_6.0.0.tgz";
- path = fetchurl {
- name = "camelcase___camelcase_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz";
- sha1 = "5259f7c30e35e278f1bdc2a4d91230b37cad981e";
- };
- }
- {
- name = "caniuse_lite___caniuse_lite_1.0.30001241.tgz";
- path = fetchurl {
- name = "caniuse_lite___caniuse_lite_1.0.30001241.tgz";
- url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz";
- sha1 = "cd3fae47eb3d7691692b406568d7a3e5b23c7598";
- };
- }
- {
- name = "capture_exit___capture_exit_2.0.0.tgz";
- path = fetchurl {
- name = "capture_exit___capture_exit_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
- sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
- };
- }
- {
- name = "caseless___caseless_0.12.0.tgz";
- path = fetchurl {
- name = "caseless___caseless_0.12.0.tgz";
- url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
- sha1 = "1b681c21ff84033c826543090689420d187151dc";
- };
- }
- {
- name = "catharsis___catharsis_0.8.9.tgz";
- path = fetchurl {
- name = "catharsis___catharsis_0.8.9.tgz";
- url = "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz";
- sha1 = "98cc890ca652dd2ef0e70b37925310ff9e90fc8b";
- };
- }
- {
- name = "chalk___chalk_2.4.2.tgz";
- path = fetchurl {
- name = "chalk___chalk_2.4.2.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
- sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
- };
- }
- {
- name = "chalk___chalk_3.0.0.tgz";
- path = fetchurl {
- name = "chalk___chalk_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
- sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
- };
- }
- {
- name = "chalk___chalk_4.1.0.tgz";
- path = fetchurl {
- name = "chalk___chalk_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
- sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
- };
- }
- {
- name = "char_regex___char_regex_1.0.2.tgz";
- path = fetchurl {
- name = "char_regex___char_regex_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz";
- sha1 = "d744358226217f981ed58f479b1d6bcc29545dcf";
- };
- }
- {
- name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
- path = fetchurl {
- name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz";
- sha1 = "94bc1845dce70a5bb9d2ecc748725661293d8fc1";
- };
- }
- {
- name = "character_entities___character_entities_1.2.4.tgz";
- path = fetchurl {
- name = "character_entities___character_entities_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz";
- sha1 = "e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b";
- };
- }
- {
- name = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
- path = fetchurl {
- name = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz";
- sha1 = "083329cda0eae272ab3dbbf37e9a382c13af1560";
- };
- }
- {
- name = "charenc___charenc_0.0.2.tgz";
- path = fetchurl {
- name = "charenc___charenc_0.0.2.tgz";
- url = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
- sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
- };
- }
- {
- name = "cheerio_select___cheerio_select_1.4.0.tgz";
- path = fetchurl {
- name = "cheerio_select___cheerio_select_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.4.0.tgz";
- sha1 = "3a16f21e37a2ef0f211d6d1aa4eff054bb22cdc9";
- };
- }
- {
- name = "cheerio___cheerio_1.0.0_rc.9.tgz";
- path = fetchurl {
- name = "cheerio___cheerio_1.0.0_rc.9.tgz";
- url = "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.9.tgz";
- sha1 = "a3ae6b7ce7af80675302ff836f628e7cb786a67f";
- };
- }
- {
- name = "chokidar___chokidar_3.4.0.tgz";
- path = fetchurl {
- name = "chokidar___chokidar_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz";
- sha1 = "b30611423ce376357c765b9b8f904b9fba3c0be8";
- };
- }
- {
- name = "chownr___chownr_1.1.3.tgz";
- path = fetchurl {
- name = "chownr___chownr_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz";
- sha1 = "42d837d5239688d55f303003a508230fa6727142";
- };
- }
- {
- name = "chownr___chownr_2.0.0.tgz";
- path = fetchurl {
- name = "chownr___chownr_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
- sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece";
- };
- }
- {
- name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
- path = fetchurl {
- name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
- sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
- };
- }
- {
- name = "ci_info___ci_info_2.0.0.tgz";
- path = fetchurl {
- name = "ci_info___ci_info_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
- sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
- };
- }
- {
- name = "cipher_base___cipher_base_1.0.4.tgz";
- path = fetchurl {
- name = "cipher_base___cipher_base_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
- sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
- };
- }
- {
- name = "class_utils___class_utils_0.3.6.tgz";
- path = fetchurl {
- name = "class_utils___class_utils_0.3.6.tgz";
- url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
- sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
- };
- }
- {
- name = "clean_css___clean_css_4.2.1.tgz";
- path = fetchurl {
- name = "clean_css___clean_css_4.2.1.tgz";
- url = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz";
- sha1 = "2d411ef76b8569b6d0c84068dabe85b0aa5e5c17";
- };
- }
- {
- name = "clean_stack___clean_stack_2.2.0.tgz";
- path = fetchurl {
- name = "clean_stack___clean_stack_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz";
- sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b";
- };
- }
- {
- name = "cli_boxes___cli_boxes_2.2.0.tgz";
- path = fetchurl {
- name = "cli_boxes___cli_boxes_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz";
- sha1 = "538ecae8f9c6ca508e3c3c95b453fe93cb4c168d";
- };
- }
- {
- name = "clipboard___clipboard_1.7.1.tgz";
- path = fetchurl {
- name = "clipboard___clipboard_1.7.1.tgz";
- url = "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz";
- sha1 = "360d6d6946e99a7a1fef395e42ba92b5e9b5a16b";
- };
- }
- {
- name = "clipboard___clipboard_2.0.6.tgz";
- path = fetchurl {
- name = "clipboard___clipboard_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz";
- sha1 = "52921296eec0fdf77ead1749421b21c968647376";
- };
- }
- {
- name = "cliui___cliui_5.0.0.tgz";
- path = fetchurl {
- name = "cliui___cliui_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
- sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
- };
- }
- {
- name = "cliui___cliui_6.0.0.tgz";
- path = fetchurl {
- name = "cliui___cliui_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz";
- sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1";
- };
- }
- {
- name = "clone_deep___clone_deep_4.0.1.tgz";
- path = fetchurl {
- name = "clone_deep___clone_deep_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz";
- sha1 = "c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387";
- };
- }
- {
- name = "clone_regexp___clone_regexp_2.2.0.tgz";
- path = fetchurl {
- name = "clone_regexp___clone_regexp_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz";
- sha1 = "7d65e00885cd8796405c35a737e7a86b7429e36f";
- };
- }
- {
- name = "clone_response___clone_response_1.0.2.tgz";
- path = fetchurl {
- name = "clone_response___clone_response_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
- sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
- };
- }
- {
- name = "co___co_4.6.0.tgz";
- path = fetchurl {
- name = "co___co_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
- sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
- };
- }
- {
- name = "codemirror___codemirror_5.53.2.tgz";
- path = fetchurl {
- name = "codemirror___codemirror_5.53.2.tgz";
- url = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.53.2.tgz";
- sha1 = "9799121cf8c50809cca487304e9de3a74d33f428";
- };
- }
- {
- name = "codesandbox_api___codesandbox_api_0.0.23.tgz";
- path = fetchurl {
- name = "codesandbox_api___codesandbox_api_0.0.23.tgz";
- url = "https://registry.yarnpkg.com/codesandbox-api/-/codesandbox-api-0.0.23.tgz";
- sha1 = "bf650a21b5f3c2369e03f0c19d10b4e2ba255b4f";
- };
- }
- {
- name = "codesandbox_import_util_types___codesandbox_import_util_types_1.2.11.tgz";
- path = fetchurl {
- name = "codesandbox_import_util_types___codesandbox_import_util_types_1.2.11.tgz";
- url = "https://registry.yarnpkg.com/codesandbox-import-util-types/-/codesandbox-import-util-types-1.2.11.tgz";
- sha1 = "68e812f21d6b309e9a52eec5cf027c3e63b4c703";
- };
- }
- {
- name = "codesandbox_import_utils___codesandbox_import_utils_1.2.11.tgz";
- path = fetchurl {
- name = "codesandbox_import_utils___codesandbox_import_utils_1.2.11.tgz";
- url = "https://registry.yarnpkg.com/codesandbox-import-utils/-/codesandbox-import-utils-1.2.11.tgz";
- sha1 = "b88423a4a7c785175c784c84e87f5950820280e1";
- };
- }
- {
- name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
- path = fetchurl {
- name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz";
- sha1 = "cc2c8e94fc18bbdffe64d6534570c8a673b27f59";
- };
- }
- {
- name = "collection_visit___collection_visit_1.0.0.tgz";
- path = fetchurl {
- name = "collection_visit___collection_visit_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
- sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
- };
- }
- {
- name = "color_convert___color_convert_1.9.3.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_1.9.3.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
- sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
- };
- }
- {
- name = "color_convert___color_convert_2.0.1.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
- sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
- };
- }
- {
- name = "color_convert___color_convert_0.5.3.tgz";
- path = fetchurl {
- name = "color_convert___color_convert_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz";
- sha1 = "bdb6c69ce660fadffe0b0007cc447e1b9f7282bd";
- };
- }
- {
- name = "color_name___color_name_1.1.3.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
- sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
- };
- }
- {
- name = "color_name___color_name_1.1.4.tgz";
- path = fetchurl {
- name = "color_name___color_name_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
- sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
- };
- }
- {
- name = "colorette___colorette_1.2.2.tgz";
- path = fetchurl {
- name = "colorette___colorette_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
- sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
- };
- }
- {
- name = "colors___colors_1.3.3.tgz";
- path = fetchurl {
- name = "colors___colors_1.3.3.tgz";
- url = "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz";
- sha1 = "39e005d546afe01e01f9c4ca8fa50f686a01205d";
- };
- }
- {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- path = fetchurl {
- name = "combined_stream___combined_stream_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
- sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
- };
- }
- {
- name = "commander___commander_2.20.3.tgz";
- path = fetchurl {
- name = "commander___commander_2.20.3.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
- sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
- };
- }
- {
- name = "commander___commander_6.2.1.tgz";
- path = fetchurl {
- name = "commander___commander_6.2.1.tgz";
- url = "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz";
- sha1 = "0792eb682dfbc325999bb2b84fddddba110ac73c";
- };
- }
- {
- name = "commondir___commondir_1.0.1.tgz";
- path = fetchurl {
- name = "commondir___commondir_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
- sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
- };
- }
- {
- name = "compare_versions___compare_versions_3.5.1.tgz";
- path = fetchurl {
- name = "compare_versions___compare_versions_3.5.1.tgz";
- url = "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.5.1.tgz";
- sha1 = "26e1f5cf0d48a77eced5046b9f67b6b61075a393";
- };
- }
- {
- name = "component_bind___component_bind_1.0.0.tgz";
- path = fetchurl {
- name = "component_bind___component_bind_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz";
- sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
- };
- }
- {
- name = "component_emitter___component_emitter_1.2.1.tgz";
- path = fetchurl {
- name = "component_emitter___component_emitter_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
- sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
- };
- }
- {
- name = "component_inherit___component_inherit_0.0.3.tgz";
- path = fetchurl {
- name = "component_inherit___component_inherit_0.0.3.tgz";
- url = "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz";
- sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
- };
- }
- {
- name = "compressible___compressible_2.0.17.tgz";
- path = fetchurl {
- name = "compressible___compressible_2.0.17.tgz";
- url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz";
- sha1 = "6e8c108a16ad58384a977f3a482ca20bff2f38c1";
- };
- }
- {
- name = "compression_webpack_plugin___compression_webpack_plugin_5.0.2.tgz";
- path = fetchurl {
- name = "compression_webpack_plugin___compression_webpack_plugin_5.0.2.tgz";
- url = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-5.0.2.tgz";
- sha1 = "df84e682cfa1fb2a230e71cf83d50c323d5369c2";
- };
- }
- {
- name = "compression___compression_1.7.4.tgz";
- path = fetchurl {
- name = "compression___compression_1.7.4.tgz";
- url = "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz";
- sha1 = "95523eff170ca57c29a0ca41e6fe131f41e5bb8f";
- };
- }
- {
- name = "concat_map___concat_map_0.0.1.tgz";
- path = fetchurl {
- name = "concat_map___concat_map_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
- sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
- };
- }
- {
- name = "concat_stream___concat_stream_1.6.2.tgz";
- path = fetchurl {
- name = "concat_stream___concat_stream_1.6.2.tgz";
- url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
- sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
- };
- }
- {
- name = "condense_newlines___condense_newlines_0.2.1.tgz";
- path = fetchurl {
- name = "condense_newlines___condense_newlines_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz";
- sha1 = "3de985553139475d32502c83b02f60684d24c55f";
- };
- }
- {
- name = "config_chain___config_chain_1.1.12.tgz";
- path = fetchurl {
- name = "config_chain___config_chain_1.1.12.tgz";
- url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
- sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
- };
- }
- {
- name = "configstore___configstore_5.0.1.tgz";
- path = fetchurl {
- name = "configstore___configstore_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz";
- sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96";
- };
- }
- {
- name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
- path = fetchurl {
- name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz";
- sha1 = "30d1e7f3d1b882b25ec4933d1d1adac353d20a59";
- };
- }
- {
- name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
- path = fetchurl {
- name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
- url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
- sha1 = "8b32089359308d111115d81cad3fceab888f97bc";
- };
- }
- {
- name = "connect___connect_3.6.6.tgz";
- path = fetchurl {
- name = "connect___connect_3.6.6.tgz";
- url = "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz";
- sha1 = "09eff6c55af7236e137135a72574858b6786f524";
- };
- }
- {
- name = "consola___consola_2.15.3.tgz";
- path = fetchurl {
- name = "consola___consola_2.15.3.tgz";
- url = "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz";
- sha1 = "2e11f98d6a4be71ff72e0bdf07bd23e12cb61550";
- };
- }
- {
- name = "console_browserify___console_browserify_1.1.0.tgz";
- path = fetchurl {
- name = "console_browserify___console_browserify_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
- sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
- };
- }
- {
- name = "consolidate___consolidate_0.15.1.tgz";
- path = fetchurl {
- name = "consolidate___consolidate_0.15.1.tgz";
- url = "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz";
- sha1 = "21ab043235c71a07d45d9aad98593b0dba56bab7";
- };
- }
- {
- name = "constants_browserify___constants_browserify_1.0.0.tgz";
- path = fetchurl {
- name = "constants_browserify___constants_browserify_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
- sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
- };
- }
- {
- name = "contains_path___contains_path_0.1.0.tgz";
- path = fetchurl {
- name = "contains_path___contains_path_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
- sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
- };
- }
- {
- name = "content_disposition___content_disposition_0.5.3.tgz";
- path = fetchurl {
- name = "content_disposition___content_disposition_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
- sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
- };
- }
- {
- name = "content_type___content_type_1.0.4.tgz";
- path = fetchurl {
- name = "content_type___content_type_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
- sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
- };
- }
- {
- name = "convert_source_map___convert_source_map_1.7.0.tgz";
- path = fetchurl {
- name = "convert_source_map___convert_source_map_1.7.0.tgz";
- url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
- sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
- };
- }
- {
- name = "cookie_signature___cookie_signature_1.0.6.tgz";
- path = fetchurl {
- name = "cookie_signature___cookie_signature_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
- sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
- };
- }
- {
- name = "cookie___cookie_0.3.1.tgz";
- path = fetchurl {
- name = "cookie___cookie_0.3.1.tgz";
- url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
- sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
- };
- }
- {
- name = "cookie___cookie_0.4.0.tgz";
- path = fetchurl {
- name = "cookie___cookie_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
- sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
- };
- }
- {
- name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
- path = fetchurl {
- name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
- sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
- };
- }
- {
- name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
- path = fetchurl {
- name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
- sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
- };
- }
- {
- name = "copy_to_clipboard___copy_to_clipboard_3.2.0.tgz";
- path = fetchurl {
- name = "copy_to_clipboard___copy_to_clipboard_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz";
- sha1 = "d2724a3ccbfed89706fac8a894872c979ac74467";
- };
- }
- {
- name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
- path = fetchurl {
- name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
- url = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz";
- sha1 = "138cd9b436dbca0a6d071720d5414848992ec47e";
- };
- }
- {
- name = "core_js_compat___core_js_compat_3.15.2.tgz";
- path = fetchurl {
- name = "core_js_compat___core_js_compat_3.15.2.tgz";
- url = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz";
- sha1 = "47272fbb479880de14b4e6081f71f3492f5bd3cb";
- };
- }
- {
- name = "core_js_pure___core_js_pure_3.6.5.tgz";
- path = fetchurl {
- name = "core_js_pure___core_js_pure_3.6.5.tgz";
- url = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz";
- sha1 = "c79e75f5e38dbc85a662d91eea52b8256d53b813";
- };
- }
- {
- name = "core_js___core_js_3.16.2.tgz";
- path = fetchurl {
- name = "core_js___core_js_3.16.2.tgz";
- url = "https://registry.yarnpkg.com/core-js/-/core-js-3.16.2.tgz";
- sha1 = "3f485822889c7fc48ef463e35be5cc2a4a01a1f4";
- };
- }
- {
- name = "core_js___core_js_2.3.0.tgz";
- path = fetchurl {
- name = "core_js___core_js_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz";
- sha1 = "fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65";
- };
- }
- {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- path = fetchurl {
- name = "core_util_is___core_util_is_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
- sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
- };
- }
- {
- name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
- path = fetchurl {
- name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
- sha1 = "ef9b44d773959cae63ddecd122de23853b60f8d3";
- };
- }
- {
- name = "create_ecdh___create_ecdh_4.0.0.tgz";
- path = fetchurl {
- name = "create_ecdh___create_ecdh_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz";
- sha1 = "888c723596cdf7612f6498233eebd7a35301737d";
- };
- }
- {
- name = "create_hash___create_hash_1.1.3.tgz";
- path = fetchurl {
- name = "create_hash___create_hash_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz";
- sha1 = "606042ac8b9262750f483caddab0f5819172d8fd";
- };
- }
- {
- name = "create_hmac___create_hmac_1.1.6.tgz";
- path = fetchurl {
- name = "create_hmac___create_hmac_1.1.6.tgz";
- url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz";
- sha1 = "acb9e221a4e17bdb076e90657c42b93e3726cf06";
- };
- }
- {
- name = "cron_validator___cron_validator_1.1.1.tgz";
- path = fetchurl {
- name = "cron_validator___cron_validator_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/cron-validator/-/cron-validator-1.1.1.tgz";
- sha1 = "0a27bb75508c7bc03c8b840d2d9f170eeacb5615";
- };
- }
- {
- name = "cropper___cropper_2.3.0.tgz";
- path = fetchurl {
- name = "cropper___cropper_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/cropper/-/cropper-2.3.0.tgz";
- sha1 = "607461d4e7aa7a7fe15a26834b14b7f0c2801562";
- };
- }
- {
- name = "cross_spawn___cross_spawn_6.0.5.tgz";
- path = fetchurl {
- name = "cross_spawn___cross_spawn_6.0.5.tgz";
- url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
- sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
- };
- }
- {
- name = "cross_spawn___cross_spawn_7.0.3.tgz";
- path = fetchurl {
- name = "cross_spawn___cross_spawn_7.0.3.tgz";
- url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
- sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
- };
- }
- {
- name = "crypt___crypt_0.0.2.tgz";
- path = fetchurl {
- name = "crypt___crypt_0.0.2.tgz";
- url = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
- sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
- };
- }
- {
- name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
- path = fetchurl {
- name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
- url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
- sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
- };
- }
- {
- name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
- path = fetchurl {
- name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
- sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5";
- };
- }
- {
- name = "css_b64_images___css_b64_images_0.2.5.tgz";
- path = fetchurl {
- name = "css_b64_images___css_b64_images_0.2.5.tgz";
- url = "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz";
- sha1 = "42005d83204b2b4a5d93b6b1a5644133b5927a02";
- };
- }
- {
- name = "css_color_names___css_color_names_0.0.4.tgz";
- path = fetchurl {
- name = "css_color_names___css_color_names_0.0.4.tgz";
- url = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
- sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
- };
- }
- {
- name = "css_loader___css_loader_2.1.1.tgz";
- path = fetchurl {
- name = "css_loader___css_loader_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz";
- sha1 = "d8254f72e412bb2238bb44dd674ffbef497333ea";
- };
- }
- {
- name = "css_select___css_select_4.1.2.tgz";
- path = fetchurl {
- name = "css_select___css_select_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/css-select/-/css-select-4.1.2.tgz";
- sha1 = "8b52b6714ed3a80d8221ec971c543f3b12653286";
- };
- }
- {
- name = "css_selector_parser___css_selector_parser_1.3.0.tgz";
- path = fetchurl {
- name = "css_selector_parser___css_selector_parser_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.3.0.tgz";
- sha1 = "5f1ad43e2d8eefbfdc304fcd39a521664943e3eb";
- };
- }
- {
- name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
- path = fetchurl {
- name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz";
- sha1 = "1c808e63553c283f289f2dd56fcee8f3337bd935";
- };
- }
- {
- name = "css_values___css_values_0.1.0.tgz";
- path = fetchurl {
- name = "css_values___css_values_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/css-values/-/css-values-0.1.0.tgz";
- sha1 = "128b7ce103d4dc027a814a5d5995c54781d7b4c6";
- };
- }
- {
- name = "css_what___css_what_5.0.0.tgz";
- path = fetchurl {
- name = "css_what___css_what_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/css-what/-/css-what-5.0.0.tgz";
- sha1 = "f0bf4f8bac07582722346ab243f6a35b512cfc47";
- };
- }
- {
- name = "css___css_2.2.4.tgz";
- path = fetchurl {
- name = "css___css_2.2.4.tgz";
- url = "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz";
- sha1 = "c646755c73971f2bba6a601e2cf2fd71b1298929";
- };
- }
- {
- name = "cssesc___cssesc_3.0.0.tgz";
- path = fetchurl {
- name = "cssesc___cssesc_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz";
- sha1 = "37741919903b868565e1c09ea747445cd18983ee";
- };
- }
- {
- name = "cssfontparser___cssfontparser_1.2.1.tgz";
- path = fetchurl {
- name = "cssfontparser___cssfontparser_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz";
- sha1 = "f4022fc8f9700c68029d542084afbaf425a3f3e3";
- };
- }
- {
- name = "cssom___cssom_0.4.4.tgz";
- path = fetchurl {
- name = "cssom___cssom_0.4.4.tgz";
- url = "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz";
- sha1 = "5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10";
- };
- }
- {
- name = "cssom___cssom_0.3.8.tgz";
- path = fetchurl {
- name = "cssom___cssom_0.3.8.tgz";
- url = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz";
- sha1 = "9f1276f5b2b463f2114d3f2c75250af8c1a36f4a";
- };
- }
- {
- name = "cssstyle___cssstyle_2.3.0.tgz";
- path = fetchurl {
- name = "cssstyle___cssstyle_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz";
- sha1 = "ff665a0ddbdc31864b09647f34163443d90b0852";
- };
- }
- {
- name = "custom_event___custom_event_1.0.1.tgz";
- path = fetchurl {
- name = "custom_event___custom_event_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz";
- sha1 = "5d02a46850adf1b4a317946a3928fccb5bfd0425";
- };
- }
- {
- name = "custom_jquery_matchers___custom_jquery_matchers_2.1.0.tgz";
- path = fetchurl {
- name = "custom_jquery_matchers___custom_jquery_matchers_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/custom-jquery-matchers/-/custom-jquery-matchers-2.1.0.tgz";
- sha1 = "e5988fa9715c416b0986b372563f872d9e91e024";
- };
- }
- {
- name = "cyclist___cyclist_0.2.2.tgz";
- path = fetchurl {
- name = "cyclist___cyclist_0.2.2.tgz";
- url = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz";
- sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640";
- };
- }
- {
- name = "d3_array___d3_array_1.2.1.tgz";
- path = fetchurl {
- name = "d3_array___d3_array_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz";
- sha1 = "d1ca33de2f6ac31efadb8e050a021d7e2396d5dc";
- };
- }
- {
- name = "d3_axis___d3_axis_1.0.8.tgz";
- path = fetchurl {
- name = "d3_axis___d3_axis_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.8.tgz";
- sha1 = "31a705a0b535e65759de14173a31933137f18efa";
- };
- }
- {
- name = "d3_brush___d3_brush_1.0.4.tgz";
- path = fetchurl {
- name = "d3_brush___d3_brush_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.4.tgz";
- sha1 = "00c2f238019f24f6c0a194a26d41a1530ffe7bc4";
- };
- }
- {
- name = "d3_chord___d3_chord_1.0.4.tgz";
- path = fetchurl {
- name = "d3_chord___d3_chord_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.4.tgz";
- sha1 = "7dec4f0ba886f713fe111c45f763414f6f74ca2c";
- };
- }
- {
- name = "d3_collection___d3_collection_1.0.4.tgz";
- path = fetchurl {
- name = "d3_collection___d3_collection_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz";
- sha1 = "342dfd12837c90974f33f1cc0a785aea570dcdc2";
- };
- }
- {
- name = "d3_color___d3_color_1.0.3.tgz";
- path = fetchurl {
- name = "d3_color___d3_color_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz";
- sha1 = "bc7643fca8e53a8347e2fbdaffa236796b58509b";
- };
- }
- {
- name = "d3_contour___d3_contour_1.3.2.tgz";
- path = fetchurl {
- name = "d3_contour___d3_contour_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz";
- sha1 = "652aacd500d2264cb3423cee10db69f6f59bead3";
- };
- }
- {
- name = "d3_dispatch___d3_dispatch_1.0.3.tgz";
- path = fetchurl {
- name = "d3_dispatch___d3_dispatch_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz";
- sha1 = "46e1491eaa9b58c358fce5be4e8bed626e7871f8";
- };
- }
- {
- name = "d3_drag___d3_drag_1.2.1.tgz";
- path = fetchurl {
- name = "d3_drag___d3_drag_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz";
- sha1 = "df8dd4c502fb490fc7462046a8ad98a5c479282d";
- };
- }
- {
- name = "d3_dsv___d3_dsv_1.0.8.tgz";
- path = fetchurl {
- name = "d3_dsv___d3_dsv_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz";
- sha1 = "907e240d57b386618dc56468bacfe76bf19764ae";
- };
- }
- {
- name = "d3_ease___d3_ease_1.0.3.tgz";
- path = fetchurl {
- name = "d3_ease___d3_ease_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz";
- sha1 = "68bfbc349338a380c44d8acc4fbc3304aa2d8c0e";
- };
- }
- {
- name = "d3_fetch___d3_fetch_1.1.2.tgz";
- path = fetchurl {
- name = "d3_fetch___d3_fetch_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz";
- sha1 = "957c8fbc6d4480599ba191b1b2518bf86b3e1be2";
- };
- }
- {
- name = "d3_force___d3_force_1.1.0.tgz";
- path = fetchurl {
- name = "d3_force___d3_force_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.0.tgz";
- sha1 = "cebf3c694f1078fcc3d4daf8e567b2fbd70d4ea3";
- };
- }
- {
- name = "d3_format___d3_format_1.2.2.tgz";
- path = fetchurl {
- name = "d3_format___d3_format_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz";
- sha1 = "1a39c479c8a57fe5051b2e67a3bee27061a74e7a";
- };
- }
- {
- name = "d3_geo___d3_geo_1.9.1.tgz";
- path = fetchurl {
- name = "d3_geo___d3_geo_1.9.1.tgz";
- url = "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.9.1.tgz";
- sha1 = "157e3b0f917379d0f73bebfff3be537f49fa7356";
- };
- }
- {
- name = "d3_hierarchy___d3_hierarchy_1.1.5.tgz";
- path = fetchurl {
- name = "d3_hierarchy___d3_hierarchy_1.1.5.tgz";
- url = "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz";
- sha1 = "a1c845c42f84a206bcf1c01c01098ea4ddaa7a26";
- };
- }
- {
- name = "d3_interpolate___d3_interpolate_1.1.6.tgz";
- path = fetchurl {
- name = "d3_interpolate___d3_interpolate_1.1.6.tgz";
- url = "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz";
- sha1 = "2cf395ae2381804df08aa1bf766b7f97b5f68fb6";
- };
- }
- {
- name = "d3_path___d3_path_1.0.5.tgz";
- path = fetchurl {
- name = "d3_path___d3_path_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz";
- sha1 = "241eb1849bd9e9e8021c0d0a799f8a0e8e441764";
- };
- }
- {
- name = "d3_polygon___d3_polygon_1.0.3.tgz";
- path = fetchurl {
- name = "d3_polygon___d3_polygon_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.3.tgz";
- sha1 = "16888e9026460933f2b179652ad378224d382c62";
- };
- }
- {
- name = "d3_quadtree___d3_quadtree_1.0.3.tgz";
- path = fetchurl {
- name = "d3_quadtree___d3_quadtree_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz";
- sha1 = "ac7987e3e23fe805a990f28e1b50d38fcb822438";
- };
- }
- {
- name = "d3_random___d3_random_1.1.0.tgz";
- path = fetchurl {
- name = "d3_random___d3_random_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz";
- sha1 = "6642e506c6fa3a648595d2b2469788a8d12529d3";
- };
- }
- {
- name = "d3_sankey___d3_sankey_0.12.3.tgz";
- path = fetchurl {
- name = "d3_sankey___d3_sankey_0.12.3.tgz";
- url = "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz";
- sha1 = "b3c268627bd72e5d80336e8de6acbfec9d15d01d";
- };
- }
- {
- name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
- path = fetchurl {
- name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
- url = "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz";
- sha1 = "dad4366f0edcb288f490128979c3c793583ed3c0";
- };
- }
- {
- name = "d3_scale___d3_scale_2.2.2.tgz";
- path = fetchurl {
- name = "d3_scale___d3_scale_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz";
- sha1 = "4e880e0b2745acaaddd3ede26a9e908a9e17b81f";
- };
- }
- {
- name = "d3_selection___d3_selection_1.3.0.tgz";
- path = fetchurl {
- name = "d3_selection___d3_selection_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz";
- sha1 = "d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d";
- };
- }
- {
- name = "d3_shape___d3_shape_1.3.7.tgz";
- path = fetchurl {
- name = "d3_shape___d3_shape_1.3.7.tgz";
- url = "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz";
- sha1 = "df63801be07bc986bc54f63789b4fe502992b5d7";
- };
- }
- {
- name = "d3_time_format___d3_time_format_2.1.1.tgz";
- path = fetchurl {
- name = "d3_time_format___d3_time_format_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz";
- sha1 = "85b7cdfbc9ffca187f14d3c456ffda268081bb31";
- };
- }
- {
- name = "d3_time___d3_time_1.0.8.tgz";
- path = fetchurl {
- name = "d3_time___d3_time_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz";
- sha1 = "dbd2d6007bf416fe67a76d17947b784bffea1e84";
- };
- }
- {
- name = "d3_timer___d3_timer_1.0.7.tgz";
- path = fetchurl {
- name = "d3_timer___d3_timer_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz";
- sha1 = "df9650ca587f6c96607ff4e60cc38229e8dd8531";
- };
- }
- {
- name = "d3_transition___d3_transition_1.1.1.tgz";
- path = fetchurl {
- name = "d3_transition___d3_transition_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz";
- sha1 = "d8ef89c3b848735b060e54a39b32aaebaa421039";
- };
- }
- {
- name = "d3_voronoi___d3_voronoi_1.1.2.tgz";
- path = fetchurl {
- name = "d3_voronoi___d3_voronoi_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz";
- sha1 = "1687667e8f13a2d158c80c1480c5a29cb0d8973c";
- };
- }
- {
- name = "d3_zoom___d3_zoom_1.7.1.tgz";
- path = fetchurl {
- name = "d3_zoom___d3_zoom_1.7.1.tgz";
- url = "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.1.tgz";
- sha1 = "02f43b3c3e2db54f364582d7e4a236ccc5506b63";
- };
- }
- {
- name = "d3___d3_5.16.0.tgz";
- path = fetchurl {
- name = "d3___d3_5.16.0.tgz";
- url = "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz";
- sha1 = "9c5e8d3b56403c79d4ed42fbd62f6113f199c877";
- };
- }
- {
- name = "dagre_d3___dagre_d3_0.6.4.tgz";
- path = fetchurl {
- name = "dagre_d3___dagre_d3_0.6.4.tgz";
- url = "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz";
- sha1 = "0728d5ce7f177ca2337df141ceb60fbe6eeb7b29";
- };
- }
- {
- name = "dagre___dagre_0.8.5.tgz";
- path = fetchurl {
- name = "dagre___dagre_0.8.5.tgz";
- url = "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz";
- sha1 = "ba30b0055dac12b6c1fcc247817442777d06afee";
- };
- }
- {
- name = "dashdash___dashdash_1.14.1.tgz";
- path = fetchurl {
- name = "dashdash___dashdash_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
- sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
- };
- }
- {
- name = "data_urls___data_urls_2.0.0.tgz";
- path = fetchurl {
- name = "data_urls___data_urls_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz";
- sha1 = "156485a72963a970f5d5821aaf642bef2bf2db9b";
- };
- }
- {
- name = "date_format___date_format_2.1.0.tgz";
- path = fetchurl {
- name = "date_format___date_format_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz";
- sha1 = "31d5b5ea211cf5fd764cd38baf9d033df7e125cf";
- };
- }
- {
- name = "date_now___date_now_0.1.4.tgz";
- path = fetchurl {
- name = "date_now___date_now_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
- sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
- };
- }
- {
- name = "dateformat___dateformat_4.5.1.tgz";
- path = fetchurl {
- name = "dateformat___dateformat_4.5.1.tgz";
- url = "https://registry.yarnpkg.com/dateformat/-/dateformat-4.5.1.tgz";
- sha1 = "c20e7a9ca77d147906b6dc2261a8be0a5bd2173c";
- };
- }
- {
- name = "de_indent___de_indent_1.0.2.tgz";
- path = fetchurl {
- name = "de_indent___de_indent_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz";
- sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
- };
- }
- {
- name = "debug___debug_2.6.9.tgz";
- path = fetchurl {
- name = "debug___debug_2.6.9.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
- sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
- };
- }
- {
- name = "debug___debug_3.1.0.tgz";
- path = fetchurl {
- name = "debug___debug_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
- sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
- };
- }
- {
- name = "debug___debug_3.2.7.tgz";
- path = fetchurl {
- name = "debug___debug_3.2.7.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
- sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
- };
- }
- {
- name = "debug___debug_4.3.1.tgz";
- path = fetchurl {
- name = "debug___debug_4.3.1.tgz";
- url = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
- sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
- };
- }
- {
- name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
- path = fetchurl {
- name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
- sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
- };
- }
- {
- name = "decamelize___decamelize_1.2.0.tgz";
- path = fetchurl {
- name = "decamelize___decamelize_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
- sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
- };
- }
- {
- name = "decimal.js___decimal.js_10.2.1.tgz";
- path = fetchurl {
- name = "decimal.js___decimal.js_10.2.1.tgz";
- url = "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz";
- sha1 = "238ae7b0f0c793d3e3cea410108b35a2c01426a3";
- };
- }
- {
- name = "deckar01_task_list___deckar01_task_list_2.3.1.tgz";
- path = fetchurl {
- name = "deckar01_task_list___deckar01_task_list_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/deckar01-task_list/-/deckar01-task_list-2.3.1.tgz";
- sha1 = "f3ffd5319d7b9e27c596dc8d823b13f617ed7db7";
- };
- }
- {
- name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
- path = fetchurl {
- name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
- sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
- };
- }
- {
- name = "decompress_response___decompress_response_3.3.0.tgz";
- path = fetchurl {
- name = "decompress_response___decompress_response_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
- sha1 = "80a4dd323748384bfa248083622aedec982adff3";
- };
- }
- {
- name = "deep_equal___deep_equal_1.0.1.tgz";
- path = fetchurl {
- name = "deep_equal___deep_equal_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
- sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
- };
- }
- {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- path = fetchurl {
- name = "deep_extend___deep_extend_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
- sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
- };
- }
- {
- name = "deep_is___deep_is_0.1.3.tgz";
- path = fetchurl {
- name = "deep_is___deep_is_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
- sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
- };
- }
- {
- name = "deepmerge___deepmerge_4.2.2.tgz";
- path = fetchurl {
- name = "deepmerge___deepmerge_4.2.2.tgz";
- url = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz";
- sha1 = "44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955";
- };
- }
- {
- name = "default_gateway___default_gateway_4.2.0.tgz";
- path = fetchurl {
- name = "default_gateway___default_gateway_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz";
- sha1 = "167104c7500c2115f6dd69b0a536bb8ed720552b";
- };
- }
- {
- name = "default_require_extensions___default_require_extensions_2.0.0.tgz";
- path = fetchurl {
- name = "default_require_extensions___default_require_extensions_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz";
- sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
- };
- }
- {
- name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
- path = fetchurl {
- name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
- sha1 = "331ae050c08dcf789f8c83a7b81f0ed94f4ac591";
- };
- }
- {
- name = "define_properties___define_properties_1.1.3.tgz";
- path = fetchurl {
- name = "define_properties___define_properties_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
- sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
- };
- }
- {
- name = "define_property___define_property_0.2.5.tgz";
- path = fetchurl {
- name = "define_property___define_property_0.2.5.tgz";
- url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
- sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
- };
- }
- {
- name = "define_property___define_property_1.0.0.tgz";
- path = fetchurl {
- name = "define_property___define_property_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
- sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
- };
- }
- {
- name = "define_property___define_property_2.0.2.tgz";
- path = fetchurl {
- name = "define_property___define_property_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
- sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
- };
- }
- {
- name = "del___del_4.1.1.tgz";
- path = fetchurl {
- name = "del___del_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz";
- sha1 = "9e8f117222ea44a31ff3a156c049b99052a9f0b4";
- };
- }
- {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- path = fetchurl {
- name = "delayed_stream___delayed_stream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
- sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
- };
- }
- {
- name = "delegate___delegate_3.1.2.tgz";
- path = fetchurl {
- name = "delegate___delegate_3.1.2.tgz";
- url = "https://registry.yarnpkg.com/delegate/-/delegate-3.1.2.tgz";
- sha1 = "1e1bc6f5cadda6cb6cbf7e6d05d0bcdd5712aebe";
- };
- }
- {
- name = "depd___depd_1.1.1.tgz";
- path = fetchurl {
- name = "depd___depd_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz";
- sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
- };
- }
- {
- name = "depd___depd_1.1.2.tgz";
- path = fetchurl {
- name = "depd___depd_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
- sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
- };
- }
- {
- name = "des.js___des.js_1.0.0.tgz";
- path = fetchurl {
- name = "des.js___des.js_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
- sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
- };
- }
- {
- name = "destroy___destroy_1.0.4.tgz";
- path = fetchurl {
- name = "destroy___destroy_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
- sha1 = "978857442c44749e4206613e37946205826abd80";
- };
- }
- {
- name = "detect_file___detect_file_1.0.0.tgz";
- path = fetchurl {
- name = "detect_file___detect_file_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
- sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
- };
- }
- {
- name = "detect_newline___detect_newline_3.1.0.tgz";
- path = fetchurl {
- name = "detect_newline___detect_newline_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz";
- sha1 = "576f5dfc63ae1a192ff192d8ad3af6308991b651";
- };
- }
- {
- name = "detect_node___detect_node_2.0.4.tgz";
- path = fetchurl {
- name = "detect_node___detect_node_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
- sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
- };
- }
- {
- name = "di___di_0.0.1.tgz";
- path = fetchurl {
- name = "di___di_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz";
- sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
- };
- }
- {
- name = "diff_sequences___diff_sequences_26.5.0.tgz";
- path = fetchurl {
- name = "diff_sequences___diff_sequences_26.5.0.tgz";
- url = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.5.0.tgz";
- sha1 = "ef766cf09d43ed40406611f11c6d8d9dd8b2fefd";
- };
- }
- {
- name = "diff___diff_3.5.0.tgz";
- path = fetchurl {
- name = "diff___diff_3.5.0.tgz";
- url = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
- sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
- };
- }
- {
- name = "diffie_hellman___diffie_hellman_5.0.2.tgz";
- path = fetchurl {
- name = "diffie_hellman___diffie_hellman_5.0.2.tgz";
- url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz";
- sha1 = "b5835739270cfe26acf632099fded2a07f209e5e";
- };
- }
- {
- name = "dir_glob___dir_glob_3.0.1.tgz";
- path = fetchurl {
- name = "dir_glob___dir_glob_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
- sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
- };
- }
- {
- name = "dns_equal___dns_equal_1.0.0.tgz";
- path = fetchurl {
- name = "dns_equal___dns_equal_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
- sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
- };
- }
- {
- name = "dns_packet___dns_packet_1.2.2.tgz";
- path = fetchurl {
- name = "dns_packet___dns_packet_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz";
- sha1 = "a8a26bec7646438963fc86e06f8f8b16d6c8bf7a";
- };
- }
- {
- name = "dns_txt___dns_txt_2.0.2.tgz";
- path = fetchurl {
- name = "dns_txt___dns_txt_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
- sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
- };
- }
- {
- name = "docdash___docdash_1.0.2.tgz";
- path = fetchurl {
- name = "docdash___docdash_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/docdash/-/docdash-1.0.2.tgz";
- sha1 = "0449a8f6bb247f563020b78a5485dea95ae2e094";
- };
- }
- {
- name = "doctrine___doctrine_1.5.0.tgz";
- path = fetchurl {
- name = "doctrine___doctrine_1.5.0.tgz";
- url = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
- sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
- };
- }
- {
- name = "doctrine___doctrine_3.0.0.tgz";
- path = fetchurl {
- name = "doctrine___doctrine_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
- sha1 = "addebead72a6574db783639dc87a121773973961";
- };
- }
- {
- name = "dom_accessibility_api___dom_accessibility_api_0.5.3.tgz";
- path = fetchurl {
- name = "dom_accessibility_api___dom_accessibility_api_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.3.tgz";
- sha1 = "0ea493c924d4070dfbf531c4aaca3d7a2c601aab";
- };
- }
- {
- name = "dom_event_types___dom_event_types_1.0.0.tgz";
- path = fetchurl {
- name = "dom_event_types___dom_event_types_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz";
- sha1 = "5830a0a29e1bf837fe50a70cd80a597232813cae";
- };
- }
- {
- name = "dom_serialize___dom_serialize_2.2.1.tgz";
- path = fetchurl {
- name = "dom_serialize___dom_serialize_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz";
- sha1 = "562ae8999f44be5ea3076f5419dcd59eb43ac95b";
- };
- }
- {
- name = "dom_serializer___dom_serializer_0.2.2.tgz";
- path = fetchurl {
- name = "dom_serializer___dom_serializer_0.2.2.tgz";
- url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz";
- sha1 = "1afb81f533717175d478655debc5e332d9f9bb51";
- };
- }
- {
- name = "dom_serializer___dom_serializer_1.3.1.tgz";
- path = fetchurl {
- name = "dom_serializer___dom_serializer_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz";
- sha1 = "d845a1565d7c041a95e5dab62184ab41e3a519be";
- };
- }
- {
- name = "dom_walk___dom_walk_0.1.2.tgz";
- path = fetchurl {
- name = "dom_walk___dom_walk_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz";
- sha1 = "0c548bef048f4d1f2a97249002236060daa3fd84";
- };
- }
- {
- name = "domain_browser___domain_browser_1.1.7.tgz";
- path = fetchurl {
- name = "domain_browser___domain_browser_1.1.7.tgz";
- url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz";
- sha1 = "867aa4b093faa05f1de08c06f4d7b21fdf8698bc";
- };
- }
- {
- name = "domelementtype___domelementtype_1.3.1.tgz";
- path = fetchurl {
- name = "domelementtype___domelementtype_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
- sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
- };
- }
- {
- name = "domelementtype___domelementtype_2.2.0.tgz";
- path = fetchurl {
- name = "domelementtype___domelementtype_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz";
- sha1 = "9a0b6c2782ed6a1c7323d42267183df9bd8b1d57";
- };
- }
- {
- name = "domexception___domexception_2.0.1.tgz";
- path = fetchurl {
- name = "domexception___domexception_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz";
- sha1 = "fb44aefba793e1574b0af6aed2801d057529f304";
- };
- }
- {
- name = "domhandler___domhandler_2.4.2.tgz";
- path = fetchurl {
- name = "domhandler___domhandler_2.4.2.tgz";
- url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
- sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
- };
- }
- {
- name = "domhandler___domhandler_4.2.0.tgz";
- path = fetchurl {
- name = "domhandler___domhandler_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz";
- sha1 = "f9768a5f034be60a89a27c2e4d0f74eba0d8b059";
- };
- }
- {
- name = "dompurify___dompurify_2.3.1.tgz";
- path = fetchurl {
- name = "dompurify___dompurify_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.1.tgz";
- sha1 = "a47059ca21fd1212d3c8f71fdea6943b8bfbdf6a";
- };
- }
- {
- name = "domutils___domutils_1.7.0.tgz";
- path = fetchurl {
- name = "domutils___domutils_1.7.0.tgz";
- url = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
- sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
- };
- }
- {
- name = "domutils___domutils_2.6.0.tgz";
- path = fetchurl {
- name = "domutils___domutils_2.6.0.tgz";
- url = "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz";
- sha1 = "2e15c04185d43fb16ae7057cb76433c6edb938b7";
- };
- }
- {
- name = "dot_prop___dot_prop_5.2.0.tgz";
- path = fetchurl {
- name = "dot_prop___dot_prop_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz";
- sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb";
- };
- }
- {
- name = "dropzone___dropzone_4.2.0.tgz";
- path = fetchurl {
- name = "dropzone___dropzone_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/dropzone/-/dropzone-4.2.0.tgz";
- sha1 = "fbe7acbb9918e0706489072ef663effeef8a79f3";
- };
- }
- {
- name = "duplexer3___duplexer3_0.1.4.tgz";
- path = fetchurl {
- name = "duplexer3___duplexer3_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
- sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
- };
- }
- {
- name = "duplexer___duplexer_0.1.2.tgz";
- path = fetchurl {
- name = "duplexer___duplexer_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz";
- sha1 = "3abe43aef3835f8ae077d136ddce0f276b0400e6";
- };
- }
- {
- name = "duplexify___duplexify_3.7.1.tgz";
- path = fetchurl {
- name = "duplexify___duplexify_3.7.1.tgz";
- url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
- sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
- };
- }
- {
- name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
- path = fetchurl {
- name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
- sha1 = "3a83a904e54353287874c564b7549386849a98c9";
- };
- }
- {
- name = "echarts___echarts_4.9.0.tgz";
- path = fetchurl {
- name = "echarts___echarts_4.9.0.tgz";
- url = "https://registry.yarnpkg.com/echarts/-/echarts-4.9.0.tgz";
- sha1 = "a9b9baa03f03a2a731e6340c55befb57a9e1347d";
- };
- }
- {
- name = "editions___editions_1.3.4.tgz";
- path = fetchurl {
- name = "editions___editions_1.3.4.tgz";
- url = "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz";
- sha1 = "3662cb592347c3168eb8e498a0ff73271d67f50b";
- };
- }
- {
- name = "editorconfig___editorconfig_0.15.3.tgz";
- path = fetchurl {
- name = "editorconfig___editorconfig_0.15.3.tgz";
- url = "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz";
- sha1 = "bef84c4e75fb8dcb0ce5cee8efd51c15999befc5";
- };
- }
- {
- name = "ee_first___ee_first_1.1.1.tgz";
- path = fetchurl {
- name = "ee_first___ee_first_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
- sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
- };
- }
- {
- name = "electron_to_chromium___electron_to_chromium_1.3.762.tgz";
- path = fetchurl {
- name = "electron_to_chromium___electron_to_chromium_1.3.762.tgz";
- url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.762.tgz";
- sha1 = "3fa4e3bcbda539b50e3aa23041627063a5cffe61";
- };
- }
- {
- name = "elliptic___elliptic_6.5.4.tgz";
- path = fetchurl {
- name = "elliptic___elliptic_6.5.4.tgz";
- url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
- sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
- };
- }
- {
- name = "emittery___emittery_0.7.1.tgz";
- path = fetchurl {
- name = "emittery___emittery_0.7.1.tgz";
- url = "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz";
- sha1 = "c02375a927a40948c0345cc903072597f5270451";
- };
- }
- {
- name = "emoji_regex___emoji_regex_7.0.3.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_7.0.3.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
- sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
- };
- }
- {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- path = fetchurl {
- name = "emoji_regex___emoji_regex_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
- sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
- };
- }
- {
- name = "emoji_unicode_version___emoji_unicode_version_0.2.1.tgz";
- path = fetchurl {
- name = "emoji_unicode_version___emoji_unicode_version_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/emoji-unicode-version/-/emoji-unicode-version-0.2.1.tgz";
- sha1 = "0ebf3666b5414097971d34994e299fce75cdbafc";
- };
- }
- {
- name = "emojis_list___emojis_list_3.0.0.tgz";
- path = fetchurl {
- name = "emojis_list___emojis_list_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
- sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
- };
- }
- {
- name = "encodeurl___encodeurl_1.0.2.tgz";
- path = fetchurl {
- name = "encodeurl___encodeurl_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
- sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
- };
- }
- {
- name = "end_of_stream___end_of_stream_1.4.1.tgz";
- path = fetchurl {
- name = "end_of_stream___end_of_stream_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
- sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
- };
- }
- {
- name = "ends_with___ends_with_0.2.0.tgz";
- path = fetchurl {
- name = "ends_with___ends_with_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/ends-with/-/ends-with-0.2.0.tgz";
- sha1 = "2f9da98d57a50cfda4571ce4339000500f4e6b8a";
- };
- }
- {
- name = "engine.io_client___engine.io_client_3.2.1.tgz";
- path = fetchurl {
- name = "engine.io_client___engine.io_client_3.2.1.tgz";
- url = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz";
- sha1 = "6f54c0475de487158a1a7c77d10178708b6add36";
- };
- }
- {
- name = "engine.io_parser___engine.io_parser_2.1.2.tgz";
- path = fetchurl {
- name = "engine.io_parser___engine.io_parser_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz";
- sha1 = "4c0f4cff79aaeecbbdcfdea66a823c6085409196";
- };
- }
- {
- name = "engine.io___engine.io_3.2.0.tgz";
- path = fetchurl {
- name = "engine.io___engine.io_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz";
- sha1 = "54332506f42f2edc71690d2f2a42349359f3bf7d";
- };
- }
- {
- name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
- path = fetchurl {
- name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
- url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz";
- sha1 = "4d6e689b3725f86090927ccc86cd9f1635b89e2e";
- };
- }
- {
- name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
- path = fetchurl {
- name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz";
- sha1 = "2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec";
- };
- }
- {
- name = "enquirer___enquirer_2.3.6.tgz";
- path = fetchurl {
- name = "enquirer___enquirer_2.3.6.tgz";
- url = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
- sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
- };
- }
- {
- name = "ent___ent_2.2.0.tgz";
- path = fetchurl {
- name = "ent___ent_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz";
- sha1 = "e964219325a21d05f44466a2f686ed6ce5f5dd1d";
- };
- }
- {
- name = "entities___entities_1.1.2.tgz";
- path = fetchurl {
- name = "entities___entities_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz";
- sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56";
- };
- }
- {
- name = "entities___entities_2.0.3.tgz";
- path = fetchurl {
- name = "entities___entities_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
- sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
- };
- }
- {
- name = "entity_decode___entity_decode_2.0.2.tgz";
- path = fetchurl {
- name = "entity_decode___entity_decode_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/entity-decode/-/entity-decode-2.0.2.tgz";
- sha1 = "e4f807e52c3294246e9347d1f2b02b07fd5f92e7";
- };
- }
- {
- name = "errno___errno_0.1.7.tgz";
- path = fetchurl {
- name = "errno___errno_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
- sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
- };
- }
- {
- name = "error_ex___error_ex_1.3.2.tgz";
- path = fetchurl {
- name = "error_ex___error_ex_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
- sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
- };
- }
- {
- name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
- path = fetchurl {
- name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
- url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz";
- sha1 = "088101a55f0541f595e7e057199e27ddc8f3a5c2";
- };
- }
- {
- name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
- path = fetchurl {
- name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
- sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
- };
- }
- {
- name = "es6_promise___es6_promise_4.2.8.tgz";
- path = fetchurl {
- name = "es6_promise___es6_promise_4.2.8.tgz";
- url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
- sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
- };
- }
- {
- name = "es6_promise___es6_promise_3.0.2.tgz";
- path = fetchurl {
- name = "es6_promise___es6_promise_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz";
- sha1 = "010d5858423a5f118979665f46486a95c6ee2bb6";
- };
- }
- {
- name = "es6_promisify___es6_promisify_5.0.0.tgz";
- path = fetchurl {
- name = "es6_promisify___es6_promisify_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
- sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
- };
- }
- {
- name = "escalade___escalade_3.1.1.tgz";
- path = fetchurl {
- name = "escalade___escalade_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
- sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
- };
- }
- {
- name = "escape_goat___escape_goat_2.1.1.tgz";
- path = fetchurl {
- name = "escape_goat___escape_goat_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz";
- sha1 = "1b2dc77003676c457ec760b2dc68edb648188675";
- };
- }
- {
- name = "escape_html___escape_html_1.0.3.tgz";
- path = fetchurl {
- name = "escape_html___escape_html_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
- sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
- sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
- sha1 = "a30304e99daa32e23b2fd20f51babd07cffca344";
- };
- }
- {
- name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
- path = fetchurl {
- name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
- sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
- };
- }
- {
- name = "escodegen___escodegen_1.14.3.tgz";
- path = fetchurl {
- name = "escodegen___escodegen_1.14.3.tgz";
- url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
- sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
- };
- }
- {
- name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
- path = fetchurl {
- name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz";
- sha1 = "8a2eb38455dc5a312550193b319cdaeef042cd1e";
- };
- }
- {
- name = "eslint_config_prettier___eslint_config_prettier_6.10.0.tgz";
- path = fetchurl {
- name = "eslint_config_prettier___eslint_config_prettier_6.10.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz";
- sha1 = "7b15e303bf9c956875c948f6b21500e48ded6a7f";
- };
- }
- {
- name = "eslint_import_resolver_jest___eslint_import_resolver_jest_3.0.0.tgz";
- path = fetchurl {
- name = "eslint_import_resolver_jest___eslint_import_resolver_jest_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-3.0.0.tgz";
- sha1 = "fd61da30fe58f4c1074af1f069b4267c70a91fd6";
- };
- }
- {
- name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
- path = fetchurl {
- name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
- url = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
- sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
- };
- }
- {
- name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.1.tgz";
- path = fetchurl {
- name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.1.tgz";
- sha1 = "6d2fb928091daf2da46efa1e568055555b2de902";
- };
- }
- {
- name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
- path = fetchurl {
- name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
- sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
- };
- }
- {
- name = "eslint_plugin_babel___eslint_plugin_babel_5.3.0.tgz";
- path = fetchurl {
- name = "eslint_plugin_babel___eslint_plugin_babel_5.3.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.0.tgz";
- sha1 = "2e7f251ccc249326da760c1a4c948a91c32d0023";
- };
- }
- {
- name = "eslint_plugin_filenames___eslint_plugin_filenames_1.3.2.tgz";
- path = fetchurl {
- name = "eslint_plugin_filenames___eslint_plugin_filenames_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz";
- sha1 = "7094f00d7aefdd6999e3ac19f72cea058e590cf7";
- };
- }
- {
- name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
- path = fetchurl {
- name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
- sha1 = "0896c7e6a0cf44109a2d97b95903c2bb689d7702";
- };
- }
- {
- name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.2.tgz";
- path = fetchurl {
- name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.2.tgz";
- sha1 = "50cc20d603b02b37727f8d174d4b83b9b8ef25a5";
- };
- }
- {
- name = "eslint_plugin_jest___eslint_plugin_jest_23.8.2.tgz";
- path = fetchurl {
- name = "eslint_plugin_jest___eslint_plugin_jest_23.8.2.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz";
- sha1 = "6f28b41c67ef635f803ebd9e168f6b73858eb8d4";
- };
- }
- {
- name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.6.0.tgz";
- path = fetchurl {
- name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.6.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.6.0.tgz";
- sha1 = "7892cb7c086f7813156bca6bc48429825428e9eb";
- };
- }
- {
- name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
- path = fetchurl {
- name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz";
- sha1 = "845fd8b2260ad8f82564c1222fce44ad71d9418a";
- };
- }
- {
- name = "eslint_plugin_vue___eslint_plugin_vue_7.5.0.tgz";
- path = fetchurl {
- name = "eslint_plugin_vue___eslint_plugin_vue_7.5.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.5.0.tgz";
- sha1 = "cc6d983eb22781fa2440a7573cf39af439bb5725";
- };
- }
- {
- name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
- path = fetchurl {
- name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
- sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
- };
- }
- {
- name = "eslint_scope___eslint_scope_4.0.3.tgz";
- path = fetchurl {
- name = "eslint_scope___eslint_scope_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
- sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
- };
- }
- {
- name = "eslint_scope___eslint_scope_5.1.1.tgz";
- path = fetchurl {
- name = "eslint_scope___eslint_scope_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
- sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
- };
- }
- {
- name = "eslint_utils___eslint_utils_2.1.0.tgz";
- path = fetchurl {
- name = "eslint_utils___eslint_utils_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
- sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
- };
- }
- {
- name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
- path = fetchurl {
- name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
- sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
- };
- }
- {
- name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
- path = fetchurl {
- name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
- sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
- };
- }
- {
- name = "eslint___eslint_7.31.0.tgz";
- path = fetchurl {
- name = "eslint___eslint_7.31.0.tgz";
- url = "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz";
- sha1 = "f972b539424bf2604907a970860732c5d99d3aca";
- };
- }
- {
- name = "espree___espree_6.2.1.tgz";
- path = fetchurl {
- name = "espree___espree_6.2.1.tgz";
- url = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
- sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
- };
- }
- {
- name = "espree___espree_7.3.1.tgz";
- path = fetchurl {
- name = "espree___espree_7.3.1.tgz";
- url = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
- sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
- };
- }
- {
- name = "esprima___esprima_4.0.1.tgz";
- path = fetchurl {
- name = "esprima___esprima_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
- sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
- };
- }
- {
- name = "esquery___esquery_1.4.0.tgz";
- path = fetchurl {
- name = "esquery___esquery_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
- sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
- };
- }
- {
- name = "esrecurse___esrecurse_4.3.0.tgz";
- path = fetchurl {
- name = "esrecurse___esrecurse_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
- sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
- };
- }
- {
- name = "estraverse___estraverse_4.3.0.tgz";
- path = fetchurl {
- name = "estraverse___estraverse_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
- sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
- };
- }
- {
- name = "estraverse___estraverse_5.2.0.tgz";
- path = fetchurl {
- name = "estraverse___estraverse_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
- sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
- };
- }
- {
- name = "esutils___esutils_2.0.3.tgz";
- path = fetchurl {
- name = "esutils___esutils_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
- sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
- };
- }
- {
- name = "etag___etag_1.8.1.tgz";
- path = fetchurl {
- name = "etag___etag_1.8.1.tgz";
- url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
- sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
- };
- }
- {
- name = "eve_raphael___eve_raphael_0.5.0.tgz";
- path = fetchurl {
- name = "eve_raphael___eve_raphael_0.5.0.tgz";
- url = "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz";
- sha1 = "17c754b792beef3fa6684d79cf5a47c63c4cda30";
- };
- }
- {
- name = "eventemitter3___eventemitter3_4.0.0.tgz";
- path = fetchurl {
- name = "eventemitter3___eventemitter3_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz";
- sha1 = "d65176163887ee59f386d64c82610b696a4a74eb";
- };
- }
- {
- name = "events___events_1.1.1.tgz";
- path = fetchurl {
- name = "events___events_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz";
- sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
- };
- }
- {
- name = "events___events_3.0.0.tgz";
- path = fetchurl {
- name = "events___events_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz";
- sha1 = "9a0a0dfaf62893d92b875b8f2698ca4114973e88";
- };
- }
- {
- name = "eventsource___eventsource_1.0.7.tgz";
- path = fetchurl {
- name = "eventsource___eventsource_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
- sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
- };
- }
- {
- name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
- path = fetchurl {
- name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
- sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
- };
- }
- {
- name = "exec_sh___exec_sh_0.3.4.tgz";
- path = fetchurl {
- name = "exec_sh___exec_sh_0.3.4.tgz";
- url = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz";
- sha1 = "3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5";
- };
- }
- {
- name = "execa___execa_1.0.0.tgz";
- path = fetchurl {
- name = "execa___execa_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
- sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
- };
- }
- {
- name = "execa___execa_4.0.3.tgz";
- path = fetchurl {
- name = "execa___execa_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz";
- sha1 = "0a34dabbad6d66100bd6f2c576c8669403f317f2";
- };
- }
- {
- name = "execall___execall_2.0.0.tgz";
- path = fetchurl {
- name = "execall___execall_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz";
- sha1 = "16a06b5fe5099df7d00be5d9c06eecded1663b45";
- };
- }
- {
- name = "exit___exit_0.1.2.tgz";
- path = fetchurl {
- name = "exit___exit_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
- sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
- };
- }
- {
- name = "expand_brackets___expand_brackets_2.1.4.tgz";
- path = fetchurl {
- name = "expand_brackets___expand_brackets_2.1.4.tgz";
- url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
- sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
- };
- }
- {
- name = "expand_tilde___expand_tilde_2.0.2.tgz";
- path = fetchurl {
- name = "expand_tilde___expand_tilde_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
- sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
- };
- }
- {
- name = "expect___expect_26.5.2.tgz";
- path = fetchurl {
- name = "expect___expect_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/expect/-/expect-26.5.2.tgz";
- sha1 = "3e0631c4a657a83dbec769ad246a2998953a55a6";
- };
- }
- {
- name = "express___express_4.17.1.tgz";
- path = fetchurl {
- name = "express___express_4.17.1.tgz";
- url = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
- sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
- };
- }
- {
- name = "extend_shallow___extend_shallow_2.0.1.tgz";
- path = fetchurl {
- name = "extend_shallow___extend_shallow_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
- sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
- };
- }
- {
- name = "extend_shallow___extend_shallow_3.0.2.tgz";
- path = fetchurl {
- name = "extend_shallow___extend_shallow_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
- sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
- };
- }
- {
- name = "extend___extend_3.0.2.tgz";
- path = fetchurl {
- name = "extend___extend_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
- sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
- };
- }
- {
- name = "extglob___extglob_2.0.4.tgz";
- path = fetchurl {
- name = "extglob___extglob_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
- sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
- };
- }
- {
- name = "extract_files___extract_files_8.1.0.tgz";
- path = fetchurl {
- name = "extract_files___extract_files_8.1.0.tgz";
- url = "https://registry.yarnpkg.com/extract-files/-/extract-files-8.1.0.tgz";
- sha1 = "46a0690d0fe77411a2e3804852adeaa65cd59288";
- };
- }
- {
- name = "extract_from_css___extract_from_css_0.4.4.tgz";
- path = fetchurl {
- name = "extract_from_css___extract_from_css_0.4.4.tgz";
- url = "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz";
- sha1 = "1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92";
- };
- }
- {
- name = "extsprintf___extsprintf_1.3.0.tgz";
- path = fetchurl {
- name = "extsprintf___extsprintf_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
- sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
- };
- }
- {
- name = "fake_xml_http_request___fake_xml_http_request_2.1.1.tgz";
- path = fetchurl {
- name = "fake_xml_http_request___fake_xml_http_request_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-2.1.1.tgz";
- sha1 = "279fdac235840d7a4dff77d98ec44bce9fc690a6";
- };
- }
- {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- path = fetchurl {
- name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
- sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
- };
- }
- {
- name = "fast_glob___fast_glob_3.2.5.tgz";
- path = fetchurl {
- name = "fast_glob___fast_glob_3.2.5.tgz";
- url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz";
- sha1 = "7939af2a656de79a4f1901903ee8adcaa7cb9661";
- };
- }
- {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
- path = fetchurl {
- name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
- sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
- };
- }
- {
- name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
- path = fetchurl {
- name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
- sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
- };
- }
- {
- name = "fast_mersenne_twister___fast_mersenne_twister_1.0.2.tgz";
- path = fetchurl {
- name = "fast_mersenne_twister___fast_mersenne_twister_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/fast-mersenne-twister/-/fast-mersenne-twister-1.0.2.tgz";
- sha1 = "5ead7caf3ace592a5789d11767732bd81cbaaa56";
- };
- }
- {
- name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
- path = fetchurl {
- name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
- url = "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
- sha1 = "9990f7d3a88cc5a9ffd1f1745745251700d497e2";
- };
- }
- {
- name = "fastq___fastq_1.10.1.tgz";
- path = fetchurl {
- name = "fastq___fastq_1.10.1.tgz";
- url = "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz";
- sha1 = "8b8f2ac8bf3632d67afcd65dac248d5fdc45385e";
- };
- }
- {
- name = "fault___fault_1.0.4.tgz";
- path = fetchurl {
- name = "fault___fault_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz";
- sha1 = "eafcfc0a6d214fc94601e170df29954a4f842f13";
- };
- }
- {
- name = "faye_websocket___faye_websocket_0.11.3.tgz";
- path = fetchurl {
- name = "faye_websocket___faye_websocket_0.11.3.tgz";
- url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz";
- sha1 = "5c0e9a8968e8912c286639fde977a8b209f2508e";
- };
- }
- {
- name = "fb_watchman___fb_watchman_2.0.1.tgz";
- path = fetchurl {
- name = "fb_watchman___fb_watchman_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz";
- sha1 = "fc84fb39d2709cf3ff6d743706157bb5708a8a85";
- };
- }
- {
- name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
- path = fetchurl {
- name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
- url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
- sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
- };
- }
- {
- name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
- path = fetchurl {
- name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
- sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
- };
- }
- {
- name = "file_loader___file_loader_6.2.0.tgz";
- path = fetchurl {
- name = "file_loader___file_loader_6.2.0.tgz";
- url = "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz";
- sha1 = "baef7cf8e1840df325e4390b4484879480eebe4d";
- };
- }
- {
- name = "fileset___fileset_2.0.3.tgz";
- path = fetchurl {
- name = "fileset___fileset_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz";
- sha1 = "8e7548a96d3cc2327ee5e674168723a333bba2a0";
- };
- }
- {
- name = "fill_range___fill_range_4.0.0.tgz";
- path = fetchurl {
- name = "fill_range___fill_range_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
- sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
- };
- }
- {
- name = "fill_range___fill_range_7.0.1.tgz";
- path = fetchurl {
- name = "fill_range___fill_range_7.0.1.tgz";
- url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
- sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
- };
- }
- {
- name = "finalhandler___finalhandler_1.1.0.tgz";
- path = fetchurl {
- name = "finalhandler___finalhandler_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz";
- sha1 = "ce0b6855b45853e791b2fcc680046d88253dd7f5";
- };
- }
- {
- name = "finalhandler___finalhandler_1.1.2.tgz";
- path = fetchurl {
- name = "finalhandler___finalhandler_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
- sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
- };
- }
- {
- name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
- path = fetchurl {
- name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
- sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7";
- };
- }
- {
- name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
- path = fetchurl {
- name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
- url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
- sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880";
- };
- }
- {
- name = "find_root___find_root_1.1.0.tgz";
- path = fetchurl {
- name = "find_root___find_root_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz";
- sha1 = "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4";
- };
- }
- {
- name = "find_up___find_up_2.1.0.tgz";
- path = fetchurl {
- name = "find_up___find_up_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
- sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
- };
- }
- {
- name = "find_up___find_up_3.0.0.tgz";
- path = fetchurl {
- name = "find_up___find_up_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
- sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
- };
- }
- {
- name = "find_up___find_up_4.1.0.tgz";
- path = fetchurl {
- name = "find_up___find_up_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
- sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
- };
- }
- {
- name = "findup_sync___findup_sync_3.0.0.tgz";
- path = fetchurl {
- name = "findup_sync___findup_sync_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
- sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
- };
- }
- {
- name = "flat_cache___flat_cache_3.0.4.tgz";
- path = fetchurl {
- name = "flat_cache___flat_cache_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
- sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
- };
- }
- {
- name = "flatted___flatted_2.0.0.tgz";
- path = fetchurl {
- name = "flatted___flatted_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz";
- sha1 = "55122b6536ea496b4b44893ee2608141d10d9916";
- };
- }
- {
- name = "flatted___flatted_3.1.1.tgz";
- path = fetchurl {
- name = "flatted___flatted_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
- sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
- };
- }
- {
- name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
- path = fetchurl {
- name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
- sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
- };
- }
- {
- name = "follow_redirects___follow_redirects_1.13.0.tgz";
- path = fetchurl {
- name = "follow_redirects___follow_redirects_1.13.0.tgz";
- url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz";
- sha1 = "b42e8d93a2a7eea5ed88633676d6597bc8e384db";
- };
- }
- {
- name = "for_in___for_in_1.0.2.tgz";
- path = fetchurl {
- name = "for_in___for_in_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
- sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
- };
- }
- {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- path = fetchurl {
- name = "forever_agent___forever_agent_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
- sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
- };
- }
- {
- name = "form_data___form_data_2.3.3.tgz";
- path = fetchurl {
- name = "form_data___form_data_2.3.3.tgz";
- url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
- sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
- };
- }
- {
- name = "format___format_0.2.2.tgz";
- path = fetchurl {
- name = "format___format_0.2.2.tgz";
- url = "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz";
- sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
- };
- }
- {
- name = "forwarded___forwarded_0.1.2.tgz";
- path = fetchurl {
- name = "forwarded___forwarded_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
- sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
- };
- }
- {
- name = "fragment_cache___fragment_cache_0.2.1.tgz";
- path = fetchurl {
- name = "fragment_cache___fragment_cache_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
- sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
- };
- }
- {
- name = "fresh___fresh_0.5.2.tgz";
- path = fetchurl {
- name = "fresh___fresh_0.5.2.tgz";
- url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
- sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
- };
- }
- {
- name = "from2___from2_2.3.0.tgz";
- path = fetchurl {
- name = "from2___from2_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
- sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
- };
- }
- {
- name = "fs_extra___fs_extra_7.0.1.tgz";
- path = fetchurl {
- name = "fs_extra___fs_extra_7.0.1.tgz";
- url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
- sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
- };
- }
- {
- name = "fs_minipass___fs_minipass_2.0.0.tgz";
- path = fetchurl {
- name = "fs_minipass___fs_minipass_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz";
- sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1";
- };
- }
- {
- name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
- path = fetchurl {
- name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
- sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
- };
- }
- {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- path = fetchurl {
- name = "fs.realpath___fs.realpath_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
- sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
- };
- }
- {
- name = "fsevents___fsevents_2.1.3.tgz";
- path = fetchurl {
- name = "fsevents___fsevents_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz";
- sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e";
- };
- }
- {
- name = "function_bind___function_bind_1.1.1.tgz";
- path = fetchurl {
- name = "function_bind___function_bind_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
- sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
- };
- }
- {
- name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
- path = fetchurl {
- name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
- sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
- };
- }
- {
- name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
- path = fetchurl {
- name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.0.tgz";
- sha1 = "832f6489fbe876769459599c914a670ec22947ee";
- };
- }
- {
- name = "gensync___gensync_1.0.0_beta.1.tgz";
- path = fetchurl {
- name = "gensync___gensync_1.0.0_beta.1.tgz";
- url = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz";
- sha1 = "58f4361ff987e5ff6e1e7a210827aa371eaac269";
- };
- }
- {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- path = fetchurl {
- name = "get_caller_file___get_caller_file_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
- sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
- };
- }
- {
- name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
- path = fetchurl {
- name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
- sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
- };
- }
- {
- name = "get_package_type___get_package_type_0.1.0.tgz";
- path = fetchurl {
- name = "get_package_type___get_package_type_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz";
- sha1 = "8de2d803cff44df3bc6c456e6668b36c3926e11a";
- };
- }
- {
- name = "get_stdin___get_stdin_6.0.0.tgz";
- path = fetchurl {
- name = "get_stdin___get_stdin_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
- sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
- };
- }
- {
- name = "get_stdin___get_stdin_8.0.0.tgz";
- path = fetchurl {
- name = "get_stdin___get_stdin_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz";
- sha1 = "cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53";
- };
- }
- {
- name = "get_stream___get_stream_4.1.0.tgz";
- path = fetchurl {
- name = "get_stream___get_stream_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
- sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
- };
- }
- {
- name = "get_stream___get_stream_5.2.0.tgz";
- path = fetchurl {
- name = "get_stream___get_stream_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
- sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
- };
- }
- {
- name = "get_value___get_value_2.0.6.tgz";
- path = fetchurl {
- name = "get_value___get_value_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
- sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
- };
- }
- {
- name = "getpass___getpass_0.1.7.tgz";
- path = fetchurl {
- name = "getpass___getpass_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
- sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
- };
- }
- {
- name = "gettext_extractor_vue___gettext_extractor_vue_5.0.0.tgz";
- path = fetchurl {
- name = "gettext_extractor_vue___gettext_extractor_vue_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-5.0.0.tgz";
- sha1 = "dc463868d49e14097c4545c8ed4851d8d3edd6dd";
- };
- }
- {
- name = "gettext_extractor___gettext_extractor_3.5.3.tgz";
- path = fetchurl {
- name = "gettext_extractor___gettext_extractor_3.5.3.tgz";
- url = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.5.3.tgz";
- sha1 = "6ed46931c154a7485a80fa8b91b835ff7b8d0411";
- };
- }
- {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- path = fetchurl {
- name = "glob_parent___glob_parent_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
- sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
- };
- }
- {
- name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
- path = fetchurl {
- name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
- sha1 = "c75297087c851b9a578bd217dd59a92f59fe546e";
- };
- }
- {
- name = "glob___glob_7.1.7.tgz";
- path = fetchurl {
- name = "glob___glob_7.1.7.tgz";
- url = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
- sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
- };
- }
- {
- name = "global_dirs___global_dirs_2.0.1.tgz";
- path = fetchurl {
- name = "global_dirs___global_dirs_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
- sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
- };
- }
- {
- name = "global_modules___global_modules_1.0.0.tgz";
- path = fetchurl {
- name = "global_modules___global_modules_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
- sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
- };
- }
- {
- name = "global_modules___global_modules_2.0.0.tgz";
- path = fetchurl {
- name = "global_modules___global_modules_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
- sha1 = "997605ad2345f27f51539bea26574421215c7780";
- };
- }
- {
- name = "global_prefix___global_prefix_1.0.2.tgz";
- path = fetchurl {
- name = "global_prefix___global_prefix_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
- sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
- };
- }
- {
- name = "global_prefix___global_prefix_3.0.0.tgz";
- path = fetchurl {
- name = "global_prefix___global_prefix_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
- sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
- };
- }
- {
- name = "global___global_4.4.0.tgz";
- path = fetchurl {
- name = "global___global_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz";
- sha1 = "3e7b105179006a323ed71aafca3e9c57a5cc6406";
- };
- }
- {
- name = "globals___globals_11.12.0.tgz";
- path = fetchurl {
- name = "globals___globals_11.12.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
- sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
- };
- }
- {
- name = "globals___globals_13.9.0.tgz";
- path = fetchurl {
- name = "globals___globals_13.9.0.tgz";
- url = "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz";
- sha1 = "4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb";
- };
- }
- {
- name = "globby___globby_11.0.3.tgz";
- path = fetchurl {
- name = "globby___globby_11.0.3.tgz";
- url = "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz";
- sha1 = "9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb";
- };
- }
- {
- name = "globby___globby_6.1.0.tgz";
- path = fetchurl {
- name = "globby___globby_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
- sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
- };
- }
- {
- name = "globjoin___globjoin_0.1.4.tgz";
- path = fetchurl {
- name = "globjoin___globjoin_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz";
- sha1 = "2f4494ac8919e3767c5cbb691e9f463324285d43";
- };
- }
- {
- name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
- path = fetchurl {
- name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz";
- sha1 = "fe9dec5f3c557eead09ff868c65826be54d067b3";
- };
- }
- {
- name = "good_listener___good_listener_1.2.2.tgz";
- path = fetchurl {
- name = "good_listener___good_listener_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz";
- sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50";
- };
- }
- {
- name = "got___got_9.6.0.tgz";
- path = fetchurl {
- name = "got___got_9.6.0.tgz";
- url = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz";
- sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85";
- };
- }
- {
- name = "graceful_fs___graceful_fs_4.2.4.tgz";
- path = fetchurl {
- name = "graceful_fs___graceful_fs_4.2.4.tgz";
- url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
- sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
- };
- }
- {
- name = "graphlib___graphlib_2.1.8.tgz";
- path = fetchurl {
- name = "graphlib___graphlib_2.1.8.tgz";
- url = "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz";
- sha1 = "5761d414737870084c92ec7b5dbcb0592c9d35da";
- };
- }
- {
- name = "graphql_tag___graphql_tag_2.11.0.tgz";
- path = fetchurl {
- name = "graphql_tag___graphql_tag_2.11.0.tgz";
- url = "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz";
- sha1 = "1deb53a01c46a7eb401d6cb59dec86fa1cccbffd";
- };
- }
- {
- name = "graphql___graphql_15.4.0.tgz";
- path = fetchurl {
- name = "graphql___graphql_15.4.0.tgz";
- url = "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz";
- sha1 = "e459dea1150da5a106486ba7276518b5295a4347";
- };
- }
- {
- name = "growly___growly_1.3.0.tgz";
- path = fetchurl {
- name = "growly___growly_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
- sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
- };
- }
- {
- name = "gzip_size___gzip_size_6.0.0.tgz";
- path = fetchurl {
- name = "gzip_size___gzip_size_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz";
- sha1 = "065367fd50c239c0671cbcbad5be3e2eeb10e462";
- };
- }
- {
- name = "handle_thing___handle_thing_2.0.0.tgz";
- path = fetchurl {
- name = "handle_thing___handle_thing_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz";
- sha1 = "0e039695ff50c93fc288557d696f3c1dc6776754";
- };
- }
- {
- name = "handlebars___handlebars_4.7.2.tgz";
- path = fetchurl {
- name = "handlebars___handlebars_4.7.2.tgz";
- url = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.2.tgz";
- sha1 = "01127b3840156a0927058779482031afe0e730d7";
- };
- }
- {
- name = "har_schema___har_schema_2.0.0.tgz";
- path = fetchurl {
- name = "har_schema___har_schema_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
- sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
- };
- }
- {
- name = "har_validator___har_validator_5.1.5.tgz";
- path = fetchurl {
- name = "har_validator___har_validator_5.1.5.tgz";
- url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
- sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
- };
- }
- {
- name = "hard_rejection___hard_rejection_2.1.0.tgz";
- path = fetchurl {
- name = "hard_rejection___hard_rejection_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz";
- sha1 = "1c6eda5c1685c63942766d79bb40ae773cecd883";
- };
- }
- {
- name = "has_binary2___has_binary2_1.0.2.tgz";
- path = fetchurl {
- name = "has_binary2___has_binary2_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz";
- sha1 = "e83dba49f0b9be4d026d27365350d9f03f54be98";
- };
- }
- {
- name = "has_cors___has_cors_1.1.0.tgz";
- path = fetchurl {
- name = "has_cors___has_cors_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz";
- sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
- };
- }
- {
- name = "has_flag___has_flag_3.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
- sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
- };
- }
- {
- name = "has_flag___has_flag_4.0.0.tgz";
- path = fetchurl {
- name = "has_flag___has_flag_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
- sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
- };
- }
- {
- name = "has_symbols___has_symbols_1.0.2.tgz";
- path = fetchurl {
- name = "has_symbols___has_symbols_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
- sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
- };
- }
- {
- name = "has_value___has_value_0.3.1.tgz";
- path = fetchurl {
- name = "has_value___has_value_0.3.1.tgz";
- url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
- sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
- };
- }
- {
- name = "has_value___has_value_1.0.0.tgz";
- path = fetchurl {
- name = "has_value___has_value_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
- sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
- };
- }
- {
- name = "has_values___has_values_0.1.4.tgz";
- path = fetchurl {
- name = "has_values___has_values_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
- sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
- };
- }
- {
- name = "has_values___has_values_1.0.0.tgz";
- path = fetchurl {
- name = "has_values___has_values_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
- sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
- };
- }
- {
- name = "has_yarn___has_yarn_2.1.0.tgz";
- path = fetchurl {
- name = "has_yarn___has_yarn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz";
- sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77";
- };
- }
- {
- name = "has___has_1.0.3.tgz";
- path = fetchurl {
- name = "has___has_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
- sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
- };
- }
- {
- name = "hash_base___hash_base_2.0.2.tgz";
- path = fetchurl {
- name = "hash_base___hash_base_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz";
- sha1 = "66ea1d856db4e8a5470cadf6fce23ae5244ef2e1";
- };
- }
- {
- name = "hash_base___hash_base_3.0.4.tgz";
- path = fetchurl {
- name = "hash_base___hash_base_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
- sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
- };
- }
- {
- name = "hash_sum___hash_sum_1.0.2.tgz";
- path = fetchurl {
- name = "hash_sum___hash_sum_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz";
- sha1 = "33b40777754c6432573c120cc3808bbd10d47f04";
- };
- }
- {
- name = "hash.js___hash.js_1.1.3.tgz";
- path = fetchurl {
- name = "hash.js___hash.js_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz";
- sha1 = "340dedbe6290187151c1ea1d777a3448935df846";
- };
- }
- {
- name = "he___he_1.2.0.tgz";
- path = fetchurl {
- name = "he___he_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
- sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
- };
- }
- {
- name = "highlight.js___highlight.js_10.7.2.tgz";
- path = fetchurl {
- name = "highlight.js___highlight.js_10.7.2.tgz";
- url = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz";
- sha1 = "89319b861edc66c48854ed1e6da21ea89f847360";
- };
- }
- {
- name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
- path = fetchurl {
- name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
- sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
- };
- }
- {
- name = "homedir_polyfill___homedir_polyfill_1.0.1.tgz";
- path = fetchurl {
- name = "homedir_polyfill___homedir_polyfill_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz";
- sha1 = "4c2bbc8a758998feebf5ed68580f76d46768b4bc";
- };
- }
- {
- name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
- path = fetchurl {
- name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
- url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
- sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
- };
- }
- {
- name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
- path = fetchurl {
- name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
- url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz";
- sha1 = "6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d";
- };
- }
- {
- name = "hpack.js___hpack.js_2.1.6.tgz";
- path = fetchurl {
- name = "hpack.js___hpack.js_2.1.6.tgz";
- url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
- sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
- };
- }
- {
- name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
- path = fetchurl {
- name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz";
- sha1 = "42a6dc4fd33f00281176e8b23759ca4e4fa185f3";
- };
- }
- {
- name = "html_entities___html_entities_1.4.0.tgz";
- path = fetchurl {
- name = "html_entities___html_entities_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz";
- sha1 = "cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc";
- };
- }
- {
- name = "html_escaper___html_escaper_2.0.0.tgz";
- path = fetchurl {
- name = "html_escaper___html_escaper_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz";
- sha1 = "71e87f931de3fe09e56661ab9a29aadec707b491";
- };
- }
- {
- name = "html_minifier___html_minifier_4.0.0.tgz";
- path = fetchurl {
- name = "html_minifier___html_minifier_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz";
- sha1 = "cca9aad8bce1175e02e17a8c33e46d8988889f56";
- };
- }
- {
- name = "html_tags___html_tags_3.1.0.tgz";
- path = fetchurl {
- name = "html_tags___html_tags_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz";
- sha1 = "7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140";
- };
- }
- {
- name = "htmlparser2___htmlparser2_3.10.1.tgz";
- path = fetchurl {
- name = "htmlparser2___htmlparser2_3.10.1.tgz";
- url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz";
- sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f";
- };
- }
- {
- name = "htmlparser2___htmlparser2_6.1.0.tgz";
- path = fetchurl {
- name = "htmlparser2___htmlparser2_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz";
- sha1 = "c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7";
- };
- }
- {
- name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
- path = fetchurl {
- name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
- sha1 = "49e91c5cbf36c9b94bcfcd71c23d5249ec74e390";
- };
- }
- {
- name = "http_deceiver___http_deceiver_1.2.7.tgz";
- path = fetchurl {
- name = "http_deceiver___http_deceiver_1.2.7.tgz";
- url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
- sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
- };
- }
- {
- name = "http_errors___http_errors_1.7.2.tgz";
- path = fetchurl {
- name = "http_errors___http_errors_1.7.2.tgz";
- url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
- sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
- };
- }
- {
- name = "http_errors___http_errors_1.6.2.tgz";
- path = fetchurl {
- name = "http_errors___http_errors_1.6.2.tgz";
- url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz";
- sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
- };
- }
- {
- name = "http_parser_js___http_parser_js_0.5.3.tgz";
- path = fetchurl {
- name = "http_parser_js___http_parser_js_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz";
- sha1 = "01d2709c79d41698bb01d4decc5e9da4e4a033d9";
- };
- }
- {
- name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
- path = fetchurl {
- name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
- sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
- };
- }
- {
- name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
- path = fetchurl {
- name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
- url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
- sha1 = "183c7dc4aa1479150306498c210cdaf96080a43a";
- };
- }
- {
- name = "http_proxy___http_proxy_1.18.1.tgz";
- path = fetchurl {
- name = "http_proxy___http_proxy_1.18.1.tgz";
- url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz";
- sha1 = "401541f0534884bbf95260334e72f88ee3976549";
- };
- }
- {
- name = "http_signature___http_signature_1.2.0.tgz";
- path = fetchurl {
- name = "http_signature___http_signature_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
- sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
- };
- }
- {
- name = "https_browserify___https_browserify_1.0.0.tgz";
- path = fetchurl {
- name = "https_browserify___https_browserify_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
- sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
- };
- }
- {
- name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
- path = fetchurl {
- name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
- url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz";
- sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b";
- };
- }
- {
- name = "human_signals___human_signals_1.1.1.tgz";
- path = fetchurl {
- name = "human_signals___human_signals_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz";
- sha1 = "c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3";
- };
- }
- {
- name = "iconv_lite___iconv_lite_0.4.24.tgz";
- path = fetchurl {
- name = "iconv_lite___iconv_lite_0.4.24.tgz";
- url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
- sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
- };
- }
- {
- name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
- path = fetchurl {
- name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz";
- sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
- };
- }
- {
- name = "icss_utils___icss_utils_4.1.1.tgz";
- path = fetchurl {
- name = "icss_utils___icss_utils_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
- sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
- };
- }
- {
- name = "ieee754___ieee754_1.1.13.tgz";
- path = fetchurl {
- name = "ieee754___ieee754_1.1.13.tgz";
- url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
- sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
- };
- }
- {
- name = "iferr___iferr_0.1.5.tgz";
- path = fetchurl {
- name = "iferr___iferr_0.1.5.tgz";
- url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
- sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
- };
- }
- {
- name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
- path = fetchurl {
- name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
- sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
- };
- }
- {
- name = "ignore___ignore_4.0.6.tgz";
- path = fetchurl {
- name = "ignore___ignore_4.0.6.tgz";
- url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
- sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
- };
- }
- {
- name = "ignore___ignore_5.1.8.tgz";
- path = fetchurl {
- name = "ignore___ignore_5.1.8.tgz";
- url = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
- sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
- };
- }
- {
- name = "immediate___immediate_3.0.6.tgz";
- path = fetchurl {
- name = "immediate___immediate_3.0.6.tgz";
- url = "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz";
- sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
- };
- }
- {
- name = "immer___immer_7.0.7.tgz";
- path = fetchurl {
- name = "immer___immer_7.0.7.tgz";
- url = "https://registry.yarnpkg.com/immer/-/immer-7.0.7.tgz";
- sha1 = "9dfe713d49bf871cc59aedfce59b1992fa37a977";
- };
- }
- {
- name = "import_fresh___import_fresh_3.3.0.tgz";
- path = fetchurl {
- name = "import_fresh___import_fresh_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
- sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
- };
- }
- {
- name = "import_lazy___import_lazy_2.1.0.tgz";
- path = fetchurl {
- name = "import_lazy___import_lazy_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
- sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
- };
- }
- {
- name = "import_lazy___import_lazy_4.0.0.tgz";
- path = fetchurl {
- name = "import_lazy___import_lazy_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz";
- sha1 = "e8eb627483a0a43da3c03f3e35548be5cb0cc153";
- };
- }
- {
- name = "import_local___import_local_2.0.0.tgz";
- path = fetchurl {
- name = "import_local___import_local_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
- sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
- };
- }
- {
- name = "import_local___import_local_3.0.2.tgz";
- path = fetchurl {
- name = "import_local___import_local_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz";
- sha1 = "a8cfd0431d1de4a2199703d003e3e62364fa6db6";
- };
- }
- {
- name = "imurmurhash___imurmurhash_0.1.4.tgz";
- path = fetchurl {
- name = "imurmurhash___imurmurhash_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
- sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
- };
- }
- {
- name = "indent_string___indent_string_4.0.0.tgz";
- path = fetchurl {
- name = "indent_string___indent_string_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz";
- sha1 = "624f8f4497d619b2d9768531d58f4122854d7251";
- };
- }
- {
- name = "indexes_of___indexes_of_1.0.1.tgz";
- path = fetchurl {
- name = "indexes_of___indexes_of_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
- sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
- };
- }
- {
- name = "indexof___indexof_0.0.1.tgz";
- path = fetchurl {
- name = "indexof___indexof_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
- sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
- };
- }
- {
- name = "infer_owner___infer_owner_1.0.4.tgz";
- path = fetchurl {
- name = "infer_owner___infer_owner_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
- sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
- };
- }
- {
- name = "inflected___inflected_2.0.4.tgz";
- path = fetchurl {
- name = "inflected___inflected_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/inflected/-/inflected-2.0.4.tgz";
- sha1 = "323770961ccbe992a98ea930512e9a82d3d3ef77";
- };
- }
- {
- name = "inflight___inflight_1.0.6.tgz";
- path = fetchurl {
- name = "inflight___inflight_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
- sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
- };
- }
- {
- name = "inherits___inherits_2.0.4.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
- sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
- };
- }
- {
- name = "inherits___inherits_2.0.1.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
- sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
- };
- }
- {
- name = "inherits___inherits_2.0.3.tgz";
- path = fetchurl {
- name = "inherits___inherits_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
- sha1 = "633c2c83e3da42a502f52466022480f4208261de";
- };
- }
- {
- name = "ini___ini_1.3.8.tgz";
- path = fetchurl {
- name = "ini___ini_1.3.8.tgz";
- url = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
- sha1 = "a29da425b48806f34767a4efce397269af28432c";
- };
- }
- {
- name = "internal_ip___internal_ip_4.3.0.tgz";
- path = fetchurl {
- name = "internal_ip___internal_ip_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz";
- sha1 = "845452baad9d2ca3b69c635a137acb9a0dad0907";
- };
- }
- {
- name = "interpret___interpret_1.4.0.tgz";
- path = fetchurl {
- name = "interpret___interpret_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz";
- sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e";
- };
- }
- {
- name = "invariant___invariant_2.2.4.tgz";
- path = fetchurl {
- name = "invariant___invariant_2.2.4.tgz";
- url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
- sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
- };
- }
- {
- name = "ip_regex___ip_regex_2.1.0.tgz";
- path = fetchurl {
- name = "ip_regex___ip_regex_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
- sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
- };
- }
- {
- name = "ip___ip_1.1.5.tgz";
- path = fetchurl {
- name = "ip___ip_1.1.5.tgz";
- url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
- sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
- };
- }
- {
- name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
- path = fetchurl {
- name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz";
- sha1 = "37df74e430a0e47550fe54a2defe30d8acd95f65";
- };
- }
- {
- name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
- path = fetchurl {
- name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
- url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
- sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
- };
- }
- {
- name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
- path = fetchurl {
- name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
- sha1 = "96c6a22b6a23929b11ea0afb1836c36ad4a5d698";
- };
- }
- {
- name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
- path = fetchurl {
- name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
- url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
- sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
- };
- }
- {
- name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
- path = fetchurl {
- name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
- sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
- };
- }
- {
- name = "is_alphabetical___is_alphabetical_1.0.4.tgz";
- path = fetchurl {
- name = "is_alphabetical___is_alphabetical_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz";
- sha1 = "9e7d6b94916be22153745d184c298cbf986a686d";
- };
- }
- {
- name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
- path = fetchurl {
- name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
- sha1 = "7eb9a2431f855f6b1ef1a78e326df515696c4dbf";
- };
- }
- {
- name = "is_arrayish___is_arrayish_0.2.1.tgz";
- path = fetchurl {
- name = "is_arrayish___is_arrayish_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
- sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
- };
- }
- {
- name = "is_binary_path___is_binary_path_2.1.0.tgz";
- path = fetchurl {
- name = "is_binary_path___is_binary_path_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
- sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
- };
- }
- {
- name = "is_buffer___is_buffer_1.1.6.tgz";
- path = fetchurl {
- name = "is_buffer___is_buffer_1.1.6.tgz";
- url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
- sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
- };
- }
- {
- name = "is_buffer___is_buffer_2.0.5.tgz";
- path = fetchurl {
- name = "is_buffer___is_buffer_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz";
- sha1 = "ebc252e400d22ff8d77fa09888821a24a658c191";
- };
- }
- {
- name = "is_callable___is_callable_1.2.3.tgz";
- path = fetchurl {
- name = "is_callable___is_callable_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
- sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
- };
- }
- {
- name = "is_ci___is_ci_2.0.0.tgz";
- path = fetchurl {
- name = "is_ci___is_ci_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
- sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
- };
- }
- {
- name = "is_core_module___is_core_module_2.4.0.tgz";
- path = fetchurl {
- name = "is_core_module___is_core_module_2.4.0.tgz";
- url = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz";
- sha1 = "8e9fc8e15027b011418026e98f0e6f4d86305cc1";
- };
- }
- {
- name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
- path = fetchurl {
- name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
- sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
- };
- }
- {
- name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
- path = fetchurl {
- name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
- sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
- };
- }
- {
- name = "is_date_object___is_date_object_1.0.1.tgz";
- path = fetchurl {
- name = "is_date_object___is_date_object_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
- sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
- };
- }
- {
- name = "is_decimal___is_decimal_1.0.4.tgz";
- path = fetchurl {
- name = "is_decimal___is_decimal_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz";
- sha1 = "65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5";
- };
- }
- {
- name = "is_descriptor___is_descriptor_0.1.6.tgz";
- path = fetchurl {
- name = "is_descriptor___is_descriptor_0.1.6.tgz";
- url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
- sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
- };
- }
- {
- name = "is_descriptor___is_descriptor_1.0.2.tgz";
- path = fetchurl {
- name = "is_descriptor___is_descriptor_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
- sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
- };
- }
- {
- name = "is_docker___is_docker_2.1.1.tgz";
- path = fetchurl {
- name = "is_docker___is_docker_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz";
- sha1 = "4125a88e44e450d384e09047ede71adc2d144156";
- };
- }
- {
- name = "is_extendable___is_extendable_0.1.1.tgz";
- path = fetchurl {
- name = "is_extendable___is_extendable_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
- sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
- };
- }
- {
- name = "is_extendable___is_extendable_1.0.1.tgz";
- path = fetchurl {
- name = "is_extendable___is_extendable_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
- sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
- };
- }
- {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- path = fetchurl {
- name = "is_extglob___is_extglob_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
- sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
- sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
- };
- }
- {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- path = fetchurl {
- name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
- sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
- };
- }
- {
- name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
- path = fetchurl {
- name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
- sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118";
- };
- }
- {
- name = "is_glob___is_glob_4.0.1.tgz";
- path = fetchurl {
- name = "is_glob___is_glob_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
- sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
- };
- }
- {
- name = "is_hexadecimal___is_hexadecimal_1.0.4.tgz";
- path = fetchurl {
- name = "is_hexadecimal___is_hexadecimal_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz";
- sha1 = "cc35c97588da4bd49a8eedd6bc4082d44dcb23a7";
- };
- }
- {
- name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
- path = fetchurl {
- name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz";
- sha1 = "fd3efa79ee670d1187233182d5b0a1dd00313141";
- };
- }
- {
- name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
- path = fetchurl {
- name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
- sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
- };
- }
- {
- name = "is_npm___is_npm_4.0.0.tgz";
- path = fetchurl {
- name = "is_npm___is_npm_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz";
- sha1 = "c90dd8380696df87a7a6d823c20d0b12bbe3c84d";
- };
- }
- {
- name = "is_number___is_number_3.0.0.tgz";
- path = fetchurl {
- name = "is_number___is_number_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
- sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
- };
- }
- {
- name = "is_number___is_number_7.0.0.tgz";
- path = fetchurl {
- name = "is_number___is_number_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
- sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
- };
- }
- {
- name = "is_obj___is_obj_2.0.0.tgz";
- path = fetchurl {
- name = "is_obj___is_obj_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
- sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
- };
- }
- {
- name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
- path = fetchurl {
- name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
- sha1 = "67d43b82664a7b5191fd9119127eb300048a9fdb";
- };
- }
- {
- name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
- path = fetchurl {
- name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
- sha1 = "bfe2dca26c69f397265a4009963602935a053acb";
- };
- }
- {
- name = "is_path_inside___is_path_inside_2.1.0.tgz";
- path = fetchurl {
- name = "is_path_inside___is_path_inside_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz";
- sha1 = "7c9810587d659a40d27bcdb4d5616eab059494b2";
- };
- }
- {
- name = "is_path_inside___is_path_inside_3.0.2.tgz";
- path = fetchurl {
- name = "is_path_inside___is_path_inside_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
- sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
- };
- }
- {
- name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
- path = fetchurl {
- name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
- sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
- };
- }
- {
- name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
- path = fetchurl {
- name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
- sha1 = "45e42e37fccf1f40da8e5f76ee21515840c09287";
- };
- }
- {
- name = "is_plain_object___is_plain_object_2.0.4.tgz";
- path = fetchurl {
- name = "is_plain_object___is_plain_object_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
- sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
- };
- }
- {
- name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
- path = fetchurl {
- name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
- sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
- };
- }
- {
- name = "is_regex___is_regex_1.1.3.tgz";
- path = fetchurl {
- name = "is_regex___is_regex_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz";
- sha1 = "d029f9aff6448b93ebbe3f33dac71511fdcbef9f";
- };
- }
- {
- name = "is_regexp___is_regexp_2.1.0.tgz";
- path = fetchurl {
- name = "is_regexp___is_regexp_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz";
- sha1 = "cd734a56864e23b956bf4e7c66c396a4c0b22c2d";
- };
- }
- {
- name = "is_stream___is_stream_1.1.0.tgz";
- path = fetchurl {
- name = "is_stream___is_stream_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
- sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
- };
- }
- {
- name = "is_stream___is_stream_2.0.0.tgz";
- path = fetchurl {
- name = "is_stream___is_stream_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz";
- sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3";
- };
- }
- {
- name = "is_string___is_string_1.0.5.tgz";
- path = fetchurl {
- name = "is_string___is_string_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
- sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
- };
- }
- {
- name = "is_symbol___is_symbol_1.0.2.tgz";
- path = fetchurl {
- name = "is_symbol___is_symbol_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
- sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
- };
- }
- {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- path = fetchurl {
- name = "is_typedarray___is_typedarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
- sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
- };
- }
- {
- name = "is_whitespace___is_whitespace_0.3.0.tgz";
- path = fetchurl {
- name = "is_whitespace___is_whitespace_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz";
- sha1 = "1639ecb1be036aec69a54cbb401cfbed7114ab7f";
- };
- }
- {
- name = "is_windows___is_windows_1.0.2.tgz";
- path = fetchurl {
- name = "is_windows___is_windows_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
- sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
- };
- }
- {
- name = "is_wsl___is_wsl_1.1.0.tgz";
- path = fetchurl {
- name = "is_wsl___is_wsl_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
- sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
- };
- }
- {
- name = "is_wsl___is_wsl_2.2.0.tgz";
- path = fetchurl {
- name = "is_wsl___is_wsl_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz";
- sha1 = "74a4c76e77ca9fd3f932f290c17ea326cd157271";
- };
- }
- {
- name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
- path = fetchurl {
- name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
- sha1 = "d502d3382590ea3004893746754c89139973e232";
- };
- }
- {
- name = "isarray___isarray_1.0.0.tgz";
- path = fetchurl {
- name = "isarray___isarray_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
- sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
- };
- }
- {
- name = "isarray___isarray_2.0.1.tgz";
- path = fetchurl {
- name = "isarray___isarray_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz";
- sha1 = "a37d94ed9cda2d59865c9f76fe596ee1f338741e";
- };
- }
- {
- name = "isbinaryfile___isbinaryfile_3.0.2.tgz";
- path = fetchurl {
- name = "isbinaryfile___isbinaryfile_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz";
- sha1 = "4a3e974ec0cba9004d3fc6cde7209ea69368a621";
- };
- }
- {
- name = "isexe___isexe_2.0.0.tgz";
- path = fetchurl {
- name = "isexe___isexe_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
- sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
- };
- }
- {
- name = "isobject___isobject_2.1.0.tgz";
- path = fetchurl {
- name = "isobject___isobject_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
- sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
- };
- }
- {
- name = "isobject___isobject_3.0.1.tgz";
- path = fetchurl {
- name = "isobject___isobject_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
- sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
- };
- }
- {
- name = "isstream___isstream_0.1.2.tgz";
- path = fetchurl {
- name = "isstream___isstream_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
- sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
- };
- }
- {
- name = "istanbul_api___istanbul_api_2.1.6.tgz";
- path = fetchurl {
- name = "istanbul_api___istanbul_api_2.1.6.tgz";
- url = "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.6.tgz";
- sha1 = "d61702a9d1c66ad89d92e66d401e16b0bda4a35f";
- };
- }
- {
- name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
- path = fetchurl {
- name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
- sha1 = "675f0ab69503fad4b1d849f736baaca803344f49";
- };
- }
- {
- name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
- path = fetchurl {
- name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
- sha1 = "f5944a37c70b550b02a78a5c3b2055b280cec8ec";
- };
- }
- {
- name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
- path = fetchurl {
- name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz";
- sha1 = "c95695f383d4f8f60df1f04252a9550e15b5b133";
- };
- }
- {
- name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
- path = fetchurl {
- name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
- sha1 = "a5f63d91f0bbc0c3e479ef4c5de027335ec6d630";
- };
- }
- {
- name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
- path = fetchurl {
- name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
- sha1 = "873c6fff897450118222774696a3f28902d77c1d";
- };
- }
- {
- name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
- path = fetchurl {
- name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
- sha1 = "5a8113cd746d43c4889eba36ab10e7d50c9b4f33";
- };
- }
- {
- name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
- path = fetchurl {
- name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
- sha1 = "7518fe52ea44de372f460a76b5ecda9ffb73d8a6";
- };
- }
- {
- name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
- path = fetchurl {
- name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
- sha1 = "284997c48211752ec486253da97e3879defba8c8";
- };
- }
- {
- name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
- path = fetchurl {
- name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
- sha1 = "75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9";
- };
- }
- {
- name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
- path = fetchurl {
- name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
- url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz";
- sha1 = "7b4f2660d82b29303a8fe6091f8ca4bf058da1af";
- };
- }
- {
- name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
- path = fetchurl {
- name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
- sha1 = "d593210e5000683750cb09fc0644e4b6e27fd53b";
- };
- }
- {
- name = "istextorbinary___istextorbinary_2.2.1.tgz";
- path = fetchurl {
- name = "istextorbinary___istextorbinary_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz";
- sha1 = "a5231a08ef6dd22b268d0895084cf8d58b5bec53";
- };
- }
- {
- name = "jasmine_core___jasmine_core_2.9.0.tgz";
- path = fetchurl {
- name = "jasmine_core___jasmine_core_2.9.0.tgz";
- url = "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.0.tgz";
- sha1 = "bfbb56defcd30789adec5a3fbba8504233289c72";
- };
- }
- {
- name = "jasmine_diff___jasmine_diff_0.1.3.tgz";
- path = fetchurl {
- name = "jasmine_diff___jasmine_diff_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz";
- sha1 = "93ccc2dcc41028c5ddd4606558074839f2deeaa8";
- };
- }
- {
- name = "jasmine_jquery___jasmine_jquery_2.1.1.tgz";
- path = fetchurl {
- name = "jasmine_jquery___jasmine_jquery_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/jasmine-jquery/-/jasmine-jquery-2.1.1.tgz";
- sha1 = "d4095e646944a26763235769ab018d9f30f0d47b";
- };
- }
- {
- name = "jed___jed_1.1.1.tgz";
- path = fetchurl {
- name = "jed___jed_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz";
- sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
- };
- }
- {
- name = "jest_canvas_mock___jest_canvas_mock_2.1.2.tgz";
- path = fetchurl {
- name = "jest_canvas_mock___jest_canvas_mock_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.1.2.tgz";
- sha1 = "0d16c9f91534f773fd132fc289f2e6b6db8faa28";
- };
- }
- {
- name = "jest_changed_files___jest_changed_files_26.5.2.tgz";
- path = fetchurl {
- name = "jest_changed_files___jest_changed_files_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.5.2.tgz";
- sha1 = "330232c6a5c09a7f040a5870e8f0a9c6abcdbed5";
- };
- }
- {
- name = "jest_cli___jest_cli_26.5.2.tgz";
- path = fetchurl {
- name = "jest_cli___jest_cli_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.5.2.tgz";
- sha1 = "0df114399b4036a3f046f0a9f25c50372c76b3a2";
- };
- }
- {
- name = "jest_config___jest_config_26.5.2.tgz";
- path = fetchurl {
- name = "jest_config___jest_config_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-config/-/jest-config-26.5.2.tgz";
- sha1 = "6e828e25f10124433dd008fbd83348636de0972a";
- };
- }
- {
- name = "jest_diff___jest_diff_26.5.2.tgz";
- path = fetchurl {
- name = "jest_diff___jest_diff_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.5.2.tgz";
- sha1 = "8e26cb32dc598e8b8a1b9deff55316f8313c8053";
- };
- }
- {
- name = "jest_docblock___jest_docblock_26.0.0.tgz";
- path = fetchurl {
- name = "jest_docblock___jest_docblock_26.0.0.tgz";
- url = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz";
- sha1 = "3e2fa20899fc928cb13bd0ff68bd3711a36889b5";
- };
- }
- {
- name = "jest_each___jest_each_26.5.2.tgz";
- path = fetchurl {
- name = "jest_each___jest_each_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-each/-/jest-each-26.5.2.tgz";
- sha1 = "35e68d6906a7f826d3ca5803cfe91d17a5a34c31";
- };
- }
- {
- name = "jest_environment_jsdom___jest_environment_jsdom_26.5.2.tgz";
- path = fetchurl {
- name = "jest_environment_jsdom___jest_environment_jsdom_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.5.2.tgz";
- sha1 = "5feab05b828fd3e4b96bee5e0493464ddd2bb4bc";
- };
- }
- {
- name = "jest_environment_node___jest_environment_node_26.5.2.tgz";
- path = fetchurl {
- name = "jest_environment_node___jest_environment_node_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.5.2.tgz";
- sha1 = "275a0f01b5e47447056f1541a15ed4da14acca03";
- };
- }
- {
- name = "jest_get_type___jest_get_type_26.3.0.tgz";
- path = fetchurl {
- name = "jest_get_type___jest_get_type_26.3.0.tgz";
- url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz";
- sha1 = "e97dc3c3f53c2b406ca7afaed4493b1d099199e0";
- };
- }
- {
- name = "jest_haste_map___jest_haste_map_26.5.2.tgz";
- path = fetchurl {
- name = "jest_haste_map___jest_haste_map_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.5.2.tgz";
- sha1 = "a15008abfc502c18aa56e4919ed8c96304ceb23d";
- };
- }
- {
- name = "jest_jasmine2___jest_jasmine2_26.5.2.tgz";
- path = fetchurl {
- name = "jest_jasmine2___jest_jasmine2_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.5.2.tgz";
- sha1 = "0e33819d31b1f2aab5efd1e02ce502209c0e64a2";
- };
- }
- {
- name = "jest_junit___jest_junit_12.0.0.tgz";
- path = fetchurl {
- name = "jest_junit___jest_junit_12.0.0.tgz";
- url = "https://registry.yarnpkg.com/jest-junit/-/jest-junit-12.0.0.tgz";
- sha1 = "3ebd4a6a84b50c4ab18323a8f7d9cceb9d845df6";
- };
- }
- {
- name = "jest_leak_detector___jest_leak_detector_26.5.2.tgz";
- path = fetchurl {
- name = "jest_leak_detector___jest_leak_detector_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.5.2.tgz";
- sha1 = "83fcf9a4a6ef157549552cb4f32ca1d6221eea69";
- };
- }
- {
- name = "jest_matcher_utils___jest_matcher_utils_26.5.2.tgz";
- path = fetchurl {
- name = "jest_matcher_utils___jest_matcher_utils_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz";
- sha1 = "6aa2c76ce8b9c33e66f8856ff3a52bab59e6c85a";
- };
- }
- {
- name = "jest_message_util___jest_message_util_26.5.2.tgz";
- path = fetchurl {
- name = "jest_message_util___jest_message_util_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.5.2.tgz";
- sha1 = "6c4c4c46dcfbabb47cd1ba2f6351559729bc11bb";
- };
- }
- {
- name = "jest_mock___jest_mock_26.5.2.tgz";
- path = fetchurl {
- name = "jest_mock___jest_mock_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.5.2.tgz";
- sha1 = "c9302e8ef807f2bfc749ee52e65ad11166a1b6a1";
- };
- }
- {
- name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
- path = fetchurl {
- name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz";
- sha1 = "b704ac0ae028a89108a4d040b3f919dfddc8e33c";
- };
- }
- {
- name = "jest_raw_loader___jest_raw_loader_1.0.1.tgz";
- path = fetchurl {
- name = "jest_raw_loader___jest_raw_loader_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/jest-raw-loader/-/jest-raw-loader-1.0.1.tgz";
- sha1 = "ce9f56d54650f157c4a7d16d224ba5d613bcd626";
- };
- }
- {
- name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
- path = fetchurl {
- name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
- url = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz";
- sha1 = "d25e7184b36e39fd466c3bc41be0971e821fee28";
- };
- }
- {
- name = "jest_resolve_dependencies___jest_resolve_dependencies_26.5.2.tgz";
- path = fetchurl {
- name = "jest_resolve_dependencies___jest_resolve_dependencies_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.2.tgz";
- sha1 = "ee30b7cfea81c81bf5e195a9287d7ec07f893170";
- };
- }
- {
- name = "jest_resolve___jest_resolve_26.5.2.tgz";
- path = fetchurl {
- name = "jest_resolve___jest_resolve_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.5.2.tgz";
- sha1 = "0d719144f61944a428657b755a0e5c6af4fc8602";
- };
- }
- {
- name = "jest_runner___jest_runner_26.5.2.tgz";
- path = fetchurl {
- name = "jest_runner___jest_runner_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.5.2.tgz";
- sha1 = "4f9e6b0bb7eb4710c209a9e145b8a10894f4c19f";
- };
- }
- {
- name = "jest_runtime___jest_runtime_26.5.2.tgz";
- path = fetchurl {
- name = "jest_runtime___jest_runtime_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.5.2.tgz";
- sha1 = "b72f5f79eb2fe0c46bfef4cdb9c1e01d1c69ba41";
- };
- }
- {
- name = "jest_serializer___jest_serializer_26.5.0.tgz";
- path = fetchurl {
- name = "jest_serializer___jest_serializer_26.5.0.tgz";
- url = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.5.0.tgz";
- sha1 = "f5425cc4c5f6b4b355f854b5f0f23ec6b962bc13";
- };
- }
- {
- name = "jest_snapshot___jest_snapshot_26.5.2.tgz";
- path = fetchurl {
- name = "jest_snapshot___jest_snapshot_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.5.2.tgz";
- sha1 = "0cf7642eaf8e8d2736bd443f619959bf237f9ccf";
- };
- }
- {
- name = "jest_transform_graphql___jest_transform_graphql_2.1.0.tgz";
- path = fetchurl {
- name = "jest_transform_graphql___jest_transform_graphql_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/jest-transform-graphql/-/jest-transform-graphql-2.1.0.tgz";
- sha1 = "903cb66bb27bc2772fd3e5dd4f7e9b57230f5829";
- };
- }
- {
- name = "jest_util___jest_util_26.5.2.tgz";
- path = fetchurl {
- name = "jest_util___jest_util_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-util/-/jest-util-26.5.2.tgz";
- sha1 = "8403f75677902cc52a1b2140f568e91f8ed4f4d7";
- };
- }
- {
- name = "jest_validate___jest_validate_26.5.2.tgz";
- path = fetchurl {
- name = "jest_validate___jest_validate_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.5.2.tgz";
- sha1 = "7ea266700b64234cd1c0cee982490c5a80e9b0f0";
- };
- }
- {
- name = "jest_watcher___jest_watcher_26.5.2.tgz";
- path = fetchurl {
- name = "jest_watcher___jest_watcher_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.5.2.tgz";
- sha1 = "2957f4461007e0769d74b537379ecf6b7c696916";
- };
- }
- {
- name = "jest_worker___jest_worker_26.5.0.tgz";
- path = fetchurl {
- name = "jest_worker___jest_worker_26.5.0.tgz";
- url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz";
- sha1 = "87deee86dbbc5f98d9919e0dadf2c40e3152fa30";
- };
- }
- {
- name = "jest___jest_26.5.2.tgz";
- path = fetchurl {
- name = "jest___jest_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/jest/-/jest-26.5.2.tgz";
- sha1 = "c6791642b331fe7abd2f993b0a74aa546f7be0fb";
- };
- }
- {
- name = "jmespath___jmespath_0.15.0.tgz";
- path = fetchurl {
- name = "jmespath___jmespath_0.15.0.tgz";
- url = "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz";
- sha1 = "a3f222a9aae9f966f5d27c796510e28091764217";
- };
- }
- {
- name = "jquery.caret___jquery.caret_0.3.1.tgz";
- path = fetchurl {
- name = "jquery.caret___jquery.caret_0.3.1.tgz";
- url = "https://registry.yarnpkg.com/jquery.caret/-/jquery.caret-0.3.1.tgz";
- sha1 = "9c093318faf327eff322e826ca9f3241368bc7b8";
- };
- }
- {
- name = "jquery.waitforimages___jquery.waitforimages_2.2.0.tgz";
- path = fetchurl {
- name = "jquery.waitforimages___jquery.waitforimages_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/jquery.waitforimages/-/jquery.waitforimages-2.2.0.tgz";
- sha1 = "63f23131055a1b060dc913e6d874bcc9b9e6b16b";
- };
- }
- {
- name = "jquery___jquery_3.6.0.tgz";
- path = fetchurl {
- name = "jquery___jquery_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz";
- sha1 = "c72a09f15c1bdce142f49dbf1170bdf8adac2470";
- };
- }
- {
- name = "js_beautify___js_beautify_1.11.0.tgz";
- path = fetchurl {
- name = "js_beautify___js_beautify_1.11.0.tgz";
- url = "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz";
- sha1 = "afb873dc47d58986360093dcb69951e8bcd5ded2";
- };
- }
- {
- name = "js_cookie___js_cookie_2.2.1.tgz";
- path = fetchurl {
- name = "js_cookie___js_cookie_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz";
- sha1 = "69e106dc5d5806894562902aa5baec3744e9b2b8";
- };
- }
- {
- name = "js_tokens___js_tokens_4.0.0.tgz";
- path = fetchurl {
- name = "js_tokens___js_tokens_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
- sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
- };
- }
- {
- name = "js_yaml___js_yaml_3.14.1.tgz";
- path = fetchurl {
- name = "js_yaml___js_yaml_3.14.1.tgz";
- url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
- sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
- };
- }
- {
- name = "js2xmlparser___js2xmlparser_3.0.0.tgz";
- path = fetchurl {
- name = "js2xmlparser___js2xmlparser_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz";
- sha1 = "3fb60eaa089c5440f9319f51760ccd07e2499733";
- };
- }
- {
- name = "jsbn___jsbn_0.1.1.tgz";
- path = fetchurl {
- name = "jsbn___jsbn_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
- sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
- };
- }
- {
- name = "jsdoc_vue___jsdoc_vue_1.0.0.tgz";
- path = fetchurl {
- name = "jsdoc_vue___jsdoc_vue_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/jsdoc-vue/-/jsdoc-vue-1.0.0.tgz";
- sha1 = "ff3ac1ba6bc4a74079bb79058a7bf0066e346235";
- };
- }
- {
- name = "jsdoc___jsdoc_3.5.5.tgz";
- path = fetchurl {
- name = "jsdoc___jsdoc_3.5.5.tgz";
- url = "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz";
- sha1 = "484521b126e81904d632ff83ec9aaa096708fa4d";
- };
- }
- {
- name = "jsdom___jsdom_16.4.0.tgz";
- path = fetchurl {
- name = "jsdom___jsdom_16.4.0.tgz";
- url = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz";
- sha1 = "36005bde2d136f73eee1a830c6d45e55408edddb";
- };
- }
- {
- name = "jsesc___jsesc_2.5.2.tgz";
- path = fetchurl {
- name = "jsesc___jsesc_2.5.2.tgz";
- url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
- sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
- };
- }
- {
- name = "jsesc___jsesc_0.5.0.tgz";
- path = fetchurl {
- name = "jsesc___jsesc_0.5.0.tgz";
- url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
- sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
- };
- }
- {
- name = "json_buffer___json_buffer_3.0.0.tgz";
- path = fetchurl {
- name = "json_buffer___json_buffer_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz";
- sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
- };
- }
- {
- name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
- path = fetchurl {
- name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
- sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
- };
- }
- {
- name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
- path = fetchurl {
- name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
- sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
- };
- }
- {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- path = fetchurl {
- name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
- sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
- };
- }
- {
- name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
- path = fetchurl {
- name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
- sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
- };
- }
- {
- name = "json_schema___json_schema_0.2.3.tgz";
- path = fetchurl {
- name = "json_schema___json_schema_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
- sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
- };
- }
- {
- name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
- path = fetchurl {
- name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
- sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
- };
- }
- {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- path = fetchurl {
- name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
- sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
- };
- }
- {
- name = "json3___json3_3.3.3.tgz";
- path = fetchurl {
- name = "json3___json3_3.3.3.tgz";
- url = "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz";
- sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81";
- };
- }
- {
- name = "json5___json5_1.0.1.tgz";
- path = fetchurl {
- name = "json5___json5_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
- sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
- };
- }
- {
- name = "json5___json5_2.1.3.tgz";
- path = fetchurl {
- name = "json5___json5_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
- sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
- };
- }
- {
- name = "jsonc_parser___jsonc_parser_2.3.1.tgz";
- path = fetchurl {
- name = "jsonc_parser___jsonc_parser_2.3.1.tgz";
- url = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz";
- sha1 = "59549150b133f2efacca48fe9ce1ec0659af2342";
- };
- }
- {
- name = "jsonc_parser___jsonc_parser_3.0.0.tgz";
- path = fetchurl {
- name = "jsonc_parser___jsonc_parser_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz";
- sha1 = "abdd785701c7e7eaca8a9ec8cf070ca51a745a22";
- };
- }
- {
- name = "jsonfile___jsonfile_4.0.0.tgz";
- path = fetchurl {
- name = "jsonfile___jsonfile_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
- sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
- };
- }
- {
- name = "jsprim___jsprim_1.4.1.tgz";
- path = fetchurl {
- name = "jsprim___jsprim_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
- sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
- };
- }
- {
- name = "jszip_utils___jszip_utils_0.0.2.tgz";
- path = fetchurl {
- name = "jszip_utils___jszip_utils_0.0.2.tgz";
- url = "https://registry.yarnpkg.com/jszip-utils/-/jszip-utils-0.0.2.tgz";
- sha1 = "457d5cbca60a1c2e0706e9da2b544e8e7bc50bf8";
- };
- }
- {
- name = "jszip___jszip_3.1.3.tgz";
- path = fetchurl {
- name = "jszip___jszip_3.1.3.tgz";
- url = "https://registry.yarnpkg.com/jszip/-/jszip-3.1.3.tgz";
- sha1 = "8a920403b2b1651c0fc126be90192d9080957c37";
- };
- }
- {
- name = "karma_chrome_launcher___karma_chrome_launcher_3.0.0.tgz";
- path = fetchurl {
- name = "karma_chrome_launcher___karma_chrome_launcher_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.0.0.tgz";
- sha1 = "5c3a7f877a304e90781c28fcd9a49e334a890f42";
- };
- }
- {
- name = "karma_coverage_istanbul_reporter___karma_coverage_istanbul_reporter_2.1.0.tgz";
- path = fetchurl {
- name = "karma_coverage_istanbul_reporter___karma_coverage_istanbul_reporter_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.0.tgz";
- sha1 = "5f1bcc13c5e14ee1d91821ee8946861674f54c75";
- };
- }
- {
- name = "karma_jasmine___karma_jasmine_1.1.2.tgz";
- path = fetchurl {
- name = "karma_jasmine___karma_jasmine_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz";
- sha1 = "394f2b25ffb4a644b9ada6f22d443e2fd08886c3";
- };
- }
- {
- name = "karma_junit_reporter___karma_junit_reporter_1.2.0.tgz";
- path = fetchurl {
- name = "karma_junit_reporter___karma_junit_reporter_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz";
- sha1 = "4f9c40cedfb1a395f8aef876abf96189917c6396";
- };
- }
- {
- name = "karma_mocha_reporter___karma_mocha_reporter_2.2.5.tgz";
- path = fetchurl {
- name = "karma_mocha_reporter___karma_mocha_reporter_2.2.5.tgz";
- url = "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz";
- sha1 = "15120095e8ed819186e47a0b012f3cd741895560";
- };
- }
- {
- name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
- path = fetchurl {
- name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
- url = "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz";
- sha1 = "91322c77f8f13d46fed062b042e1009d4c4505d8";
- };
- }
- {
- name = "karma_webpack___karma_webpack_4.0.2.tgz";
- path = fetchurl {
- name = "karma_webpack___karma_webpack_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz";
- sha1 = "23219bd95bdda853e3073d3874d34447c77bced0";
- };
- }
- {
- name = "karma___karma_4.2.0.tgz";
- path = fetchurl {
- name = "karma___karma_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/karma/-/karma-4.2.0.tgz";
- sha1 = "27e88b310cde090d016980ff5444e3a239196fca";
- };
- }
- {
- name = "katex___katex_0.13.2.tgz";
- path = fetchurl {
- name = "katex___katex_0.13.2.tgz";
- url = "https://registry.yarnpkg.com/katex/-/katex-0.13.2.tgz";
- sha1 = "4075b9144e6af992ec9a4b772fa3754763be5f26";
- };
- }
- {
- name = "keyv___keyv_3.1.0.tgz";
- path = fetchurl {
- name = "keyv___keyv_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz";
- sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9";
- };
- }
- {
- name = "khroma___khroma_1.2.0.tgz";
- path = fetchurl {
- name = "khroma___khroma_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/khroma/-/khroma-1.2.0.tgz";
- sha1 = "46dcc9d7533923c228b51724db108f11fec108d8";
- };
- }
- {
- name = "killable___killable_1.0.1.tgz";
- path = fetchurl {
- name = "killable___killable_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz";
- sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892";
- };
- }
- {
- name = "kind_of___kind_of_3.2.2.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_3.2.2.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
- sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
- };
- }
- {
- name = "kind_of___kind_of_4.0.0.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
- sha1 = "20813df3d712928b207378691a45066fae72dd57";
- };
- }
- {
- name = "kind_of___kind_of_5.1.0.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
- sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
- };
- }
- {
- name = "kind_of___kind_of_6.0.3.tgz";
- path = fetchurl {
- name = "kind_of___kind_of_6.0.3.tgz";
- url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
- sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
- };
- }
- {
- name = "klaw___klaw_2.0.0.tgz";
- path = fetchurl {
- name = "klaw___klaw_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz";
- sha1 = "59c128e0dc5ce410201151194eeb9cbf858650f6";
- };
- }
- {
- name = "kleur___kleur_3.0.3.tgz";
- path = fetchurl {
- name = "kleur___kleur_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz";
- sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e";
- };
- }
- {
- name = "known_css_properties___known_css_properties_0.20.0.tgz";
- path = fetchurl {
- name = "known_css_properties___known_css_properties_0.20.0.tgz";
- url = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.20.0.tgz";
- sha1 = "0570831661b47dd835293218381166090ff60e96";
- };
- }
- {
- name = "latest_version___latest_version_5.1.0.tgz";
- path = fetchurl {
- name = "latest_version___latest_version_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz";
- sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face";
- };
- }
- {
- name = "leven___leven_3.1.0.tgz";
- path = fetchurl {
- name = "leven___leven_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz";
- sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2";
- };
- }
- {
- name = "levenary___levenary_1.1.1.tgz";
- path = fetchurl {
- name = "levenary___levenary_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz";
- sha1 = "842a9ee98d2075aa7faeedbe32679e9205f46f77";
- };
- }
- {
- name = "levn___levn_0.4.1.tgz";
- path = fetchurl {
- name = "levn___levn_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
- sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
- };
- }
- {
- name = "levn___levn_0.3.0.tgz";
- path = fetchurl {
- name = "levn___levn_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
- sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
- };
- }
- {
- name = "lie___lie_3.1.1.tgz";
- path = fetchurl {
- name = "lie___lie_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz";
- sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
- };
- }
- {
- name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
- path = fetchurl {
- name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
- url = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
- sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
- };
- }
- {
- name = "linkify_it___linkify_it_2.1.0.tgz";
- path = fetchurl {
- name = "linkify_it___linkify_it_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz";
- sha1 = "c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db";
- };
- }
- {
- name = "linkify_it___linkify_it_3.0.2.tgz";
- path = fetchurl {
- name = "linkify_it___linkify_it_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz";
- sha1 = "f55eeb8bc1d3ae754049e124ab3bb56d97797fb8";
- };
- }
- {
- name = "load_json_file___load_json_file_2.0.0.tgz";
- path = fetchurl {
- name = "load_json_file___load_json_file_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz";
- sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
- };
- }
- {
- name = "loader_runner___loader_runner_2.4.0.tgz";
- path = fetchurl {
- name = "loader_runner___loader_runner_2.4.0.tgz";
- url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz";
- sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357";
- };
- }
- {
- name = "loader_utils___loader_utils_1.4.0.tgz";
- path = fetchurl {
- name = "loader_utils___loader_utils_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
- sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
- };
- }
- {
- name = "loader_utils___loader_utils_2.0.0.tgz";
- path = fetchurl {
- name = "loader_utils___loader_utils_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
- sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
- };
- }
- {
- name = "locate_path___locate_path_2.0.0.tgz";
- path = fetchurl {
- name = "locate_path___locate_path_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
- sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
- };
- }
- {
- name = "locate_path___locate_path_3.0.0.tgz";
- path = fetchurl {
- name = "locate_path___locate_path_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
- sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
- };
- }
- {
- name = "locate_path___locate_path_5.0.0.tgz";
- path = fetchurl {
- name = "locate_path___locate_path_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
- sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
- };
- }
- {
- name = "lodash.assign___lodash.assign_4.2.0.tgz";
- path = fetchurl {
- name = "lodash.assign___lodash.assign_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
- sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
- };
- }
- {
- name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
- path = fetchurl {
- name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
- sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
- };
- }
- {
- name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
- sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
- };
- }
- {
- name = "lodash.compact___lodash.compact_3.0.1.tgz";
- path = fetchurl {
- name = "lodash.compact___lodash.compact_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.compact/-/lodash.compact-3.0.1.tgz";
- sha1 = "540ce3837745975807471e16b4a2ba21e7256ca5";
- };
- }
- {
- name = "lodash.differencewith___lodash.differencewith_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.differencewith___lodash.differencewith_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz";
- sha1 = "bafafbc918b55154e179176a00bb0aefaac854b7";
- };
- }
- {
- name = "lodash.find___lodash.find_4.6.0.tgz";
- path = fetchurl {
- name = "lodash.find___lodash.find_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz";
- sha1 = "cb0704d47ab71789ffa0de8b97dd926fb88b13b1";
- };
- }
- {
- name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
- path = fetchurl {
- name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
- sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
- };
- }
- {
- name = "lodash.forin___lodash.forin_4.4.0.tgz";
- path = fetchurl {
- name = "lodash.forin___lodash.forin_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.forin/-/lodash.forin-4.4.0.tgz";
- sha1 = "5d3f20ae564011fbe88381f7d98949c9c9519731";
- };
- }
- {
- name = "lodash.get___lodash.get_4.4.2.tgz";
- path = fetchurl {
- name = "lodash.get___lodash.get_4.4.2.tgz";
- url = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
- sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
- };
- }
- {
- name = "lodash.has___lodash.has_4.5.2.tgz";
- path = fetchurl {
- name = "lodash.has___lodash.has_4.5.2.tgz";
- url = "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz";
- sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862";
- };
- }
- {
- name = "lodash.invokemap___lodash.invokemap_4.6.0.tgz";
- path = fetchurl {
- name = "lodash.invokemap___lodash.invokemap_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz";
- sha1 = "1748cda5d8b0ef8369c4eb3ec54c21feba1f2d62";
- };
- }
- {
- name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
- path = fetchurl {
- name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
- sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
- };
- }
- {
- name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
- sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
- };
- }
- {
- name = "lodash.isfunction___lodash.isfunction_3.0.9.tgz";
- path = fetchurl {
- name = "lodash.isfunction___lodash.isfunction_3.0.9.tgz";
- url = "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz";
- sha1 = "06de25df4db327ac931981d1bdb067e5af68d051";
- };
- }
- {
- name = "lodash.isinteger___lodash.isinteger_4.0.4.tgz";
- path = fetchurl {
- name = "lodash.isinteger___lodash.isinteger_4.0.4.tgz";
- url = "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz";
- sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
- };
- }
- {
- name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
- path = fetchurl {
- name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
- url = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
- sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
- };
- }
- {
- name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
- path = fetchurl {
- name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz";
- sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36";
- };
- }
- {
- name = "lodash.lowerfirst___lodash.lowerfirst_4.3.1.tgz";
- path = fetchurl {
- name = "lodash.lowerfirst___lodash.lowerfirst_4.3.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz";
- sha1 = "de3c7b12e02c6524a0059c2f6cb7c5c52655a13d";
- };
- }
- {
- name = "lodash.map___lodash.map_4.6.0.tgz";
- path = fetchurl {
- name = "lodash.map___lodash.map_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz";
- sha1 = "771ec7839e3473d9c4cde28b19394c3562f4f6d3";
- };
- }
- {
- name = "lodash.mapvalues___lodash.mapvalues_4.6.0.tgz";
- path = fetchurl {
- name = "lodash.mapvalues___lodash.mapvalues_4.6.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz";
- sha1 = "1bafa5005de9dd6f4f26668c30ca37230cc9689c";
- };
- }
- {
- name = "lodash.merge___lodash.merge_4.6.2.tgz";
- path = fetchurl {
- name = "lodash.merge___lodash.merge_4.6.2.tgz";
- url = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz";
- sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a";
- };
- }
- {
- name = "lodash.pick___lodash.pick_4.4.0.tgz";
- path = fetchurl {
- name = "lodash.pick___lodash.pick_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz";
- sha1 = "52f05610fff9ded422611441ed1fc123a03001b3";
- };
- }
- {
- name = "lodash.snakecase___lodash.snakecase_4.1.1.tgz";
- path = fetchurl {
- name = "lodash.snakecase___lodash.snakecase_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz";
- sha1 = "39d714a35357147837aefd64b5dcbb16becd8f8d";
- };
- }
- {
- name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
- path = fetchurl {
- name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
- sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
- };
- }
- {
- name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
- path = fetchurl {
- name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
- url = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
- sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
- };
- }
- {
- name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
- path = fetchurl {
- name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
- sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
- };
- }
- {
- name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
- path = fetchurl {
- name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
- sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
- };
- }
- {
- name = "lodash.upperfirst___lodash.upperfirst_4.3.1.tgz";
- path = fetchurl {
- name = "lodash.upperfirst___lodash.upperfirst_4.3.1.tgz";
- url = "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz";
- sha1 = "1365edf431480481ef0d1c68957a5ed99d49f7ce";
- };
- }
- {
- name = "lodash.values___lodash.values_4.3.0.tgz";
- path = fetchurl {
- name = "lodash.values___lodash.values_4.3.0.tgz";
- url = "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz";
- sha1 = "a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347";
- };
- }
- {
- name = "lodash___lodash_4.17.21.tgz";
- path = fetchurl {
- name = "lodash___lodash_4.17.21.tgz";
- url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
- sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
- };
- }
- {
- name = "log_symbols___log_symbols_2.2.0.tgz";
- path = fetchurl {
- name = "log_symbols___log_symbols_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz";
- sha1 = "5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a";
- };
- }
- {
- name = "log_symbols___log_symbols_4.0.0.tgz";
- path = fetchurl {
- name = "log_symbols___log_symbols_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
- sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
- };
- }
- {
- name = "log4js___log4js_4.5.1.tgz";
- path = fetchurl {
- name = "log4js___log4js_4.5.1.tgz";
- url = "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz";
- sha1 = "e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5";
- };
- }
- {
- name = "loglevel___loglevel_1.7.1.tgz";
- path = fetchurl {
- name = "loglevel___loglevel_1.7.1.tgz";
- url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz";
- sha1 = "005fde2f5e6e47068f935ff28573e125ef72f197";
- };
- }
- {
- name = "longest_streak___longest_streak_2.0.4.tgz";
- path = fetchurl {
- name = "longest_streak___longest_streak_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz";
- sha1 = "b8599957da5b5dab64dee3fe316fa774597d90e4";
- };
- }
- {
- name = "loose_envify___loose_envify_1.4.0.tgz";
- path = fetchurl {
- name = "loose_envify___loose_envify_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
- sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
- };
- }
- {
- name = "lower_case___lower_case_1.1.4.tgz";
- path = fetchurl {
- name = "lower_case___lower_case_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz";
- sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
- };
- }
- {
- name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
- path = fetchurl {
- name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
- sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
- };
- }
- {
- name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
- path = fetchurl {
- name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
- sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
- };
- }
- {
- name = "lowlight___lowlight_1.20.0.tgz";
- path = fetchurl {
- name = "lowlight___lowlight_1.20.0.tgz";
- url = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.20.0.tgz";
- sha1 = "ddb197d33462ad0d93bf19d17b6c301aa3941888";
- };
- }
- {
- name = "lru_cache___lru_cache_4.1.5.tgz";
- path = fetchurl {
- name = "lru_cache___lru_cache_4.1.5.tgz";
- url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
- sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
- };
- }
- {
- name = "lru_cache___lru_cache_5.1.1.tgz";
- path = fetchurl {
- name = "lru_cache___lru_cache_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
- sha1 = "1da27e6710271947695daf6848e847f01d84b920";
- };
- }
- {
- name = "lru_cache___lru_cache_6.0.0.tgz";
- path = fetchurl {
- name = "lru_cache___lru_cache_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
- sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
- };
- }
- {
- name = "lz_string___lz_string_1.4.4.tgz";
- path = fetchurl {
- name = "lz_string___lz_string_1.4.4.tgz";
- url = "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz";
- sha1 = "c0d8eaf36059f705796e1e344811cf4c498d3a26";
- };
- }
- {
- name = "make_dir___make_dir_2.1.0.tgz";
- path = fetchurl {
- name = "make_dir___make_dir_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
- sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
- };
- }
- {
- name = "make_dir___make_dir_3.1.0.tgz";
- path = fetchurl {
- name = "make_dir___make_dir_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
- sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
- };
- }
- {
- name = "makeerror___makeerror_1.0.11.tgz";
- path = fetchurl {
- name = "makeerror___makeerror_1.0.11.tgz";
- url = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
- sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
- };
- }
- {
- name = "map_cache___map_cache_0.2.2.tgz";
- path = fetchurl {
- name = "map_cache___map_cache_0.2.2.tgz";
- url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
- sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
- };
- }
- {
- name = "map_obj___map_obj_1.0.1.tgz";
- path = fetchurl {
- name = "map_obj___map_obj_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz";
- sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
- };
- }
- {
- name = "map_obj___map_obj_4.1.0.tgz";
- path = fetchurl {
- name = "map_obj___map_obj_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz";
- sha1 = "b91221b542734b9f14256c0132c897c5d7256fd5";
- };
- }
- {
- name = "map_visit___map_visit_1.0.0.tgz";
- path = fetchurl {
- name = "map_visit___map_visit_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
- sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
- };
- }
- {
- name = "markdown_it___markdown_it_12.0.2.tgz";
- path = fetchurl {
- name = "markdown_it___markdown_it_12.0.2.tgz";
- url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.2.tgz";
- sha1 = "4401beae8df8aa2221fc6565a7188e60a06ef0ed";
- };
- }
- {
- name = "markdown_it___markdown_it_10.0.0.tgz";
- path = fetchurl {
- name = "markdown_it___markdown_it_10.0.0.tgz";
- url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz";
- sha1 = "abfc64f141b1722d663402044e43927f1f50a8dc";
- };
- }
- {
- name = "markdownlint_cli___markdownlint_cli_0.26.0.tgz";
- path = fetchurl {
- name = "markdownlint_cli___markdownlint_cli_0.26.0.tgz";
- url = "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.26.0.tgz";
- sha1 = "cd89e3e39a049303ec125c8aa291da4f3325df29";
- };
- }
- {
- name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.13.0.tgz";
- path = fetchurl {
- name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.13.0.tgz";
- url = "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.13.0.tgz";
- sha1 = "7cc6553bc7f8c4c8a43cf66fb2a3a652124f46f9";
- };
- }
- {
- name = "markdownlint___markdownlint_0.22.0.tgz";
- path = fetchurl {
- name = "markdownlint___markdownlint_0.22.0.tgz";
- url = "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.22.0.tgz";
- sha1 = "4ed95b61c17ae9f4dfca6a01f038c744846c0a72";
- };
- }
- {
- name = "marked___marked_0.3.19.tgz";
- path = fetchurl {
- name = "marked___marked_0.3.19.tgz";
- url = "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz";
- sha1 = "5d47f709c4c9fc3c216b6d46127280f40b39d790";
- };
- }
- {
- name = "mathjax___mathjax_3.1.2.tgz";
- path = fetchurl {
- name = "mathjax___mathjax_3.1.2.tgz";
- url = "https://registry.yarnpkg.com/mathjax/-/mathjax-3.1.2.tgz";
- sha1 = "95c0d45ce2330ef7b6a815cebe7d61ecc26bbabd";
- };
- }
- {
- name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
- path = fetchurl {
- name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
- url = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz";
- sha1 = "4ddadd67308e780cf16a47685878ee27b736a0a3";
- };
- }
- {
- name = "md5.js___md5.js_1.3.4.tgz";
- path = fetchurl {
- name = "md5.js___md5.js_1.3.4.tgz";
- url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz";
- sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d";
- };
- }
- {
- name = "md5___md5_2.2.1.tgz";
- path = fetchurl {
- name = "md5___md5_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
- sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
- };
- }
- {
- name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
- path = fetchurl {
- name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
- url = "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz";
- sha1 = "d1ef2ca42bc377ecb0463a987910dae89bd9a28c";
- };
- }
- {
- name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
- path = fetchurl {
- name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
- url = "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
- sha1 = "b33f67ca820d69e6cc527a93d4039249b504bebe";
- };
- }
- {
- name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
- path = fetchurl {
- name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
- sha1 = "b8cfe6a713e1091cb5b728fc48885a4767f8b97b";
- };
- }
- {
- name = "mdurl___mdurl_1.0.1.tgz";
- path = fetchurl {
- name = "mdurl___mdurl_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz";
- sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
- };
- }
- {
- name = "media_typer___media_typer_0.3.0.tgz";
- path = fetchurl {
- name = "media_typer___media_typer_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
- sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
- };
- }
- {
- name = "memory_fs___memory_fs_0.2.0.tgz";
- path = fetchurl {
- name = "memory_fs___memory_fs_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz";
- sha1 = "f2bb25368bc121e391c2520de92969caee0a0290";
- };
- }
- {
- name = "memory_fs___memory_fs_0.4.1.tgz";
- path = fetchurl {
- name = "memory_fs___memory_fs_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
- sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
- };
- }
- {
- name = "memory_fs___memory_fs_0.5.0.tgz";
- path = fetchurl {
- name = "memory_fs___memory_fs_0.5.0.tgz";
- url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz";
- sha1 = "324c01288b88652966d161db77838720845a8e3c";
- };
- }
- {
- name = "meow___meow_9.0.0.tgz";
- path = fetchurl {
- name = "meow___meow_9.0.0.tgz";
- url = "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz";
- sha1 = "cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364";
- };
- }
- {
- name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
- path = fetchurl {
- name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
- sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
- };
- }
- {
- name = "merge_source_map___merge_source_map_1.1.0.tgz";
- path = fetchurl {
- name = "merge_source_map___merge_source_map_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz";
- sha1 = "2fdde7e6020939f70906a68f2d7ae685e4c8c646";
- };
- }
- {
- name = "merge_stream___merge_stream_2.0.0.tgz";
- path = fetchurl {
- name = "merge_stream___merge_stream_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
- sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
- };
- }
- {
- name = "merge2___merge2_1.4.1.tgz";
- path = fetchurl {
- name = "merge2___merge2_1.4.1.tgz";
- url = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
- sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
- };
- }
- {
- name = "mermaid___mermaid_8.10.2.tgz";
- path = fetchurl {
- name = "mermaid___mermaid_8.10.2.tgz";
- url = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.10.2.tgz";
- sha1 = "e039df2e42faba08743f167fff85bdccff241f76";
- };
- }
- {
- name = "methods___methods_1.1.2.tgz";
- path = fetchurl {
- name = "methods___methods_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
- sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
- };
- }
- {
- name = "micromark___micromark_2.11.4.tgz";
- path = fetchurl {
- name = "micromark___micromark_2.11.4.tgz";
- url = "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz";
- sha1 = "d13436138eea826383e822449c9a5c50ee44665a";
- };
- }
- {
- name = "micromatch___micromatch_3.1.10.tgz";
- path = fetchurl {
- name = "micromatch___micromatch_3.1.10.tgz";
- url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
- sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
- };
- }
- {
- name = "micromatch___micromatch_4.0.2.tgz";
- path = fetchurl {
- name = "micromatch___micromatch_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
- sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
- };
- }
- {
- name = "miller_rabin___miller_rabin_4.0.1.tgz";
- path = fetchurl {
- name = "miller_rabin___miller_rabin_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
- sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
- };
- }
- {
- name = "mime_db___mime_db_1.47.0.tgz";
- path = fetchurl {
- name = "mime_db___mime_db_1.47.0.tgz";
- url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
- sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
- };
- }
- {
- name = "mime_types___mime_types_2.1.30.tgz";
- path = fetchurl {
- name = "mime_types___mime_types_2.1.30.tgz";
- url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
- sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
- };
- }
- {
- name = "mime___mime_1.6.0.tgz";
- path = fetchurl {
- name = "mime___mime_1.6.0.tgz";
- url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
- sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
- };
- }
- {
- name = "mime___mime_2.4.4.tgz";
- path = fetchurl {
- name = "mime___mime_2.4.4.tgz";
- url = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
- sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
- };
- }
- {
- name = "mimic_fn___mimic_fn_2.1.0.tgz";
- path = fetchurl {
- name = "mimic_fn___mimic_fn_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
- sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
- };
- }
- {
- name = "mimic_response___mimic_response_1.0.1.tgz";
- path = fetchurl {
- name = "mimic_response___mimic_response_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
- sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
- };
- }
- {
- name = "min_document___min_document_2.19.0.tgz";
- path = fetchurl {
- name = "min_document___min_document_2.19.0.tgz";
- url = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz";
- sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
- };
- }
- {
- name = "min_indent___min_indent_1.0.1.tgz";
- path = fetchurl {
- name = "min_indent___min_indent_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz";
- sha1 = "a63f681673b30571fbe8bc25686ae746eefa9869";
- };
- }
- {
- name = "minify___minify_4.1.2.tgz";
- path = fetchurl {
- name = "minify___minify_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/minify/-/minify-4.1.2.tgz";
- sha1 = "88755f4faa5f7ab6d0c64fdd659aa34ea658f180";
- };
- }
- {
- name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
- path = fetchurl {
- name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
- sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
- };
- }
- {
- name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
- path = fetchurl {
- name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
- sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
- };
- }
- {
- name = "minimatch___minimatch_3.0.4.tgz";
- path = fetchurl {
- name = "minimatch___minimatch_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
- sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
- };
- }
- {
- name = "minimist_options___minimist_options_4.1.0.tgz";
- path = fetchurl {
- name = "minimist_options___minimist_options_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz";
- sha1 = "c0655713c53a8a2ebd77ffa247d342c40f010619";
- };
- }
- {
- name = "minimist___minimist_1.2.5.tgz";
- path = fetchurl {
- name = "minimist___minimist_1.2.5.tgz";
- url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
- sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
- };
- }
- {
- name = "minimist___minimist_0.0.8.tgz";
- path = fetchurl {
- name = "minimist___minimist_0.0.8.tgz";
- url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
- sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
- };
- }
- {
- name = "minipass_collect___minipass_collect_1.0.2.tgz";
- path = fetchurl {
- name = "minipass_collect___minipass_collect_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz";
- sha1 = "22b813bf745dc6edba2576b940022ad6edc8c617";
- };
- }
- {
- name = "minipass_flush___minipass_flush_1.0.5.tgz";
- path = fetchurl {
- name = "minipass_flush___minipass_flush_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz";
- sha1 = "82e7135d7e89a50ffe64610a787953c4c4cbb373";
- };
- }
- {
- name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
- path = fetchurl {
- name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz";
- sha1 = "3dcb6bb4a546e32969c7ad710f2c79a86abba93a";
- };
- }
- {
- name = "minipass___minipass_3.1.1.tgz";
- path = fetchurl {
- name = "minipass___minipass_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
- sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
- };
- }
- {
- name = "minizlib___minizlib_2.1.2.tgz";
- path = fetchurl {
- name = "minizlib___minizlib_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
- sha1 = "e90d3466ba209b932451508a11ce3d3632145931";
- };
- }
- {
- name = "miragejs___miragejs_0.1.40.tgz";
- path = fetchurl {
- name = "miragejs___miragejs_0.1.40.tgz";
- url = "https://registry.yarnpkg.com/miragejs/-/miragejs-0.1.40.tgz";
- sha1 = "5bcba7634312c012748ae7f294e1516b74b37182";
- };
- }
- {
- name = "mississippi___mississippi_3.0.0.tgz";
- path = fetchurl {
- name = "mississippi___mississippi_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
- sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
- };
- }
- {
- name = "mixin_deep___mixin_deep_1.3.2.tgz";
- path = fetchurl {
- name = "mixin_deep___mixin_deep_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
- sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
- };
- }
- {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_0.5.5.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
- sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
- };
- }
- {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- path = fetchurl {
- name = "mkdirp___mkdirp_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
- sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
- };
- }
- {
- name = "mock_apollo_client___mock_apollo_client_0.7.0.tgz";
- path = fetchurl {
- name = "mock_apollo_client___mock_apollo_client_0.7.0.tgz";
- url = "https://registry.yarnpkg.com/mock-apollo-client/-/mock-apollo-client-0.7.0.tgz";
- sha1 = "5f70e75c842a9f3b3da2252f68fd47f2d9955f77";
- };
- }
- {
- name = "moment_mini___moment_mini_2.22.1.tgz";
- path = fetchurl {
- name = "moment_mini___moment_mini_2.22.1.tgz";
- url = "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.22.1.tgz";
- sha1 = "bc32d73e43a4505070be6b53494b17623183420d";
- };
- }
- {
- name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_4.0.0.tgz";
- path = fetchurl {
- name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-4.0.0.tgz";
- sha1 = "95be3f48f4220999b909266a9997727f0deab947";
- };
- }
- {
- name = "monaco_editor___monaco_editor_0.25.2.tgz";
- path = fetchurl {
- name = "monaco_editor___monaco_editor_0.25.2.tgz";
- url = "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.25.2.tgz";
- sha1 = "119e2b15bbd968a1a99c03cac9c329316d7c37e9";
- };
- }
- {
- name = "monaco_yaml___monaco_yaml_2.5.1.tgz";
- path = fetchurl {
- name = "monaco_yaml___monaco_yaml_2.5.1.tgz";
- url = "https://registry.yarnpkg.com/monaco-yaml/-/monaco-yaml-2.5.1.tgz";
- sha1 = "af9303a4aa6e3b94db62b8a8659362f31944590d";
- };
- }
- {
- name = "mousetrap___mousetrap_1.6.5.tgz";
- path = fetchurl {
- name = "mousetrap___mousetrap_1.6.5.tgz";
- url = "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz";
- sha1 = "8a766d8c272b08393d5f56074e0b5ec183485bf9";
- };
- }
- {
- name = "move_concurrently___move_concurrently_1.0.1.tgz";
- path = fetchurl {
- name = "move_concurrently___move_concurrently_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
- sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
- };
- }
- {
- name = "ms___ms_2.0.0.tgz";
- path = fetchurl {
- name = "ms___ms_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
- sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
- };
- }
- {
- name = "ms___ms_2.1.1.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
- sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
- };
- }
- {
- name = "ms___ms_2.1.2.tgz";
- path = fetchurl {
- name = "ms___ms_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
- sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
- };
- }
- {
- name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
- path = fetchurl {
- name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
- sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
- };
- }
- {
- name = "multicast_dns___multicast_dns_6.1.1.tgz";
- path = fetchurl {
- name = "multicast_dns___multicast_dns_6.1.1.tgz";
- url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz";
- sha1 = "6e7de86a570872ab17058adea7160bbeca814dde";
- };
- }
- {
- name = "nanoid___nanoid_3.1.23.tgz";
- path = fetchurl {
- name = "nanoid___nanoid_3.1.23.tgz";
- url = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz";
- sha1 = "f744086ce7c2bc47ee0a8472574d5c78e4183a81";
- };
- }
- {
- name = "nanomatch___nanomatch_1.2.13.tgz";
- path = fetchurl {
- name = "nanomatch___nanomatch_1.2.13.tgz";
- url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
- sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
- };
- }
- {
- name = "natural_compare___natural_compare_1.4.0.tgz";
- path = fetchurl {
- name = "natural_compare___natural_compare_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
- sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
- };
- }
- {
- name = "negotiator___negotiator_0.6.2.tgz";
- path = fetchurl {
- name = "negotiator___negotiator_0.6.2.tgz";
- url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
- sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
- };
- }
- {
- name = "neo_async___neo_async_2.6.1.tgz";
- path = fetchurl {
- name = "neo_async___neo_async_2.6.1.tgz";
- url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz";
- sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c";
- };
- }
- {
- name = "nice_try___nice_try_1.0.5.tgz";
- path = fetchurl {
- name = "nice_try___nice_try_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
- sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
- };
- }
- {
- name = "no_case___no_case_2.3.2.tgz";
- path = fetchurl {
- name = "no_case___no_case_2.3.2.tgz";
- url = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz";
- sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac";
- };
- }
- {
- name = "node_ensure___node_ensure_0.0.0.tgz";
- path = fetchurl {
- name = "node_ensure___node_ensure_0.0.0.tgz";
- url = "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz";
- sha1 = "ecae764150de99861ec5c810fd5d096b183932a7";
- };
- }
- {
- name = "node_fetch___node_fetch_2.6.1.tgz";
- path = fetchurl {
- name = "node_fetch___node_fetch_2.6.1.tgz";
- url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
- sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
- };
- }
- {
- name = "node_forge___node_forge_0.10.0.tgz";
- path = fetchurl {
- name = "node_forge___node_forge_0.10.0.tgz";
- url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz";
- sha1 = "32dea2afb3e9926f02ee5ce8794902691a676bf3";
- };
- }
- {
- name = "node_int64___node_int64_0.4.0.tgz";
- path = fetchurl {
- name = "node_int64___node_int64_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
- sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
- };
- }
- {
- name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
- path = fetchurl {
- name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
- sha1 = "b64f513d18338625f90346d27b0d235e631f6425";
- };
- }
- {
- name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
- path = fetchurl {
- name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
- sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
- };
- }
- {
- name = "node_notifier___node_notifier_8.0.0.tgz";
- path = fetchurl {
- name = "node_notifier___node_notifier_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz";
- sha1 = "a7eee2d51da6d0f7ff5094bc7108c911240c1620";
- };
- }
- {
- name = "node_releases___node_releases_1.1.73.tgz";
- path = fetchurl {
- name = "node_releases___node_releases_1.1.73.tgz";
- url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz";
- sha1 = "dd4e81ddd5277ff846b80b52bb40c49edf7a7b20";
- };
- }
- {
- name = "nodemon___nodemon_2.0.4.tgz";
- path = fetchurl {
- name = "nodemon___nodemon_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz";
- sha1 = "55b09319eb488d6394aa9818148c0c2d1c04c416";
- };
- }
- {
- name = "nopt___nopt_4.0.3.tgz";
- path = fetchurl {
- name = "nopt___nopt_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
- sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
- };
- }
- {
- name = "nopt___nopt_1.0.10.tgz";
- path = fetchurl {
- name = "nopt___nopt_1.0.10.tgz";
- url = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
- sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
- };
- }
- {
- name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
- path = fetchurl {
- name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
- sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
- };
- }
- {
- name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
- path = fetchurl {
- name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz";
- sha1 = "1f8a7c423b3d2e85eb36985eaf81de381d01301a";
- };
- }
- {
- name = "normalize_path___normalize_path_2.1.1.tgz";
- path = fetchurl {
- name = "normalize_path___normalize_path_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
- sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
- };
- }
- {
- name = "normalize_path___normalize_path_3.0.0.tgz";
- path = fetchurl {
- name = "normalize_path___normalize_path_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
- sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
- };
- }
- {
- name = "normalize_range___normalize_range_0.1.2.tgz";
- path = fetchurl {
- name = "normalize_range___normalize_range_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
- sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
- };
- }
- {
- name = "normalize_selector___normalize_selector_0.2.0.tgz";
- path = fetchurl {
- name = "normalize_selector___normalize_selector_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz";
- sha1 = "d0b145eb691189c63a78d201dc4fdb1293ef0c03";
- };
- }
- {
- name = "normalize_url___normalize_url_4.5.0.tgz";
- path = fetchurl {
- name = "normalize_url___normalize_url_4.5.0.tgz";
- url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
- sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
- };
- }
- {
- name = "npm_run_path___npm_run_path_2.0.2.tgz";
- path = fetchurl {
- name = "npm_run_path___npm_run_path_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
- sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
- };
- }
- {
- name = "npm_run_path___npm_run_path_4.0.1.tgz";
- path = fetchurl {
- name = "npm_run_path___npm_run_path_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz";
- sha1 = "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea";
- };
- }
- {
- name = "nth_check___nth_check_2.0.0.tgz";
- path = fetchurl {
- name = "nth_check___nth_check_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz";
- sha1 = "1bb4f6dac70072fc313e8c9cd1417b5074c0a125";
- };
- }
- {
- name = "num2fraction___num2fraction_1.2.2.tgz";
- path = fetchurl {
- name = "num2fraction___num2fraction_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
- sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
- };
- }
- {
- name = "nwsapi___nwsapi_2.2.0.tgz";
- path = fetchurl {
- name = "nwsapi___nwsapi_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz";
- sha1 = "204879a9e3d068ff2a55139c2c772780681a38b7";
- };
- }
- {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- path = fetchurl {
- name = "oauth_sign___oauth_sign_0.9.0.tgz";
- url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
- sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
- };
- }
- {
- name = "object_assign___object_assign_4.1.1.tgz";
- path = fetchurl {
- name = "object_assign___object_assign_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
- sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
- };
- }
- {
- name = "object_component___object_component_0.0.3.tgz";
- path = fetchurl {
- name = "object_component___object_component_0.0.3.tgz";
- url = "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz";
- sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
- };
- }
- {
- name = "object_copy___object_copy_0.1.0.tgz";
- path = fetchurl {
- name = "object_copy___object_copy_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
- sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
- };
- }
- {
- name = "object_inspect___object_inspect_1.9.0.tgz";
- path = fetchurl {
- name = "object_inspect___object_inspect_1.9.0.tgz";
- url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz";
- sha1 = "c90521d74e1127b67266ded3394ad6116986533a";
- };
- }
- {
- name = "object_keys___object_keys_1.1.1.tgz";
- path = fetchurl {
- name = "object_keys___object_keys_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
- sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
- };
- }
- {
- name = "object_visit___object_visit_1.0.1.tgz";
- path = fetchurl {
- name = "object_visit___object_visit_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
- sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
- };
- }
- {
- name = "object.assign___object.assign_4.1.2.tgz";
- path = fetchurl {
- name = "object.assign___object.assign_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
- sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
- };
- }
- {
- name = "object.entries___object.entries_1.1.3.tgz";
- path = fetchurl {
- name = "object.entries___object.entries_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz";
- sha1 = "c601c7f168b62374541a07ddbd3e2d5e4f7711a6";
- };
- }
- {
- name = "object.pick___object.pick_1.3.0.tgz";
- path = fetchurl {
- name = "object.pick___object.pick_1.3.0.tgz";
- url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
- sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
- };
- }
- {
- name = "object.values___object.values_1.1.2.tgz";
- path = fetchurl {
- name = "object.values___object.values_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz";
- sha1 = "7a2015e06fcb0f546bd652486ce8583a4731c731";
- };
- }
- {
- name = "obuf___obuf_1.1.2.tgz";
- path = fetchurl {
- name = "obuf___obuf_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
- sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
- };
- }
- {
- name = "on_finished___on_finished_2.3.0.tgz";
- path = fetchurl {
- name = "on_finished___on_finished_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
- sha1 = "20f1336481b083cd75337992a16971aa2d906947";
- };
- }
- {
- name = "on_headers___on_headers_1.0.2.tgz";
- path = fetchurl {
- name = "on_headers___on_headers_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
- sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
- };
- }
- {
- name = "once___once_1.4.0.tgz";
- path = fetchurl {
- name = "once___once_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
- sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
- };
- }
- {
- name = "onetime___onetime_5.1.0.tgz";
- path = fetchurl {
- name = "onetime___onetime_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
- sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
- };
- }
- {
- name = "opener___opener_1.5.2.tgz";
- path = fetchurl {
- name = "opener___opener_1.5.2.tgz";
- url = "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz";
- sha1 = "5d37e1f35077b9dcac4301372271afdeb2a13598";
- };
- }
- {
- name = "opn___opn_5.5.0.tgz";
- path = fetchurl {
- name = "opn___opn_5.5.0.tgz";
- url = "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz";
- sha1 = "fc7164fab56d235904c51c3b27da6758ca3b9bfc";
- };
- }
- {
- name = "optimism___optimism_0.10.3.tgz";
- path = fetchurl {
- name = "optimism___optimism_0.10.3.tgz";
- url = "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz";
- sha1 = "163268fdc741dea2fb50f300bedda80356445fd7";
- };
- }
- {
- name = "optimist___optimist_0.6.1.tgz";
- path = fetchurl {
- name = "optimist___optimist_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
- sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
- };
- }
- {
- name = "optionator___optionator_0.8.3.tgz";
- path = fetchurl {
- name = "optionator___optionator_0.8.3.tgz";
- url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
- sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
- };
- }
- {
- name = "optionator___optionator_0.9.1.tgz";
- path = fetchurl {
- name = "optionator___optionator_0.9.1.tgz";
- url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
- sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
- };
- }
- {
- name = "orderedmap___orderedmap_1.1.1.tgz";
- path = fetchurl {
- name = "orderedmap___orderedmap_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz";
- sha1 = "c618e77611b3b21d0fe3edc92586265e0059c789";
- };
- }
- {
- name = "original___original_1.0.2.tgz";
- path = fetchurl {
- name = "original___original_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz";
- sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f";
- };
- }
- {
- name = "os_browserify___os_browserify_0.3.0.tgz";
- path = fetchurl {
- name = "os_browserify___os_browserify_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
- sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
- };
- }
- {
- name = "os_homedir___os_homedir_1.0.2.tgz";
- path = fetchurl {
- name = "os_homedir___os_homedir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
- sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
- };
- }
- {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- path = fetchurl {
- name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
- sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
- };
- }
- {
- name = "osenv___osenv_0.1.5.tgz";
- path = fetchurl {
- name = "osenv___osenv_0.1.5.tgz";
- url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
- sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
- };
- }
- {
- name = "p_cancelable___p_cancelable_1.1.0.tgz";
- path = fetchurl {
- name = "p_cancelable___p_cancelable_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz";
- sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc";
- };
- }
- {
- name = "p_each_series___p_each_series_2.1.0.tgz";
- path = fetchurl {
- name = "p_each_series___p_each_series_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz";
- sha1 = "961c8dd3f195ea96c747e636b262b800a6b1af48";
- };
- }
- {
- name = "p_finally___p_finally_1.0.0.tgz";
- path = fetchurl {
- name = "p_finally___p_finally_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
- sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
- };
- }
- {
- name = "p_limit___p_limit_1.2.0.tgz";
- path = fetchurl {
- name = "p_limit___p_limit_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz";
- sha1 = "0e92b6bedcb59f022c13d0f1949dc82d15909f1c";
- };
- }
- {
- name = "p_limit___p_limit_2.2.2.tgz";
- path = fetchurl {
- name = "p_limit___p_limit_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz";
- sha1 = "61279b67721f5287aa1c13a9a7fbbc48c9291b1e";
- };
- }
- {
- name = "p_limit___p_limit_3.1.0.tgz";
- path = fetchurl {
- name = "p_limit___p_limit_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz";
- sha1 = "e1daccbe78d0d1388ca18c64fea38e3e57e3706b";
- };
- }
- {
- name = "p_locate___p_locate_2.0.0.tgz";
- path = fetchurl {
- name = "p_locate___p_locate_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
- sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
- };
- }
- {
- name = "p_locate___p_locate_3.0.0.tgz";
- path = fetchurl {
- name = "p_locate___p_locate_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
- sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
- };
- }
- {
- name = "p_locate___p_locate_4.1.0.tgz";
- path = fetchurl {
- name = "p_locate___p_locate_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
- sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
- };
- }
- {
- name = "p_map___p_map_2.1.0.tgz";
- path = fetchurl {
- name = "p_map___p_map_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz";
- sha1 = "310928feef9c9ecc65b68b17693018a665cea175";
- };
- }
- {
- name = "p_map___p_map_4.0.0.tgz";
- path = fetchurl {
- name = "p_map___p_map_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz";
- sha1 = "bb2f95a5eda2ec168ec9274e06a747c3e2904d2b";
- };
- }
- {
- name = "p_retry___p_retry_3.0.1.tgz";
- path = fetchurl {
- name = "p_retry___p_retry_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz";
- sha1 = "316b4c8893e2c8dc1cfa891f406c4b422bebf328";
- };
- }
- {
- name = "p_try___p_try_1.0.0.tgz";
- path = fetchurl {
- name = "p_try___p_try_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
- sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
- };
- }
- {
- name = "p_try___p_try_2.2.0.tgz";
- path = fetchurl {
- name = "p_try___p_try_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
- sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
- };
- }
- {
- name = "package_json___package_json_6.5.0.tgz";
- path = fetchurl {
- name = "package_json___package_json_6.5.0.tgz";
- url = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz";
- sha1 = "6feedaca35e75725876d0b0e64974697fed145b0";
- };
- }
- {
- name = "pako___pako_1.0.6.tgz";
- path = fetchurl {
- name = "pako___pako_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz";
- sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258";
- };
- }
- {
- name = "papaparse___papaparse_5.3.1.tgz";
- path = fetchurl {
- name = "papaparse___papaparse_5.3.1.tgz";
- url = "https://registry.yarnpkg.com/papaparse/-/papaparse-5.3.1.tgz";
- sha1 = "770b7a9124d821d4b2132132b7bd7dce7194b5b1";
- };
- }
- {
- name = "parallel_transform___parallel_transform_1.1.0.tgz";
- path = fetchurl {
- name = "parallel_transform___parallel_transform_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz";
- sha1 = "d410f065b05da23081fcd10f28854c29bda33b06";
- };
- }
- {
- name = "param_case___param_case_2.1.1.tgz";
- path = fetchurl {
- name = "param_case___param_case_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz";
- sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
- };
- }
- {
- name = "parent_module___parent_module_1.0.1.tgz";
- path = fetchurl {
- name = "parent_module___parent_module_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
- sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
- };
- }
- {
- name = "parse_asn1___parse_asn1_5.1.0.tgz";
- path = fetchurl {
- name = "parse_asn1___parse_asn1_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz";
- sha1 = "37c4f9b7ed3ab65c74817b5f2480937fbf97c712";
- };
- }
- {
- name = "parse_color___parse_color_1.0.0.tgz";
- path = fetchurl {
- name = "parse_color___parse_color_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz";
- sha1 = "7b748b95a83f03f16a94f535e52d7f3d94658619";
- };
- }
- {
- name = "parse_entities___parse_entities_2.0.0.tgz";
- path = fetchurl {
- name = "parse_entities___parse_entities_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz";
- sha1 = "53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8";
- };
- }
- {
- name = "parse_json___parse_json_2.2.0.tgz";
- path = fetchurl {
- name = "parse_json___parse_json_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
- sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
- };
- }
- {
- name = "parse_json___parse_json_5.1.0.tgz";
- path = fetchurl {
- name = "parse_json___parse_json_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz";
- sha1 = "f96088cdf24a8faa9aea9a009f2d9d942c999646";
- };
- }
- {
- name = "parse_passwd___parse_passwd_1.0.0.tgz";
- path = fetchurl {
- name = "parse_passwd___parse_passwd_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
- sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
- };
- }
- {
- name = "parse5_htmlparser2_tree_adapter___parse5_htmlparser2_tree_adapter_6.0.1.tgz";
- path = fetchurl {
- name = "parse5_htmlparser2_tree_adapter___parse5_htmlparser2_tree_adapter_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz";
- sha1 = "2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6";
- };
- }
- {
- name = "parse5___parse5_6.0.1.tgz";
- path = fetchurl {
- name = "parse5___parse5_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz";
- sha1 = "e1a1c085c569b3dc08321184f19a39cc27f7c30b";
- };
- }
- {
- name = "parse5___parse5_5.1.1.tgz";
- path = fetchurl {
- name = "parse5___parse5_5.1.1.tgz";
- url = "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz";
- sha1 = "f68e4e5ba1852ac2cadc00f4555fff6c2abb6178";
- };
- }
- {
- name = "parseqs___parseqs_0.0.5.tgz";
- path = fetchurl {
- name = "parseqs___parseqs_0.0.5.tgz";
- url = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz";
- sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
- };
- }
- {
- name = "parseuri___parseuri_0.0.5.tgz";
- path = fetchurl {
- name = "parseuri___parseuri_0.0.5.tgz";
- url = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz";
- sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
- };
- }
- {
- name = "parseurl___parseurl_1.3.3.tgz";
- path = fetchurl {
- name = "parseurl___parseurl_1.3.3.tgz";
- url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
- sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
- };
- }
- {
- name = "pascalcase___pascalcase_0.1.1.tgz";
- path = fetchurl {
- name = "pascalcase___pascalcase_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
- sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
- };
- }
- {
- name = "path_browserify___path_browserify_0.0.1.tgz";
- path = fetchurl {
- name = "path_browserify___path_browserify_0.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz";
- sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a";
- };
- }
- {
- name = "path_exists___path_exists_3.0.0.tgz";
- path = fetchurl {
- name = "path_exists___path_exists_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
- sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
- };
- }
- {
- name = "path_exists___path_exists_4.0.0.tgz";
- path = fetchurl {
- name = "path_exists___path_exists_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
- sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
- };
- }
- {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- path = fetchurl {
- name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
- sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
- };
- }
- {
- name = "path_is_inside___path_is_inside_1.0.2.tgz";
- path = fetchurl {
- name = "path_is_inside___path_is_inside_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
- sha1 = "365417dede44430d1c11af61027facf074bdfc53";
- };
- }
- {
- name = "path_key___path_key_2.0.1.tgz";
- path = fetchurl {
- name = "path_key___path_key_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
- sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
- };
- }
- {
- name = "path_key___path_key_3.1.1.tgz";
- path = fetchurl {
- name = "path_key___path_key_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
- sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
- };
- }
- {
- name = "path_parse___path_parse_1.0.6.tgz";
- path = fetchurl {
- name = "path_parse___path_parse_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
- sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
- };
- }
- {
- name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
- path = fetchurl {
- name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
- url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
- sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
- };
- }
- {
- name = "path_type___path_type_2.0.0.tgz";
- path = fetchurl {
- name = "path_type___path_type_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz";
- sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
- };
- }
- {
- name = "path_type___path_type_4.0.0.tgz";
- path = fetchurl {
- name = "path_type___path_type_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
- sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
- };
- }
- {
- name = "pbkdf2___pbkdf2_3.0.14.tgz";
- path = fetchurl {
- name = "pbkdf2___pbkdf2_3.0.14.tgz";
- url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz";
- sha1 = "a35e13c64799b06ce15320f459c230e68e73bade";
- };
- }
- {
- name = "pdfjs_dist___pdfjs_dist_2.1.266.tgz";
- path = fetchurl {
- name = "pdfjs_dist___pdfjs_dist_2.1.266.tgz";
- url = "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-2.1.266.tgz";
- sha1 = "cded02268b389559e807f410d2a729db62160026";
- };
- }
- {
- name = "performance_now___performance_now_2.1.0.tgz";
- path = fetchurl {
- name = "performance_now___performance_now_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
- sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
- };
- }
- {
- name = "picomatch___picomatch_2.2.2.tgz";
- path = fetchurl {
- name = "picomatch___picomatch_2.2.2.tgz";
- url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
- sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
- };
- }
- {
- name = "pify___pify_2.3.0.tgz";
- path = fetchurl {
- name = "pify___pify_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
- sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
- };
- }
- {
- name = "pify___pify_4.0.1.tgz";
- path = fetchurl {
- name = "pify___pify_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
- sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
- };
- }
- {
- name = "pikaday___pikaday_1.8.0.tgz";
- path = fetchurl {
- name = "pikaday___pikaday_1.8.0.tgz";
- url = "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.0.tgz";
- sha1 = "ce930e257042e852e6aadee1115e01554b2d71c5";
- };
- }
- {
- name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
- path = fetchurl {
- name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
- sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
- };
- }
- {
- name = "pinkie___pinkie_2.0.4.tgz";
- path = fetchurl {
- name = "pinkie___pinkie_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
- sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
- };
- }
- {
- name = "pirates___pirates_4.0.1.tgz";
- path = fetchurl {
- name = "pirates___pirates_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz";
- sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87";
- };
- }
- {
- name = "pkg_dir___pkg_dir_2.0.0.tgz";
- path = fetchurl {
- name = "pkg_dir___pkg_dir_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
- sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
- };
- }
- {
- name = "pkg_dir___pkg_dir_3.0.0.tgz";
- path = fetchurl {
- name = "pkg_dir___pkg_dir_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
- sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
- };
- }
- {
- name = "pkg_dir___pkg_dir_4.2.0.tgz";
- path = fetchurl {
- name = "pkg_dir___pkg_dir_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
- sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
- };
- }
- {
- name = "pofile___pofile_1.0.11.tgz";
- path = fetchurl {
- name = "pofile___pofile_1.0.11.tgz";
- url = "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz";
- sha1 = "35aff58c17491d127a07336d5522ebc9df57c954";
- };
- }
- {
- name = "popper.js___popper.js_1.16.1.tgz";
- path = fetchurl {
- name = "popper.js___popper.js_1.16.1.tgz";
- url = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz";
- sha1 = "2a223cb3dc7b6213d740e40372be40de43e65b1b";
- };
- }
- {
- name = "portal_vue___portal_vue_2.1.7.tgz";
- path = fetchurl {
- name = "portal_vue___portal_vue_2.1.7.tgz";
- url = "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz";
- sha1 = "ea08069b25b640ca08a5b86f67c612f15f4e4ad4";
- };
- }
- {
- name = "portfinder___portfinder_1.0.28.tgz";
- path = fetchurl {
- name = "portfinder___portfinder_1.0.28.tgz";
- url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz";
- sha1 = "67c4622852bd5374dd1dd900f779f53462fac778";
- };
- }
- {
- name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
- path = fetchurl {
- name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
- sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
- };
- }
- {
- name = "postcss_html___postcss_html_0.36.0.tgz";
- path = fetchurl {
- name = "postcss_html___postcss_html_0.36.0.tgz";
- url = "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz";
- sha1 = "b40913f94eaacc2453fd30a1327ad6ee1f88b204";
- };
- }
- {
- name = "postcss_less___postcss_less_3.1.4.tgz";
- path = fetchurl {
- name = "postcss_less___postcss_less_3.1.4.tgz";
- url = "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz";
- sha1 = "369f58642b5928ef898ffbc1a6e93c958304c5ad";
- };
- }
- {
- name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
- path = fetchurl {
- name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
- url = "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz";
- sha1 = "27b39c6f4d94f81b1a73b8f76351c609e5cef244";
- };
- }
- {
- name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
- path = fetchurl {
- name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
- sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
- };
- }
- {
- name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.6.tgz";
- path = fetchurl {
- name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz";
- sha1 = "dd9953f6dd476b5fd1ef2d8830c8929760b56e63";
- };
- }
- {
- name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
- path = fetchurl {
- name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
- sha1 = "385cae013cc7743f5a7d7602d1073a89eaae62ee";
- };
- }
- {
- name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
- path = fetchurl {
- name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz";
- sha1 = "479b46dc0c5ca3dc7fa5270851836b9ec7152f64";
- };
- }
- {
- name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
- path = fetchurl {
- name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz";
- sha1 = "29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e";
- };
- }
- {
- name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
- path = fetchurl {
- name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz";
- sha1 = "a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96";
- };
- }
- {
- name = "postcss_sass___postcss_sass_0.4.4.tgz";
- path = fetchurl {
- name = "postcss_sass___postcss_sass_0.4.4.tgz";
- url = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz";
- sha1 = "91f0f3447b45ce373227a98b61f8d8f0785285a3";
- };
- }
- {
- name = "postcss_scss___postcss_scss_2.1.1.tgz";
- path = fetchurl {
- name = "postcss_scss___postcss_scss_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz";
- sha1 = "ec3a75fa29a55e016b90bf3269026c53c1d2b383";
- };
- }
- {
- name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
- path = fetchurl {
- name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
- url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
- sha1 = "56075a1380a04604c38b063ea7767a129af5c2b3";
- };
- }
- {
- name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
- path = fetchurl {
- name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
- url = "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz";
- sha1 = "f08578c7d95834574e5593a82dfbfa8afae3b51c";
- };
- }
- {
- name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
- path = fetchurl {
- name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
- url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
- sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
- };
- }
- {
- name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
- path = fetchurl {
- name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
- sha1 = "443f6a20ced6481a2bda4fa8532a6e55d789a2cb";
- };
- }
- {
- name = "postcss___postcss_7.0.35.tgz";
- path = fetchurl {
- name = "postcss___postcss_7.0.35.tgz";
- url = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz";
- sha1 = "d2be00b998f7f211d8a276974079f2e92b970e24";
- };
- }
- {
- name = "postcss___postcss_8.2.15.tgz";
- path = fetchurl {
- name = "postcss___postcss_8.2.15.tgz";
- url = "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz";
- sha1 = "9e66ccf07292817d226fc315cbbf9bc148fbca65";
- };
- }
- {
- name = "prelude_ls___prelude_ls_1.2.1.tgz";
- path = fetchurl {
- name = "prelude_ls___prelude_ls_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
- sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
- };
- }
- {
- name = "prelude_ls___prelude_ls_1.1.2.tgz";
- path = fetchurl {
- name = "prelude_ls___prelude_ls_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
- sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
- };
- }
- {
- name = "prepend_http___prepend_http_2.0.0.tgz";
- path = fetchurl {
- name = "prepend_http___prepend_http_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz";
- sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
- };
- }
- {
- name = "pretender___pretender_3.4.3.tgz";
- path = fetchurl {
- name = "pretender___pretender_3.4.3.tgz";
- url = "https://registry.yarnpkg.com/pretender/-/pretender-3.4.3.tgz";
- sha1 = "a3b4160516007075d29127262f3a0063d19896e9";
- };
- }
- {
- name = "prettier___prettier_2.0.5.tgz";
- path = fetchurl {
- name = "prettier___prettier_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz";
- sha1 = "d6d56282455243f2f92cc1716692c08aa31522d4";
- };
- }
- {
- name = "prettier___prettier_2.2.1.tgz";
- path = fetchurl {
- name = "prettier___prettier_2.2.1.tgz";
- url = "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz";
- sha1 = "795a1a78dd52f073da0cd42b21f9c91381923ff5";
- };
- }
- {
- name = "prettier___prettier_1.18.2.tgz";
- path = fetchurl {
- name = "prettier___prettier_1.18.2.tgz";
- url = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
- sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
- };
- }
- {
- name = "pretty_format___pretty_format_26.5.2.tgz";
- path = fetchurl {
- name = "pretty_format___pretty_format_26.5.2.tgz";
- url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.5.2.tgz";
- sha1 = "5d896acfdaa09210683d34b6dc0e6e21423cd3e1";
- };
- }
- {
- name = "pretty___pretty_2.0.0.tgz";
- path = fetchurl {
- name = "pretty___pretty_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz";
- sha1 = "adbc7960b7bbfe289a557dc5f737619a220d06a5";
- };
- }
- {
- name = "prismjs___prismjs_1.21.0.tgz";
- path = fetchurl {
- name = "prismjs___prismjs_1.21.0.tgz";
- url = "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz";
- sha1 = "36c086ec36b45319ec4218ee164c110f9fc015a3";
- };
- }
- {
- name = "private___private_0.1.8.tgz";
- path = fetchurl {
- name = "private___private_0.1.8.tgz";
- url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
- sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
- };
- }
- {
- name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
- path = fetchurl {
- name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
- sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
- };
- }
- {
- name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
- path = fetchurl {
- name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
- sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
- };
- }
- {
- name = "process___process_0.11.10.tgz";
- path = fetchurl {
- name = "process___process_0.11.10.tgz";
- url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
- sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
- };
- }
- {
- name = "progress___progress_2.0.3.tgz";
- path = fetchurl {
- name = "progress___progress_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
- sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
- };
- }
- {
- name = "promise_inflight___promise_inflight_1.0.1.tgz";
- path = fetchurl {
- name = "promise_inflight___promise_inflight_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
- sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
- };
- }
- {
- name = "prompts___prompts_2.3.2.tgz";
- path = fetchurl {
- name = "prompts___prompts_2.3.2.tgz";
- url = "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz";
- sha1 = "480572d89ecf39566d2bd3fe2c9fccb7c4c0b068";
- };
- }
- {
- name = "prosemirror_collab___prosemirror_collab_1.2.2.tgz";
- path = fetchurl {
- name = "prosemirror_collab___prosemirror_collab_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.2.2.tgz";
- sha1 = "8d2c0e82779cfef5d051154bd0836428bd6d9c4a";
- };
- }
- {
- name = "prosemirror_commands___prosemirror_commands_1.1.10.tgz";
- path = fetchurl {
- name = "prosemirror_commands___prosemirror_commands_1.1.10.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.10.tgz";
- sha1 = "406a6589966e6cd80809cea2d801fb998639b37d";
- };
- }
- {
- name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.5.tgz";
- path = fetchurl {
- name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.5.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.5.tgz";
- sha1 = "d2808c17089df0e441ad66016aecc2b6457c8a1f";
- };
- }
- {
- name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
- path = fetchurl {
- name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz";
- sha1 = "0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246";
- };
- }
- {
- name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
- path = fetchurl {
- name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz";
- sha1 = "4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489";
- };
- }
- {
- name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
- path = fetchurl {
- name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz";
- sha1 = "93f9199ca02473259c30d7e352e4c14022d54638";
- };
- }
- {
- name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
- path = fetchurl {
- name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz";
- sha1 = "8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d";
- };
- }
- {
- name = "prosemirror_markdown___prosemirror_markdown_1.5.1.tgz";
- path = fetchurl {
- name = "prosemirror_markdown___prosemirror_markdown_1.5.1.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.5.1.tgz";
- sha1 = "877c7faea2225d3c52e988599bbe4457bcb3190f";
- };
- }
- {
- name = "prosemirror_model___prosemirror_model_1.14.2.tgz";
- path = fetchurl {
- name = "prosemirror_model___prosemirror_model_1.14.2.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.14.2.tgz";
- sha1 = "4e8c39cfff4e097631af4495e125d9a8a9773116";
- };
- }
- {
- name = "prosemirror_schema_basic___prosemirror_schema_basic_1.1.2.tgz";
- path = fetchurl {
- name = "prosemirror_schema_basic___prosemirror_schema_basic_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.1.2.tgz";
- sha1 = "4bde5c339c845e0d08ec8fe473064e372ca51ae3";
- };
- }
- {
- name = "prosemirror_schema_list___prosemirror_schema_list_1.1.5.tgz";
- path = fetchurl {
- name = "prosemirror_schema_list___prosemirror_schema_list_1.1.5.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.5.tgz";
- sha1 = "e7ad9e337ea3d77da6d6a4250f3d7bd51ae980a4";
- };
- }
- {
- name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
- path = fetchurl {
- name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz";
- sha1 = "4c6b52628216e753fc901c6d2bfd84ce109e8952";
- };
- }
- {
- name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
- path = fetchurl {
- name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz";
- sha1 = "ad66300cc49500455cf1243bb129c9e7d883321e";
- };
- }
- {
- name = "prosemirror_test_builder___prosemirror_test_builder_1.0.4.tgz";
- path = fetchurl {
- name = "prosemirror_test_builder___prosemirror_test_builder_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-test-builder/-/prosemirror-test-builder-1.0.4.tgz";
- sha1 = "68d1d1cedcd90cc2fdd976d736ce87b7a5f1e873";
- };
- }
- {
- name = "prosemirror_transform___prosemirror_transform_1.3.2.tgz";
- path = fetchurl {
- name = "prosemirror_transform___prosemirror_transform_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.3.2.tgz";
- sha1 = "5620ebe7379e6fae4f34ecc881886cb22ce96579";
- };
- }
- {
- name = "prosemirror_view___prosemirror_view_1.18.9.tgz";
- path = fetchurl {
- name = "prosemirror_view___prosemirror_view_1.18.9.tgz";
- url = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.18.9.tgz";
- sha1 = "29bc11759438aecc5b7fadaa8520165c84c2144a";
- };
- }
- {
- name = "proto_list___proto_list_1.2.4.tgz";
- path = fetchurl {
- name = "proto_list___proto_list_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
- sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
- };
- }
- {
- name = "proxy_addr___proxy_addr_2.0.5.tgz";
- path = fetchurl {
- name = "proxy_addr___proxy_addr_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz";
- sha1 = "34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34";
- };
- }
- {
- name = "prr___prr_1.0.1.tgz";
- path = fetchurl {
- name = "prr___prr_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
- sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
- };
- }
- {
- name = "pseudomap___pseudomap_1.0.2.tgz";
- path = fetchurl {
- name = "pseudomap___pseudomap_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
- sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
- };
- }
- {
- name = "psl___psl_1.8.0.tgz";
- path = fetchurl {
- name = "psl___psl_1.8.0.tgz";
- url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
- sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
- };
- }
- {
- name = "pstree.remy___pstree.remy_1.1.8.tgz";
- path = fetchurl {
- name = "pstree.remy___pstree.remy_1.1.8.tgz";
- url = "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz";
- sha1 = "c242224f4a67c21f686839bbdb4ac282b8373d3a";
- };
- }
- {
- name = "public_encrypt___public_encrypt_4.0.0.tgz";
- path = fetchurl {
- name = "public_encrypt___public_encrypt_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz";
- sha1 = "39f699f3a46560dd5ebacbca693caf7c65c18cc6";
- };
- }
- {
- name = "pump___pump_2.0.1.tgz";
- path = fetchurl {
- name = "pump___pump_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
- sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
- };
- }
- {
- name = "pump___pump_3.0.0.tgz";
- path = fetchurl {
- name = "pump___pump_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
- sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
- };
- }
- {
- name = "pumpify___pumpify_1.5.1.tgz";
- path = fetchurl {
- name = "pumpify___pumpify_1.5.1.tgz";
- url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
- sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
- };
- }
- {
- name = "punycode___punycode_1.3.2.tgz";
- path = fetchurl {
- name = "punycode___punycode_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
- sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
- };
- }
- {
- name = "punycode___punycode_2.1.1.tgz";
- path = fetchurl {
- name = "punycode___punycode_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
- sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
- };
- }
- {
- name = "pupa___pupa_2.0.1.tgz";
- path = fetchurl {
- name = "pupa___pupa_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz";
- sha1 = "dbdc9ff48ffbea4a26a069b6f9f7abb051008726";
- };
- }
- {
- name = "purgecss_from_html___purgecss_from_html_4.0.3.tgz";
- path = fetchurl {
- name = "purgecss_from_html___purgecss_from_html_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/purgecss-from-html/-/purgecss-from-html-4.0.3.tgz";
- sha1 = "28d86d3dc8292581c4ab529a77a57daf7c2dd940";
- };
- }
- {
- name = "purgecss___purgecss_4.0.3.tgz";
- path = fetchurl {
- name = "purgecss___purgecss_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/purgecss/-/purgecss-4.0.3.tgz";
- sha1 = "8147b429f9c09db719e05d64908ea8b672913742";
- };
- }
- {
- name = "qjobs___qjobs_1.2.0.tgz";
- path = fetchurl {
- name = "qjobs___qjobs_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz";
- sha1 = "c45e9c61800bd087ef88d7e256423bdd49e5d071";
- };
- }
- {
- name = "qs___qs_6.7.0.tgz";
- path = fetchurl {
- name = "qs___qs_6.7.0.tgz";
- url = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
- sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
- };
- }
- {
- name = "qs___qs_6.5.2.tgz";
- path = fetchurl {
- name = "qs___qs_6.5.2.tgz";
- url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
- sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
- };
- }
- {
- name = "querystring_es3___querystring_es3_0.2.1.tgz";
- path = fetchurl {
- name = "querystring_es3___querystring_es3_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
- sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
- };
- }
- {
- name = "querystring___querystring_0.2.0.tgz";
- path = fetchurl {
- name = "querystring___querystring_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
- sha1 = "b209849203bb25df820da756e747005878521620";
- };
- }
- {
- name = "querystringify___querystringify_2.2.0.tgz";
- path = fetchurl {
- name = "querystringify___querystringify_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz";
- sha1 = "3345941b4153cb9d082d8eee4cda2016a9aef7f6";
- };
- }
- {
- name = "quick_lru___quick_lru_4.0.1.tgz";
- path = fetchurl {
- name = "quick_lru___quick_lru_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz";
- sha1 = "5b8878f113a58217848c6482026c73e1ba57727f";
- };
- }
- {
- name = "randombytes___randombytes_2.1.0.tgz";
- path = fetchurl {
- name = "randombytes___randombytes_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
- sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
- };
- }
- {
- name = "randomfill___randomfill_1.0.4.tgz";
- path = fetchurl {
- name = "randomfill___randomfill_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
- sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
- };
- }
- {
- name = "range_parser___range_parser_1.2.1.tgz";
- path = fetchurl {
- name = "range_parser___range_parser_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
- sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
- };
- }
- {
- name = "raphael___raphael_2.2.7.tgz";
- path = fetchurl {
- name = "raphael___raphael_2.2.7.tgz";
- url = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz";
- sha1 = "231b19141f8d086986d8faceb66f8b562ee2c810";
- };
- }
- {
- name = "raw_body___raw_body_2.4.0.tgz";
- path = fetchurl {
- name = "raw_body___raw_body_2.4.0.tgz";
- url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
- sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
- };
- }
- {
- name = "raw_loader___raw_loader_4.0.2.tgz";
- path = fetchurl {
- name = "raw_loader___raw_loader_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz";
- sha1 = "1aac6b7d1ad1501e66efdac1522c73e59a584eb6";
- };
- }
- {
- name = "rc___rc_1.2.8.tgz";
- path = fetchurl {
- name = "rc___rc_1.2.8.tgz";
- url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
- sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
- };
- }
- {
- name = "react_is___react_is_16.13.1.tgz";
- path = fetchurl {
- name = "react_is___react_is_16.13.1.tgz";
- url = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
- sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
- };
- }
- {
- name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
- path = fetchurl {
- name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
- sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
- };
- }
- {
- name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
- path = fetchurl {
- name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
- url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
- sha1 = "f3a6135758459733ae2b95638056e1854e7ef507";
- };
- }
- {
- name = "read_pkg___read_pkg_2.0.0.tgz";
- path = fetchurl {
- name = "read_pkg___read_pkg_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz";
- sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
- };
- }
- {
- name = "read_pkg___read_pkg_5.2.0.tgz";
- path = fetchurl {
- name = "read_pkg___read_pkg_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz";
- sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc";
- };
- }
- {
- name = "readable_stream___readable_stream_2.3.7.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_2.3.7.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
- sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
- };
- }
- {
- name = "readable_stream___readable_stream_3.6.0.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
- sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
- };
- }
- {
- name = "readable_stream___readable_stream_2.0.6.tgz";
- path = fetchurl {
- name = "readable_stream___readable_stream_2.0.6.tgz";
- url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz";
- sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
- };
- }
- {
- name = "readdir_enhanced___readdir_enhanced_2.2.4.tgz";
- path = fetchurl {
- name = "readdir_enhanced___readdir_enhanced_2.2.4.tgz";
- url = "https://registry.yarnpkg.com/readdir-enhanced/-/readdir-enhanced-2.2.4.tgz";
- sha1 = "773fb8a8de5f645fb13d9403746d490d4facb3e6";
- };
- }
- {
- name = "readdirp___readdirp_3.4.0.tgz";
- path = fetchurl {
- name = "readdirp___readdirp_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz";
- sha1 = "9fdccdf9e9155805449221ac645e8303ab5b9ada";
- };
- }
- {
- name = "redent___redent_3.0.0.tgz";
- path = fetchurl {
- name = "redent___redent_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz";
- sha1 = "e557b7998316bb53c9f1f56fa626352c6963059f";
- };
- }
- {
- name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz";
- path = fetchurl {
- name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz";
- url = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
- sha1 = "e5de7111d655e7ba60c057dbe9ff37c87e65cdec";
- };
- }
- {
- name = "regenerate___regenerate_1.4.0.tgz";
- path = fetchurl {
- name = "regenerate___regenerate_1.4.0.tgz";
- url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
- sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
- };
- }
- {
- name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
- path = fetchurl {
- name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
- url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
- sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
- };
- }
- {
- name = "regenerator_transform___regenerator_transform_0.14.4.tgz";
- path = fetchurl {
- name = "regenerator_transform___regenerator_transform_0.14.4.tgz";
- url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
- sha1 = "5266857896518d1616a78a0479337a30ea974cc7";
- };
- }
- {
- name = "regex_not___regex_not_1.0.2.tgz";
- path = fetchurl {
- name = "regex_not___regex_not_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
- sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
- };
- }
- {
- name = "regexpp___regexpp_3.1.0.tgz";
- path = fetchurl {
- name = "regexpp___regexpp_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
- sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
- };
- }
- {
- name = "regexpu_core___regexpu_core_4.7.0.tgz";
- path = fetchurl {
- name = "regexpu_core___regexpu_core_4.7.0.tgz";
- url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz";
- sha1 = "fcbf458c50431b0bb7b45d6967b8192d91f3d938";
- };
- }
- {
- name = "registry_auth_token___registry_auth_token_4.1.1.tgz";
- path = fetchurl {
- name = "registry_auth_token___registry_auth_token_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz";
- sha1 = "40a33be1e82539460f94328b0f7f0f84c16d9479";
- };
- }
- {
- name = "registry_url___registry_url_5.1.0.tgz";
- path = fetchurl {
- name = "registry_url___registry_url_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz";
- sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009";
- };
- }
- {
- name = "regjsgen___regjsgen_0.5.2.tgz";
- path = fetchurl {
- name = "regjsgen___regjsgen_0.5.2.tgz";
- url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz";
- sha1 = "92ff295fb1deecbf6ecdab2543d207e91aa33733";
- };
- }
- {
- name = "regjsparser___regjsparser_0.6.4.tgz";
- path = fetchurl {
- name = "regjsparser___regjsparser_0.6.4.tgz";
- url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz";
- sha1 = "a769f8684308401a66e9b529d2436ff4d0666272";
- };
- }
- {
- name = "relateurl___relateurl_0.2.7.tgz";
- path = fetchurl {
- name = "relateurl___relateurl_0.2.7.tgz";
- url = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
- sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
- };
- }
- {
- name = "remark_parse___remark_parse_9.0.0.tgz";
- path = fetchurl {
- name = "remark_parse___remark_parse_9.0.0.tgz";
- url = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz";
- sha1 = "4d20a299665880e4f4af5d90b7c7b8a935853640";
- };
- }
- {
- name = "remark_stringify___remark_stringify_9.0.1.tgz";
- path = fetchurl {
- name = "remark_stringify___remark_stringify_9.0.1.tgz";
- url = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz";
- sha1 = "576d06e910548b0a7191a71f27b33f1218862894";
- };
- }
- {
- name = "remark___remark_13.0.0.tgz";
- path = fetchurl {
- name = "remark___remark_13.0.0.tgz";
- url = "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz";
- sha1 = "d15d9bf71a402f40287ebe36067b66d54868e425";
- };
- }
- {
- name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
- path = fetchurl {
- name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
- sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
- };
- }
- {
- name = "repeat_element___repeat_element_1.1.3.tgz";
- path = fetchurl {
- name = "repeat_element___repeat_element_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
- sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
- };
- }
- {
- name = "repeat_string___repeat_string_1.6.1.tgz";
- path = fetchurl {
- name = "repeat_string___repeat_string_1.6.1.tgz";
- url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
- sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
- };
- }
- {
- name = "request_light___request_light_0.2.5.tgz";
- path = fetchurl {
- name = "request_light___request_light_0.2.5.tgz";
- url = "https://registry.yarnpkg.com/request-light/-/request-light-0.2.5.tgz";
- sha1 = "38a3da7b2e56f7af8cbba57e8a94930ee2380746";
- };
- }
- {
- name = "request_promise_core___request_promise_core_1.1.4.tgz";
- path = fetchurl {
- name = "request_promise_core___request_promise_core_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
- sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
- };
- }
- {
- name = "request_promise_native___request_promise_native_1.0.9.tgz";
- path = fetchurl {
- name = "request_promise_native___request_promise_native_1.0.9.tgz";
- url = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz";
- sha1 = "e407120526a5efdc9a39b28a5679bf47b9d9dc28";
- };
- }
- {
- name = "request___request_2.88.2.tgz";
- path = fetchurl {
- name = "request___request_2.88.2.tgz";
- url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
- sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
- };
- }
- {
- name = "require_directory___require_directory_2.1.1.tgz";
- path = fetchurl {
- name = "require_directory___require_directory_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
- sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
- };
- }
- {
- name = "require_from_string___require_from_string_2.0.2.tgz";
- path = fetchurl {
- name = "require_from_string___require_from_string_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
- sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
- };
- }
- {
- name = "require_main_filename___require_main_filename_2.0.0.tgz";
- path = fetchurl {
- name = "require_main_filename___require_main_filename_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
- sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
- };
- }
- {
- name = "require_package_name___require_package_name_2.0.1.tgz";
- path = fetchurl {
- name = "require_package_name___require_package_name_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz";
- sha1 = "c11e97276b65b8e2923f75dabf5fb2ef0c3841b9";
- };
- }
- {
- name = "requires_port___requires_port_1.0.0.tgz";
- path = fetchurl {
- name = "requires_port___requires_port_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
- sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
- };
- }
- {
- name = "requizzle___requizzle_0.2.1.tgz";
- path = fetchurl {
- name = "requizzle___requizzle_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz";
- sha1 = "6943c3530c4d9a7e46f1cddd51c158fc670cdbde";
- };
- }
- {
- name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
- path = fetchurl {
- name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
- sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
- };
- }
- {
- name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
- path = fetchurl {
- name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
- sha1 = "0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d";
- };
- }
- {
- name = "resolve_dir___resolve_dir_1.0.1.tgz";
- path = fetchurl {
- name = "resolve_dir___resolve_dir_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
- sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
- };
- }
- {
- name = "resolve_from___resolve_from_3.0.0.tgz";
- path = fetchurl {
- name = "resolve_from___resolve_from_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
- sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
- };
- }
- {
- name = "resolve_from___resolve_from_4.0.0.tgz";
- path = fetchurl {
- name = "resolve_from___resolve_from_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
- sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
- };
- }
- {
- name = "resolve_from___resolve_from_5.0.0.tgz";
- path = fetchurl {
- name = "resolve_from___resolve_from_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz";
- sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69";
- };
- }
- {
- name = "resolve_url___resolve_url_0.2.1.tgz";
- path = fetchurl {
- name = "resolve_url___resolve_url_0.2.1.tgz";
- url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
- sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
- };
- }
- {
- name = "resolve___resolve_1.20.0.tgz";
- path = fetchurl {
- name = "resolve___resolve_1.20.0.tgz";
- url = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
- sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
- };
- }
- {
- name = "responselike___responselike_1.0.2.tgz";
- path = fetchurl {
- name = "responselike___responselike_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz";
- sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
- };
- }
- {
- name = "ret___ret_0.1.15.tgz";
- path = fetchurl {
- name = "ret___ret_0.1.15.tgz";
- url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
- sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
- };
- }
- {
- name = "retry___retry_0.12.0.tgz";
- path = fetchurl {
- name = "retry___retry_0.12.0.tgz";
- url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
- sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
- };
- }
- {
- name = "reusify___reusify_1.0.4.tgz";
- path = fetchurl {
- name = "reusify___reusify_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
- sha1 = "90da382b1e126efc02146e90845a88db12925d76";
- };
- }
- {
- name = "rfdc___rfdc_1.1.4.tgz";
- path = fetchurl {
- name = "rfdc___rfdc_1.1.4.tgz";
- url = "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz";
- sha1 = "ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2";
- };
- }
- {
- name = "rimraf___rimraf_2.6.3.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_2.6.3.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
- sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
- };
- }
- {
- name = "rimraf___rimraf_3.0.2.tgz";
- path = fetchurl {
- name = "rimraf___rimraf_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
- sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
- };
- }
- {
- name = "ripemd160___ripemd160_2.0.1.tgz";
- path = fetchurl {
- name = "ripemd160___ripemd160_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz";
- sha1 = "0f4584295c53a3628af7e6d79aca21ce57d1c6e7";
- };
- }
- {
- name = "rope_sequence___rope_sequence_1.3.2.tgz";
- path = fetchurl {
- name = "rope_sequence___rope_sequence_1.3.2.tgz";
- url = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz";
- sha1 = "a19e02d72991ca71feb6b5f8a91154e48e3c098b";
- };
- }
- {
- name = "route_recognizer___route_recognizer_0.3.4.tgz";
- path = fetchurl {
- name = "route_recognizer___route_recognizer_0.3.4.tgz";
- url = "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.4.tgz";
- sha1 = "39ab1ffbce1c59e6d2bdca416f0932611e4f3ca3";
- };
- }
- {
- name = "rsvp___rsvp_4.8.4.tgz";
- path = fetchurl {
- name = "rsvp___rsvp_4.8.4.tgz";
- url = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz";
- sha1 = "b50e6b34583f3dd89329a2f23a8a2be072845911";
- };
- }
- {
- name = "run_parallel___run_parallel_1.1.10.tgz";
- path = fetchurl {
- name = "run_parallel___run_parallel_1.1.10.tgz";
- url = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz";
- sha1 = "60a51b2ae836636c81377df16cb107351bcd13ef";
- };
- }
- {
- name = "run_queue___run_queue_1.0.3.tgz";
- path = fetchurl {
- name = "run_queue___run_queue_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
- sha1 = "e848396f057d223f24386924618e25694161ec47";
- };
- }
- {
- name = "rw___rw_1.3.3.tgz";
- path = fetchurl {
- name = "rw___rw_1.3.3.tgz";
- url = "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz";
- sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
- };
- }
- {
- name = "safe_buffer___safe_buffer_5.1.2.tgz";
- path = fetchurl {
- name = "safe_buffer___safe_buffer_5.1.2.tgz";
- url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
- sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
- };
- }
- {
- name = "safe_regex___safe_regex_1.1.0.tgz";
- path = fetchurl {
- name = "safe_regex___safe_regex_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
- sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
- };
- }
- {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- path = fetchurl {
- name = "safer_buffer___safer_buffer_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
- sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
- };
- }
- {
- name = "sane___sane_4.1.0.tgz";
- path = fetchurl {
- name = "sane___sane_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
- sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
- };
- }
- {
- name = "sass___sass_1.32.12.tgz";
- path = fetchurl {
- name = "sass___sass_1.32.12.tgz";
- url = "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz";
- sha1 = "a2a47ad0f1c168222db5206444a30c12457abb9f";
- };
- }
- {
- name = "sax___sax_1.2.1.tgz";
- path = fetchurl {
- name = "sax___sax_1.2.1.tgz";
- url = "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz";
- sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a";
- };
- }
- {
- name = "saxes___saxes_5.0.1.tgz";
- path = fetchurl {
- name = "saxes___saxes_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz";
- sha1 = "eebab953fa3b7608dbe94e5dadb15c888fa6696d";
- };
- }
- {
- name = "schema_utils___schema_utils_0.4.5.tgz";
- path = fetchurl {
- name = "schema_utils___schema_utils_0.4.5.tgz";
- url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz";
- sha1 = "21836f0608aac17b78f9e3e24daff14a5ca13a3e";
- };
- }
- {
- name = "schema_utils___schema_utils_1.0.0.tgz";
- path = fetchurl {
- name = "schema_utils___schema_utils_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
- sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
- };
- }
- {
- name = "schema_utils___schema_utils_2.7.1.tgz";
- path = fetchurl {
- name = "schema_utils___schema_utils_2.7.1.tgz";
- url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
- sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
- };
- }
- {
- name = "schema_utils___schema_utils_3.0.0.tgz";
- path = fetchurl {
- name = "schema_utils___schema_utils_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz";
- sha1 = "67502f6aa2b66a2d4032b4279a2944978a0913ef";
- };
- }
- {
- name = "scrollparent___scrollparent_2.0.1.tgz";
- path = fetchurl {
- name = "scrollparent___scrollparent_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/scrollparent/-/scrollparent-2.0.1.tgz";
- sha1 = "715d5b9cc57760fb22bdccc3befb5bfe06b1a317";
- };
- }
- {
- name = "select_hose___select_hose_2.0.0.tgz";
- path = fetchurl {
- name = "select_hose___select_hose_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
- sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
- };
- }
- {
- name = "select2___select2_3.5.2_browserify.tgz";
- path = fetchurl {
- name = "select2___select2_3.5.2_browserify.tgz";
- url = "https://registry.yarnpkg.com/select2/-/select2-3.5.2-browserify.tgz";
- sha1 = "dc4dafda38d67a734e8a97a46f0d3529ae05391d";
- };
- }
- {
- name = "select___select_1.1.2.tgz";
- path = fetchurl {
- name = "select___select_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz";
- sha1 = "0e7350acdec80b1108528786ec1d4418d11b396d";
- };
- }
- {
- name = "selfsigned___selfsigned_1.10.8.tgz";
- path = fetchurl {
- name = "selfsigned___selfsigned_1.10.8.tgz";
- url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz";
- sha1 = "0d17208b7d12c33f8eac85c41835f27fc3d81a30";
- };
- }
- {
- name = "semver_diff___semver_diff_3.1.1.tgz";
- path = fetchurl {
- name = "semver_diff___semver_diff_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz";
- sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b";
- };
- }
- {
- name = "semver___semver_5.7.1.tgz";
- path = fetchurl {
- name = "semver___semver_5.7.1.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
- sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
- };
- }
- {
- name = "semver___semver_7.0.0.tgz";
- path = fetchurl {
- name = "semver___semver_7.0.0.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz";
- sha1 = "5f3ca35761e47e05b206c6daff2cf814f0316b8e";
- };
- }
- {
- name = "semver___semver_6.3.0.tgz";
- path = fetchurl {
- name = "semver___semver_6.3.0.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
- sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
- };
- }
- {
- name = "semver___semver_7.3.4.tgz";
- path = fetchurl {
- name = "semver___semver_7.3.4.tgz";
- url = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
- sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
- };
- }
- {
- name = "send___send_0.17.1.tgz";
- path = fetchurl {
- name = "send___send_0.17.1.tgz";
- url = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
- sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
- };
- }
- {
- name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
- path = fetchurl {
- name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
- sha1 = "ecec53b0e0317bdc95ef76ab7074b7384785fa61";
- };
- }
- {
- name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
- path = fetchurl {
- name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
- sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
- };
- }
- {
- name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
- path = fetchurl {
- name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
- sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
- };
- }
- {
- name = "serve_index___serve_index_1.9.1.tgz";
- path = fetchurl {
- name = "serve_index___serve_index_1.9.1.tgz";
- url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
- sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
- };
- }
- {
- name = "serve_static___serve_static_1.14.1.tgz";
- path = fetchurl {
- name = "serve_static___serve_static_1.14.1.tgz";
- url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
- sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
- };
- }
- {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- path = fetchurl {
- name = "set_blocking___set_blocking_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
- sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
- };
- }
- {
- name = "set_value___set_value_2.0.1.tgz";
- path = fetchurl {
- name = "set_value___set_value_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
- sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
- };
- }
- {
- name = "setimmediate___setimmediate_1.0.5.tgz";
- path = fetchurl {
- name = "setimmediate___setimmediate_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
- sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
- };
- }
- {
- name = "setprototypeof___setprototypeof_1.0.3.tgz";
- path = fetchurl {
- name = "setprototypeof___setprototypeof_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz";
- sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
- };
- }
- {
- name = "setprototypeof___setprototypeof_1.1.1.tgz";
- path = fetchurl {
- name = "setprototypeof___setprototypeof_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
- sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
- };
- }
- {
- name = "sha.js___sha.js_2.4.10.tgz";
- path = fetchurl {
- name = "sha.js___sha.js_2.4.10.tgz";
- url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz";
- sha1 = "b1fde5cd7d11a5626638a07c604ab909cfa31f9b";
- };
- }
- {
- name = "shallow_clone___shallow_clone_3.0.1.tgz";
- path = fetchurl {
- name = "shallow_clone___shallow_clone_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz";
- sha1 = "8f2981ad92531f55035b01fb230769a40e02efa3";
- };
- }
- {
- name = "shebang_command___shebang_command_1.2.0.tgz";
- path = fetchurl {
- name = "shebang_command___shebang_command_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
- sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
- };
- }
- {
- name = "shebang_command___shebang_command_2.0.0.tgz";
- path = fetchurl {
- name = "shebang_command___shebang_command_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
- sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
- };
- }
- {
- name = "shebang_regex___shebang_regex_1.0.0.tgz";
- path = fetchurl {
- name = "shebang_regex___shebang_regex_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
- sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
- };
- }
- {
- name = "shebang_regex___shebang_regex_3.0.0.tgz";
- path = fetchurl {
- name = "shebang_regex___shebang_regex_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
- sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
- };
- }
- {
- name = "shellwords___shellwords_0.1.1.tgz";
- path = fetchurl {
- name = "shellwords___shellwords_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
- sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
- };
- }
- {
- name = "shortcss___shortcss_0.1.3.tgz";
- path = fetchurl {
- name = "shortcss___shortcss_0.1.3.tgz";
- url = "https://registry.yarnpkg.com/shortcss/-/shortcss-0.1.3.tgz";
- sha1 = "ee2a7904d80b7f5502c98408f4a2f313faadfb48";
- };
- }
- {
- name = "sigmund___sigmund_1.0.1.tgz";
- path = fetchurl {
- name = "sigmund___sigmund_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz";
- sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
- };
- }
- {
- name = "signal_exit___signal_exit_3.0.3.tgz";
- path = fetchurl {
- name = "signal_exit___signal_exit_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
- sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
- };
- }
- {
- name = "sirv___sirv_1.0.11.tgz";
- path = fetchurl {
- name = "sirv___sirv_1.0.11.tgz";
- url = "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz";
- sha1 = "81c19a29202048507d6ec0d8ba8910fda52eb5a4";
- };
- }
- {
- name = "sisteransi___sisteransi_1.0.5.tgz";
- path = fetchurl {
- name = "sisteransi___sisteransi_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz";
- sha1 = "134d681297756437cc05ca01370d3a7a571075ed";
- };
- }
- {
- name = "slash___slash_3.0.0.tgz";
- path = fetchurl {
- name = "slash___slash_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz";
- sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
- };
- }
- {
- name = "slice_ansi___slice_ansi_4.0.0.tgz";
- path = fetchurl {
- name = "slice_ansi___slice_ansi_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
- sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
- };
- }
- {
- name = "smooshpack___smooshpack_0.0.62.tgz";
- path = fetchurl {
- name = "smooshpack___smooshpack_0.0.62.tgz";
- url = "https://registry.yarnpkg.com/smooshpack/-/smooshpack-0.0.62.tgz";
- sha1 = "cb31b9f808f73de3146b050f84d044eb353b5503";
- };
- }
- {
- name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
- path = fetchurl {
- name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
- sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
- };
- }
- {
- name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
- path = fetchurl {
- name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
- sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
- };
- }
- {
- name = "snapdragon___snapdragon_0.8.2.tgz";
- path = fetchurl {
- name = "snapdragon___snapdragon_0.8.2.tgz";
- url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
- sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
- };
- }
- {
- name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
- path = fetchurl {
- name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz";
- sha1 = "2a805e8a14d6372124dd9159ad4502f8cb07f06b";
- };
- }
- {
- name = "socket.io_client___socket.io_client_2.1.1.tgz";
- path = fetchurl {
- name = "socket.io_client___socket.io_client_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz";
- sha1 = "dcb38103436ab4578ddb026638ae2f21b623671f";
- };
- }
- {
- name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
- path = fetchurl {
- name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz";
- sha1 = "e7c6228b6aa1f814e6148aea325b51aa9499e077";
- };
- }
- {
- name = "socket.io___socket.io_2.1.1.tgz";
- path = fetchurl {
- name = "socket.io___socket.io_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz";
- sha1 = "a069c5feabee3e6b214a75b40ce0652e1cfb9980";
- };
- }
- {
- name = "sockjs_client___sockjs_client_1.5.0.tgz";
- path = fetchurl {
- name = "sockjs_client___sockjs_client_1.5.0.tgz";
- url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz";
- sha1 = "2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add";
- };
- }
- {
- name = "sockjs___sockjs_0.3.21.tgz";
- path = fetchurl {
- name = "sockjs___sockjs_0.3.21.tgz";
- url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz";
- sha1 = "b34ffb98e796930b60a0cfa11904d6a339a7d417";
- };
- }
- {
- name = "sortablejs___sortablejs_1.10.2.tgz";
- path = fetchurl {
- name = "sortablejs___sortablejs_1.10.2.tgz";
- url = "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz";
- sha1 = "6e40364d913f98b85a14f6678f92b5c1221f5290";
- };
- }
- {
- name = "source_list_map___source_list_map_2.0.0.tgz";
- path = fetchurl {
- name = "source_list_map___source_list_map_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz";
- sha1 = "aaa47403f7b245a92fbc97ea08f250d6087ed085";
- };
- }
- {
- name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
- path = fetchurl {
- name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
- url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
- sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
- };
- }
- {
- name = "source_map_support___source_map_support_0.5.19.tgz";
- path = fetchurl {
- name = "source_map_support___source_map_support_0.5.19.tgz";
- url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
- sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
- };
- }
- {
- name = "source_map_url___source_map_url_0.4.0.tgz";
- path = fetchurl {
- name = "source_map_url___source_map_url_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
- sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
- };
- }
- {
- name = "source_map___source_map_0.5.6.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.5.6.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz";
- sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412";
- };
- }
- {
- name = "source_map___source_map_0.6.1.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.6.1.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
- sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
- };
- }
- {
- name = "source_map___source_map_0.7.3.tgz";
- path = fetchurl {
- name = "source_map___source_map_0.7.3.tgz";
- url = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
- sha1 = "5302f8169031735226544092e64981f751750383";
- };
- }
- {
- name = "spdx_correct___spdx_correct_3.1.1.tgz";
- path = fetchurl {
- name = "spdx_correct___spdx_correct_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz";
- sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9";
- };
- }
- {
- name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
- path = fetchurl {
- name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
- sha1 = "3f28ce1a77a00372683eade4a433183527a2163d";
- };
- }
- {
- name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
- path = fetchurl {
- name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
- sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
- };
- }
- {
- name = "spdx_license_ids___spdx_license_ids_3.0.6.tgz";
- path = fetchurl {
- name = "spdx_license_ids___spdx_license_ids_3.0.6.tgz";
- url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz";
- sha1 = "c80757383c28abf7296744998cbc106ae8b854ce";
- };
- }
- {
- name = "spdy_transport___spdy_transport_3.0.0.tgz";
- path = fetchurl {
- name = "spdy_transport___spdy_transport_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz";
- sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31";
- };
- }
- {
- name = "spdy___spdy_4.0.2.tgz";
- path = fetchurl {
- name = "spdy___spdy_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz";
- sha1 = "b74f466203a3eda452c02492b91fb9e84a27677b";
- };
- }
- {
- name = "specificity___specificity_0.4.1.tgz";
- path = fetchurl {
- name = "specificity___specificity_0.4.1.tgz";
- url = "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz";
- sha1 = "aab5e645012db08ba182e151165738d00887b019";
- };
- }
- {
- name = "split_string___split_string_3.1.0.tgz";
- path = fetchurl {
- name = "split_string___split_string_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
- sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
- };
- }
- {
- name = "sprintf_js___sprintf_js_1.0.3.tgz";
- path = fetchurl {
- name = "sprintf_js___sprintf_js_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
- sha1 = "04e6926f662895354f3dd015203633b857297e2c";
- };
- }
- {
- name = "sql.js___sql.js_0.4.0.tgz";
- path = fetchurl {
- name = "sql.js___sql.js_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/sql.js/-/sql.js-0.4.0.tgz";
- sha1 = "23be9635520eb0ff43a741e7e830397266e88445";
- };
- }
- {
- name = "sshpk___sshpk_1.16.1.tgz";
- path = fetchurl {
- name = "sshpk___sshpk_1.16.1.tgz";
- url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
- sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
- };
- }
- {
- name = "ssri___ssri_6.0.1.tgz";
- path = fetchurl {
- name = "ssri___ssri_6.0.1.tgz";
- url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
- sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
- };
- }
- {
- name = "ssri___ssri_8.0.0.tgz";
- path = fetchurl {
- name = "ssri___ssri_8.0.0.tgz";
- url = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz";
- sha1 = "79ca74e21f8ceaeddfcb4b90143c458b8d988808";
- };
- }
- {
- name = "stack_utils___stack_utils_2.0.2.tgz";
- path = fetchurl {
- name = "stack_utils___stack_utils_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz";
- sha1 = "5cf48b4557becb4638d0bc4f21d23f5d19586593";
- };
- }
- {
- name = "static_extend___static_extend_0.1.2.tgz";
- path = fetchurl {
- name = "static_extend___static_extend_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
- sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
- };
- }
- {
- name = "statuses___statuses_1.5.0.tgz";
- path = fetchurl {
- name = "statuses___statuses_1.5.0.tgz";
- url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
- sha1 = "161c7dac177659fd9811f43771fa99381478628c";
- };
- }
- {
- name = "statuses___statuses_1.3.1.tgz";
- path = fetchurl {
- name = "statuses___statuses_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz";
- sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
- };
- }
- {
- name = "stealthy_require___stealthy_require_1.1.1.tgz";
- path = fetchurl {
- name = "stealthy_require___stealthy_require_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
- sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
- };
- }
- {
- name = "stream_browserify___stream_browserify_2.0.1.tgz";
- path = fetchurl {
- name = "stream_browserify___stream_browserify_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
- sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
- };
- }
- {
- name = "stream_each___stream_each_1.2.2.tgz";
- path = fetchurl {
- name = "stream_each___stream_each_1.2.2.tgz";
- url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz";
- sha1 = "8e8c463f91da8991778765873fe4d960d8f616bd";
- };
- }
- {
- name = "stream_http___stream_http_2.8.2.tgz";
- path = fetchurl {
- name = "stream_http___stream_http_2.8.2.tgz";
- url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz";
- sha1 = "4126e8c6b107004465918aa2fc35549e77402c87";
- };
- }
- {
- name = "stream_shift___stream_shift_1.0.0.tgz";
- path = fetchurl {
- name = "stream_shift___stream_shift_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz";
- sha1 = "d5c752825e5367e786f78e18e445ea223a155952";
- };
- }
- {
- name = "streamroller___streamroller_1.0.6.tgz";
- path = fetchurl {
- name = "streamroller___streamroller_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz";
- sha1 = "8167d8496ed9f19f05ee4b158d9611321b8cacd9";
- };
- }
- {
- name = "string_hash___string_hash_1.1.3.tgz";
- path = fetchurl {
- name = "string_hash___string_hash_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz";
- sha1 = "e8aafc0ac1855b4666929ed7dd1275df5d6c811b";
- };
- }
- {
- name = "string_length___string_length_4.0.1.tgz";
- path = fetchurl {
- name = "string_length___string_length_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz";
- sha1 = "4a973bf31ef77c4edbceadd6af2611996985f8a1";
- };
- }
- {
- name = "string_width___string_width_3.1.0.tgz";
- path = fetchurl {
- name = "string_width___string_width_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
- sha1 = "22767be21b62af1081574306f69ac51b62203961";
- };
- }
- {
- name = "string_width___string_width_4.2.0.tgz";
- path = fetchurl {
- name = "string_width___string_width_4.2.0.tgz";
- url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
- sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
- };
- }
- {
- name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
- path = fetchurl {
- name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
- sha1 = "a22bd53cca5c7cf44d7c9d5c732118873d6cd18b";
- };
- }
- {
- name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
- path = fetchurl {
- name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
- url = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
- sha1 = "9b4cb590e123bb36564401d59824298de50fd5aa";
- };
- }
- {
- name = "string_decoder___string_decoder_1.1.1.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
- sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
- };
- }
- {
- name = "string_decoder___string_decoder_0.10.31.tgz";
- path = fetchurl {
- name = "string_decoder___string_decoder_0.10.31.tgz";
- url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
- sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
- };
- }
- {
- name = "strip_ansi___strip_ansi_3.0.1.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
- sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
- };
- }
- {
- name = "strip_ansi___strip_ansi_4.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
- sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
- };
- }
- {
- name = "strip_ansi___strip_ansi_5.2.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_5.2.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
- sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
- };
- }
- {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- path = fetchurl {
- name = "strip_ansi___strip_ansi_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
- sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
- };
- }
- {
- name = "strip_bom___strip_bom_3.0.0.tgz";
- path = fetchurl {
- name = "strip_bom___strip_bom_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
- sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
- };
- }
- {
- name = "strip_bom___strip_bom_4.0.0.tgz";
- path = fetchurl {
- name = "strip_bom___strip_bom_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz";
- sha1 = "9c3505c1db45bcedca3d9cf7a16f5c5aa3901878";
- };
- }
- {
- name = "strip_eof___strip_eof_1.0.0.tgz";
- path = fetchurl {
- name = "strip_eof___strip_eof_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
- sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
- };
- }
- {
- name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
- path = fetchurl {
- name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
- sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad";
- };
- }
- {
- name = "strip_indent___strip_indent_3.0.0.tgz";
- path = fetchurl {
- name = "strip_indent___strip_indent_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz";
- sha1 = "c32e1cee940b6b3432c771bc2c54bcce73cd3001";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
- sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
- };
- }
- {
- name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
- path = fetchurl {
- name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
- sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
- };
- }
- {
- name = "style_loader___style_loader_2.0.0.tgz";
- path = fetchurl {
- name = "style_loader___style_loader_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz";
- sha1 = "9669602fd4690740eaaec137799a03addbbc393c";
- };
- }
- {
- name = "style_search___style_search_0.1.0.tgz";
- path = fetchurl {
- name = "style_search___style_search_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz";
- sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
- };
- }
- {
- name = "stylelint_declaration_strict_value___stylelint_declaration_strict_value_1.7.7.tgz";
- path = fetchurl {
- name = "stylelint_declaration_strict_value___stylelint_declaration_strict_value_1.7.7.tgz";
- url = "https://registry.yarnpkg.com/stylelint-declaration-strict-value/-/stylelint-declaration-strict-value-1.7.7.tgz";
- sha1 = "d2f0aabc7f3e701a8988207f27d9696bd1d1ed0d";
- };
- }
- {
- name = "stylelint_scss___stylelint_scss_3.18.0.tgz";
- path = fetchurl {
- name = "stylelint_scss___stylelint_scss_3.18.0.tgz";
- url = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.18.0.tgz";
- sha1 = "8f06371c223909bf3f62e839548af1badeed31e9";
- };
- }
- {
- name = "stylelint___stylelint_13.9.0.tgz";
- path = fetchurl {
- name = "stylelint___stylelint_13.9.0.tgz";
- url = "https://registry.yarnpkg.com/stylelint/-/stylelint-13.9.0.tgz";
- sha1 = "93921ee6e11d4556b9f31131f485dc813b68e32a";
- };
- }
- {
- name = "stylis___stylis_3.5.4.tgz";
- path = fetchurl {
- name = "stylis___stylis_3.5.4.tgz";
- url = "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz";
- sha1 = "f665f25f5e299cf3d64654ab949a57c768b73fbe";
- };
- }
- {
- name = "sugarss___sugarss_2.0.0.tgz";
- path = fetchurl {
- name = "sugarss___sugarss_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
- sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
- };
- }
- {
- name = "supports_color___supports_color_5.5.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_5.5.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
- sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
- };
- }
- {
- name = "supports_color___supports_color_6.1.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
- sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
- };
- }
- {
- name = "supports_color___supports_color_7.2.0.tgz";
- path = fetchurl {
- name = "supports_color___supports_color_7.2.0.tgz";
- url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
- sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
- };
- }
- {
- name = "supports_hyperlinks___supports_hyperlinks_2.1.0.tgz";
- path = fetchurl {
- name = "supports_hyperlinks___supports_hyperlinks_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz";
- sha1 = "f663df252af5f37c5d49bbd7eeefa9e0b9e59e47";
- };
- }
- {
- name = "svg_tags___svg_tags_1.0.0.tgz";
- path = fetchurl {
- name = "svg_tags___svg_tags_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz";
- sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
- };
- }
- {
- name = "swagger_ui_dist___swagger_ui_dist_3.44.1.tgz";
- path = fetchurl {
- name = "swagger_ui_dist___swagger_ui_dist_3.44.1.tgz";
- url = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.44.1.tgz";
- sha1 = "757385a79698b8ef7045287be585671db4e4a252";
- };
- }
- {
- name = "symbol_observable___symbol_observable_1.2.0.tgz";
- path = fetchurl {
- name = "symbol_observable___symbol_observable_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
- sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
- };
- }
- {
- name = "symbol_tree___symbol_tree_3.2.4.tgz";
- path = fetchurl {
- name = "symbol_tree___symbol_tree_3.2.4.tgz";
- url = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz";
- sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
- };
- }
- {
- name = "table___table_6.7.1.tgz";
- path = fetchurl {
- name = "table___table_6.7.1.tgz";
- url = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz";
- sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2";
- };
- }
- {
- name = "taffydb___taffydb_2.6.2.tgz";
- path = fetchurl {
- name = "taffydb___taffydb_2.6.2.tgz";
- url = "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz";
- sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
- };
- }
- {
- name = "tapable___tapable_0.1.10.tgz";
- path = fetchurl {
- name = "tapable___tapable_0.1.10.tgz";
- url = "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz";
- sha1 = "29c35707c2b70e50d07482b5d202e8ed446dafd4";
- };
- }
- {
- name = "tapable___tapable_1.1.3.tgz";
- path = fetchurl {
- name = "tapable___tapable_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz";
- sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2";
- };
- }
- {
- name = "tar___tar_6.0.5.tgz";
- path = fetchurl {
- name = "tar___tar_6.0.5.tgz";
- url = "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz";
- sha1 = "bde815086e10b39f1dcd298e89d596e1535e200f";
- };
- }
- {
- name = "term_size___term_size_2.2.0.tgz";
- path = fetchurl {
- name = "term_size___term_size_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz";
- sha1 = "1f16adedfe9bdc18800e1776821734086fcc6753";
- };
- }
- {
- name = "terminal_link___terminal_link_2.1.1.tgz";
- path = fetchurl {
- name = "terminal_link___terminal_link_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz";
- sha1 = "14a64a27ab3c0df933ea546fba55f2d078edc994";
- };
- }
- {
- name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
- path = fetchurl {
- name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
- url = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
- sha1 = "5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c";
- };
- }
- {
- name = "terser___terser_4.3.1.tgz";
- path = fetchurl {
- name = "terser___terser_4.3.1.tgz";
- url = "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz";
- sha1 = "09820bcb3398299c4b48d9a86aefc65127d0ed65";
- };
- }
- {
- name = "test_exclude___test_exclude_6.0.0.tgz";
- path = fetchurl {
- name = "test_exclude___test_exclude_6.0.0.tgz";
- url = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz";
- sha1 = "04a8698661d805ea6fa293b6cb9e63ac044ef15e";
- };
- }
- {
- name = "text_table___text_table_0.2.0.tgz";
- path = fetchurl {
- name = "text_table___text_table_0.2.0.tgz";
- url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
- sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
- };
- }
- {
- name = "textextensions___textextensions_2.2.0.tgz";
- path = fetchurl {
- name = "textextensions___textextensions_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz";
- sha1 = "38ac676151285b658654581987a0ce1a4490d286";
- };
- }
- {
- name = "three_orbit_controls___three_orbit_controls_82.1.0.tgz";
- path = fetchurl {
- name = "three_orbit_controls___three_orbit_controls_82.1.0.tgz";
- url = "https://registry.yarnpkg.com/three-orbit-controls/-/three-orbit-controls-82.1.0.tgz";
- sha1 = "11a7f33d0a20ecec98f098b37780f6537374fab4";
- };
- }
- {
- name = "three_stl_loader___three_stl_loader_1.0.4.tgz";
- path = fetchurl {
- name = "three_stl_loader___three_stl_loader_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/three-stl-loader/-/three-stl-loader-1.0.4.tgz";
- sha1 = "6b3319a31e3b910aab1883d19b00c81a663c3e03";
- };
- }
- {
- name = "three___three_0.84.0.tgz";
- path = fetchurl {
- name = "three___three_0.84.0.tgz";
- url = "https://registry.yarnpkg.com/three/-/three-0.84.0.tgz";
- sha1 = "95be85a55a0fa002aa625ed559130957dcffd918";
- };
- }
- {
- name = "throat___throat_5.0.0.tgz";
- path = fetchurl {
- name = "throat___throat_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz";
- sha1 = "c5199235803aad18754a667d659b5e72ce16764b";
- };
- }
- {
- name = "throttle_debounce___throttle_debounce_2.1.0.tgz";
- path = fetchurl {
- name = "throttle_debounce___throttle_debounce_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz";
- sha1 = "257e648f0a56bd9e54fe0f132c4ab8611df4e1d5";
- };
- }
- {
- name = "through2___through2_2.0.5.tgz";
- path = fetchurl {
- name = "through2___through2_2.0.5.tgz";
- url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
- sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
- };
- }
- {
- name = "thunky___thunky_0.1.0.tgz";
- path = fetchurl {
- name = "thunky___thunky_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz";
- sha1 = "bf30146824e2b6e67b0f2d7a4ac8beb26908684e";
- };
- }
- {
- name = "timeago.js___timeago.js_4.0.2.tgz";
- path = fetchurl {
- name = "timeago.js___timeago.js_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/timeago.js/-/timeago.js-4.0.2.tgz";
- sha1 = "724e8c8833e3490676c7bb0a75f5daf20e558028";
- };
- }
- {
- name = "timers_browserify___timers_browserify_2.0.10.tgz";
- path = fetchurl {
- name = "timers_browserify___timers_browserify_2.0.10.tgz";
- url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz";
- sha1 = "1d28e3d2aadf1d5a5996c4e9f95601cd053480ae";
- };
- }
- {
- name = "timezone_mock___timezone_mock_1.0.8.tgz";
- path = fetchurl {
- name = "timezone_mock___timezone_mock_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/timezone-mock/-/timezone-mock-1.0.8.tgz";
- sha1 = "1b9f7af13f2bf84b7aa3d3d6e24aa17255b6037d";
- };
- }
- {
- name = "tiny_emitter___tiny_emitter_2.0.2.tgz";
- path = fetchurl {
- name = "tiny_emitter___tiny_emitter_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz";
- sha1 = "82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c";
- };
- }
- {
- name = "tippy.js___tippy.js_6.3.1.tgz";
- path = fetchurl {
- name = "tippy.js___tippy.js_6.3.1.tgz";
- url = "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.1.tgz";
- sha1 = "3788a007be7015eee0fd589a66b98fb3f8f10181";
- };
- }
- {
- name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
- path = fetchurl {
- name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
- url = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.17.1.tgz";
- sha1 = "a8974a26d87db57b2fd4fc56a552520c69e43a4a";
- };
- }
- {
- name = "tiptap_extensions___tiptap_extensions_1.35.2.tgz";
- path = fetchurl {
- name = "tiptap_extensions___tiptap_extensions_1.35.2.tgz";
- url = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.2.tgz";
- sha1 = "83dd6ee703ae8c83b58c7608f97253fcc4f1a94c";
- };
- }
- {
- name = "tiptap_utils___tiptap_utils_1.13.1.tgz";
- path = fetchurl {
- name = "tiptap_utils___tiptap_utils_1.13.1.tgz";
- url = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.13.1.tgz";
- sha1 = "f2150ded432465d66aa03a5ab333803415cddd20";
- };
- }
- {
- name = "tiptap___tiptap_1.32.2.tgz";
- path = fetchurl {
- name = "tiptap___tiptap_1.32.2.tgz";
- url = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.2.tgz";
- sha1 = "cd6259e853652bfc6860758ff44ebb695d5edd1c";
- };
- }
- {
- name = "tmp___tmp_0.0.33.tgz";
- path = fetchurl {
- name = "tmp___tmp_0.0.33.tgz";
- url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
- sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
- };
- }
- {
- name = "tmpl___tmpl_1.0.4.tgz";
- path = fetchurl {
- name = "tmpl___tmpl_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
- sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
- };
- }
- {
- name = "to_array___to_array_0.1.4.tgz";
- path = fetchurl {
- name = "to_array___to_array_0.1.4.tgz";
- url = "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz";
- sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
- };
- }
- {
- name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
- path = fetchurl {
- name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
- sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
- };
- }
- {
- name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
- path = fetchurl {
- name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
- sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
- };
- }
- {
- name = "to_object_path___to_object_path_0.3.0.tgz";
- path = fetchurl {
- name = "to_object_path___to_object_path_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
- sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
- };
- }
- {
- name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
- path = fetchurl {
- name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
- sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
- };
- }
- {
- name = "to_regex_range___to_regex_range_2.1.1.tgz";
- path = fetchurl {
- name = "to_regex_range___to_regex_range_2.1.1.tgz";
- url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
- sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
- };
- }
- {
- name = "to_regex_range___to_regex_range_5.0.1.tgz";
- path = fetchurl {
- name = "to_regex_range___to_regex_range_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
- sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
- };
- }
- {
- name = "to_regex___to_regex_3.0.2.tgz";
- path = fetchurl {
- name = "to_regex___to_regex_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
- sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
- };
- }
- {
- name = "toggle_selection___toggle_selection_1.0.6.tgz";
- path = fetchurl {
- name = "toggle_selection___toggle_selection_1.0.6.tgz";
- url = "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz";
- sha1 = "6e45b1263f2017fa0acc7d89d78b15b8bf77da32";
- };
- }
- {
- name = "toidentifier___toidentifier_1.0.0.tgz";
- path = fetchurl {
- name = "toidentifier___toidentifier_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
- sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
- };
- }
- {
- name = "totalist___totalist_1.1.0.tgz";
- path = fetchurl {
- name = "totalist___totalist_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz";
- sha1 = "a4d65a3e546517701e3e5c37a47a70ac97fe56df";
- };
- }
- {
- name = "touch___touch_3.1.0.tgz";
- path = fetchurl {
- name = "touch___touch_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz";
- sha1 = "fe365f5f75ec9ed4e56825e0bb76d24ab74af83b";
- };
- }
- {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- path = fetchurl {
- name = "tough_cookie___tough_cookie_2.5.0.tgz";
- url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
- sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
- };
- }
- {
- name = "tough_cookie___tough_cookie_3.0.1.tgz";
- path = fetchurl {
- name = "tough_cookie___tough_cookie_3.0.1.tgz";
- url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz";
- sha1 = "9df4f57e739c26930a018184887f4adb7dca73b2";
- };
- }
- {
- name = "tr46___tr46_2.0.2.tgz";
- path = fetchurl {
- name = "tr46___tr46_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz";
- sha1 = "03273586def1595ae08fedb38d7733cee91d2479";
- };
- }
- {
- name = "trim_newlines___trim_newlines_3.0.0.tgz";
- path = fetchurl {
- name = "trim_newlines___trim_newlines_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz";
- sha1 = "79726304a6a898aa8373427298d54c2ee8b1cb30";
- };
- }
- {
- name = "trough___trough_1.0.5.tgz";
- path = fetchurl {
- name = "trough___trough_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz";
- sha1 = "b8b639cefad7d0bb2abd37d433ff8293efa5f406";
- };
- }
- {
- name = "try_catch___try_catch_2.0.0.tgz";
- path = fetchurl {
- name = "try_catch___try_catch_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/try-catch/-/try-catch-2.0.0.tgz";
- sha1 = "a491141d597f8b72b46757fe1c47059341a16aed";
- };
- }
- {
- name = "try_to_catch___try_to_catch_1.1.1.tgz";
- path = fetchurl {
- name = "try_to_catch___try_to_catch_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-1.1.1.tgz";
- sha1 = "770162dd13b9a0e55da04db5b7f888956072038a";
- };
- }
- {
- name = "ts_invariant___ts_invariant_0.4.4.tgz";
- path = fetchurl {
- name = "ts_invariant___ts_invariant_0.4.4.tgz";
- url = "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz";
- sha1 = "97a523518688f93aafad01b0e80eb803eb2abd86";
- };
- }
- {
- name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
- path = fetchurl {
- name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
- url = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
- sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
- };
- }
- {
- name = "tslib___tslib_1.13.0.tgz";
- path = fetchurl {
- name = "tslib___tslib_1.13.0.tgz";
- url = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
- sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
- };
- }
- {
- name = "tslib___tslib_2.2.0.tgz";
- path = fetchurl {
- name = "tslib___tslib_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz";
- sha1 = "fb2c475977e35e241311ede2693cee1ec6698f5c";
- };
- }
- {
- name = "tsutils___tsutils_3.17.1.tgz";
- path = fetchurl {
- name = "tsutils___tsutils_3.17.1.tgz";
- url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
- sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
- };
- }
- {
- name = "tty_browserify___tty_browserify_0.0.0.tgz";
- path = fetchurl {
- name = "tty_browserify___tty_browserify_0.0.0.tgz";
- url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
- sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
- };
- }
- {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- path = fetchurl {
- name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
- sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
- };
- }
- {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- path = fetchurl {
- name = "tweetnacl___tweetnacl_0.14.5.tgz";
- url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
- sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
- };
- }
- {
- name = "type_check___type_check_0.4.0.tgz";
- path = fetchurl {
- name = "type_check___type_check_0.4.0.tgz";
- url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
- sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
- };
- }
- {
- name = "type_check___type_check_0.3.2.tgz";
- path = fetchurl {
- name = "type_check___type_check_0.3.2.tgz";
- url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
- sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
- };
- }
- {
- name = "type_detect___type_detect_4.0.8.tgz";
- path = fetchurl {
- name = "type_detect___type_detect_4.0.8.tgz";
- url = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
- sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
- };
- }
- {
- name = "type_fest___type_fest_0.18.1.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.18.1.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz";
- sha1 = "db4bc151a4a2cf4eebf9add5db75508db6cc841f";
- };
- }
- {
- name = "type_fest___type_fest_0.20.2.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.20.2.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
- sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
- };
- }
- {
- name = "type_fest___type_fest_0.6.0.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.6.0.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz";
- sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b";
- };
- }
- {
- name = "type_fest___type_fest_0.8.1.tgz";
- path = fetchurl {
- name = "type_fest___type_fest_0.8.1.tgz";
- url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
- sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
- };
- }
- {
- name = "type_is___type_is_1.6.18.tgz";
- path = fetchurl {
- name = "type_is___type_is_1.6.18.tgz";
- url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
- sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
- };
- }
- {
- name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
- path = fetchurl {
- name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
- url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
- sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
- };
- }
- {
- name = "typedarray___typedarray_0.0.6.tgz";
- path = fetchurl {
- name = "typedarray___typedarray_0.0.6.tgz";
- url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
- sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
- };
- }
- {
- name = "typescript___typescript_4.1.5.tgz";
- path = fetchurl {
- name = "typescript___typescript_4.1.5.tgz";
- url = "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz";
- sha1 = "123a3b214aaff3be32926f0d8f1f6e704eb89a72";
- };
- }
- {
- name = "uc.micro___uc.micro_1.0.5.tgz";
- path = fetchurl {
- name = "uc.micro___uc.micro_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.5.tgz";
- sha1 = "0c65f15f815aa08b560a61ce8b4db7ffc3f45376";
- };
- }
- {
- name = "uglify_js___uglify_js_3.6.0.tgz";
- path = fetchurl {
- name = "uglify_js___uglify_js_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz";
- sha1 = "704681345c53a8b2079fb6cec294b05ead242ff5";
- };
- }
- {
- name = "ultron___ultron_1.1.1.tgz";
- path = fetchurl {
- name = "ultron___ultron_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz";
- sha1 = "9fe1536a10a664a65266a1e3ccf85fd36302bc9c";
- };
- }
- {
- name = "undefsafe___undefsafe_2.0.2.tgz";
- path = fetchurl {
- name = "undefsafe___undefsafe_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz";
- sha1 = "225f6b9e0337663e0d8e7cfd686fc2836ccace76";
- };
- }
- {
- name = "underscore_contrib___underscore_contrib_0.3.0.tgz";
- path = fetchurl {
- name = "underscore_contrib___underscore_contrib_0.3.0.tgz";
- url = "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz";
- sha1 = "665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7";
- };
- }
- {
- name = "underscore___underscore_1.6.0.tgz";
- path = fetchurl {
- name = "underscore___underscore_1.6.0.tgz";
- url = "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz";
- sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
- };
- }
- {
- name = "underscore___underscore_1.8.3.tgz";
- path = fetchurl {
- name = "underscore___underscore_1.8.3.tgz";
- url = "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz";
- sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
- };
- }
- {
- name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
- path = fetchurl {
- name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
- sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
- };
- }
- {
- name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
- path = fetchurl {
- name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
- sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
- };
- }
- {
- name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz";
- path = fetchurl {
- name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
- sha1 = "0d91f600eeeb3096aa962b1d6fc88876e64ea531";
- };
- }
- {
- name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
- path = fetchurl {
- name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
- url = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz";
- sha1 = "5a533f31b4317ea76f17d807fa0d116546111dd0";
- };
- }
- {
- name = "unified___unified_9.2.0.tgz";
- path = fetchurl {
- name = "unified___unified_9.2.0.tgz";
- url = "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz";
- sha1 = "67a62c627c40589edebbf60f53edfd4d822027f8";
- };
- }
- {
- name = "union_value___union_value_1.0.1.tgz";
- path = fetchurl {
- name = "union_value___union_value_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
- sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
- };
- }
- {
- name = "uniq___uniq_1.0.1.tgz";
- path = fetchurl {
- name = "uniq___uniq_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
- sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
- };
- }
- {
- name = "unique_filename___unique_filename_1.1.1.tgz";
- path = fetchurl {
- name = "unique_filename___unique_filename_1.1.1.tgz";
- url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
- sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
- };
- }
- {
- name = "unique_slug___unique_slug_2.0.0.tgz";
- path = fetchurl {
- name = "unique_slug___unique_slug_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz";
- sha1 = "db6676e7c7cc0629878ff196097c78855ae9f4ab";
- };
- }
- {
- name = "unique_string___unique_string_2.0.0.tgz";
- path = fetchurl {
- name = "unique_string___unique_string_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz";
- sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d";
- };
- }
- {
- name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
- path = fetchurl {
- name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
- url = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz";
- sha1 = "fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6";
- };
- }
- {
- name = "unist_util_is___unist_util_is_4.0.4.tgz";
- path = fetchurl {
- name = "unist_util_is___unist_util_is_4.0.4.tgz";
- url = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz";
- sha1 = "3e9e8de6af2eb0039a59f50c9b3e99698a924f50";
- };
- }
- {
- name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
- path = fetchurl {
- name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
- url = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz";
- sha1 = "cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da";
- };
- }
- {
- name = "universalify___universalify_0.1.2.tgz";
- path = fetchurl {
- name = "universalify___universalify_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
- sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
- };
- }
- {
- name = "unpipe___unpipe_1.0.0.tgz";
- path = fetchurl {
- name = "unpipe___unpipe_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
- sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
- };
- }
- {
- name = "unset_value___unset_value_1.0.0.tgz";
- path = fetchurl {
- name = "unset_value___unset_value_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
- sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
- };
- }
- {
- name = "update_notifier___update_notifier_4.1.0.tgz";
- path = fetchurl {
- name = "update_notifier___update_notifier_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz";
- sha1 = "4866b98c3bc5b5473c020b1250583628f9a328f3";
- };
- }
- {
- name = "upper_case___upper_case_1.1.3.tgz";
- path = fetchurl {
- name = "upper_case___upper_case_1.1.3.tgz";
- url = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz";
- sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
- };
- }
- {
- name = "uri_js___uri_js_4.4.0.tgz";
- path = fetchurl {
- name = "uri_js___uri_js_4.4.0.tgz";
- url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
- sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
- };
- }
- {
- name = "urix___urix_0.1.0.tgz";
- path = fetchurl {
- name = "urix___urix_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
- sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
- };
- }
- {
- name = "url_loader___url_loader_4.1.1.tgz";
- path = fetchurl {
- name = "url_loader___url_loader_4.1.1.tgz";
- url = "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz";
- sha1 = "28505e905cae158cf07c92ca622d7f237e70a4e2";
- };
- }
- {
- name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
- path = fetchurl {
- name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
- sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
- };
- }
- {
- name = "url_parse___url_parse_1.4.7.tgz";
- path = fetchurl {
- name = "url_parse___url_parse_1.4.7.tgz";
- url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
- sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
- };
- }
- {
- name = "url_search_params_polyfill___url_search_params_polyfill_5.1.0.tgz";
- path = fetchurl {
- name = "url_search_params_polyfill___url_search_params_polyfill_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-5.1.0.tgz";
- sha1 = "f0405dcc2e921bf7f5fdf8c4e616f1e8088ef31b";
- };
- }
- {
- name = "url___url_0.10.3.tgz";
- path = fetchurl {
- name = "url___url_0.10.3.tgz";
- url = "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz";
- sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
- };
- }
- {
- name = "url___url_0.11.0.tgz";
- path = fetchurl {
- name = "url___url_0.11.0.tgz";
- url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
- sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
- };
- }
- {
- name = "use___use_3.1.1.tgz";
- path = fetchurl {
- name = "use___use_3.1.1.tgz";
- url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
- sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
- };
- }
- {
- name = "useragent___useragent_2.3.0.tgz";
- path = fetchurl {
- name = "useragent___useragent_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz";
- sha1 = "217f943ad540cb2128658ab23fc960f6a88c9972";
- };
- }
- {
- name = "util_deprecate___util_deprecate_1.0.2.tgz";
- path = fetchurl {
- name = "util_deprecate___util_deprecate_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
- sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
- };
- }
- {
- name = "util___util_0.10.3.tgz";
- path = fetchurl {
- name = "util___util_0.10.3.tgz";
- url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
- sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
- };
- }
- {
- name = "util___util_0.11.1.tgz";
- path = fetchurl {
- name = "util___util_0.11.1.tgz";
- url = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz";
- sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61";
- };
- }
- {
- name = "utils_merge___utils_merge_1.0.1.tgz";
- path = fetchurl {
- name = "utils_merge___utils_merge_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
- sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
- };
- }
- {
- name = "uuid___uuid_3.3.2.tgz";
- path = fetchurl {
- name = "uuid___uuid_3.3.2.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
- sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
- };
- }
- {
- name = "uuid___uuid_8.1.0.tgz";
- path = fetchurl {
- name = "uuid___uuid_8.1.0.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz";
- sha1 = "6f1536eb43249f473abc6bd58ff983da1ca30d8d";
- };
- }
- {
- name = "uuid___uuid_3.4.0.tgz";
- path = fetchurl {
- name = "uuid___uuid_3.4.0.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
- sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
- };
- }
- {
- name = "uuid___uuid_8.3.1.tgz";
- path = fetchurl {
- name = "uuid___uuid_8.3.1.tgz";
- url = "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz";
- sha1 = "2ba2e6ca000da60fce5a196954ab241131e05a31";
- };
- }
- {
- name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
- path = fetchurl {
- name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
- sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
- };
- }
- {
- name = "v8_to_istanbul___v8_to_istanbul_5.0.1.tgz";
- path = fetchurl {
- name = "v8_to_istanbul___v8_to_istanbul_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz";
- sha1 = "0608f5b49a481458625edb058488607f25498ba5";
- };
- }
- {
- name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
- path = fetchurl {
- name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
- url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
- sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
- };
- }
- {
- name = "vary___vary_1.1.2.tgz";
- path = fetchurl {
- name = "vary___vary_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
- sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
- };
- }
- {
- name = "verror___verror_1.10.0.tgz";
- path = fetchurl {
- name = "verror___verror_1.10.0.tgz";
- url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
- sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
- };
- }
- {
- name = "vfile_message___vfile_message_2.0.4.tgz";
- path = fetchurl {
- name = "vfile_message___vfile_message_2.0.4.tgz";
- url = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz";
- sha1 = "5b43b88171d409eae58477d13f23dd41d52c371a";
- };
- }
- {
- name = "vfile___vfile_4.2.1.tgz";
- path = fetchurl {
- name = "vfile___vfile_4.2.1.tgz";
- url = "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz";
- sha1 = "03f1dce28fc625c625bc6514350fbdb00fa9e624";
- };
- }
- {
- name = "visibilityjs___visibilityjs_1.2.4.tgz";
- path = fetchurl {
- name = "visibilityjs___visibilityjs_1.2.4.tgz";
- url = "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-1.2.4.tgz";
- sha1 = "bff8663da62c8c10ad4ee5ae6a1ae6fac4259d63";
- };
- }
- {
- name = "vm_browserify___vm_browserify_1.1.0.tgz";
- path = fetchurl {
- name = "vm_browserify___vm_browserify_1.1.0.tgz";
- url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz";
- sha1 = "bd76d6a23323e2ca8ffa12028dc04559c75f9019";
- };
- }
- {
- name = "void_elements___void_elements_2.0.1.tgz";
- path = fetchurl {
- name = "void_elements___void_elements_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz";
- sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
- };
- }
- {
- name = "vscode_json_languageservice___vscode_json_languageservice_3.9.1.tgz";
- path = fetchurl {
- name = "vscode_json_languageservice___vscode_json_languageservice_3.9.1.tgz";
- url = "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.9.1.tgz";
- sha1 = "f72b581f8cd2bd9b47445ccf8b0ddcde6aba7483";
- };
- }
- {
- name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
- path = fetchurl {
- name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz";
- sha1 = "a7bf74ef3254d0a0c272fab15c82128e378b3be9";
- };
- }
- {
- name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
- path = fetchurl {
- name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
- url = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz";
- sha1 = "b8aab6afae2849c84a8983d39a1cf742417afe2f";
- };
- }
- {
- name = "vscode_languageserver_textdocument___vscode_languageserver_textdocument_1.0.1.tgz";
- path = fetchurl {
- name = "vscode_languageserver_textdocument___vscode_languageserver_textdocument_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz";
- sha1 = "178168e87efad6171b372add1dea34f53e5d330f";
- };
- }
- {
- name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
- path = fetchurl {
- name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
- url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz";
- sha1 = "d3b5952246d30e5241592b6dde8280e03942e743";
- };
- }
- {
- name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0_next.2.tgz";
- path = fetchurl {
- name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0_next.2.tgz";
- url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz";
- sha1 = "940bd15c992295a65eae8ab6b8568a1e8daa3083";
- };
- }
- {
- name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
- path = fetchurl {
- name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
- url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz";
- sha1 = "17be71d78d2f6236d414f0001ce1ef4d23e6b6de";
- };
- }
- {
- name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
- path = fetchurl {
- name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
- url = "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz";
- sha1 = "0d2feddd33f92aadf5da32450df498d52f6f14eb";
- };
- }
- {
- name = "vscode_nls___vscode_nls_4.1.2.tgz";
- path = fetchurl {
- name = "vscode_nls___vscode_nls_4.1.2.tgz";
- url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz";
- sha1 = "ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167";
- };
- }
- {
- name = "vscode_nls___vscode_nls_5.0.0.tgz";
- path = fetchurl {
- name = "vscode_nls___vscode_nls_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz";
- sha1 = "99f0da0bd9ea7cda44e565a74c54b1f2bc257840";
- };
- }
- {
- name = "vscode_uri___vscode_uri_1.0.8.tgz";
- path = fetchurl {
- name = "vscode_uri___vscode_uri_1.0.8.tgz";
- url = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz";
- sha1 = "9769aaececae4026fb6e22359cb38946580ded59";
- };
- }
- {
- name = "vscode_uri___vscode_uri_2.1.2.tgz";
- path = fetchurl {
- name = "vscode_uri___vscode_uri_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz";
- sha1 = "c8d40de93eb57af31f3c715dd650e2ca2c096f1c";
- };
- }
- {
- name = "vue_apollo___vue_apollo_3.0.3.tgz";
- path = fetchurl {
- name = "vue_apollo___vue_apollo_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.3.tgz";
- sha1 = "7f29558df76eec0f03251847eef153816a261827";
- };
- }
- {
- name = "vue_eslint_parser___vue_eslint_parser_7.4.1.tgz";
- path = fetchurl {
- name = "vue_eslint_parser___vue_eslint_parser_7.4.1.tgz";
- url = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz";
- sha1 = "e4adcf7876a7379758d9056a72235af18a587f92";
- };
- }
- {
- name = "vue_functional_data_merge___vue_functional_data_merge_3.1.0.tgz";
- path = fetchurl {
- name = "vue_functional_data_merge___vue_functional_data_merge_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz";
- sha1 = "08a7797583b7f35680587f8a1d51d729aa1dc657";
- };
- }
- {
- name = "vue_hot_reload_api___vue_hot_reload_api_2.3.0.tgz";
- path = fetchurl {
- name = "vue_hot_reload_api___vue_hot_reload_api_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz";
- sha1 = "97976142405d13d8efae154749e88c4e358cf926";
- };
- }
- {
- name = "vue_jest___vue_jest_4.0.1.tgz";
- path = fetchurl {
- name = "vue_jest___vue_jest_4.0.1.tgz";
- url = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.1.tgz";
- sha1 = "683efc351c24456865b1356bae69d5bb663dafb5";
- };
- }
- {
- name = "vue_loader___vue_loader_15.9.6.tgz";
- path = fetchurl {
- name = "vue_loader___vue_loader_15.9.6.tgz";
- url = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz";
- sha1 = "f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b";
- };
- }
- {
- name = "vue_observe_visibility___vue_observe_visibility_1.0.0.tgz";
- path = fetchurl {
- name = "vue_observe_visibility___vue_observe_visibility_1.0.0.tgz";
- url = "https://registry.yarnpkg.com/vue-observe-visibility/-/vue-observe-visibility-1.0.0.tgz";
- sha1 = "17cf1b2caf74022f0f3c95371468ddf2b9573152";
- };
- }
- {
- name = "vue_resize___vue_resize_1.0.1.tgz";
- path = fetchurl {
- name = "vue_resize___vue_resize_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/vue-resize/-/vue-resize-1.0.1.tgz";
- sha1 = "c120bed4e09938771d622614f57dbcf58a5147ee";
- };
- }
- {
- name = "vue_router___vue_router_3.4.9.tgz";
- path = fetchurl {
- name = "vue_router___vue_router_3.4.9.tgz";
- url = "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.9.tgz";
- sha1 = "c016f42030ae2932f14e4748b39a1d9a0e250e66";
- };
- }
- {
- name = "vue_runtime_helpers___vue_runtime_helpers_1.1.2.tgz";
- path = fetchurl {
- name = "vue_runtime_helpers___vue_runtime_helpers_1.1.2.tgz";
- url = "https://registry.yarnpkg.com/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz";
- sha1 = "446b7b820888ab0c5264d2c3a32468e72e4100f3";
- };
- }
- {
- name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
- path = fetchurl {
- name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
- url = "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.0.tgz";
- sha1 = "7588bd778e2c9f8d87bfc3c5a4a039638da7a863";
- };
- }
- {
- name = "vue_template_compiler___vue_template_compiler_2.6.12.tgz";
- path = fetchurl {
- name = "vue_template_compiler___vue_template_compiler_2.6.12.tgz";
- url = "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz";
- sha1 = "947ed7196744c8a5285ebe1233fe960437fcc57e";
- };
- }
- {
- name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz";
- path = fetchurl {
- name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz";
- url = "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz";
- sha1 = "1ee3bc9a16ecbf5118be334bb15f9c46f82f5825";
- };
- }
- {
- name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.7.tgz";
- path = fetchurl {
- name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.7.tgz";
- url = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.7.tgz";
- sha1 = "12ee26833885f5bb4d37dc058085ccf3ce5b5a74";
- };
- }
- {
- name = "vue___vue_2.6.12.tgz";
- path = fetchurl {
- name = "vue___vue_2.6.12.tgz";
- url = "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz";
- sha1 = "f5ebd4fa6bd2869403e29a896aed4904456c9123";
- };
- }
- {
- name = "vuedraggable___vuedraggable_2.23.0.tgz";
- path = fetchurl {
- name = "vuedraggable___vuedraggable_2.23.0.tgz";
- url = "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.23.0.tgz";
- sha1 = "1f4a5a601675a5dbf0d96ee61aebfffa43445262";
- };
- }
- {
- name = "vuex___vuex_3.6.0.tgz";
- path = fetchurl {
- name = "vuex___vuex_3.6.0.tgz";
- url = "https://registry.yarnpkg.com/vuex/-/vuex-3.6.0.tgz";
- sha1 = "95efa56a58f7607c135b053350833a09e01aa813";
- };
- }
- {
- name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
- path = fetchurl {
- name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
- sha1 = "0a89cdf5cc15822df9c360543676963e0cc308cd";
- };
- }
- {
- name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
- path = fetchurl {
- name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
- url = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz";
- sha1 = "4ade6916f6290224cdbd1db8ac49eab03d0eef6b";
- };
- }
- {
- name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz";
- path = fetchurl {
- name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz";
- sha1 = "3e7104a05b75146cc60f564380b7f683acf1020a";
- };
- }
- {
- name = "walker___walker_1.0.7.tgz";
- path = fetchurl {
- name = "walker___walker_1.0.7.tgz";
- url = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
- sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
- };
- }
- {
- name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
- path = fetchurl {
- name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz";
- sha1 = "38500072ee6ece66f3769936950ea1771be1c957";
- };
- }
- {
- name = "watchpack___watchpack_1.7.5.tgz";
- path = fetchurl {
- name = "watchpack___watchpack_1.7.5.tgz";
- url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz";
- sha1 = "1267e6c55e0b9b5be44c2023aed5437a2c26c453";
- };
- }
- {
- name = "wbuf___wbuf_1.7.3.tgz";
- path = fetchurl {
- name = "wbuf___wbuf_1.7.3.tgz";
- url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
- sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
- };
- }
- {
- name = "web_vitals___web_vitals_0.2.4.tgz";
- path = fetchurl {
- name = "web_vitals___web_vitals_0.2.4.tgz";
- url = "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz";
- sha1 = "ec3df43c834a207fd7cdefd732b2987896e08511";
- };
- }
- {
- name = "webidl_conversions___webidl_conversions_5.0.0.tgz";
- path = fetchurl {
- name = "webidl_conversions___webidl_conversions_5.0.0.tgz";
- url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz";
- sha1 = "ae59c8a00b121543a2acc65c0434f57b0fc11aff";
- };
- }
- {
- name = "webidl_conversions___webidl_conversions_6.1.0.tgz";
- path = fetchurl {
- name = "webidl_conversions___webidl_conversions_6.1.0.tgz";
- url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz";
- sha1 = "9111b4d7ea80acd40f5270d666621afa78b69514";
- };
- }
- {
- name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.2.tgz";
- path = fetchurl {
- name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.2.tgz";
- url = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz";
- sha1 = "39898cf6200178240910d629705f0f3493f7d666";
- };
- }
- {
- name = "webpack_cli___webpack_cli_3.3.12.tgz";
- path = fetchurl {
- name = "webpack_cli___webpack_cli_3.3.12.tgz";
- url = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz";
- sha1 = "94e9ada081453cd0aa609c99e500012fd3ad2d4a";
- };
- }
- {
- name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
- path = fetchurl {
- name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
- url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
- sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3";
- };
- }
- {
- name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
- path = fetchurl {
- name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
- url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
- sha1 = "695ebced76a4929f0d5de7fd73fafe185fe33708";
- };
- }
- {
- name = "webpack_log___webpack_log_2.0.0.tgz";
- path = fetchurl {
- name = "webpack_log___webpack_log_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz";
- sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f";
- };
- }
- {
- name = "webpack_sources___webpack_sources_1.4.3.tgz";
- path = fetchurl {
- name = "webpack_sources___webpack_sources_1.4.3.tgz";
- url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz";
- sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933";
- };
- }
- {
- name = "webpack_stats_plugin___webpack_stats_plugin_0.3.1.tgz";
- path = fetchurl {
- name = "webpack_stats_plugin___webpack_stats_plugin_0.3.1.tgz";
- url = "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz";
- sha1 = "1103c39a305a4e6ba15d5078db84bc0b35447417";
- };
- }
- {
- name = "webpack___webpack_4.46.0.tgz";
- path = fetchurl {
- name = "webpack___webpack_4.46.0.tgz";
- url = "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz";
- sha1 = "bf9b4404ea20a073605e0a011d188d77cb6ad542";
- };
- }
- {
- name = "websocket_driver___websocket_driver_0.7.4.tgz";
- path = fetchurl {
- name = "websocket_driver___websocket_driver_0.7.4.tgz";
- url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz";
- sha1 = "89ad5295bbf64b480abcba31e4953aca706f5760";
- };
- }
- {
- name = "websocket_extensions___websocket_extensions_0.1.1.tgz";
- path = fetchurl {
- name = "websocket_extensions___websocket_extensions_0.1.1.tgz";
- url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz";
- sha1 = "76899499c184b6ef754377c2dbb0cd6cb55d29e7";
- };
- }
- {
- name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
- path = fetchurl {
- name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
- sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
- };
- }
- {
- name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
- path = fetchurl {
- name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
- sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
- };
- }
- {
- name = "whatwg_url___whatwg_url_8.1.0.tgz";
- path = fetchurl {
- name = "whatwg_url___whatwg_url_8.1.0.tgz";
- url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.1.0.tgz";
- sha1 = "c628acdcf45b82274ce7281ee31dd3c839791771";
- };
- }
- {
- name = "which_module___which_module_2.0.0.tgz";
- path = fetchurl {
- name = "which_module___which_module_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
- sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
- };
- }
- {
- name = "which___which_1.3.1.tgz";
- path = fetchurl {
- name = "which___which_1.3.1.tgz";
- url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
- sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
- };
- }
- {
- name = "which___which_2.0.2.tgz";
- path = fetchurl {
- name = "which___which_2.0.2.tgz";
- url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
- sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
- };
- }
- {
- name = "widest_line___widest_line_3.1.0.tgz";
- path = fetchurl {
- name = "widest_line___widest_line_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz";
- sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca";
- };
- }
- {
- name = "word_wrap___word_wrap_1.2.3.tgz";
- path = fetchurl {
- name = "word_wrap___word_wrap_1.2.3.tgz";
- url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
- sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
- };
- }
- {
- name = "wordwrap___wordwrap_0.0.3.tgz";
- path = fetchurl {
- name = "wordwrap___wordwrap_0.0.3.tgz";
- url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
- sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
- };
- }
- {
- name = "worker_farm___worker_farm_1.7.0.tgz";
- path = fetchurl {
- name = "worker_farm___worker_farm_1.7.0.tgz";
- url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
- sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
- };
- }
- {
- name = "worker_loader___worker_loader_2.0.0.tgz";
- path = fetchurl {
- name = "worker_loader___worker_loader_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz";
- sha1 = "45fda3ef76aca815771a89107399ee4119b430ac";
- };
- }
- {
- name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
- path = fetchurl {
- name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
- sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
- };
- }
- {
- name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
- path = fetchurl {
- name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
- url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
- sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53";
- };
- }
- {
- name = "wrappy___wrappy_1.0.2.tgz";
- path = fetchurl {
- name = "wrappy___wrappy_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
- sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
- };
- }
- {
- name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
- path = fetchurl {
- name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
- sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
- };
- }
- {
- name = "ws___ws_6.2.1.tgz";
- path = fetchurl {
- name = "ws___ws_6.2.1.tgz";
- url = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
- sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
- };
- }
- {
- name = "ws___ws_7.4.4.tgz";
- path = fetchurl {
- name = "ws___ws_7.4.4.tgz";
- url = "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz";
- sha1 = "383bc9742cb202292c9077ceab6f6047b17f2d59";
- };
- }
- {
- name = "ws___ws_3.3.3.tgz";
- path = fetchurl {
- name = "ws___ws_3.3.3.tgz";
- url = "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz";
- sha1 = "f1cf84fe2d5e901ebce94efaece785f187a228f2";
- };
- }
- {
- name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
- path = fetchurl {
- name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
- sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13";
- };
- }
- {
- name = "xhr_mock___xhr_mock_2.5.1.tgz";
- path = fetchurl {
- name = "xhr_mock___xhr_mock_2.5.1.tgz";
- url = "https://registry.yarnpkg.com/xhr-mock/-/xhr-mock-2.5.1.tgz";
- sha1 = "c591498a8269cc1ce5fefac20d590357affd348b";
- };
- }
- {
- name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
- path = fetchurl {
- name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
- url = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
- sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
- };
- }
- {
- name = "xml2js___xml2js_0.4.19.tgz";
- path = fetchurl {
- name = "xml2js___xml2js_0.4.19.tgz";
- url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
- sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
- };
- }
- {
- name = "xml___xml_1.0.1.tgz";
- path = fetchurl {
- name = "xml___xml_1.0.1.tgz";
- url = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
- sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
- };
- }
- {
- name = "xmlbuilder___xmlbuilder_8.2.2.tgz";
- path = fetchurl {
- name = "xmlbuilder___xmlbuilder_8.2.2.tgz";
- url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz";
- sha1 = "69248673410b4ba42e1a6136551d2922335aa773";
- };
- }
- {
- name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
- path = fetchurl {
- name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
- url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
- sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
- };
- }
- {
- name = "xmlchars___xmlchars_2.2.0.tgz";
- path = fetchurl {
- name = "xmlchars___xmlchars_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz";
- sha1 = "060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb";
- };
- }
- {
- name = "xmlcreate___xmlcreate_1.0.2.tgz";
- path = fetchurl {
- name = "xmlcreate___xmlcreate_1.0.2.tgz";
- url = "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz";
- sha1 = "fa6bf762a60a413fb3dd8f4b03c5b269238d308f";
- };
- }
- {
- name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
- path = fetchurl {
- name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
- url = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
- sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
- };
- }
- {
- name = "xtend___xtend_4.0.2.tgz";
- path = fetchurl {
- name = "xtend___xtend_4.0.2.tgz";
- url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
- sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
- };
- }
- {
- name = "xterm___xterm_3.14.5.tgz";
- path = fetchurl {
- name = "xterm___xterm_3.14.5.tgz";
- url = "https://registry.yarnpkg.com/xterm/-/xterm-3.14.5.tgz";
- sha1 = "c9d14e48be6873aa46fb429f22f2165557fd2dea";
- };
- }
- {
- name = "y18n___y18n_4.0.0.tgz";
- path = fetchurl {
- name = "y18n___y18n_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
- sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
- };
- }
- {
- name = "yallist___yallist_2.1.2.tgz";
- path = fetchurl {
- name = "yallist___yallist_2.1.2.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
- sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
- };
- }
- {
- name = "yallist___yallist_3.0.3.tgz";
- path = fetchurl {
- name = "yallist___yallist_3.0.3.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
- sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
- };
- }
- {
- name = "yallist___yallist_4.0.0.tgz";
- path = fetchurl {
- name = "yallist___yallist_4.0.0.tgz";
- url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
- sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
- };
- }
- {
- name = "yaml_ast_parser_custom_tags___yaml_ast_parser_custom_tags_0.0.43.tgz";
- path = fetchurl {
- name = "yaml_ast_parser_custom_tags___yaml_ast_parser_custom_tags_0.0.43.tgz";
- url = "https://registry.yarnpkg.com/yaml-ast-parser-custom-tags/-/yaml-ast-parser-custom-tags-0.0.43.tgz";
- sha1 = "46968145ce4e24cb03c3312057f0f141b93a7d02";
- };
- }
- {
- name = "yaml_language_server___yaml_language_server_0.11.1.tgz";
- path = fetchurl {
- name = "yaml_language_server___yaml_language_server_0.11.1.tgz";
- url = "https://registry.yarnpkg.com/yaml-language-server/-/yaml-language-server-0.11.1.tgz";
- sha1 = "4ddc72eb9a6dd7dc41f31af2a8f5c72cce456cc9";
- };
- }
- {
- name = "yaml___yaml_1.10.0.tgz";
- path = fetchurl {
- name = "yaml___yaml_1.10.0.tgz";
- url = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz";
- sha1 = "3b593add944876077d4d683fee01081bd9fff31e";
- };
- }
- {
- name = "yargs_parser___yargs_parser_13.1.2.tgz";
- path = fetchurl {
- name = "yargs_parser___yargs_parser_13.1.2.tgz";
- url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz";
- sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38";
- };
- }
- {
- name = "yargs_parser___yargs_parser_18.1.3.tgz";
- path = fetchurl {
- name = "yargs_parser___yargs_parser_18.1.3.tgz";
- url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
- sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
- };
- }
- {
- name = "yargs_parser___yargs_parser_20.2.4.tgz";
- path = fetchurl {
- name = "yargs_parser___yargs_parser_20.2.4.tgz";
- url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
- sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
- };
- }
- {
- name = "yargs___yargs_13.3.2.tgz";
- path = fetchurl {
- name = "yargs___yargs_13.3.2.tgz";
- url = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
- sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
- };
- }
- {
- name = "yargs___yargs_15.4.1.tgz";
- path = fetchurl {
- name = "yargs___yargs_15.4.1.tgz";
- url = "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz";
- sha1 = "0d87a16de01aee9d8bec2bfbf74f67851730f4f8";
- };
- }
- {
- name = "yarn_check_webpack_plugin___yarn_check_webpack_plugin_1.2.0.tgz";
- path = fetchurl {
- name = "yarn_check_webpack_plugin___yarn_check_webpack_plugin_1.2.0.tgz";
- url = "https://registry.yarnpkg.com/yarn-check-webpack-plugin/-/yarn-check-webpack-plugin-1.2.0.tgz";
- sha1 = "0eb00cdcdb430f0494222a3eab1d2832737840cc";
- };
- }
- {
- name = "yarn_deduplicate___yarn_deduplicate_3.1.0.tgz";
- path = fetchurl {
- name = "yarn_deduplicate___yarn_deduplicate_3.1.0.tgz";
- url = "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-3.1.0.tgz";
- sha1 = "3018d93e95f855f236a215b591fe8bc4bcabba3e";
- };
- }
- {
- name = "yeast___yeast_0.1.2.tgz";
- path = fetchurl {
- name = "yeast___yeast_0.1.2.tgz";
- url = "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz";
- sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
- };
- }
- {
- name = "yocto_queue___yocto_queue_0.1.0.tgz";
- path = fetchurl {
- name = "yocto_queue___yocto_queue_0.1.0.tgz";
- url = "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz";
- sha1 = "0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b";
- };
- }
- {
- name = "zen_observable_ts___zen_observable_ts_0.8.21.tgz";
- path = fetchurl {
- name = "zen_observable_ts___zen_observable_ts_0.8.21.tgz";
- url = "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz";
- sha1 = "85d0031fbbde1eba3cd07d3ba90da241215f421d";
- };
- }
- {
- name = "zen_observable___zen_observable_0.8.11.tgz";
- path = fetchurl {
- name = "zen_observable___zen_observable_0.8.11.tgz";
- url = "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.11.tgz";
- sha1 = "d3415885eeeb42ee5abb9821c95bb518fcd6d199";
- };
- }
- {
- name = "zrender___zrender_4.3.2.tgz";
- path = fetchurl {
- name = "zrender___zrender_4.3.2.tgz";
- url = "https://registry.yarnpkg.com/zrender/-/zrender-4.3.2.tgz";
- sha1 = "ec7432f9415c82c73584b6b7b8c47e1b016209c6";
- };
- }
- {
- name = "zwitch___zwitch_1.0.5.tgz";
- path = fetchurl {
- name = "zwitch___zwitch_1.0.5.tgz";
- url = "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz";
- sha1 = "d11d7381ffed16b742f6af7b3f223d5cd9fe9920";
- };
- }
- ];
-}
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index b4bc0db4bac4..570a4c06abf9 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -1,22 +1,31 @@
-{ lib, stdenv, rustPlatform, cmake, fetchFromGitHub, pkg-config, openssl
-, libiconv, Security, SystemConfiguration }:
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, cmake
+, pkg-config
+, stdenv
+, libiconv
+, Security
+, SystemConfiguration
+, openssl
+}:
rustPlatform.buildRustPackage rec {
pname = "gitoxide";
- version = "0.8.4";
+ version = "0.10.0";
src = fetchFromGitHub {
owner = "Byron";
repo = "gitoxide";
rev = "v${version}";
- sha256 = "WH8YiW1X7TkURjncm0OefxrZhnhGHaGLwxRNxe17g/0=";
+ sha256 = "sha256-c29gmmkIOyS+HNq2kv53yq+sdEDmQbSmcvVGcd55/hk=";
};
- cargoSha256 = "eTPJMYl9m81o4PJKfpDs61KmehSvKnY+bgybEodOhAM=";
+ cargoSha256 = "sha256-oc7XpiOZj4bfqdwrEHj/CzNtWzYWFkgMJOySJNgxAGQ=";
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = if stdenv.isDarwin
- then [ libiconv Security SystemConfiguration]
+ then [ libiconv Security SystemConfiguration ]
else [ openssl ];
# Needed to get openssl-sys to use pkg-config.
@@ -25,7 +34,8 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "A command-line application for interacting with git repositories";
homepage = "https://github.com/Byron/gitoxide";
+ changelog = "https://github.com/Byron/gitoxide/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit /* or */ asl20 ];
- maintainers = [ maintainers.syberant ];
+ maintainers = with maintainers; [ syberant ];
};
}
diff --git a/pkgs/applications/version-management/got/default.nix b/pkgs/applications/version-management/got/default.nix
new file mode 100644
index 000000000000..b80712fd96da
--- /dev/null
+++ b/pkgs/applications/version-management/got/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, pkg-config, openssl, libuuid, libmd, zlib, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "got";
+ version = "0.60";
+
+ src = fetchurl {
+ url =
+ "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
+ sha256 = "sha256-tT8F3Kx7Rcjd/tWjIXXNWygYlkMddWwrttpjnYLnBdo=";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl libuuid libmd zlib ncurses ];
+
+ doInstallCheck = true;
+
+ installCheckPhase = ''
+ runHook preInstallCheck
+ test "$($out/bin/got --version)" = '${pname} "${version}"'
+ runHook postInstallCheck
+ '';
+
+ meta = with lib; {
+ description = "A version control system which prioritizes ease of use and simplicity over flexibility";
+ longDescription = ''
+ Game of Trees (Got) is a version control system which prioritizes
+ ease of use and simplicity over flexibility.
+
+ Got uses Git repositories to store versioned data. Git can be used
+ for any functionality which has not yet been implemented in
+ Got. It will always remain possible to work with both Got and Git
+ on the same repository.
+ '';
+ homepage = "https://gameoftrees.org";
+ license = licenses.isc;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ abbe ];
+ };
+}
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 9859163031c3..f3400f7e8e02 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -59,7 +59,7 @@ python3.pkgs.buildPythonApplication rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
- versionPolicy = "odd-unstable";
+ versionPolicy = "none"; # should be odd-unstable but we are tracking unstable versions for now
};
};
diff --git a/pkgs/applications/version-management/mercurial/4.9.nix b/pkgs/applications/version-management/mercurial/4.9.nix
deleted file mode 100644
index 0a76f7df9704..000000000000
--- a/pkgs/applications/version-management/mercurial/4.9.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ lib, stdenv, fetchurl, python2Packages, makeWrapper
-, guiSupport ? false, tk ? null
-, ApplicationServices
-}:
-
-let
- inherit (python2Packages) docutils hg-git dulwich python;
-
-in python2Packages.buildPythonApplication rec {
- pname = "mercurial";
- version = "4.9.1";
-
- src = fetchurl {
- url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
- sha256 = "0iybbkd9add066729zg01kwz5hhc1s6lhp9rrnsmzq6ihyxj3p8v";
- };
-
- format = "other";
-
- inherit python; # pass it so that the same version can be used in hg2git
-
- nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ docutils ]
- ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
-
- propagatedBuildInputs = [ hg-git dulwich ];
-
- makeFlags = [ "PREFIX=$(out)" ];
-
- postInstall = (lib.optionalString guiSupport
- ''
- mkdir -p $out/etc/mercurial
- cp contrib/hgk $out/bin
- cat >> $out/etc/mercurial/hgrc << EOF
- [extensions]
- hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
- EOF
- # setting HG so that hgk can be run itself as well (not only hg view)
- WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
- --set HG $out/bin/hg
- --prefix PATH : ${tk}/bin "
- '') +
- ''
- for i in $(cd $out/bin && ls); do
- wrapProgram $out/bin/$i \
- $WRAP_TK
- done
-
- # copy hgweb.cgi to allow use in apache
- mkdir -p $out/share/cgi-bin
- cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
- chmod u+x $out/share/cgi-bin/hgweb.cgi
-
- # install bash/zsh completions
- install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
- install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
- '';
-
- meta = {
- description = "A fast, lightweight SCM system for very large distributed projects";
- homepage = "https://www.mercurial-scm.org";
- downloadPage = "https://www.mercurial-scm.org/release/";
- license = lib.licenses.gpl2;
- maintainers = [ lib.maintainers.eraserhd ];
- updateWalker = true;
- platforms = lib.platforms.unix;
- };
-}
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 3780be96fd6f..eea3e7afb774 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -13,11 +13,11 @@ let
self = python3Packages.buildPythonApplication rec {
pname = "mercurial";
- version = "5.9.1";
+ version = "5.9.3";
src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
- sha256 = "09wzyhyajy1dbp5kxkmvs9x8jk964wri19p5jgf83mv27i1zkvrj";
+ sha256 = "sha256-O0P2iXetD6dap/HlyPCoO6k1YhqyOWEpq7SY5W0b4I4=";
};
format = "other";
@@ -27,7 +27,7 @@ let
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
- sha256 = "1f7q0kmp46rphw38rlzh1yvpn3rdjdnzzbxzjkrjks8n1gm8baca";
+ sha256 = "sha256:1d911jaawdrcv2mdhlp2ylr10791zj7dhb69aiw5yy7vn7gry82n";
sourceRoot = "${pname}-${version}/rust";
} else null;
cargoRoot = if rustSupport then "rust" else null;
diff --git a/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
index 541a2262f999..e3c48c5724f7 100644
--- a/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
+++ b/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
@@ -1,25 +1,49 @@
-{ lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libpng, libjpeg, expat, libXaw
-, bison, libtool, fontconfig, pango, gd, libwebp
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, xlibsWrapper
+, libpng
+, libjpeg
+, expat
+, libXaw
+, bison
+, libtool
+, fontconfig
+, pango
+, gd
+, libwebp
}:
stdenv.mkDerivation rec {
- name = "graphviz-2.0";
+ pname = "graphviz";
+ version = "2.0";
src = fetchurl {
- url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
+ url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-${version}.tar.gz";
sha256 = "39b8e1f2ba4cc1f5bdc8e39c7be35e5f831253008e4ee2c176984f080416676c";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
- xlibsWrapper libpng libjpeg expat libXaw bison
- libtool fontconfig pango gd libwebp
+ xlibsWrapper
+ libpng
+ libjpeg
+ expat
+ libXaw
+ bison
+ libtool
+ fontconfig
+ pango
+ gd
+ libwebp
];
hardeningDisable = [ "format" "fortify" ];
configureFlags =
- [ "--with-pngincludedir=${libpng.dev}/include"
+ [
+ "--with-pngincludedir=${libpng.dev}/include"
"--with-pnglibdir=${libpng.out}/lib"
"--with-jpegincludedir=${libjpeg.dev}/include"
"--with-jpeglibdir=${libjpeg.out}/lib"
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index e5a12dd9006c..32126c7ce663 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
rustPlatform.buildRustPackage rec {
pname = "pijul";
- version = "1.0.0-alpha.53";
+ version = "1.0.0-alpha.55";
src = fetchCrate {
inherit version pname;
- sha256 = "1y5wnqscyfhd806qs6gfmssm7hvfdi7mxc9p1125jnmzca4wcsm2";
+ sha256 = "sha256-1nnn0cdDe+WOetGtRe7dMEyuCcbfRHdJWFxQ4bTXebQ=";
};
- cargoSha256 = "0m9zjagq59rxf5pysklal030f4n0dqgmjsgwcnljajxc2r26665h";
+ cargoSha256 = "sha256-j9xf97qPdhtakIwhAql0/Go5fPxlyWKAVLk5CMBfAbs=";
cargoBuildFlags = lib.optional gitImportSupport "--features=git";
diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock
index e90405c9a8ba..00ac026e8696 100644
--- a/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -77,7 +77,7 @@ GEM
nokogiri (>= 1.5.9)
mail (2.7.1)
mini_mime (>= 0.1.1)
- marcel (1.0.1)
+ marcel (1.0.2)
method_source (1.0.0)
mini_magick (4.11.0)
mini_mime (1.0.3)
@@ -90,12 +90,12 @@ GEM
nokogiri (1.11.7)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
- parallel (1.20.1)
+ parallel (1.21.0)
parser (3.0.2.0)
ast (~> 2.4.1)
pg (1.2.3)
public_suffix (4.0.6)
- puma (5.4.0)
+ puma (5.5.2)
nio4r (~> 2.0)
racc (1.5.2)
rack (2.2.3)
@@ -120,7 +120,7 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.3.0)
+ rails-html-sanitizer (1.4.2)
loofah (~> 2.3)
railties (5.2.6)
actionpack (= 5.2.6)
@@ -146,11 +146,11 @@ GEM
railties (>= 5.1, < 6.2)
roadie (>= 3.1, < 5.0)
rotp (6.2.0)
- rouge (3.26.0)
- rqrcode (2.0.0)
+ rouge (3.26.1)
+ rqrcode (2.1.0)
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
- rqrcode_core (1.1.0)
+ rqrcode_core (1.2.0)
rubocop (1.12.1)
parallel (~> 1.10)
parser (>= 3.0.0.0)
@@ -160,7 +160,7 @@ GEM
rubocop-ast (>= 1.2.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
- rubocop-ast (1.10.0)
+ rubocop-ast (1.12.0)
parser (>= 3.0.1.1)
rubocop-performance (1.10.2)
rubocop (>= 0.90.0, < 2.0)
@@ -190,8 +190,8 @@ GEM
thread_safe (0.3.6)
tzinfo (1.2.9)
thread_safe (~> 0.1)
- unicode-display_width (2.0.0)
- webdrivers (4.6.0)
+ unicode-display_width (2.1.0)
+ webdrivers (4.6.1)
nokogiri (~> 1.6)
rubyzip (>= 1.3.0)
selenium-webdriver (>= 3.0, < 4.0)
@@ -245,7 +245,7 @@ DEPENDENCIES
yard
RUBY VERSION
- ruby 2.7.3p183
+ ruby 2.7.4p191
BUNDLED WITH
2.1.4
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index eb6218826bfe..5a964f51e362 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }:
let
- version = "4.2.2";
+ version = "4.2.3";
rubyEnv = bundlerEnv {
name = "redmine-env-${version}";
@@ -16,7 +16,7 @@ in
src = fetchurl {
url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
- sha256 = "1xlqf7g5imjmc3as2aajvbrs217jh3qpdvvpsd9mka9rk4kykyz6";
+ sha256 = "033slhr5kmz5b29v7n52336i0r7y4m9si748b22r85s2jpf37xkj";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix
index 376084e80dce..dbbef0f218aa 100644
--- a/pkgs/applications/version-management/redmine/gemset.nix
+++ b/pkgs/applications/version-management/redmine/gemset.nix
@@ -301,10 +301,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
+ sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0";
type = "gem";
};
- version = "1.0.1";
+ version = "1.0.2";
};
method_source = {
groups = ["default"];
@@ -420,10 +420,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
+ sha256 = "1hkfpm78c2vs1qblnva3k1grijvxh87iixcnyd83s3lxrxsjvag4";
type = "gem";
};
- version = "1.20.1";
+ version = "1.21.0";
};
parser = {
dependencies = ["ast"];
@@ -470,10 +470,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bz9y1hxfyv73yb26nvs2kcw08gxi7nxkfc94j82hgx2sifcnv3x";
+ sha256 = "1xblxnrs0c5m326v7kgr32k4m00cl2ipcf5m0qvyisrw62vd5dbn";
type = "gem";
};
- version = "5.4.0";
+ version = "5.5.2";
};
racc = {
groups = ["default" "test"];
@@ -545,10 +545,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ sha256 = "09qrfi3pgllxb08r024lln9k0qzxs57v0slsj8616xf9c0cwnwbk";
type = "gem";
};
- version = "1.3.0";
+ version = "1.4.2";
};
railties = {
dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
@@ -680,10 +680,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
+ sha256 = "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf";
type = "gem";
};
- version = "3.26.0";
+ version = "3.26.1";
};
rqrcode = {
dependencies = ["chunky_png" "rqrcode_core"];
@@ -691,20 +691,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "073w0qgjydkqpsqsb9yr8qg0mhvwlzx6z53hqr2b5zifvb9wzh02";
+ sha256 = "0444sgvx3ahvgr3c9swpy32kcdpciwgcqahp3pb4m7d23xp1qjdc";
type = "gem";
};
- version = "2.0.0";
+ version = "2.1.0";
};
rqrcode_core = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0d632w2pd34bw9l3bsfnyqaa8vgbz9pxpj29gpf8parqr7wq922k";
+ sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg";
type = "gem";
};
- version = "1.1.0";
+ version = "1.2.0";
};
rubocop = {
dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -723,10 +723,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0x6za0j9wwxr14rkkkmpbnwj04lak4yjmkyrdl8c31m9acba80zw";
+ sha256 = "0x0xfq2mpg194rcanbjrgvjbh94s9kq72jynxx61789s628kxy59";
type = "gem";
};
- version = "1.10.0";
+ version = "1.12.0";
};
rubocop-performance = {
dependencies = ["rubocop" "rubocop-ast"];
@@ -870,10 +870,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1bilbnc8j6jkb59lrf177i3p1pdyxll0n8400hzqr35vl3r3kv2m";
+ sha256 = "0csjm9shhfik0ci9mgimb7hf3xgh7nx45rkd9rzgdz6vkwr8rzxn";
type = "gem";
};
- version = "2.0.0";
+ version = "2.1.0";
};
webdrivers = {
dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
@@ -881,10 +881,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0hi6pgkfwgz1bzfclyrr449xy9y2f2bcrnnnlb5ghvvrqkgn0dry";
+ sha256 = "1naymcfmm9pkf0f67xd99d9f6dpv477ggyvc1c04gxifirynfydp";
type = "gem";
};
- version = "4.6.0";
+ version = "4.6.1";
};
websocket-driver = {
dependencies = ["websocket-extensions"];
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 33716a48fb08..dd9b07f7faf8 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,8 +4,8 @@ let
common = opts: callPackage (import ./common.nix opts);
in {
sublime-merge = common {
- buildVersion = "2056";
- sha256 = "08472214kazx9fdw7y8gy0bp63mqxcpa79myn2w95wdp0mrlr119";
+ buildVersion = "2063";
+ sha256 = "l6vxcOIQ3kQqNzLkf3PbuU3DpDfLh0tXCl/LnJsCt2k=";
} {};
sublime-merge-dev = common {
diff --git a/pkgs/applications/version-management/tkcvs/default.nix b/pkgs/applications/version-management/tkcvs/default.nix
index 6a9e910f8012..36e9154571be 100644
--- a/pkgs/applications/version-management/tkcvs/default.nix
+++ b/pkgs/applications/version-management/tkcvs/default.nix
@@ -1,11 +1,11 @@
-{lib, stdenv, fetchurl, tcl, tk}:
+{ lib, stdenv, fetchurl, tcl, tk }:
-stdenv.mkDerivation
-{
- name = "tkcvs-8.2.1";
+stdenv.mkDerivation rec {
+ pname = "tkcvs";
+ version = "8.2.1";
src = fetchurl {
- url = "mirror://sourceforge/tkcvs/tkcvs_8_2_1.tar.gz";
+ url = "mirror://sourceforge/tkcvs/tkcvs_${lib.replaceStrings ["."] ["_"] version}.tar.gz";
sha256 = "0kvj6rcx1153wq0n1lmd8imbrki6xy5wxghwzlb9i15l65sclg3i";
};
diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix
index 84716e760817..3f33edc95387 100644
--- a/pkgs/applications/version-management/vcsh/default.nix
+++ b/pkgs/applications/version-management/vcsh/default.nix
@@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "vcsh";
- version = "2.0.2";
+ version = "2.0.4";
src = fetchurl {
url = "https://github.com/RichiH/vcsh/releases/download/v${version}/${pname}-${version}.tar.xz";
- sha256 = "0qdd4f6rm5rhnym9f114pcj9vafhjjpg962c4g420rn78fxhpz1z";
+ sha256 = "sha256-W/Ql2J9HTDQPu0el34mHVzqe85KGWLPph2sHyuEzPPI=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/verco/default.nix b/pkgs/applications/version-management/verco/default.nix
index 538544c5b224..715ae0978cc1 100644
--- a/pkgs/applications/version-management/verco/default.nix
+++ b/pkgs/applications/version-management/verco/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "verco";
- version = "6.5.5";
+ version = "6.7.0";
src = fetchFromGitHub {
owner = "vamolessa";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-n+GGiu/xGGGC6FQPoASok87bCG0MFVIf6l6nt1lvw8A=";
+ sha256 = "sha256-H8rDaRVU3G3iuBv0Tz/YOuYbL2k8wEoEIIEG7hjU6eM=";
};
- cargoSha256 = "sha256-lNtR4N+bFFCr3Ct99DJCbtDeKxTzT7ZjvAWixbQm3jg=";
+ cargoSha256 = "sha256-4Ou/stedL3WCY4Awsl++lc5fZ9gxd4uorf4G2/0DiPc=";
meta = with lib; {
description = "A simple Git/Mercurial/PlasticSCM tui client based on keyboard shortcuts";
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index 4b285cfc0075..1f75997ce7bb 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -1,11 +1,48 @@
-{ lib, python3 }:
+{ lib
+, fetchFromGitHub
+, python3
+}:
-with python3.pkgs;
+let
+ py = python3.override {
+ packageOverrides = self: super: {
+ # Upstream is pinning releases incl. dependencies of their dependencies
+ zeroconf = super.zeroconf.overridePythonAttrs (oldAttrs: rec {
+ version = "0.31.0";
+ src = fetchFromGitHub {
+ owner = "jstasiak";
+ repo = "python-zeroconf";
+ rev = version;
+ sha256 = "158dqay74zvnz6kmpvip4ml0kw59nf2aaajwgaamx0zc8ci1p5pj";
+ };
+ });
+
+ click = super.click.overridePythonAttrs (oldAttrs: rec {
+ version = "7.1.2";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "06kbzd6sjfkqan3miwj9wqyddfxc2b6hi7p5s4dvqjb3gif2bdfj";
+ };
+ });
+
+ PyChromecast = super.PyChromecast.overridePythonAttrs (oldAttrs: rec {
+ version = "9.2.0";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "02ig2wf2yyrnnl88r2n13s1naskwsifwgx3syifmcxygflsmjd3d";
+ };
+ });
+ };
+ };
+in
+with py.pkgs;
buildPythonApplication rec {
pname = "catt";
version = "0.12.2";
+ disabled = python3.pythonOlder "3.4";
+
src = fetchPypi {
inherit pname version;
sha256 = "sha256-BOETKTkcbLOu5SubiejswU7D47qWS13QZ7rU9x3jf5Y=";
@@ -19,19 +56,12 @@ buildPythonApplication rec {
youtube-dl
];
- # remove click when 0.12.3 is released
- # upstream doesn't use zeroconf directly but pins it for pychromecast
- postPatch = ''
- substituteInPlace setup.py \
- --replace "zeroconf==0.31.0" "" \
- --replace "Click>=7.1.2,<8" "click"
- '';
-
doCheck = false; # attempts to access various URLs
+
pythonImportsCheck = [ "catt" ];
meta = with lib; {
- description = "Cast All The Things allows you to send videos from many, many online sources to your Chromecast";
+ description = "Tool to send media from online sources to Chromecast devices";
homepage = "https://github.com/skorokithakis/catt";
license = licenses.bsd2;
maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/applications/video/cinelerra/default.nix b/pkgs/applications/video/cinelerra/default.nix
index 75d3cdbcc667..0ce0623ec9d9 100644
--- a/pkgs/applications/video/cinelerra/default.nix
+++ b/pkgs/applications/video/cinelerra/default.nix
@@ -1,13 +1,50 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool
-, pkg-config, faad2, faac, a52dec, alsa-lib, fftw, lame, libavc1394
-, libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
-, libtiff, freetype, mjpegtools, x264, gettext, openexr
-, libXext, libXxf86vm, libXv, libXi, libX11, libXft, xorgproto, libtheora, libpng
-, libdv, libuuid, file, nasm, perl
-, fontconfig, intltool }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoconf
+, automake
+, libtool
+, pkg-config
+, faad2
+, faac
+, a52dec
+, alsa-lib
+, fftw
+, lame
+, libavc1394
+, libiec61883
+, libraw1394
+, libsndfile
+, libvorbis
+, libogg
+, libjpeg
+, libtiff
+, freetype
+, mjpegtools
+, x264
+, gettext
+, openexr
+, libXext
+, libXxf86vm
+, libXv
+, libXi
+, libX11
+, libXft
+, xorgproto
+, libtheora
+, libpng
+, libdv
+, libuuid
+, file
+, nasm
+, perl
+, fontconfig
+, intltool
+}:
stdenv.mkDerivation {
- name = "cinelerra-cv-2021-02-14";
+ pname = "cinelerra-cv";
+ version = "unstable-2021-02-14";
src = fetchFromGitHub {
owner = "cinelerra-cv-team";
@@ -26,20 +63,46 @@ stdenv.mkDerivation {
preBuild = ''
make -C cinelerra versioninfo.h
'';
+
enableParallelBuilding = true;
nativeBuildInputs = [ automake autoconf libtool pkg-config file intltool ];
- buildInputs =
- [ faad2 faac
- a52dec alsa-lib fftw lame libavc1394 libiec61883
- libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
- mjpegtools x264 gettext openexr
- libXext libXxf86vm libXv libXi libX11 libXft xorgproto
- libtheora libpng libdv libuuid
- nasm
- perl
- fontconfig
- ];
+
+ buildInputs = [
+ faad2
+ faac
+ a52dec
+ alsa-lib
+ fftw
+ lame
+ libavc1394
+ libiec61883
+ libraw1394
+ libsndfile
+ libvorbis
+ libogg
+ libjpeg
+ libtiff
+ freetype
+ mjpegtools
+ x264
+ gettext
+ openexr
+ libXext
+ libXxf86vm
+ libXv
+ libXi
+ libX11
+ libXft
+ xorgproto
+ libtheora
+ libpng
+ libdv
+ libuuid
+ nasm
+ perl
+ fontconfig
+ ];
meta = with lib; {
description = "Professional video editing and compositing environment (community version)";
diff --git a/pkgs/applications/video/clapper/default.nix b/pkgs/applications/video/clapper/default.nix
index 96358383047a..176efb799541 100644
--- a/pkgs/applications/video/clapper/default.nix
+++ b/pkgs/applications/video/clapper/default.nix
@@ -18,6 +18,8 @@
, gtk4
, gst_all_1
, libadwaita
+, appstream-glib
+, libsoup
}:
stdenv.mkDerivation rec {
@@ -32,6 +34,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
+ appstream-glib
desktop-file-utils # for update-desktop-database
glib
gobject-introspection
@@ -53,6 +56,7 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-ugly
gtk4
libadwaita
+ libsoup
wayland
wayland-protocols
];
diff --git a/pkgs/applications/video/coriander/default.nix b/pkgs/applications/video/coriander/default.nix
index 09289840030e..7f57c79c5fe5 100644
--- a/pkgs/applications/video/coriander/default.nix
+++ b/pkgs/applications/video/coriander/default.nix
@@ -1,11 +1,24 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, gtk2, libgnomeui, libXv, libraw1394, libdc1394
-, SDL, automake, GConf }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, glib
+, gtk2
+, libgnomeui
+, libXv
+, libraw1394
+, libdc1394
+, SDL
+, automake
+, GConf
+}:
-stdenv.mkDerivation {
- name = "coriander-2.0.1";
+stdenv.mkDerivation rec {
+ pname = "coriander";
+ version = "2.0.1";
src = fetchurl {
- url = "http://damien.douxchamps.net/ieee1394/coriander/archives/coriander-2.0.1.tar.gz";
+ url = "http://damien.douxchamps.net/ieee1394/coriander/archives/coriander-${version}.tar.gz";
sha256 = "0l6hpfgy5r4yardilmdrggsnn1fbfww516sk5a90g1740cd435x5";
};
@@ -20,7 +33,7 @@ stdenv.mkDerivation {
homepage = "https://damien.douxchamps.net/ieee1394/coriander/";
description = "GUI for controlling a Digital Camera through the IEEE1394 bus";
license = lib.licenses.gpl3Plus;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/pkgs/applications/video/dvdauthor/default.nix b/pkgs/applications/video/dvdauthor/default.nix
index 502c4c69c3f8..941b0808886e 100644
--- a/pkgs/applications/video/dvdauthor/default.nix
+++ b/pkgs/applications/video/dvdauthor/default.nix
@@ -1,15 +1,28 @@
-{ lib, stdenv, fetchurl, imagemagick, libdvdread, libxml2, freetype, fribidi, libpng, zlib, pkg-config
-, flex, bison }:
+{ lib
+, stdenv
+, fetchurl
+, imagemagick
+, libdvdread
+, libxml2
+, freetype
+, fribidi
+, libpng
+, zlib
+, pkg-config
+, flex
+, bison
+}:
stdenv.mkDerivation rec {
- name = "dvdauthor-0.7.1";
+ pname = "dvdauthor";
+ version = "0.7.1";
src = fetchurl {
- url = "mirror://sourceforge/dvdauthor/${name}.tar.gz";
+ url = "mirror://sourceforge/dvdauthor/dvdauthor-${version}.tar.gz";
sha256 = "1s8zqlim0s3hk5sbdsilip3qqh0yv05l1jwx49d9rsy614dv27sh";
};
- buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick flex bison];
+ buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick flex bison ];
nativeBuildInputs = [ pkg-config ];
patches = [
diff --git a/pkgs/applications/video/entangle/default.nix b/pkgs/applications/video/entangle/default.nix
new file mode 100644
index 000000000000..6d8905d2c003
--- /dev/null
+++ b/pkgs/applications/video/entangle/default.nix
@@ -0,0 +1,127 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, cmake
+, libxml2
+, meson
+, ninja
+, perl
+, python3
+, pkgconf
+, wrapGAppsHook
+, at-spi2-core
+, dbus
+, elfutils
+, epoxy
+, gexiv2
+, glib
+, gobject-introspection
+, gst-plugins-base
+, gstreamer
+, gtk3
+, lcms2
+, libdatrie
+, libgphoto2
+, libgudev
+, libpeas
+, libraw
+, libselinux
+, libsepol
+, libthai
+, libunwind
+, libxkbcommon
+, orc
+, pcre
+, udev
+, util-linux
+, xorg
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "entangle";
+ version = "3.0";
+
+ src = fetchFromGitLab {
+ owner = "entangle";
+ repo = "entangle";
+ rev = "v${version}";
+ sha256 = "hz2WSDOjriQSavFlDT+35x1X5MeInq80ZrSP1WR/td0=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ glib.dev
+ libxml2.bin # for xmllint
+ meson
+ ninja
+ perl # for pod2man and build scripts
+ python3 # for build scripts
+ pkgconf
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ at-spi2-core
+ dbus
+ epoxy
+ elfutils
+ gexiv2
+ glib
+ gobject-introspection
+ gst-plugins-base
+ gstreamer
+ gtk3
+ lcms2
+ libdatrie
+ libgphoto2
+ libgudev
+ libpeas
+ libraw
+ libselinux
+ libsepol
+ libthai
+ libunwind
+ libxkbcommon
+ orc
+ pcre
+ udev
+ util-linux
+ zstd
+ ] ++ (with xorg; [
+ libXdmcp
+ libXtst
+ ]);
+
+ dontUseCmakeConfigure = true;
+
+ # Disable building of doc/reference since it requires network connection to render XML to HTML
+ # Patch build script shebangs
+ postPatch = ''
+ sed -i "/subdir('reference')/d" "docs/meson.build"
+ patchShebangs --build build-aux meson_post_install.py
+ sed -i meson_post_install.py \
+ -e "/print('Update icon cache...')/d" \
+ -e "/gtk-update-icon-cache/d"
+ '';
+
+ postInstall = ''
+ substituteInPlace "$out/share/applications/org.entangle_photo.Manager.desktop" \
+ --replace "Exec=entangle" "Exec=$out/bin/entangle"
+ '';
+
+ meta = with lib; {
+ description = "Tethered camera control and capture";
+ longDescription = ''
+ Entangle uses GTK and libgphoto2 to provide a graphical interface
+ for tethered photography with digital cameras.
+ It includes control over camera shooting and configuration settings
+ and 'hands off' shooting directly from the controlling computer.
+ This app can also serve as a camera app for mobile devices.
+ '';
+ homepage = "https://gitlab.com/entangle/entangle";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ShamrockLee ];
+ };
+}
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index db1399ef6032..41c035350d83 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -7,11 +7,11 @@
buildPythonApplication rec {
pname = "ffmpeg-normalize";
- version = "1.22.3";
+ version = "1.22.4";
src = fetchPypi {
inherit pname version;
- sha256 = "317a9636587182280debc85d483f6d21987ceb6cd96ab36a2399836780eca822";
+ sha256 = "a20978538ae9a51bdbe5ef5aa0f87ede0f8efd2817ab240980de56eac36982e3";
};
propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];
diff --git a/pkgs/applications/video/flirc/99-flirc.rules b/pkgs/applications/video/flirc/99-flirc.rules
new file mode 100644
index 000000000000..eb02f8a91136
--- /dev/null
+++ b/pkgs/applications/video/flirc/99-flirc.rules
@@ -0,0 +1,11 @@
+# Flirc Devices
+
+# Bootloader
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="20a0", ATTR{idProduct}=="0000", MODE="0666"
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="20a0", ATTR{idProduct}=="0002", MODE="0666"
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="0005", MODE="0666"
+
+# Flirc Application
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="20a0", ATTR{idProduct}=="0001", MODE="0666"
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="20a0", ATTR{idProduct}=="0004", MODE="0666"
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="0006", MODE="0666"
diff --git a/pkgs/applications/video/flirc/default.nix b/pkgs/applications/video/flirc/default.nix
new file mode 100644
index 000000000000..6285094c461a
--- /dev/null
+++ b/pkgs/applications/video/flirc/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, mkDerivation
+, fetchurl
+, autoPatchelfHook
+, hidapi
+, readline
+, qtsvg
+, qtxmlpatterns
+}:
+
+mkDerivation rec {
+ pname = "flirc";
+ version = "3.24.3";
+
+ src = fetchurl {
+ url = "https://web.archive.org/web/20211021211803/http://apt.flirc.tv/arch/x86_64/flirc.latest.x86_64.tar.gz";
+ sha256 = "0p4pp7j70lbw6m25lmjg6ibc67r6jcy7qs3kki9f86ji1jvrxpga";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+ buildInputs = [
+ hidapi
+ readline
+ qtsvg
+ qtxmlpatterns
+ ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ # udev rules don't appear in the official package
+ # https://flirc.gitbooks.io/flirc-instructions/content/linux.html
+ installPhase = ''
+ install -D -t $out/bin/ Flirc flirc_util
+ install -D ${./99-flirc.rules} $out/lib/udev/rules.d/99-flirc.rules
+ '';
+
+ meta = with lib; {
+ homepage = "https://flirc.tv/more/flirc-usb";
+ description = "Use any Remote with your Media Center";
+ maintainers = with maintainers; [ aanderse ];
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/video/freetube/default.nix b/pkgs/applications/video/freetube/default.nix
index 211112b4ee06..aa32e8828e06 100644
--- a/pkgs/applications/video/freetube/default.nix
+++ b/pkgs/applications/video/freetube/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "freetube";
- version = "0.14.0";
+ version = "0.15.0";
src = fetchurl {
url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
- sha256 = "sha256:0qaghj70ffc90wck1i4217ky5d6cryrmgna2ipsc4v8dcvbyc1lh";
+ sha256 = "sha256-52cVY3SBT048tErydk3l27yBvM/FMVpEMf5miAeInDM=";
};
appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index 5007f7419aeb..ce64a702379c 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -7,85 +7,120 @@
# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
# requires invoking the Xcode build system, which is non-trivial for now.
-{ stdenv, lib, fetchFromGitHub, fetchpatch,
+{ stdenv
+, lib
+, fetchFromGitHub
+, nixosTests
# Main build tools
- pkg-config, autoconf, automake, libtool, m4, xz, python3,
- numactl,
+, pkg-config
+, autoconf
+, automake
+, libtool
+, m4
+, xz
+, python3
+, numactl
+, writeText
# Processing, video codecs, containers
- ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
+, ffmpeg-full
+, nv-codec-headers
+, libogg
+, x264
+, x265
+, libvpx
+, libtheora
+, dav1d
+, zimg
# Codecs, audio
- libopus, lame, libvorbis, a52dec, speex, libsamplerate,
+, libopus
+, lame
+, libvorbis
+, a52dec
+, speex
+, libsamplerate
# Text processing
- libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
+, libiconv
+, fribidi
+, fontconfig
+, freetype
+, libass
+, jansson
+, libxml2
+, harfbuzz
+, libjpeg_turbo
# Optical media
- libdvdread, libdvdnav, libdvdcss, libbluray,
+, libdvdread
+, libdvdnav
+, libdvdcss
+, libbluray
# Darwin-specific
- AudioToolbox ? null,
- Foundation ? null,
- libobjc ? null,
- VideoToolbox ? null,
+, AudioToolbox ? null
+, Foundation ? null
+, libobjc ? null
+, VideoToolbox ? null
# GTK
# NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
# which in turn depends on systemd. systemd is not supported on Darwin, so
# for now we disable GTK GUI support on Darwin. (It may be possible to remove
# this restriction later.)
- useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
- intltool ? null,
- glib ? null,
- gtk3 ? null,
- libappindicator-gtk3 ? null,
- libnotify ? null,
- gst_all_1 ? null,
- dbus-glib ? null,
- udev ? null,
- libgudev ? null,
- hicolor-icon-theme ? null,
+, useGtk ? !stdenv.isDarwin
+, wrapGAppsHook
+, intltool
+, glib
+, gtk3
+, libappindicator-gtk3
+, libnotify
+, gst_all_1
+, dbus-glib
+, udev
+, libgudev
+, hicolor-icon-theme
# FDK
- useFdk ? false, fdk_aac ? null
+, useFdk ? false
+, fdk_aac
}:
-stdenv.mkDerivation rec {
- pname = "handbrake";
- version = "1.3.3";
+let
+ version = "1.4.2";
src = fetchFromGitHub {
owner = "HandBrake";
repo = "HandBrake";
rev = version;
- sha256 = "0bsmk37543zv3p32a7wxnh2w483am23ha2amj339q3nnb4142krn";
- extraPostFetch = ''
- echo "DATE=$(date +"%F %T %z" -r $out/NEWS.markdown)" > $out/version.txt
- '';
+ sha256 = "sha256-Usz2+U1Wb8yJ5W2HqV0FqBaaE25fuVKk/NwKBHaKzwk=";
};
- # Remove with a release after 1.3.3
- patches = [
- (fetchpatch {
- name = "audio-fix-ffmpeg-4_4";
- url = "https://github.com/HandBrake/HandBrake/commit/f28289fb06ab461ea082b4be56d6d1504c0c31c2.patch";
- sha256 = "sha256:1zcwa4h97d8wjspb8kbd8b1jg0a9vvmv9zaphzry4m9q0bj3h3kz";
- })
- ];
+ versionFile = writeText "version.txt" ''
+ BRANCH=${versions.majorMinor version}.x
+ DATE=1970-01-01 00:00:01 +0000
+ HASH=${src.rev}
+ REV=${src.rev}
+ SHORTHASH=${src.rev}
+ TAG=${version}
+ URL=${src.meta.homepage}
+ '';
+
+ inherit (lib) optional optionals optionalString versions;
+
+in
+stdenv.mkDerivation rec {
+ pname = "handbrake";
+ inherit version src;
- # we put as little as possible in src.extraPostFetch as it's much easier to
- # add to it here without having to fiddle with src.sha256
- # only DATE and HASH are absolutely necessary
postPatch = ''
- cat >> version.txt <<_EOF
-HASH=${src.rev}
-SHORTHASH=${src.rev}
-TAG=${version}
-URL=${src.meta.homepage}
-_EOF
+ install -Dm444 ${versionFile} ${versionFile.name}
patchShebangs scripts
+ substituteInPlace libhb/hb.c \
+ --replace 'return hb_version;' 'return "${version}";'
+
# Force using nixpkgs dependencies
sed -i '/MODULES += contrib/d' make/include/main.defs
sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
-e '/ ## Additional library and tool checks/,/ ## MinGW specific library and tool checks/d' \
-i make/configure.py
- '' + (lib.optionalString stdenv.isDarwin ''
+ '' + optionalString stdenv.isDarwin ''
# Use the Nix-provided libxml2 instead of the patched version available on
# the Handbrake website.
substituteInPlace libhb/module.defs \
@@ -95,51 +130,92 @@ _EOF
# which it isn't in the Nix context. (The actual build goes fine without
# xcodebuild.)
sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
- '') + (lib.optionalString stdenv.isLinux ''
+ '' + optionalString stdenv.isLinux ''
# Use the Nix-provided libxml2 instead of the system-provided one.
substituteInPlace libhb/module.defs \
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
- '');
+ '';
nativeBuildInputs = [
- pkg-config autoconf automake libtool m4 python3
- ] ++ lib.optionals useGtk [ intltool wrapGAppsHook ];
+ autoconf
+ automake
+ libtool
+ m4
+ pkg-config
+ python3
+ ]
+ ++ optionals useGtk [ intltool wrapGAppsHook ];
buildInputs = [
- ffmpeg-full libogg libtheora x264 x265 libvpx dav1d
- libopus lame libvorbis a52dec speex libsamplerate
- libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
- libdvdread libdvdnav libdvdcss libbluray xz
- ] ++ lib.optional (!stdenv.isDarwin) numactl
- ++ lib.optionals useGtk [
- glib gtk3 libappindicator-gtk3 libnotify
- gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
- libgudev hicolor-icon-theme
- ] ++ lib.optional useFdk fdk_aac
- ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
+ a52dec
+ dav1d
+ ffmpeg-full
+ fontconfig
+ freetype
+ fribidi
+ harfbuzz
+ jansson
+ lame
+ libass
+ libbluray
+ libdvdcss
+ libdvdnav
+ libdvdread
+ libiconv
+ libjpeg_turbo
+ libogg
+ libopus
+ libsamplerate
+ libtheora
+ libvorbis
+ libvpx
+ libxml2
+ speex
+ x264
+ x265
+ xz
+ zimg
+ ]
+ ++ optional (!stdenv.isDarwin) numactl
+ ++ optionals useGtk [
+ dbus-glib
+ glib
+ gst_all_1.gst-plugins-base
+ gst_all_1.gstreamer
+ gtk3
+ hicolor-icon-theme
+ libappindicator-gtk3
+ libgudev
+ libnotify
+ udev
+ ]
+ ++ optional useFdk fdk_aac
+ ++ optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
# look at ./make/configure.py search "enable_nvenc"
- ++ lib.optional stdenv.isLinux nv-codec-headers;
+ ++ optional stdenv.isLinux nv-codec-headers;
configureFlags = [
"--disable-df-fetch"
"--disable-df-verify"
- (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
- (if useFdk then "--enable-fdk-aac" else "")
- (if stdenv.isDarwin then "--disable-xcode" else "")
- ] ++ lib.optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
+ "--disable-gtk-update-checks"
+ ]
+ ++ optional (!useGtk) "--disable-gtk"
+ ++ optional useFdk "--enable-fdk-aac"
+ ++ optional stdenv.isDarwin "--disable-xcode"
+ ++ optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
- NIX_LDFLAGS = [
- "-lx265"
- ];
+ NIX_LDFLAGS = [ "-lx265" ];
- preBuild = ''
- cd build
- '';
+ makeFlags = [ "--directory=build" ];
+
+ passthru.tests = {
+ basic-conversion = nixosTests.handbrake;
+ };
meta = with lib; {
- homepage = "http://handbrake.fr/";
+ homepage = "https://handbrake.fr/";
description = "A tool for converting video files and ripping DVDs";
longDescription = ''
Tool for converting and remuxing video files
@@ -149,8 +225,9 @@ _EOF
CLI - `HandbrakeCLI`
GTK GUI - `ghb`
'';
- license = licenses.gpl2;
+ license = licenses.gpl2Only;
maintainers = with maintainers; [ Anton-Latukha wmertens ];
platforms = with platforms; unix;
+ broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13";
};
}
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
index 3e45dd62d683..a9e87861365c 100644
--- a/pkgs/applications/video/haruna/default.nix
+++ b/pkgs/applications/video/haruna/default.nix
@@ -1,10 +1,11 @@
{ lib
-, fetchFromGitHub
+, fetchFromGitLab
, mkDerivation
, breeze-icons
, breeze-qt5
, cmake
, extra-cmake-modules
+, ffmpeg-full
, kcodecs
, kconfig
, kcoreaddons
@@ -26,18 +27,20 @@
mkDerivation rec {
pname = "haruna";
- version = "0.6.3";
+ version = "0.7.2";
- src = fetchFromGitHub {
- owner = "g-fb";
+ src = fetchFromGitLab {
+ owner = "multimedia";
repo = "haruna";
- rev = version;
- sha256 = "sha256-gJCLc8qJolv4Yufm/OBCTTEpyoodtySAqKH+zMHCoLU=";
+ rev = "v${version}";
+ sha256 = "sha256-0s4v3YJhSssp2S9mppMXq0AtWXPIaqOYWPmJgKjXjDE=";
+ domain = "invent.kde.org";
};
buildInputs = [
breeze-icons
breeze-qt5
+ ffmpeg-full
kcodecs
kconfig
kcoreaddons
diff --git a/pkgs/applications/video/jellyfin-media-player/default.nix b/pkgs/applications/video/jellyfin-media-player/default.nix
index 8c23bfc5c298..82d34d188ff6 100644
--- a/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/pkgs/applications/video/jellyfin-media-player/default.nix
@@ -94,9 +94,6 @@ mkDerivation rec {
mv $out/Resources/* "$out/Applications/Jellyfin Media Player.app/Contents/Resources/"
rmdir $out/Resources
- # fix 'Could not find the Qt platform plugin "cocoa" in ""' error
- wrapQtApp "$out/Applications/Jellyfin Media Player.app/Contents/MacOS/Jellyfin Media Player"
-
ln -s "$out/Applications/Jellyfin Media Player.app/Contents/MacOS/Jellyfin Media Player" $out/bin/jellyfinmediaplayer
'';
diff --git a/pkgs/applications/video/kodi-packages/archive_tool/default.nix b/pkgs/applications/video/kodi-packages/archive_tool/default.nix
new file mode 100644
index 000000000000..4788556a8793
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/archive_tool/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildKodiAddon, fetchFromGitHub, vfs-libarchive }:
+buildKodiAddon rec {
+ pname = "archive_tool";
+ namespace = "script.module.archive_tool";
+ version = "2.0.3";
+
+ src = fetchFromGitHub {
+ owner = "zach-morris";
+ repo = "script.module.archive_tool";
+ rev = version;
+ sha256 = "0hbkyk59xxfjv6vzfjplahmqxi5564qjlwyq6k8ijy6jjcwnd3p7";
+ };
+
+ propagatedBuildInputs = [
+ vfs-libarchive
+ ];
+
+ passthru = {
+ pythonPath = "lib";
+ };
+
+ meta = with lib; {
+ homepage = "https://github.com/zach-morris/script.module.archive_tool";
+ description = "A set of common python functions to work with the Kodi archive virtual file system (vfs) binary addons";
+ license = licenses.gpl3Plus;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/defusedxml/default.nix b/pkgs/applications/video/kodi-packages/defusedxml/default.nix
new file mode 100644
index 000000000000..11738065ff60
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/defusedxml/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+ pname = "defusedxml";
+ namespace = "script.module.defusedxml";
+ version = "0.6.0+matrix.1";
+
+ src = fetchzip {
+ url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+ sha256 = "026i5rx9rmxcc18ixp6qhbryqdl4pn7cbwqicrishivan6apnacd";
+ };
+
+ passthru = {
+ pythonPath = "lib";
+ updateScript = addonUpdateScript {
+ attrPath = "kodi.packages.defusedxml";
+ };
+ };
+
+ meta = with lib; {
+ homepage = "https://github.com/tiran/defusedxml";
+ description = "defusing XML bombs and other exploits";
+ license = licenses.psfl;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/iagl/default.nix b/pkgs/applications/video/kodi-packages/iagl/default.nix
new file mode 100644
index 000000000000..8ca0abdf960b
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/iagl/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildKodiAddon, fetchFromGitHub, fetchzip, dateutil, requests, routing, vfs-libarchive, archive_tool, youtube }:
+
+buildKodiAddon rec {
+ pname = "iagl";
+ namespace = "plugin.program.iagl";
+ version = "1101521-2";
+
+ src = fetchFromGitHub {
+ owner = "zach-morris";
+ repo = "plugin.program.iagl";
+ rev = "30e82eec1a909b31767f0e298cf77fc970b256d3";
+ sha256 = "11y05i5f7lzik23w2kr52jdgr8db3gin8i683sy1hzxlmplk4699";
+ };
+
+ propagatedBuildInputs = [
+ dateutil
+ requests
+ routing
+ vfs-libarchive
+ archive_tool
+ youtube
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/zach-morris/plugin.program.iagl";
+ description = "Launch Games from the Internet using Kodi";
+ license = licenses.gpl3Plus;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/pkgs/applications/video/kodi-packages/jellyfin/default.nix
index b162ca11fa8c..59aaa2e8b261 100644
--- a/pkgs/applications/video/kodi-packages/jellyfin/default.nix
+++ b/pkgs/applications/video/kodi-packages/jellyfin/default.nix
@@ -5,13 +5,13 @@ in
buildKodiAddon rec {
pname = "jellyfin";
namespace = "plugin.video.jellyfin";
- version = "0.7.4";
+ version = "0.7.7";
src = fetchFromGitHub {
owner = "jellyfin";
repo = "jellyfin-kodi";
rev = "v${version}";
- sha256 = "1ykgz1l2gmpdlsp3fbm31q8757879i9dd13svslqykvxadg69x03";
+ sha256 = "06glhnpayldficvvhlkbxg7zizl2wqms66fnc3p63nm3y7mqa9dd";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/video/kodi-packages/keymap/default.nix b/pkgs/applications/video/kodi-packages/keymap/default.nix
new file mode 100644
index 000000000000..d7b45485d683
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/keymap/default.nix
@@ -0,0 +1,24 @@
+{ lib, addonDir, buildKodiAddon, fetchzip, defusedxml, kodi-six }:
+
+buildKodiAddon rec {
+ pname = "keymap";
+ namespace = "script.keymap";
+ version = "1.1.3+matrix.1";
+
+ src = fetchzip {
+ url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+ sha256 = "1icrailzpf60nw62xd0khqdp66dnr473m2aa9wzpmkk3qj1ay6jv";
+ };
+
+ propagatedBuildInputs = [
+ defusedxml
+ kodi-six
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/tamland/xbmc-keymap-editor";
+ description = "A GUI for configuring mappings for remotes, keyboard and other inputs supported by Kodi";
+ license = licenses.gpl3Plus;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix b/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix
new file mode 100644
index 000000000000..064375107e26
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix
@@ -0,0 +1,31 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, genesis-plus-gx }:
+
+buildKodiBinaryAddon rec {
+ pname = "kodi-libretro-genplus";
+ namespace = "game.libretro.genplus";
+ version = "1.7.4.31";
+
+ src = fetchFromGitHub {
+ owner = "kodi-game";
+ repo = "game.libretro.genplus";
+ rev = "${version}-${rel}";
+ sha256 = "0lcii32wzpswjjkwhv250l238g31akr66dhkbv8gj4v1i4z7hry8";
+ };
+
+ extraCMakeFlags = [
+ "-DGENPLUS_LIB=${genesis-plus-gx}/lib/retroarch/cores/genesis_plus_gx_libretro.so"
+ ];
+
+ extraBuildInputs = [ genesis-plus-gx ];
+ propagatedBuildInputs = [
+ libretro
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/kodi-game/game.libretro.genplus";
+ description = "Genesis Plus GX GameClient for Kodi";
+ platforms = platforms.all;
+ license = licenses.gpl2Only;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix b/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix
new file mode 100644
index 000000000000..640aec3d4971
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix
@@ -0,0 +1,31 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, snes9x }:
+
+buildKodiBinaryAddon rec {
+ pname = "kodi-libretro-snes9x";
+ namespace = "game.libretro.snes9x";
+ version = "1.60.0.29";
+
+ src = fetchFromGitHub {
+ owner = "kodi-game";
+ repo = "game.libretro.snes9x";
+ rev = "${version}-${rel}";
+ sha256 = "1wyfkg4fncc604alnbaqk92fi1h80n7bwiqfkb8479x5517byab1";
+ };
+
+ extraCMakeFlags = [
+ "-DSNES9X_LIB=${snes9x}/lib/retroarch/cores/snes9x_libretro.so"
+ ];
+
+ extraBuildInputs = [ snes9x ];
+ propagatedBuildInputs = [
+ libretro
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/kodi-game/game.libretro.snes9x";
+ description = "Snes9X GameClient for Kodi";
+ platforms = platforms.all;
+ license = licenses.gpl2Only;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/libretro/default.nix b/pkgs/applications/video/kodi-packages/libretro/default.nix
new file mode 100644
index 000000000000..d1fc3d4afd2b
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/libretro/default.nix
@@ -0,0 +1,24 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml }:
+
+buildKodiBinaryAddon rec {
+ pname = "libretro";
+ namespace = "game.libretro";
+ version = "19.0.0";
+
+ src = fetchFromGitHub {
+ owner = "kodi-game";
+ repo = "game.libretro";
+ rev = "${version}-${rel}";
+ sha256 = "1831wbbc4a545lr4mg1fm4sbx75k5lkrfqaa5fh308aar0nm974d";
+ };
+
+ extraBuildInputs = [ tinyxml ];
+
+ meta = with lib; {
+ homepage = "https://github.com/kodi-game/game.libretro";
+ description = "Libretro wrapper for Kodi's Game API";
+ platforms = platforms.all;
+ license = licenses.gpl2Only;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/pkgs/applications/video/kodi-packages/steam-library/default.nix b/pkgs/applications/video/kodi-packages/steam-library/default.nix
index 5660be94987f..fe772c9f732a 100644
--- a/pkgs/applications/video/kodi-packages/steam-library/default.nix
+++ b/pkgs/applications/video/kodi-packages/steam-library/default.nix
@@ -3,13 +3,13 @@
buildKodiAddon rec {
pname = "steam-library";
namespace = "plugin.program.steam.library";
- version = "0.8.0";
+ version = "0.8.1";
src = fetchFromGitHub {
owner = "aanderse";
repo = namespace;
rev = "v${version}";
- sha256 = "1d8n8zkprjql0nw5ff752yr994hw2ikd0ny3m9hjr90s4kdykjzr";
+ sha256 = "1ai8k55bamzkx7awk3dl8ksw93pan3h9b1xlylcldy7a0ddldzdg";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi-packages/youtube/default.nix b/pkgs/applications/video/kodi-packages/youtube/default.nix
index 7c16aa606f24..090e09d55ef6 100644
--- a/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/pkgs/applications/video/kodi-packages/youtube/default.nix
@@ -3,11 +3,11 @@
buildKodiAddon rec {
pname = "youtube";
namespace = "plugin.video.youtube";
- version = "6.8.17+matrix.1";
+ version = "6.8.18+matrix.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
- sha256 = "AuYoUyv0DDtHnxFiNl3AF5jrMjuNRXdlJvw7d7b+yh8=";
+ sha256 = "F950rnE/YxwWI0ieHC2TdGNSfrQDHlStnxLbA6UjEaM=";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
index 72d6533f38d9..d1eb38cd0bd4 100644
--- a/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
+++ b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
@@ -5,6 +5,7 @@
, extraNativeBuildInputs ? []
, extraBuildInputs ? []
, extraRuntimeDependencies ? []
+, extraCMakeFlags ? []
, extraInstallPhase ? "", ... } @ attrs:
toKodiAddon (stdenv.mkDerivation ({
name = "kodi-" + name;
@@ -19,7 +20,7 @@ toKodiAddon (stdenv.mkDerivation ({
# disables check ensuring install prefix is that of kodi
cmakeFlags = [
"-DOVERRIDE_PATHS=1"
- ];
+ ] ++ extraCMakeFlags;
# kodi checks for addon .so libs existance in the addon folder (share/...)
# and the non-wrapped kodi lib/... folder before even trying to dlopen
@@ -28,7 +29,10 @@ toKodiAddon (stdenv.mkDerivation ({
runHook preInstall
make install
- ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
+
+ [[ -f $out/lib/addons/${n}/${n}.so ]] && ln -s $out/lib/addons/${n}/${n}.so $out${addonDir}/${n}/${n}.so || true
+ [[ -f $out/lib/addons/${n}/${n}.so.${version} ]] && ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version} || true
+
${extraInstallPhase}
runHook postInstall
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
index df4c0a6bf1d0..5fa652de0c7e 100644
--- a/pkgs/applications/video/kodi/unwrapped.nix
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
, pkg-config, cmake, gnumake, yasm, python3Packages
-, libgcrypt, libgpgerror, libunistring
+, libgcrypt, libgpg-error, libunistring
, boost, avahi, lame
, gettext, pcre-cpp, yajl, fribidi, which
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
@@ -16,7 +16,7 @@
, libcec, libcec_platform, dcadec, libuuid
, libcrossguid, libmicrohttpd
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
-, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
+, libplist, p11-kit, zlib, flatbuffers, fstrcmp, rapidjson
, lirc
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
, dbusSupport ? true, dbus
@@ -38,25 +38,25 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
assert gbmSupport || waylandSupport || x11Support;
let
- kodiReleaseDate = "20210508";
- kodiVersion = "19.1";
+ kodiReleaseDate = "20211024";
+ kodiVersion = "19.3";
rel = "Matrix";
kodi_src = fetchFromGitHub {
owner = "xbmc";
repo = "xbmc";
rev = "${kodiVersion}-${rel}";
- sha256 = "0jh67vw3983lnfgqzqfislawwbpq0vxxk1ljsg7mar06mlwfxb7h";
+ sha256 = "02bnknk87zzv9j6b6k9c0xx47q2gh399j6v25rm94g7rhzf8phbw";
};
ffmpeg = stdenv.mkDerivation rec {
pname = "kodi-ffmpeg";
- version = "4.3.1";
+ version = "4.3.2";
src = fetchFromGitHub {
owner = "xbmc";
repo = "FFmpeg";
- rev = "${version}-${rel}-Beta1";
- sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
+ rev = "${version}-${rel}-${kodiVersion}";
+ sha256 = "14s215sgc93ds1mrdbkgb7fvy94lpgv2ldricyxzis0gbzqfgs4f";
};
preConfigure = ''
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
@@ -122,10 +122,10 @@ in stdenv.mkDerivation {
sqlite libmysqlclient avahi lame
curl bzip2 zip unzip glxinfo
libcec libcec_platform dcadec libuuid
- libgcrypt libgpgerror libunistring
+ libgcrypt libgpg-error libunistring
libcrossguid libplist
bluez giflib glib harfbuzz lcms2 libpthreadstubs
- ffmpeg flatbuffers fmt fstrcmp rapidjson
+ ffmpeg flatbuffers fstrcmp rapidjson
lirc
mesa # for libEGL
]
diff --git a/pkgs/applications/video/lxdvdrip/default.nix b/pkgs/applications/video/lxdvdrip/default.nix
index 6a10aca398cb..60604a4b8abf 100644
--- a/pkgs/applications/video/lxdvdrip/default.nix
+++ b/pkgs/applications/video/lxdvdrip/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libdvdread }:
stdenv.mkDerivation rec {
- name = "lxdvdrip-1.76";
+ pname = "lxdvdrip";
+ version = "1.76";
src = fetchurl {
- url = "mirror://sourceforge/lxdvdrip/${name}.tgz";
+ url = "mirror://sourceforge/lxdvdrip/lxdvdrip-${version}.tgz";
sha256 = "0vgslc7dapfrbgslnaicc8bggdccyrvcgjv1dwi19qswhh7jkzj6";
};
diff --git a/pkgs/applications/video/mediathekview/default.nix b/pkgs/applications/video/mediathekview/default.nix
index 2005a949a5c4..1a6f19721331 100644
--- a/pkgs/applications/video/mediathekview/default.nix
+++ b/pkgs/applications/video/mediathekview/default.nix
@@ -1,34 +1,38 @@
{ lib, stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec {
- version = "13.7.1";
+ version = "13.8.0";
pname = "mediathekview";
src = fetchurl {
url = "https://download.mediathekview.de/stabil/MediathekView-${version}-linux.tar.gz";
- sha256 = "sha256-yFPyj1Mbgj2eJv4DpvfOtPyTbL9gMAXC5TzSx8AV27o=";
+ sha256 = "0zfkwz5psv7m0881ykgqrxwjhadg39c55aj2wpy7m1jdara86c5q";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
+ runHook preInstall
+
mkdir -p $out/{bin,lib}
install -m644 MediathekView.jar $out/lib
makeWrapper ${jre}/bin/java $out/bin/mediathek \
- --add-flags "-Xmx1G --enable-preview -jar $out/lib/MediathekView.jar"
+ --add-flags "-jar $out/lib/MediathekView.jar"
makeWrapper ${jre}/bin/java $out/bin/MediathekView \
- --add-flags "-Xmx1G --enable-preview -jar $out/lib/MediathekView.jar"
+ --add-flags "-jar $out/lib/MediathekView.jar"
makeWrapper ${jre}/bin/java $out/bin/MediathekView_ipv4 \
- --add-flags "-Xmx1G --enable-preview -Djava.net.preferIPv4Stack=true -jar $out/lib/MediathekView.jar"
+ --add-flags "-Djava.net.preferIPv4Stack=true -jar $out/lib/MediathekView.jar"
+
+ runHook postInstall
'';
meta = with lib; {
description = "Offers access to the Mediathek of different tv stations (ARD, ZDF, Arte, etc.)";
homepage = "https://mediathekview.de/";
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
maintainers = with maintainers; [ moredread ];
platforms = platforms.all;
};
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index 84b5e2a1d735..62e7e21cbbb3 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -6,10 +6,10 @@
mkDerivation rec {
pname = "minitube";
- version = "3.8.1";
+ version = "3.9.1";
src = fetchFromGitHub {
- sha256 = "3lpZyPwo4NnxZJKfmCFsH4WdakV4KB5BtCr5xsleeIQ=";
+ sha256 = "sha256-1BVHxB7WtXCAJqP+uADszdVPc+T3ctCCzfoJPCb5ZTE=";
rev = version;
repo = "minitube";
owner = "flaviotordini";
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index ebf5de4e00b1..4eac16d349bf 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -47,13 +47,13 @@ let
in
stdenv.mkDerivation rec {
pname = "mkvtoolnix";
- version = "61.0.0";
+ version = "62.0.0";
src = fetchFromGitLab {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
- sha256 = "04f18jr0a5m1sah8163m28b82w1ikjzmahqy67pbbpzg0mc6rqr4";
+ sha256 = "0pjf1lkpjirqanazm7a28b8bsyin4i1kd1s4y169zsilzb28kpiz";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/video/molotov/default.nix b/pkgs/applications/video/molotov/default.nix
index 3015bc1191bb..670eef3aa3ee 100644
--- a/pkgs/applications/video/molotov/default.nix
+++ b/pkgs/applications/video/molotov/default.nix
@@ -3,17 +3,16 @@
let
pname = "molotov";
version = "4.4.0";
- name = "${pname}-${version}";
src = fetchurl {
url = "http://desktop-auto-upgrade.molotov.tv/linux/${version}/molotov.AppImage";
sha256 = "sha256-l4Il6i8uXSeJqH3ITC8ZUpKXPQb0qcW7SpKx1R46XDc=";
};
- appimageContents = appimageTools.extractType2 { inherit name src; };
+ appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
- inherit name src;
+ inherit pname version src;
extraInstallCommands = ''
- mv $out/bin/${name} $out/bin/${pname}
+ mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D \
${appimageContents}/@molotovdesktop-wrapper.desktop \
$out/share/applications/${pname}.desktop
diff --git a/pkgs/applications/video/motion/default.nix b/pkgs/applications/video/motion/default.nix
index 53db96e31d4e..c9ea2a51d3d4 100644
--- a/pkgs/applications/video/motion/default.nix
+++ b/pkgs/applications/video/motion/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "motion";
- version = "4.3.2";
+ version = "4.4.0";
src = fetchFromGitHub {
owner = "Motion-Project";
repo = "motion";
rev = "release-${version}";
- sha256 = "09xs815jsivcilpmnrx2jkcxirj4lg5kp99fkr0p2sdxw03myi95";
+ sha256 = "sha256-srL9F99HHq5cw82rnQpywkTuY4s6hqIO64Pw5CnaG5Q=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 93c3b2203b75..97e707a587e3 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -1,7 +1,25 @@
-{ config, lib, stdenv, fetchFromGitHub, fetchpatch
-, addOpenGLRunpath, docutils, perl, pkg-config, python3, wafHook, which
-, ffmpeg, freefont_ttf, freetype, libass, libpthreadstubs, mujs
-, nv-codec-headers, lua, libuchardet, libiconv ? null
+{ config
+, lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, addOpenGLRunpath
+, docutils
+, perl
+, pkg-config
+, python3
+, wafHook
+, which
+, ffmpeg
+, freefont_ttf
+, freetype
+, libass
+, libpthreadstubs
+, mujs
+, nv-codec-headers
+, lua
+, libuchardet
+, libiconv ? null
, CoreFoundation, Cocoa, CoreAudio, MediaPlayer
, waylandSupport ? stdenv.isLinux
@@ -30,7 +48,7 @@
, libdrm ? null
, mesa ? null
-, alsaSupport ? stdenv.isLinux, alsa-lib ? null
+, alsaSupport ? stdenv.isLinux, alsa-lib ? null
, archiveSupport ? true, libarchive ? null
, bluraySupport ? true, libbluray ? null
, bs2bSupport ? true, libbs2b ? null
@@ -95,45 +113,22 @@ let
in stdenv.mkDerivation rec {
pname = "mpv";
- version = "0.33.1";
+ version = "0.34.0";
- outputs = [ "out" "dev" ];
+ outputs = [ "out" "dev" "man" ];
src = fetchFromGitHub {
- owner = "mpv-player";
- repo = "mpv";
- rev = "v${version}";
- sha256 = "06rw1f55zcsj78ql8w70j9ljp2qb1pv594xj7q9cmq7i92a7hq45";
+ owner = "mpv-player";
+ repo = "mpv";
+ rev = "v${version}";
+ sha256 = "sha256-qa6xZV4aLcHBMa2bIqoKjte4+KWEGGZre4L0u1+eDE8=";
};
- patches = [
- # To make mpv build with libplacebo 3.104.0:
- (fetchpatch { # vo_gpu: placebo: update for upstream API changes
- url = "https://github.com/mpv-player/mpv/commit/7c4465cefb27d4e0d07535d368febdf77b579566.patch";
- sha256 = "1yfc6220ak5kc5kf7zklmsa944nr9q0qaa27l507pgrmvcyiyzrx";
- })
- ];
-
postPatch = ''
patchShebangs ./TOOLS/
'';
-
- passthru = {
- inherit
- # The wrapper consults luaEnv and lua.version
- luaEnv
- lua
- # In the wrapper, we want to reference vapoursynth which has the
- # `python3` passthru attribute (which has the `sitePrefix`
- # attribute). This way we'll be sure that in the wrapper we'll
- # use the same python3.sitePrefix used to build vapoursynth.
- vapoursynthSupport
- vapoursynth
- ;
- };
-
- NIX_LDFLAGS = optionalString x11Support "-lX11 -lXext "
- + optionalString stdenv.isDarwin "-framework CoreFoundation";
+ NIX_LDFLAGS = lib.optionalString x11Support "-lX11 -lXext "
+ + lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
wafConfigureFlags = [
"--enable-libmpv-shared"
@@ -141,60 +136,71 @@ in stdenv.mkDerivation rec {
"--disable-libmpv-static"
"--disable-static-build"
"--disable-build-date" # Purity
- (enableFeature archiveSupport "libarchive")
- (enableFeature cddaSupport "cdda")
- (enableFeature dvdnavSupport "dvdnav")
- (enableFeature openalSupport "openal")
- (enableFeature sdl2Support "sdl2")
- (enableFeature sixelSupport "sixel")
- (enableFeature vaapiSupport "vaapi")
- (enableFeature waylandSupport "wayland")
- (enableFeature stdenv.isLinux "dvbin")
+ (lib.enableFeature archiveSupport "libarchive")
+ (lib.enableFeature cddaSupport "cdda")
+ (lib.enableFeature dvdnavSupport "dvdnav")
+ (lib.enableFeature openalSupport "openal")
+ (lib.enableFeature sdl2Support "sdl2")
+ (lib.enableFeature sixelSupport "sixel")
+ (lib.enableFeature vaapiSupport "vaapi")
+ (lib.enableFeature waylandSupport "wayland")
+ (lib.enableFeature stdenv.isLinux "dvbin")
] # Disable whilst Swift isn't supported
++ lib.optional (!swiftSupport) "--disable-macos-cocoa-cb";
nativeBuildInputs = [
- addOpenGLRunpath docutils perl pkg-config python3 wafHook which
- ] ++ optional swiftSupport swift;
+ addOpenGLRunpath
+ docutils
+ perl
+ pkg-config
+ python3
+ wafHook
+ which
+ ] ++ lib.optionals swiftSupport [ swift ];
buildInputs = [
- ffmpeg freetype libass libpthreadstubs
- luaEnv libuchardet mujs
- ] ++ optional alsaSupport alsa-lib
- ++ optional archiveSupport libarchive
- ++ optional bluraySupport libbluray
- ++ optional bs2bSupport libbs2b
- ++ optional cacaSupport libcaca
- ++ optional cmsSupport lcms2
- ++ optional jackaudioSupport libjack2
- ++ optional libpngSupport libpng
- ++ optional openalSupport openalSoft
- ++ optional pulseSupport libpulseaudio
- ++ optional rubberbandSupport rubberband
- ++ optional screenSaverSupport libXScrnSaver
- ++ optional sdl2Support SDL2
- ++ optional sixelSupport libsixel
- ++ optional speexSupport speex
- ++ optional theoraSupport libtheora
- ++ optional vaapiSupport libva
- ++ optional vapoursynthSupport vapoursynth
- ++ optional vdpauSupport libvdpau
- ++ optional xineramaSupport libXinerama
- ++ optional xvSupport libXv
- ++ optional zimgSupport zimg
- ++ optional stdenv.isDarwin libiconv
- ++ optional stdenv.isLinux nv-codec-headers
- ++ optionals cddaSupport [ libcdio libcdio-paranoia ]
- ++ optionals drmSupport [ libdrm mesa ]
- ++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
- ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
- ++ optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr ]
- ++ optionals vulkanSupport [ libplacebo shaderc vulkan-headers vulkan-loader ]
- ++ optionals stdenv.isDarwin [ CoreFoundation Cocoa CoreAudio MediaPlayer ];
+ ffmpeg
+ freetype
+ libass
+ libpthreadstubs
+ libuchardet
+ luaEnv
+ mujs
+ ] ++ lib.optionals alsaSupport [ alsa-lib ]
+ ++ lib.optionals archiveSupport [ libarchive ]
+ ++ lib.optionals bluraySupport [ libbluray ]
+ ++ lib.optionals bs2bSupport [ libbs2b ]
+ ++ lib.optionals cacaSupport [ libcaca ]
+ ++ lib.optionals cddaSupport [ libcdio libcdio-paranoia ]
+ ++ lib.optionals cmsSupport [ lcms2 ]
+ ++ lib.optionals drmSupport [ libdrm mesa ]
+ ++ lib.optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
+ ++ lib.optionals jackaudioSupport [ libjack2 ]
+ ++ lib.optionals libpngSupport [ libpng ]
+ ++ lib.optionals openalSupport [ openalSoft ]
+ ++ lib.optionals pulseSupport [ libpulseaudio ]
+ ++ lib.optionals rubberbandSupport [ rubberband ]
+ ++ lib.optionals screenSaverSupport [ libXScrnSaver ]
+ ++ lib.optionals sdl2Support [ SDL2 ]
+ ++ lib.optionals sixelSupport [ libsixel ]
+ ++ lib.optionals speexSupport [ speex ]
+ ++ lib.optionals theoraSupport [ libtheora ]
+ ++ lib.optionals vaapiSupport [ libva ]
+ ++ lib.optionals vapoursynthSupport [ vapoursynth ]
+ ++ lib.optionals vdpauSupport [ libvdpau ]
+ ++ lib.optionals vulkanSupport [ libplacebo shaderc vulkan-headers vulkan-loader ]
+ ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
+ ++ lib.optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr ]
+ ++ lib.optionals xineramaSupport [ libXinerama ]
+ ++ lib.optionals xvSupport [ libXv ]
+ ++ lib.optionals zimgSupport [ zimg ]
+ ++ lib.optionals stdenv.isLinux [ nv-codec-headers ]
+ ++ lib.optionals stdenv.isDarwin [ libiconv ]
+ ++ lib.optionals stdenv.isDarwin [ CoreFoundation Cocoa CoreAudio MediaPlayer ];
enableParallelBuilding = true;
- postBuild = optionalString stdenv.isDarwin ''
+ postBuild = lib.optionalString stdenv.isDarwin ''
python3 TOOLS/osxbundle.py -s build/mpv
'';
@@ -210,28 +216,40 @@ in stdenv.mkDerivation rec {
substituteInPlace $out/lib/pkgconfig/mpv.pc \
--replace "$out/include" "$dev/include"
- '' + optionalString stdenv.isDarwin ''
+ '' + lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
cp -r build/mpv.app $out/Applications
'';
# Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
# See the explanation in addOpenGLRunpath.
- postFixup = optionalString stdenv.isLinux ''
+ postFixup = lib.optionalString stdenv.isLinux ''
addOpenGLRunpath $out/bin/mpv
'';
meta = with lib; {
- description = "A media player that supports many video formats (MPlayer and mplayer2 fork)";
homepage = "https://mpv.io";
+ description = "General-purpose media player, fork of MPlayer and mplayer2";
+ longDescription = ''
+ mpv is a free and open-source general-purpose video player, based on the
+ MPlayer and mplayer2 projects, with great improvements above both.
+ '';
license = licenses.gpl2Plus;
maintainers = with maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak ];
platforms = platforms.darwin ++ platforms.linux;
+ };
- longDescription = ''
- mpv is a free and open-source general-purpose video player,
- based on the MPlayer and mplayer2 projects, with great
- improvements above both.
- '';
+ passthru = {
+ inherit
+ # The wrapper consults luaEnv and lua.version
+ luaEnv
+ lua
+ # In the wrapper, we want to reference vapoursynth which has the `python3`
+ # passthru attribute (which has the `sitePrefix` attribute). This way we'll
+ # be sure that in the wrapper we'll use the same python3.sitePrefix used to
+ # build vapoursynth.
+ vapoursynthSupport
+ vapoursynth
+ ;
};
}
diff --git a/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix b/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
index 0b750332ea7f..a1179ef7aa3a 100644
--- a/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
+++ b/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mpv-playlistmanager";
- version = "unstable-2021-08-17";
+ version = "unstable-2021-09-27";
src = fetchFromGitHub {
owner = "jonniek";
repo = "mpv-playlistmanager";
- rev = "44d6911856a39e9a4057d19b70f21a9bc18bd6a9";
- sha256 = "IwH6XngfrZlKGDab/ut43hzHeino8DmWzWRX8Av21Sk=";
+ rev = "9a759b300c92b55e82be5824fe058e263975741a";
+ sha256 = "qMzDJlouBptwyNdw2ag4VKEtmkQNUlos0USPerBAV/s=";
};
postPatch = ''
diff --git a/pkgs/applications/video/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix
index 5225197772c7..6166ae10d4eb 100644
--- a/pkgs/applications/video/mpv/wrapper.nix
+++ b/pkgs/applications/video/mpv/wrapper.nix
@@ -1,16 +1,16 @@
# Arguments that this derivation gets when it is created with `callPackage`
{ stdenv
, lib
-, symlinkJoin
, makeWrapper
-, youtube-dl
+, symlinkJoin
+, yt-dlp
}:
# the unwrapped mpv derivation - 1st argument to `wrapMpv`
mpv:
let
- # arguments to the function (called `wrapMpv` in all-packages.nix)
+ # arguments to the function (exposed as `wrapMpv` in all-packages.nix)
wrapper = {
extraMakeWrapperArgs ? [],
youtubeSupport ? true,
@@ -25,7 +25,7 @@ let
binPath = lib.makeBinPath ([
mpv.luaEnv
] ++ lib.optionals youtubeSupport [
- youtube-dl
+ yt-dlp
] ++ lib.optionals mpv.vapoursynthSupport [
mpv.vapoursynth.python3
]);
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 1d226ec8fe26..85a072547714 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -121,10 +121,9 @@ mkDerivation rec {
"-DCEF_ROOT_DIR=../../cef"
];
- postInstall = ''
- wrapProgram $out/bin/obs \
- --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${libvlc}/lib"
- '';
+ qtWrapperArgs = [
+ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 libvlc ]}"
+ ];
postFixup = lib.optionalString stdenv.isLinux ''
addOpenGLRunpath $out/lib/lib*.so
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix b/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix
index 9985b7fd0f15..c78a8236bf25 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "obs-multi-rtmp";
- version = "0.2.6.1";
+ version = "0.2.7.1";
src = fetchFromGitHub {
owner = "sorayuki";
repo = "obs-multi-rtmp";
rev = version;
- sha256 = "sha256-ZcvmiE9gbDUHAO36QAIaUdjV14ZfPabD9CW7Ogeqdro=";
+ sha256 = "sha256-pnSIbAWGufcWIARXpX/zwA/Ff35lrinFaMIdFY00c4Y=";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-ndi.nix b/pkgs/applications/video/obs-studio/plugins/obs-ndi.nix
index 1e2abb45a5b3..76d4ec85a014 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-ndi.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-ndi.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Network A/V plugin for OBS Studio";
homepage = "https://github.com/Palakis/obs-ndi";
- maintainers = with maintainers; [ peti jshcmpbll ];
+ maintainers = with maintainers; [ jshcmpbll ];
license = licenses.gpl2;
platforms = with platforms; linux;
};
diff --git a/pkgs/applications/video/ogmtools/default.nix b/pkgs/applications/video/ogmtools/default.nix
index aa0f2404ab80..9f7e08a9ddf4 100644
--- a/pkgs/applications/video/ogmtools/default.nix
+++ b/pkgs/applications/video/ogmtools/default.nix
@@ -1,14 +1,15 @@
{ lib, stdenv, fetchurl, libogg, libvorbis, libdvdread }:
stdenv.mkDerivation rec {
- name = "ogmtools-1.5";
+ pname = "ogmtools";
+ version = "1.5";
src = fetchurl {
- url = "https://www.bunkus.org/videotools/ogmtools/${name}.tar.bz2";
+ url = "https://www.bunkus.org/videotools/ogmtools/ogmtools-${version}.tar.bz2";
sha256 = "1spx81p5wf59ksl3r3gvf78d77sh7gj8a6lw773iv67bphfivmn8";
};
- buildInputs = [libogg libvorbis libdvdread];
+ buildInputs = [ libogg libvorbis libdvdread ];
meta = {
description = "Tools for modifying and inspecting OGG media streams";
diff --git a/pkgs/applications/video/omxplayer/default.nix b/pkgs/applications/video/omxplayer/default.nix
index 3fe3dcf454a1..e01d0a2f49c7 100644
--- a/pkgs/applications/video/omxplayer/default.nix
+++ b/pkgs/applications/video/omxplayer/default.nix
@@ -1,17 +1,25 @@
-{ lib, stdenv, fetchurl
-, raspberrypifw, pcre, boost, freetype, zlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, raspberrypifw
+, pcre
+, boost
+, freetype
+, zlib
}:
let
ffmpeg = stdenv.mkDerivation rec {
- name = "ffmpeg-1.1.3";
+ pname = "ffmpeg";
+ version = "1.1.3";
src = fetchurl {
- url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
+ url = "http://www.ffmpeg.org/releases/ffmpeg-${version}.tar.bz2";
sha256 = "03s1zsprz5p6gjgwwqcf7b6cvzwwid6l8k7bamx9i0f1iwkgdm0j";
};
- configurePlatforms = [];
+ configurePlatforms = [ ];
configureFlags = [
"--arch=${stdenv.hostPlatform.parsed.cpu.name}"
] ++ lib.optionals stdenv.hostPlatform.isAarch32 [
@@ -61,26 +69,32 @@ let
};
in
stdenv.mkDerivation rec {
- name = "omxplayer-20130328-fbee325dc2";
- src = fetchurl {
- url = "https://github.com/huceke/omxplayer/tarball/fbee325dc2";
- name = "${name}.tar.gz";
+ pname = "omxplayer";
+ version = "unstable-2013-03-28";
+
+ src = fetchFromGitHub {
+ owner = "huceke";
+ repo = "omxplayer";
+ rev = "fbee325dc20441138d04d8d2022ad85956302e97";
sha256 = "0fkvv8il7ffqxki2gp8cxa5shh6sz9jsy5vv3f4025g4gss6afkg";
};
- patchPhase = ''
+
+ postPatch = ''
sed -i 1d Makefile
export INCLUDES="-I${raspberrypifw}/include/interface/vcos/pthreads -I${raspberrypifw}/include/interface/vmcs_host/linux/"
'';
+
installPhase = ''
mkdir -p $out/bin
cp omxplayer.bin $out/bin
'';
+
buildInputs = [ raspberrypifw ffmpeg pcre boost freetype zlib ];
- meta = {
+ meta = with lib; {
homepage = "https://github.com/huceke/omxplayer";
description = "Commandline OMX player for the Raspberry Pi";
- license = lib.licenses.gpl2Plus;
- platforms = lib.platforms.arm;
+ license = licenses.gpl2Plus;
+ platforms = platforms.arm;
};
}
diff --git a/pkgs/applications/video/openshot-qt/default.nix b/pkgs/applications/video/openshot-qt/default.nix
index ac396f4be80a..bb6bfa637cec 100644
--- a/pkgs/applications/video/openshot-qt/default.nix
+++ b/pkgs/applications/video/openshot-qt/default.nix
@@ -1,7 +1,14 @@
-{ lib, stdenv, mkDerivationWith, fetchFromGitHub, fetchpatch
-, doxygen, python3Packages, libopenshot
-, wrapGAppsHook, gtk3
-, qtsvg }:
+{ lib
+, stdenv
+, mkDerivationWith
+, fetchFromGitHub
+, doxygen
+, gtk3
+, libopenshot
+, python3Packages
+, qtsvg
+, wrapGAppsHook
+}:
mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "openshot-qt";
@@ -14,11 +21,23 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
sha256 = "0pa8iwl217503bjlqg2zlrw5lxyq5hvxrf5apxrh3843hj1w1myv";
};
- nativeBuildInputs = [ doxygen wrapGAppsHook ];
+ nativeBuildInputs = [
+ doxygen
+ wrapGAppsHook
+ ];
- buildInputs = [ gtk3 ];
+ buildInputs = [
+ gtk3
+ ];
- propagatedBuildInputs = with python3Packages; [ libopenshot pyqt5_with_qtwebkit requests sip_4 httplib2 pyzmq ];
+ propagatedBuildInputs = with python3Packages; [
+ httplib2
+ libopenshot
+ pyqt5_with_qtwebkit
+ pyzmq
+ requests
+ sip_4
+ ];
dontWrapGApps = true;
dontWrapQtApps = true;
@@ -56,4 +75,9 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
maintainers = with maintainers; [ AndersonTorres ];
platforms = with platforms; unix;
};
+
+ passthru = {
+ inherit libopenshot;
+ inherit (libopenshot) libopenshot-audio;
+ };
}
diff --git a/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
index c3bcc09cd3fb..c5a33af44377 100644
--- a/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
+++ b/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
@@ -1,34 +1,58 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, doxygen
-, alsa-lib, libX11, libXft, libXrandr, libXinerama, libXext, libXcursor
-, zlib, AGL, Cocoa, Foundation
+{ lib
+, stdenv
+, fetchFromGitHub
+, alsa-lib
+, cmake
+, doxygen
+, libX11
+, libXcursor
+, libXext
+, libXft
+, libXinerama
+, libXrandr
+, pkg-config
+, zlib
+, AGL
+, Cocoa
+, Foundation
}:
-with lib;
stdenv.mkDerivation rec {
pname = "libopenshot-audio";
- version = "0.2.0";
+ version = "0.2.2";
src = fetchFromGitHub {
owner = "OpenShot";
repo = "libopenshot-audio";
rev = "v${version}";
- sha256 = "13if0m5mvlqly8gmbhschzb9papkgp3yqivklhb949dhy16m8zgf";
+ sha256 = "sha256-XtwTZsj/L/sw/28E7Qr5UyghGlBFFXvbmZLGXBB8vg0=";
};
- nativeBuildInputs =
- [ pkg-config cmake doxygen ];
+ nativeBuildInputs = [
+ cmake
+ doxygen
+ pkg-config
+ ];
- buildInputs =
- optionals stdenv.isLinux [ alsa-lib ]
- ++ (if stdenv.isDarwin then
- [ zlib AGL Cocoa Foundation ]
- else
- [ libX11 libXft libXrandr libXinerama libXext libXcursor ])
- ;
+ buildInputs = lib.optionals stdenv.isLinux [
+ alsa-lib
+ ] ++ (if stdenv.isDarwin then [
+ AGL
+ Cocoa
+ Foundation
+ zlib
+ ] else [
+ libX11
+ libXcursor
+ libXext
+ libXft
+ libXinerama
+ libXrandr
+ ]);
doCheck = false;
- meta = {
+ meta = with lib; {
homepage = "http://openshot.org/";
description = "High-quality sound editing library";
longDescription = ''
diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix
index 246c3d5cab86..8a98010ef642 100644
--- a/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -1,56 +1,69 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
-, pkg-config, cmake, doxygen
-, libopenshot-audio, imagemagick, ffmpeg
-, swig, python3, jsoncpp
-, cppzmq, zeromq
-, qtbase, qtmultimedia
+{ lib
+, stdenv
+, fetchFromGitHub
+, alsa-lib
+, cmake
+, cppzmq
+, doxygen
+, ffmpeg
+, imagemagick
+, jsoncpp
+, libopenshot-audio
, llvmPackages
+, pkg-config
+, python3
+, qtbase
+, qtmultimedia
+, swig
+, zeromq
}:
-with lib;
stdenv.mkDerivation rec {
pname = "libopenshot";
- version = "0.2.5";
+ version = "0.2.7";
src = fetchFromGitHub {
owner = "OpenShot";
repo = "libopenshot";
rev = "v${version}";
- sha256 = "1mxjkgjmjzgf628y3rscc6rqf55hxgjpmvwxlncfk1216i5xskwp";
+ sha256 = "sha256-aF8wrPxFIjCy5gw72e/WyL/Wcx9tUGDkrqHS+ZDVK0U=";
};
- patches = [
- # Fix build with GCC 10.
- (fetchpatch {
- name = "fix-build-with-gcc-10.patch";
- url = "https://github.com/OpenShot/libopenshot/commit/13290364e7bea54164ab83d973951f2898ad9e23.diff";
- sha256 = "0i7rpdsr8y9dphil8yq75qbh20vfqjc2hp5ahv0ws58z9wj6ngnz";
- })
- ];
-
postPatch = ''
sed -i 's/{UNITTEST++_INCLUDE_DIR}/ENV{UNITTEST++_INCLUDE_DIR}/g' tests/CMakeLists.txt
- sed -i 's/{_REL_PYTHON_MODULE_PATH}/ENV{_REL_PYTHON_MODULE_PATH}/g' src/bindings/python/CMakeLists.txt
+ sed -i 's/{_REL_PYTHON_MODULE_PATH}/ENV{_REL_PYTHON_MODULE_PATH}/g' bindings/python/CMakeLists.txt
export _REL_PYTHON_MODULE_PATH=$(toPythonPath $out)
'';
- nativeBuildInputs = [ pkg-config cmake doxygen swig ];
+ nativeBuildInputs = [
+ alsa-lib
+ cmake
+ doxygen
+ pkg-config
+ swig
+ ];
- buildInputs =
- [ imagemagick ffmpeg python3 jsoncpp
- cppzmq zeromq qtbase qtmultimedia ]
- ++ optional stdenv.isDarwin llvmPackages.openmp
- ;
+ buildInputs = [
+ cppzmq
+ ffmpeg
+ imagemagick
+ jsoncpp
+ libopenshot-audio
+ python3
+ qtbase
+ qtmultimedia
+ zeromq
+ ] ++ lib.optionals stdenv.isDarwin [
+ llvmPackages.openmp
+ ];
dontWrapQtApps = true;
- LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
-
doCheck = false;
cmakeFlags = [ "-DENABLE_RUBY=OFF" ];
- meta = {
+ meta = with lib; {
homepage = "http://openshot.org/";
description = "Free, open-source video editor library";
longDescription = ''
@@ -58,8 +71,12 @@ stdenv.mkDerivation rec {
delivering high quality video editing, animation, and playback solutions
to the world. API currently supports C++, Python, and Ruby.
'';
- license = with licenses; gpl3Plus;
+ license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ];
- platforms = with platforms; unix;
+ platforms = platforms.unix;
+ };
+
+ passthru = {
+ inherit libopenshot-audio;
};
}
diff --git a/pkgs/applications/video/pipe-viewer/default.nix b/pkgs/applications/video/pipe-viewer/default.nix
new file mode 100644
index 000000000000..1ef08870c86a
--- /dev/null
+++ b/pkgs/applications/video/pipe-viewer/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, fetchFromGitHub
+, perl
+, buildPerlModule
+, makeWrapper
+, wrapGAppsHook
+, withGtk3 ? false
+, ffmpeg
+, gtk3
+, wget
+, xdg-utils
+, youtube-dl
+, yt-dlp
+, TestPod
+, Gtk3
+}:
+let
+ perlEnv = perl.withPackages (ps: with ps; [
+ AnyURIEscape
+ DataDump
+ Encode
+ FilePath
+ GetoptLong
+ HTTPMessage
+ JSON
+ JSONXS
+ LWPProtocolHttps
+ LWPUserAgentCached
+ Memoize
+ PathTools
+ ScalarListUtils
+ TermReadLineGnu
+ TextParsewords
+ UnicodeLineBreak
+ ] ++ lib.optionals withGtk3 [
+ FileShareDir
+ ]);
+in
+buildPerlModule rec {
+ pname = "pipe-viewer";
+ version = "0.1.4";
+
+ src = fetchFromGitHub {
+ owner = "trizen";
+ repo = "pipe-viewer";
+ rev = version;
+ hash = "sha256-kDlZ3Cl8zvN/naGExh2yVW5yHwc1O04x4s22lNkbCzU=";
+ };
+
+ nativeBuildInputs = [ makeWrapper ]
+ ++ lib.optionals withGtk3 [ wrapGAppsHook ];
+
+ buildInputs = [ perlEnv ]
+ # Can't be in perlEnv for wrapGAppsHook to work correctly
+ ++ lib.optional withGtk3 Gtk3;
+
+ # Not supported by buildPerlModule
+ # and the Perl code fails anyway
+ # when Getopt::Long sets $gtk in Build.PL:
+ # Modification of a read-only value attempted at /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-perl5.34.0-Getopt-Long-2.52/lib/perl5/site_perl/5.34.0/Getopt/Long.pm line 585.
+ #buildFlags = lib.optional withGtk3 "--gtk3";
+ postPatch = lib.optionalString withGtk3 ''
+ substituteInPlace Build.PL --replace 'my $gtk ' 'my $gtk = 1;#'
+ '';
+
+ checkInputs = [
+ TestPod
+ ];
+
+ dontWrapGApps = true;
+ postFixup = ''
+ wrapProgram "$out/bin/pipe-viewer" \
+ --prefix PATH : "${lib.makeBinPath [ ffmpeg wget youtube-dl yt-dlp ]}"
+ '' + lib.optionalString withGtk3 ''
+ wrapProgram "$out/bin/gtk-pipe-viewer" ''${gappsWrapperArgs[@]} \
+ --prefix PATH : "${lib.makeBinPath [ ffmpeg wget xdg-utils youtube-dl yt-dlp ]}"
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/trizen/pipe-viewer";
+ description = "CLI+GUI YouTube Client";
+ license = licenses.artistic2;
+ maintainers = with maintainers; [ julm ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 6ea41b4d9259..3b6116d5a068 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -25,13 +25,13 @@ assert lib.versionAtLeast mlt.version "6.24.0";
mkDerivation rec {
pname = "shotcut";
- version = "21.03.21";
+ version = "21.09.20";
src = fetchFromGitHub {
owner = "mltframework";
repo = "shotcut";
rev = "v${version}";
- sha256 = "UdeHbNkJ0U9FeTmpbcU4JxiyIHkrlC8ErhtY6zdCZEk=";
+ sha256 = "1y46n5gmlayfl46l0vhg5g5dbbc0sg909mxb68sia0clkaas8xrh";
};
nativeBuildInputs = [ pkg-config qmake ];
@@ -57,7 +57,7 @@ mkDerivation rec {
];
prePatch = ''
- sed 's_shotcutPath, "melt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
+ sed 's_shotcutPath, "melt[^"]*"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
sed 's_qApp->applicationDirPath(), "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/docks/encodedock.cpp
NICE=$(type -P nice)
@@ -94,7 +94,7 @@ mkDerivation rec {
please use the official build from shotcut.org instead.
'';
homepage = "https://shotcut.org";
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
maintainers = with maintainers; [ goibhniu woffs peti ];
platforms = platforms.linux;
};
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index 007ef4262ef2..6d4e0f18d6fb 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -1,6 +1,6 @@
{ lib
, stdenv
-, fetchurl
+, fetchFromGitHub
, qmake
, qtscript
, wrapQtAppsHook
@@ -8,14 +8,20 @@
stdenv.mkDerivation rec {
pname = "smplayer";
- version = "21.1.0";
+ version = "21.10.0";
- src = fetchurl {
- url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
- hash = "sha256-Y0uq32XoQ8fpIJDScRfA7p3RYd6x1PWZSsYyAYYKf/c=";
+ src = fetchFromGitHub {
+ owner = "smplayer-dev";
+ repo = pname;
+ rev = "v${version}";
+ hash = "sha256-p6036c8KX3GCINmkjHZlDLgHhLKri+t2WNWzP4KsSI8=";
};
- nativeBuildInputs = [ qmake wrapQtAppsHook ];
+ nativeBuildInputs = [
+ qmake
+ wrapQtAppsHook
+ ];
+
buildInputs = [ qtscript ];
dontUseQmakeConfigure = true;
diff --git a/pkgs/applications/video/sub-batch/default.nix b/pkgs/applications/video/sub-batch/default.nix
index 37daa870c6e6..fd5b2888d63d 100644
--- a/pkgs/applications/video/sub-batch/default.nix
+++ b/pkgs/applications/video/sub-batch/default.nix
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "sub-batch";
- version = "0.4.0";
+ version = "0.4.1";
src = fetchFromGitHub {
owner = "kl";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-5fDnSmnnVB1RGrNrnmp40OGFF+OAhppnhOjVgnYxXr0=";
+ sha256 = "sha256-WUW+lOGbZ82NJxmW+Ogxslf3COOp62aZ/08Yn26l4T0=";
};
- cargoSha256 = "sha256-+ufa4Cgue8o9CTB3JDcQ38SlUq8PcRDyj+qNSAFpTas=";
+ cargoSha256 = "sha256-m9nBubmuuOcJyegmYGJizY/2b7oamBHKFNIaxOtikcA=";
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/video/subdl/default.nix b/pkgs/applications/video/subdl/default.nix
index e115fbcdd04d..95f7be2cbcaf 100644
--- a/pkgs/applications/video/subdl/default.nix
+++ b/pkgs/applications/video/subdl/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, python3 }:
stdenv.mkDerivation {
- name = "subdl-0.0pre.2017.11.06";
+ pname = "subdl";
+ version = "unstable-2017-11.06";
src = fetchFromGitHub {
owner = "alexanderwink";
@@ -10,6 +11,12 @@ stdenv.mkDerivation {
sha256 = "0kmk5ck1j49q4ww0lvas2767kwnzhkq0vdwkmjypdx5zkxz73fn8";
};
+ buildInputs = [ python3 ];
+
+ installPhase = ''
+ install -vD subdl $out/bin/subdl
+ '';
+
meta = {
homepage = "https://github.com/alexanderwink/subdl";
description = "A command-line tool to download subtitles from opensubtitles.org";
@@ -17,10 +24,4 @@ stdenv.mkDerivation {
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.exfalso ];
};
-
- buildInputs = [ python3 ];
-
- installPhase = ''
- install -vD subdl $out/bin/subdl
- '';
}
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 933747f39897..580c10da1d5a 100644
--- a/pkgs/applications/video/ustreamer/default.nix
+++ b/pkgs/applications/video/ustreamer/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "ustreamer";
- version = "3.27";
+ version = "4.6";
src = fetchFromGitHub {
owner = "pikvm";
repo = "ustreamer";
rev = "v${version}";
- sha256 = "1max2171abdpix0wq7mdkji5lvkfzisj166qfgmqkkwc2nh721iw";
+ sha256 = "sha256-FBgnE9EKZf3aYrGNf9cday9r4Q7Ztu7g+0LnFKAhvrI=";
};
buildInputs = [ libbsd libevent libjpeg ];
diff --git a/pkgs/applications/video/uvccapture/default.nix b/pkgs/applications/video/uvccapture/default.nix
index 70c3baa0b811..be0a7fcd2416 100644
--- a/pkgs/applications/video/uvccapture/default.nix
+++ b/pkgs/applications/video/uvccapture/default.nix
@@ -8,11 +8,12 @@ let
in
-stdenv.mkDerivation {
- name = "uvccapture-0.5";
+stdenv.mkDerivation rec {
+ pname = "uvccapture";
+ version = "0.5";
src = fetchurl {
- url = "mirror://debian/pool/main/u/uvccapture/uvccapture_0.5.orig.tar.gz";
+ url = "mirror://debian/pool/main/u/uvccapture/uvccapture_${version}.orig.tar.gz";
sha256 = "1b3akkcmr3brbf93akr8xi20w8zqf2g0qfq928500wy04qi6jqpi";
};
diff --git a/pkgs/applications/video/vdr/default.nix b/pkgs/applications/video/vdr/default.nix
index 265ef82528db..c45c982d6516 100644
--- a/pkgs/applications/video/vdr/default.nix
+++ b/pkgs/applications/video/vdr/default.nix
@@ -5,12 +5,12 @@
}: stdenv.mkDerivation rec {
pname = "vdr";
- version = "2.4.7";
+ version = "2.5.6";
src = fetchgit {
url = "git://git.tvdr.de/vdr.git";
rev = version;
- sha256 = "sha256-hDJ/DemWuLddDvXGqxkSTIqATlWUjolcP7ojjhK2CDk=";
+ sha256 = "sha256-hgP8EIGwEPj30fijZzcujnvutG+acU4qqqvgY6FB/z4=";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/video/vdr/plugins.nix b/pkgs/applications/video/vdr/plugins.nix
index 6f701779d4d1..d694ad8004e0 100644
--- a/pkgs/applications/video/vdr/plugins.nix
+++ b/pkgs/applications/video/vdr/plugins.nix
@@ -130,12 +130,12 @@ in {
epgsearch = stdenv.mkDerivation rec {
pname = "vdr-epgsearch";
- version = "20191202";
+ version = "2.4.1";
src = fetchgit {
url = "git://projects.vdr-developer.org/vdr-plugin-epgsearch.git";
- sha256 = "18kskwnnscr4rb4yzfikw1la318zjgraf340cl7n9z77chi2gi8m";
- rev = "602d66c55964998ce25c6c57b302949a9517f149";
+ sha256 = "sha256-UlbPCkUFN0Gyxjw9xq2STFTDZRVcPPNjadSQd4o2o9U=";
+ rev = "v${version}";
};
postPatch = ''
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 46669dff5306..ce9a72aebf9a 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -2,7 +2,7 @@
, libarchive, perl, xorg, libdvdnav, libbluray
, zlib, a52dec, libmad, faad2, ffmpeg, alsa-lib
, pkg-config, dbus, fribidi, freefont_ttf, libebml, libmatroska
-, libvorbis, libtheora, speex, lua5, libgcrypt, libgpgerror, libupnp
+, libvorbis, libtheora, speex, lua5, libgcrypt, libgpg-error, libupnp
, libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg
, mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image
, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz
@@ -37,14 +37,14 @@ stdenv.mkDerivation rec {
# needing them
buildInputs = [
zlib a52dec libmad faad2 ffmpeg alsa-lib libdvdnav libdvdnav.libdvdread
- libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
+ libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpg-error
libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
systemd gnutls avahi libcddb SDL SDL_image libmtp taglib libarchive
libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
fluidsynth wayland wayland-protocols ncurses srt
- ] ++ optional (!stdenv.hostPlatform.isAarch64) live555
+ ] ++ optional (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isAarch32) live555
++ optionals withQt5 [ qtbase qtsvg qtx11extras ]
++ optionals skins2Support (with xorg; [ libXpm freetype libXext libXinerama ])
++ optional jackSupport libjack2
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- LIVE555_PREFIX = if (!stdenv.hostPlatform.isAarch64) then live555 else null;
+ LIVE555_PREFIX = if (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isAarch32) then live555 else null;
# vlc depends on a c11-gcc wrapper script which we don't have so we need to
# set the path to the compiler
diff --git a/pkgs/applications/video/xawtv/default.nix b/pkgs/applications/video/xawtv/default.nix
index b046fbebaa26..d52feb8a66b0 100644
--- a/pkgs/applications/video/xawtv/default.nix
+++ b/pkgs/applications/video/xawtv/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchurl
, ncurses
, libjpeg
@@ -19,10 +20,11 @@
}:
stdenv.mkDerivation rec {
- name = "xawtv-3.107";
+ pname = "xawtv";
+ version = "3.107";
src = fetchurl {
- url = "https://linuxtv.org/downloads/xawtv/${name}.tar.bz2";
+ url = "https://linuxtv.org/downloads/xawtv/xawtv-${version}.tar.bz2";
sha256 = "055p0wia0xsj073l8mg4ifa6m81dmv6p45qyh99brramq5iylfy5";
};
diff --git a/pkgs/applications/video/xvidcap/default.nix b/pkgs/applications/video/xvidcap/default.nix
index e0cca0409878..06dc6bb465cc 100644
--- a/pkgs/applications/video/xvidcap/default.nix
+++ b/pkgs/applications/video/xvidcap/default.nix
@@ -1,12 +1,26 @@
-{ lib, stdenv, fetchurl, perlPackages, pkg-config, gtk2
-, scrollkeeper, libglade, libXmu, libX11, libXext, gettext
-, lame, libXfixes, libXdamage }:
+{ lib
+, stdenv
+, fetchurl
+, perlPackages
+, pkg-config
+, gtk2
+, scrollkeeper
+, libglade
+, libXmu
+, libX11
+, libXext
+, gettext
+, lame
+, libXfixes
+, libXdamage
+}:
-stdenv.mkDerivation {
- name = "xvidcap-1.1.7";
+stdenv.mkDerivation rec {
+ pname = "xvidcap";
+ version = "1.1.7";
src = fetchurl {
- url = "mirror://sourceforge/xvidcap/xvidcap-1.1.7.tar.gz";
+ url = "mirror://sourceforge/xvidcap/xvidcap-${version}.tar.gz";
sha256 = "0p8rhpyhxgy37crf1xk1046z4p663jg7ww776jw92pld3s024ihm";
};
@@ -14,8 +28,16 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
- gtk2 scrollkeeper
- libglade libXmu gettext lame libXdamage libXfixes libXext libX11
+ gtk2
+ scrollkeeper
+ libglade
+ libXmu
+ gettext
+ lame
+ libXdamage
+ libXfixes
+ libXext
+ libX11
] ++ (with perlPackages; [ perl XMLParser ]);
# !!! don't know why this is necessary
@@ -24,7 +46,7 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Screencast video catpuring tool";
homepage = "http://xvidcap.sourceforge.net/";
- license = lib.licenses.gpl2;
+ license = licenses.gpl2;
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index d8b6dfc2efaa..7adcd328add7 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -2,6 +2,7 @@
, csmSupport ? false, seabios ? null
, secureBoot ? false
, httpSupport ? false
+, tpmSupport ? false
}:
assert csmSupport -> seabios != null;
@@ -30,9 +31,10 @@ edk2.mkDerivation projectDscPath {
hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
buildFlags =
- lib.optional secureBoot "-DSECURE_BOOT_ENABLE=TRUE"
+ lib.optionals secureBoot [ "-D SECURE_BOOT_ENABLE=TRUE" ]
++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ]
- ++ lib.optionals httpSupport [ "-DNETWORK_HTTP_ENABLE=TRUE" "-DNETWORK_HTTP_BOOT_ENABLE=TRUE" ];
+ ++ lib.optionals httpSupport [ "-D NETWORK_HTTP_ENABLE=TRUE" "-D NETWORK_HTTP_BOOT_ENABLE=TRUE" ]
+ ++ lib.optionals tpmSupport [ "-D TPM_ENABLE" "-D TPM2_ENABLE" "-D TPM2_CONFIG_ENABLE"];
postPatch = lib.optionalString csmSupport ''
cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
diff --git a/pkgs/applications/virtualization/arion/default.nix b/pkgs/applications/virtualization/arion/default.nix
index f144ec976779..33b2b000cbfc 100644
--- a/pkgs/applications/virtualization/arion/default.nix
+++ b/pkgs/applications/virtualization/arion/default.nix
@@ -18,11 +18,11 @@ let
arion =
justStaticExecutables (
overrideCabal
- arion-compose
cabalOverrides
+ arion-compose
);
- inherit (haskell.lib) justStaticExecutables overrideCabal;
+ inherit (haskell.lib.compose) justStaticExecutables overrideCabal;
inherit (haskellPackages) arion-compose;
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 41ab5ef2c990..1f02219c8314 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
"--with-rfb=no"
"--with-vncsrv=no"
+ "--with-nogui"
# These will always be "yes" on NixOS
"--enable-ltdl-install=yes"
diff --git a/pkgs/applications/virtualization/catatonit/default.nix b/pkgs/applications/virtualization/catatonit/default.nix
index e311be68ab8c..e059a254cb97 100644
--- a/pkgs/applications/virtualization/catatonit/default.nix
+++ b/pkgs/applications/virtualization/catatonit/default.nix
@@ -1,16 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, glibc, nixosTests }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }:
stdenv.mkDerivation rec {
pname = "catatonit";
- version = "0.1.6";
+ version = "0.1.7";
src = fetchFromGitHub {
owner = "openSUSE";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-hokG6o7toZxU984EvIlne33Aa2EZVZ3qu1jTZMm5nt4=";
+ sha256 = "sha256-jX4fYC/rpfd3ro2UZ6OEu4kU5wpusOwmEVPWEjxwlW4=";
};
+ patches = [
+ # Pull the fix pending upstream inclusion to support automake-1.16.5:
+ # https://github.com/openSUSE/catatonit/pull/18
+ (fetchpatch {
+ name = "automake-1.16.5.patch";
+ url = "https://github.com/openSUSE/catatonit/commit/99bb9048f532257f3a2c3856cfa19fe957ab6cec.patch";
+ sha256 = "sha256-ooxVjtWXJddQiBvO9I5aRyLeL8y3ecxW/Kvtfg/bpRA=";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook ];
buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 05e468a73228..1afab167308f 100644
--- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "cloud-hypervisor";
- version = "18.0";
+ version = "19.0";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = pname;
rev = "v${version}";
- sha256 = "0k9gclkba2bhmyqhyigjgfgcnqpg16v3yczhh08ljxmbrsbs02ig";
+ sha256 = "0h3varacv9696mih8zrz3fp6xa8hxxvwzkrslhpf9ilcjs1bjihd";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
- cargoSha256 = "086ldzb1rbbrzjbklay4nvhc18ipyxi9gnp56f06393zvfbhc5dl";
+ cargoSha256 = "015r9m9fr634ppn4qy0b8w1khjlxsv3wbpf3s7crmklzy57wakxl";
meta = with lib; {
homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index b560b02d435c..fbbc59359db8 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -4,23 +4,24 @@
, pkg-config
, glib
, glibc
+, libseccomp
, systemd
, nixosTests
}:
stdenv.mkDerivation rec {
pname = "conmon";
- version = "2.0.29";
+ version = "2.0.30";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-Idt+bN9Lf6GEjdGC/sM9Ln1ohXhUy78CrmJxSDA2Y0o=";
+ sha256 = "sha256-NZMuHhQyo+95QTJcR79cyZr86ytkbo4nmaqTF0Bdt+s=";
};
nativeBuildInputs = [ pkg-config ];
- buildInputs = [ glib systemd ]
+ buildInputs = [ glib libseccomp systemd ]
++ lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
# manpage requires building the vendored go-md2man
diff --git a/pkgs/applications/virtualization/containerd/1.4.nix b/pkgs/applications/virtualization/containerd/1.4.nix
index 9e62f86a3477..92c7ab0b2fd6 100644
--- a/pkgs/applications/virtualization/containerd/1.4.nix
+++ b/pkgs/applications/virtualization/containerd/1.4.nix
@@ -10,13 +10,13 @@
buildGoPackage rec {
pname = "containerd";
- version = "1.4.9";
+ version = "1.4.11";
src = fetchFromGitHub {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
- sha256 = "1ykikks6ihgg899ibk9m9m0hqrbss0cx7l7z4yjb873b10bacj52";
+ sha256 = "sha256-mUagr1/LqTCFvshWuiSMxsqdRqjzogt2tZ0uwR7ZVAs=";
};
goPackagePath = "github.com/containerd/containerd";
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index cce72e2a745f..844ab025f5c0 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -10,7 +10,7 @@
buildGoModule rec {
pname = "containerd";
- version = "1.5.5";
+ version = "1.5.7";
outputs = [ "out" "man" ];
@@ -18,7 +18,7 @@ buildGoModule rec {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
- sha256 = "sha256-6mDTTXHpXBcKOcT+VrGgt6HJzvTeKgJ0ItJ+IjCTJxk=";
+ sha256 = "sha256-BHVlGXyTkaiRkG8WG1LdtxrQs8nKS8djZFnO/AfKBUw=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index cc9d02681790..2f09c3a29c77 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -11,7 +11,6 @@
, yajl
, nixosTests
, criu
-, system
}:
let
@@ -38,13 +37,13 @@ let
in
stdenv.mkDerivation rec {
pname = "crun";
- version = "1.0";
+ version = "1.3";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
- sha256 = "sha256-xpNwhNAbcTKkXl5i4L8aayMAx8O8SWdFlgHguHNiqqw=";
+ sha256 = "sha256-c0jXhqYdEpt4De1Z6VNwyrv0KJcf039Wp3ye0oTW0Qc=";
fetchSubmodules = true;
};
@@ -52,7 +51,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libcap libseccomp systemd yajl ]
# Criu currently only builds on x86_64-linux
- ++ lib.optional (lib.elem system criu.meta.platforms) criu;
+ ++ lib.optional (lib.elem stdenv.hostPlatform.system criu.meta.platforms) criu;
enableParallelBuilding = true;
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 5a4532fc6c7f..ebfaac0bde1f 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
buildGoPackage rec {
pname = "docker-slim";
- version = "1.36.4";
+ version = "1.37.2";
goPackagePath = "github.com/docker-slim/docker-slim";
@@ -14,7 +14,7 @@ buildGoPackage rec {
owner = "docker-slim";
repo = "docker-slim";
rev = version;
- sha256 = "0hgiigai5jpczjll4s4r4jzbq272s3p8f0r6mj4r3mjjs89hkqz1";
+ sha256 = "1svhi9xf71zrk843bnwkpmq4iaaln07dpfrdvq0vdqhj5xvbx47g";
};
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
new file mode 100644
index 000000000000..3ce3d9a880f8
--- /dev/null
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "docker-compose";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "docker";
+ repo = "compose";
+ rev = "v${version}";
+ sha256 = "sha256-6OjA3f6c9s/86UPxy9EqLIc/0ZuW6UhKyQdkM7YoTsU=";
+ };
+
+ vendorSha256 = "sha256-6h36TZmo0RvB3YzZRmsrs2Fbl+8zPTuL9LxWkuNgRqw=";
+
+ doCheck = false;
+ installPhase = ''
+ install -D $GOPATH/bin/cmd $out/libexec/docker/cli-plugins/docker-compose
+ '';
+
+ meta = with lib; {
+ description = "Docker CLI plugin to define and run multi-container applications with Docker";
+ license = licenses.asl20;
+ maintainers = [ maintainers.babariviere ];
+ };
+}
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index a1821aa2a316..8345b2b42d76 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -8,16 +8,16 @@ rec {
, moby-src
, runcRev, runcSha256
, containerdRev, containerdSha256
- , tiniRev, tiniSha256, buildxSupport ? true
+ , tiniRev, tiniSha256, buildxSupport ? true, composeSupport ? true
# package dependencies
, stdenv, fetchFromGitHub, buildGoPackage
, makeWrapper, installShellFiles, pkg-config, glibc
, go-md2man, go, containerd_1_4, runc, docker-proxy, tini, libtool
- , sqlite, iproute2, lvm2, systemd, docker-buildx
+ , sqlite, iproute2, lvm2, systemd, docker-buildx, docker-compose_2
, btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
, procps, libseccomp
, nixosTests
- , clientOnly ? !stdenv.isLinux
+ , clientOnly ? !stdenv.isLinux, symlinkJoin
}:
let
docker-runc = runc.overrideAttrs (oldAttrs: {
@@ -117,6 +117,10 @@ rec {
++ optional (lvm2 == null) "exclude_graphdriver_devicemapper"
++ optional (libseccomp != null) "seccomp";
});
+
+ plugins = optionals buildxSupport [ docker-buildx ]
+ ++ optionals composeSupport [ docker-compose_2 ];
+ pluginsRef = symlinkJoin { name = "docker-plugins"; paths = plugins; };
in
buildGoPackage ((optionalAttrs (!clientOnly) {
@@ -141,14 +145,14 @@ rec {
];
buildInputs = optionals (!clientOnly) [
sqlite lvm2 btrfs-progs systemd libseccomp
- ] ++ optionals (buildxSupport) [ docker-buildx ];
+ ] ++ plugins;
postPatch = ''
patchShebangs man scripts/build/
substituteInPlace ./scripts/build/.variables --replace "set -eu" ""
- '' + optionalString buildxSupport ''
+ '' + optionalString (plugins != []) ''
substituteInPlace ./cli-plugins/manager/manager_unix.go --replace /usr/libexec/docker/cli-plugins \
- ${lib.strings.makeSearchPathOutput "bin" "libexec/docker/cli-plugins" [docker-buildx]}
+ "${pluginsRef}/libexec/docker/cli-plugins"
'';
# Keep eyes on BUILDTIME format - https://github.com/docker/cli/blob/${version}/scripts/build/.variables
@@ -221,19 +225,19 @@ rec {
# Get revisions from
# https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
docker_20_10 = callPackage dockerGen rec {
- version = "20.10.8";
+ version = "20.10.9";
rev = "v${version}";
- sha256 = "sha256-betZIAH4mFpb/OywWyixCjVmy5EGTrg+WbxDXkVRrsI=";
+ sha256 = "1msqvzfccah6cggvf1pm7n35zy09zr4qg2aalgwpqigv0jmrbyd4";
moby-src = fetchFromGitHub {
owner = "moby";
repo = "moby";
rev = "v${version}";
- sha256 = "1pjjdwzad2z337zwby88w5zwl71ch4lcwbw0sy8slvyjv387jjlm";
+ sha256 = "04xx7m8s9vrkm67ba2k5i90053h5qqkjcvw5rc8w7m5a309xcp4n";
};
- runcRev = "v1.0.1"; # v1.0.1
- runcSha256 = "1zfa1zr8i9n1915nyv7hyaj7q27cy7fiihk9rr1377ayaqg3mpn5";
- containerdRev = "v1.4.9"; # v1.4.9
- containerdSha256 = "1ykikks6ihgg899ibk9m9m0hqrbss0cx7l7z4yjb873b10bacj52";
+ runcRev = "v1.0.2"; # v1.0.2
+ runcSha256 = "1bpckghjah0rczciw1a1ab8z718lb2d3k4mjm4zb45lpm3njmrcp";
+ containerdRev = "v1.4.11"; # v1.4.11
+ containerdSha256 = "02slv4gc2blxnmv0p8pkm139vjn6ihjblmn8ps2k1afbbyps0ilr";
tiniRev = "v0.19.0"; # v0.19.0
tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
};
diff --git a/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix b/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
index cf6395c8a53b..75cf99caf861 100644
--- a/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
+++ b/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
@@ -1,29 +1,30 @@
-{ lib, stdenv, fetchgit }:
+{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
- name = "win-pvdrivers-git-20150701";
- version = "20150701";
+stdenv.mkDerivation {
+ pname = "win-pvdrivers";
+ version = "unstable-2015-07-01";
- src = fetchgit {
- url = "https://github.com/ts468/win-pvdrivers";
+ src = fetchFromGitHub {
+ owner = "ts468";
+ repo = "win-pvdrivers";
rev = "3054d645fc3ee182bea3e97ff01869f01cc3637a";
sha256 = "6232ca2b7c9af874abbcb9262faf2c74c819727ed2eb64599c790879df535106";
};
buildPhase =
let unpack = x: "tar xf $src/${x}.tar; mkdir -p x86/${x} amd64/${x}; cp ${x}/x86/* x86/${x}/.; cp ${x}/x64/* amd64/${x}/.";
- in lib.concatStringsSep "\n" (map unpack ["xenbus" "xeniface" "xenvif" "xennet" "xenvbd"]);
+ in lib.concatStringsSep "\n" (map unpack [ "xenbus" "xeniface" "xenvif" "xennet" "xenvbd" ]);
installPhase = ''
mkdir -p $out
cp -r x86 $out/.
cp -r amd64 $out/.
- '';
+ '';
meta = with lib; {
description = "Xen Subproject: Windows PV Driver";
homepage = "http://xenproject.org/downloads/windows-pv-drivers.html";
- maintainers = [ maintainers.tstrobel ];
+ maintainers = with maintainers; [ tstrobel ];
platforms = platforms.linux;
license = licenses.bsd3;
};
diff --git a/pkgs/applications/virtualization/driver/win-qemu/default.nix b/pkgs/applications/virtualization/driver/win-qemu/default.nix
index 7c1eb0055a30..a4cd8dacc449 100644
--- a/pkgs/applications/virtualization/driver/win-qemu/default.nix
+++ b/pkgs/applications/virtualization/driver/win-qemu/default.nix
@@ -1,19 +1,19 @@
{ lib, stdenv, fetchurl, p7zip }:
-stdenv.mkDerivation {
- name = "win-qemu-0.1.105-1";
+stdenv.mkDerivation rec {
+ pname = "win-qemu";
version = "0.1.105-1";
dontUnpack = true;
src = fetchurl {
- url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.105-1/virtio-win.iso";
+ url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-${version}/virtio-win.iso";
sha256 = "065gz7s77y0q9kfqbr27451sr28rm9azpi88sqjkfph8c6r8q3wc";
};
buildPhase = ''
${p7zip}/bin/7z x $src
- '';
+ '';
installPhase =
let
@@ -23,10 +23,10 @@ stdenv.mkDerivation {
mkdir -p $out/${arch}/qemuagent
cp guest-agent/${if arch=="x86" then "qemu-ga-x86.msi" else "qemu-ga-x64.msi"} $out/${arch}/qemuagent/qemu-guest-agent.msi
(cd $out/${arch}/qemuagent; ${p7zip}/bin/7z x qemu-guest-agent.msi; rm qemu-guest-agent.msi)
- '';
+ '';
copy = arch: version: (copy_pvpanic arch version) + (copy_pciserial arch) + (copy_agent arch);
in
- (copy "amd64" "w8.1") + (copy "x86" "w8.1");
+ (copy "amd64" "w8.1") + (copy "x86" "w8.1");
meta = with lib; {
description = "Windows QEMU Drivers";
diff --git a/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix b/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
index e9ad3b863386..ef8ec062e4d8 100644
--- a/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
+++ b/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
@@ -12,8 +12,8 @@ let
};
in
-stdenv.mkDerivation {
- name = "gplpv-0.11.0.373";
+stdenv.mkDerivation {
+ pname = "gplpv";
version = "0.11.0.373";
dontUnpack = true;
@@ -23,13 +23,13 @@ stdenv.mkDerivation {
(cd x86; ${p7zip}/bin/7z e ${src_x86})
mkdir -p amd64
(cd amd64; ${p7zip}/bin/7z e ${src_amd64})
- '';
+ '';
installPhase = ''
mkdir -p $out/x86 $out/amd64
cp x86/* $out/x86/.
cp amd64/* $out/amd64/.
- '';
+ '';
meta = with lib; {
description = ''
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
Windows to be para-virtualized.
The drivers are signed by Univention with a Software Publishers
Certificate obtained from the VeriSign CA.
- '';
+ '';
homepage = "http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers";
maintainers = [ maintainers.tstrobel ];
platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/ignite/default.nix b/pkgs/applications/virtualization/ignite/default.nix
index 5439ad57b1a3..9ab1d36fef52 100644
--- a/pkgs/applications/virtualization/ignite/default.nix
+++ b/pkgs/applications/virtualization/ignite/default.nix
@@ -11,13 +11,13 @@
buildGoModule rec{
pname = "ignite";
- version = "0.9.0";
+ version = "0.10.0";
src = fetchFromGitHub {
owner = "weaveworks";
repo = "ignite";
rev = "v${version}";
- sha256 = "sha256-rjCsZ12DHcSw5GZu6jGTtqCPOZDSbYoMplkqvspbvO8=";
+ sha256 = "sha256-WCgNh+iLtxLslzcHuIwVLZpUEhvBJFe1Y84PaPtbtcY=";
leaveDotGit = true;
};
diff --git a/pkgs/applications/virtualization/lima/default.nix b/pkgs/applications/virtualization/lima/default.nix
index ba056920e849..cb45f5b7a827 100644
--- a/pkgs/applications/virtualization/lima/default.nix
+++ b/pkgs/applications/virtualization/lima/default.nix
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "lima";
- version = "0.6.4";
+ version = "0.7.3";
src = fetchFromGitHub {
owner = "lima-vm";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-u4XLWDJ35jEKKr98eEoUUsT3gawM/qNqXPXrhlQlugg=";
+ sha256 = "sha256-HVWZ0XF1oBUHhkOQHELlZ/pxXUsUo2cVo6EhZl6S0W4=";
};
- vendorSha256 = "sha256-ivKudP0SlArfD+wXHmqNRmW8UGu0o2SJqURrjPhK2hs=";
+ vendorSha256 = "sha256-LhmZRa7vDylA4DRTfKFRs3lQMnwNfzF1H6ki1/zdpUg=";
nativeBuildInputs = [ makeWrapper installShellFiles ];
@@ -34,7 +34,9 @@ buildGoModule rec {
wrapProgram $out/bin/limactl \
--prefix PATH : ${lib.makeBinPath [ qemu ]}
installShellCompletion --cmd limactl \
- --bash <($out/bin/limactl completion bash)
+ --bash <($out/bin/limactl completion bash) \
+ --fish <($out/bin/limactl completion fish) \
+ --zsh <($out/bin/limactl completion zsh)
runHook postInstall
'';
@@ -50,4 +52,3 @@ buildGoModule rec {
maintainers = with maintainers; [ anhduy ];
};
}
-
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 74d87a1b7407..c3721bbe36e5 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "open-vm-tools";
- version = "11.3.0";
+ version = "11.3.5";
src = fetchFromGitHub {
owner = "vmware";
repo = "open-vm-tools";
rev = "stable-${version}";
- sha256 = "1yfffxc7drr1hyg28jcvly7jn1bm4ca76lmma5ykbmba2qqszx49";
+ sha256 = "03fahljrijq4ij8a4v8d7806mpf22ppkgr61n5s974g3xfdvpl13";
};
sourceRoot = "${src.name}/open-vm-tools";
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index e4cd268758bc..705e5b5d6111 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -17,13 +17,13 @@
buildGoModule rec {
pname = "podman";
- version = "3.3.1";
+ version = "3.4.1";
src = fetchFromGitHub {
owner = "containers";
repo = "podman";
rev = "v${version}";
- sha256 = "sha256-DVRLdJFYD5Ovc0n5SoMv71GPTuBO3wfqREcGRJEuND0=";
+ sha256 = "sha256-+6ALwm1Hc76rYwlQN0r8zX2n+nxBk5iW4AHWBlzAIOc=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/podman/wrapper.nix b/pkgs/applications/virtualization/podman/wrapper.nix
index 400232d2246d..c9ec18593dff 100644
--- a/pkgs/applications/virtualization/podman/wrapper.nix
+++ b/pkgs/applications/virtualization/podman/wrapper.nix
@@ -2,7 +2,6 @@
, runCommand
, makeWrapper
, lib
-, stdenv
, extraPackages ? []
, podman # Docker compat
, runc # Default container runtime
@@ -14,15 +13,12 @@
, cni-plugins # not added to path
, iptables
, iproute2
-, gvproxy
-, qemu
-, xz
}:
let
podman = podman-unwrapped;
- binPath = lib.makeBinPath ([ ] ++ lib.optionals stdenv.isLinux [
+ binPath = lib.makeBinPath ([
runc
crun
conmon
@@ -31,10 +27,6 @@ let
util-linux
iptables
iproute2
- ] ++ lib.optionals stdenv.isDarwin [
- gvproxy
- qemu
- xz
] ++ extraPackages);
in runCommand podman.name {
diff --git a/pkgs/applications/virtualization/qboot/default.nix b/pkgs/applications/virtualization/qboot/default.nix
index 8ac00d1f8e15..c7a3620d644e 100644
--- a/pkgs/applications/virtualization/qboot/default.nix
+++ b/pkgs/applications/virtualization/qboot/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, meson, ninja, fetchFromGitHub, nixosTests }:
stdenv.mkDerivation {
- name = "qboot-20200423";
+ pname = "qboot";
+ version = "unstable-2020-04-23";
src = fetchFromGitHub {
owner = "bonzini";
@@ -26,6 +27,6 @@ stdenv.mkDerivation {
homepage = "https://github.com/bonzini/qboot";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ tstrobel ];
- platforms = ["x86_64-linux" "i686-linux"];
+ platforms = [ "x86_64-linux" "i686-linux" ];
};
}
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 5bf5f169e47a..477b1603d27d 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchurl, fetchpatch, python, zlib, pkg-config, glib
, perl, pixman, vde2, alsa-lib, texinfo, flex
-, bison, lzo, snappy, libaio, gnutls, nettle, curl, ninja, meson
+, bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool
, makeWrapper, autoPatchelfHook
, attr, libcap, libcap_ng
, CoreServices, Cocoa, Hypervisor, rez, setfile
@@ -43,19 +43,20 @@ stdenv.mkDerivation rec {
+ lib.optionalString xenSupport "-xen"
+ lib.optionalString hostCpuOnly "-host-cpu-only"
+ lib.optionalString nixosTestRunner "-for-vm-tests";
- version = "6.0.0";
+ version = "6.1.0";
src = fetchurl {
url= "https://download.qemu.org/qemu-${version}.tar.xz";
- sha256 = "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47";
+ sha256 = "15iw7982g6vc4jy1l9kk1z9sl5bm1bdbwr74y7nvwjs1nffhig7f";
};
- nativeBuildInputs = [ makeWrapper python python.pkgs.sphinx pkg-config flex bison meson ninja ]
+ nativeBuildInputs = [ makeWrapper python python.pkgs.sphinx python.pkgs.sphinx_rtd_theme pkg-config flex bison meson ninja ]
++ lib.optionals gtkSupport [ wrapGAppsHook ]
- ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+ ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]
+ ++ lib.optionals stdenv.isDarwin [ sigtool ];
buildInputs = [ zlib glib perl pixman
- vde2 texinfo lzo snappy
+ vde2 texinfo lzo snappy libtasn1
gnutls nettle curl
]
++ lib.optionals ncursesSupport [ ncurses ]
@@ -85,31 +86,48 @@ stdenv.mkDerivation rec {
patches = [
./fix-qemu-ga.patch
./9p-ignore-noatime.patch
+ # Cocoa clipboard support only works on macOS 10.14+
(fetchpatch {
- name = "CVE-2021-3545.patch";
- url = "https://gitlab.com/qemu-project/qemu/-/commit/121841b25d72d13f8cad554363138c360f1250ea.patch";
- sha256 = "13dgfd8dmxcalh2nvb68iv0kyv4xxrvpdqdxf1h3bjr4451glag1";
+ url = "https://gitlab.com/qemu-project/qemu/-/commit/7e3e20d89129614f4a7b2451fe321cc6ccca3b76.diff";
+ sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2";
+ revert = true;
})
(fetchpatch {
- name = "CVE-2021-3546.patch";
- url = "https://gitlab.com/qemu-project/qemu/-/commit/9f22893adcb02580aee5968f32baa2cd109b3ec2.patch";
- sha256 = "1vkhm9vl671y4cra60b6704339qk1h5dyyb3dfvmvpsvfyh2pm7n";
+ name = "CVE-2021-3713.patch"; # remove with next release
+ url = "https://gitlab.com/qemu-project/qemu/-/commit/13b250b12ad3c59114a6a17d59caf073ce45b33a.patch";
+ sha256 = "0lkzfc7gdlvj4rz9wk07fskidaqysmx8911g914ds1jnczgk71mf";
+ })
+ # Fixes a crash that frequently happens in some setups that share /nix/store over 9p like nixos tests
+ # on some systems. Remove with next release.
+ (fetchpatch {
+ name = "fix-crash-in-v9fs_walk.patch";
+ url = "https://gitlab.com/qemu-project/qemu/-/commit/f83df00900816476cca41bb536e4d532b297d76e.patch";
+ sha256 = "sha256-LYGbBLS5YVgq8Bf7NVk7HBFxXq34NmZRPCEG79JPwk8=";
+ })
+ # Fixes an io error on discard/unmap operation for aio/file backend. Remove with next release.
+ (fetchpatch {
+ name = "fix-aio-discard-return-value.patch";
+ url = "https://gitlab.com/qemu-project/qemu/-/commit/13a028336f2c05e7ff47dfdaf30dfac7f4883e80.patch";
+ sha256 = "sha256-23xVixVl+JDBNdhe5j5WY8CB4MsnUo+sjrkAkG+JS6M=";
})
] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch
++ lib.optionals stdenv.hostPlatform.isMusl [
- (fetchpatch {
- url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/xattr_size_max.patch";
- sha256 = "1xfdjs1jlvs99hpf670yianb8c3qz2ars8syzyz8f2c2cp5y4bxb";
- })
- (fetchpatch {
- url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/musl-F_SHLCK-and-F_EXLCK.patch";
- sha256 = "1gm67v41gw6apzgz7jr3zv9z80wvkv0jaxd2w4d16hmipa8bhs0k";
- })
./sigrtminmax.patch
(fetchpatch {
url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/fix-sigevent-and-sigval_t.patch";
sha256 = "0wk0rrcqywhrw9hygy6ap0lfg314m9z1wr2hn8338r5gfcw75mav";
})
+ ] ++ lib.optionals stdenv.isDarwin [
+ # The Hypervisor.framework support patch converted something that can be applied:
+ # * https://patchwork.kernel.org/project/qemu-devel/list/?series=548227
+ # The base revision is whatever commit there is before the series starts:
+ # * https://github.com/patchew-project/qemu/commits/patchew/20210916155404.86958-1-agraf%40csgraf.de
+ # The target revision is what patchew has as the series tag from patchwork:
+ # * https://github.com/patchew-project/qemu/releases/tag/patchew%2F20210916155404.86958-1-agraf%40csgraf.de
+ (fetchpatch {
+ url = "https://github.com/patchew-project/qemu/compare/7adb961995a3744f51396502b33ad04a56a317c3..d2603c06d9c4a28e714b9b70fe5a9d0c7b0f934d.diff";
+ sha256 = "sha256-nSi5pFf9+EefUmyJzSEKeuxOt39ztgkXQyUB8fTHlcY=";
+ })
];
postPatch = ''
@@ -117,13 +135,6 @@ stdenv.mkDerivation rec {
sed -i "/install_subdir('run', install_dir: get_option('localstatedir'))/d" \
qga/meson.build
- # TODO: On aarch64-darwin, we automatically codesign everything, but qemu
- # needs specific entitlements and does its own signing. This codesign
- # command fails, but we have no fix at the moment, so this disables it.
- # This means `-accel hvf` is broken for now, on aarch64-darwin only.
- substituteInPlace meson.build \
- --replace 'if exe_sign' 'if false'
-
# glibc 2.33 compat fix: if `has_statx = true` is set, `tools/virtiofsd/passthrough_ll.c` will
# rely on `stx_mnt_id`[1] which is not part of glibc's `statx`-struct definition.
#
@@ -181,6 +192,12 @@ stdenv.mkDerivation rec {
doCheck = false; # tries to access /dev
dontWrapGApps = true;
+ # QEMU attaches entitlements with codesign and strip removes those,
+ # voiding the entitlements and making it non-operational.
+ # The alternative is to re-sign with entitlements after stripping:
+ # * https://github.com/qemu/qemu/blob/v6.1.0/scripts/entitlement.sh#L25
+ dontStrip = stdenv.isDarwin;
+
postFixup = ''
# the .desktop is both invalid and pointless
rm -f $out/share/applications/qemu.desktop
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index 37fad321cada..e8d78c5bb4a1 100644
--- a/pkgs/applications/virtualization/singularity/default.nix
+++ b/pkgs/applications/virtualization/singularity/default.nix
@@ -15,11 +15,11 @@ with lib;
buildGoPackage rec {
pname = "singularity";
- version = "3.8.3";
+ version = "3.8.4";
src = fetchurl {
url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
- sha256 = "sha256-LiLrnuG3P91RuHgxSfDk2DwNLYoMHt9gNBV9UO7vuDU=";
+ sha256 = "sha256-y5Xm1osNIPK4fWDyOjv3B7fT6HzuDdSqQ4D49IGlfrw=";
};
goPackagePath = "github.com/sylabs/singularity";
diff --git a/pkgs/applications/virtualization/spike/default.nix b/pkgs/applications/virtualization/spike/default.nix
index 054918dabf12..6161c006357c 100644
--- a/pkgs/applications/virtualization/spike/default.nix
+++ b/pkgs/applications/virtualization/spike/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, dtc, nixosTests, fetchpatch }:
+{ lib, stdenv, fetchgit, dtc, fetchpatch }:
stdenv.mkDerivation rec {
pname = "spike";
@@ -28,9 +28,20 @@ stdenv.mkDerivation rec {
doCheck = true;
- passthru.tests = {
- can-run-hello-world = nixosTests.spike;
- };
+ # To test whether spike is working, we run the RISC-V hello applications using the RISC-V proxy
+ # kernel on the Spike emulator and see whether we get the expected output.
+ doInstallCheck = true;
+ installCheckPhase =
+ let
+ riscvPkgs = import ../../../.. { crossSystem = lib.systems.examples.riscv64-embedded; };
+ in
+ ''
+ runHook preInstallCheck
+
+ $out/bin/spike -m64 ${riscvPkgs.riscv-pk}/bin/pk ${riscvPkgs.hello}/bin/hello | grep -Fq "Hello, world"
+
+ runHook postInstallCheck
+ '';
meta = with lib; {
description = "A RISC-V ISA Simulator";
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 0d6d707a60d5..128753f26433 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -2,35 +2,35 @@
, libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
, libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
, qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
-, alsa-lib, curl, libvpx, nettools, dbus, substituteAll
+, alsa-lib, curl, libvpx, nettools, dbus, substituteAll, gsoap, zlib
# If open-watcom-bin is not passed, VirtualBox will fall back to use
# the shipped alternative sources (assembly).
-, open-watcom-bin ? null
+, open-watcom-bin
, makeself, perl
-, javaBindings ? true, jdk ? null # Almost doesn't affect closure size
-, pythonBindings ? false, python3 ? null
-, extensionPack ? null, fakeroot ? null
-, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
+, javaBindings ? true, jdk # Almost doesn't affect closure size
+, pythonBindings ? false, python3
+, extensionPack ? null, fakeroot
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
, enableHardening ? false
, headless ? false
, enable32bitGuests ? true
+, enableWebService ? false
}:
with lib;
let
- python = python3;
buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
- version = "6.1.26";
+ version = "6.1.28";
in stdenv.mkDerivation {
pname = "virtualbox";
inherit version;
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
- sha256 = "0212602eea878d6c9fd7f4a3e0182da3e4505f31d25f5539fb8f7b1fbe366195";
+ sha256 = "8d34993d8e9c0cf35e7bd44dd26c8c757f17a3b7d5a64052f945d00fd798ebfe";
};
outputs = [ "out" "modsrc" ];
@@ -41,22 +41,23 @@ in stdenv.mkDerivation {
# Wrap manually because we wrap just a small number of executables.
dontWrapQtApps = true;
- buildInputs =
- [ acpica-tools dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
- libcap glib lvm2 alsa-lib curl libvpx pam makeself perl
- libXmu libpng libopus python ]
+ buildInputs = [
+ acpica-tools dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
+ libcap glib lvm2 alsa-lib curl libvpx pam makeself perl
+ libXmu libpng libopus python3 ]
++ optional javaBindings jdk
- ++ optional pythonBindings python # Python is needed even when not building bindings
+ ++ optional pythonBindings python3 # Python is needed even when not building bindings
++ optional pulseSupport libpulseaudio
- ++ optionals (headless) [ libXrandr libGL ]
- ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ];
+ ++ optionals headless [ libXrandr libGL ]
+ ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ]
+ ++ optionals enableWebService [ gsoap zlib ];
hardeningDisable = [ "format" "fortify" "pic" "stackprotector" ];
prePatch = ''
set -x
sed -e 's@MKISOFS --version@MKISOFS -version@' \
- -e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
+ -e 's@PYTHONDIR=.*@PYTHONDIR=${lib.optionalString pythonBindings python3}@' \
-e 's@CXX_FLAGS="\(.*\)"@CXX_FLAGS="-std=c++11 \1"@' \
${optionalString (!headless) ''
-e 's@TOOLQT5BIN=.*@TOOLQT5BIN="${getDev qtbase}/bin"@' \
@@ -94,9 +95,6 @@ in stdenv.mkDerivation {
})
++ [
./qtx11extras.patch
- # Temporary workaround for broken build
- # https://www.virtualbox.org/pipermail/vbox-dev/2021-July/015670.html
- ./fix-configure-pkgconfig-qt.patch
# https://github.com/NixOS/nixpkgs/issues/123851
./fix-audio-driver-loading.patch
];
@@ -136,6 +134,10 @@ in stdenv.mkDerivation {
PATH_QT5_X11_EXTRAS_INC := ${getDev qtx11extras}/include
TOOL_QT5_LRC := ${getDev qttools}/bin/lrelease
''}
+ ${optionalString enableWebService ''
+ # fix gsoap missing zlib include and produce errors with --as-needed
+ VBOX_GSOAP_CXX_LIBS := gsoapssl++ z
+ ''}
LOCAL_CONFIG
./configure \
@@ -145,6 +147,7 @@ in stdenv.mkDerivation {
${optionalString (!pulseSupport) "--disable-pulse"} \
${optionalString (!enableHardening) "--disable-hardening"} \
${optionalString (!enable32bitGuests) "--disable-vmmraw"} \
+ ${optionalString enableWebService "--enable-webservice"} \
${optionalString (open-watcom-bin != null) "--with-ow-dir=${open-watcom-bin}"} \
--disable-kmods
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
@@ -171,7 +174,7 @@ in stdenv.mkDerivation {
-name src -o -exec cp -avt "$libexec" {} +
mkdir -p $out/bin
- for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
+ for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} ${optionalString enableWebService "vboxwebsrv"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
echo "Linking $file to /bin"
test -x "$libexec/$file"
ln -s "$libexec/$file" $out/bin/$file
@@ -179,14 +182,14 @@ in stdenv.mkDerivation {
${optionalString (extensionPack != null) ''
mkdir -p "$share"
- "${fakeroot}/bin/fakeroot" "${stdenv.shell}" <Stat.st_gid != 2 /*bin*/ || suplibHardenedStrCmp(pszPath, "/usr/lib/iconv");
# else
NOREF(fRelaxed);
@@ -75,20 +75,46 @@ index ce0f288..6193108 100644
return supR3HardenedSetError3(VERR_SUPLIB_WRITE_NON_SYS_GROUP, pErrInfo,
"An unknown (and thus untrusted) group has write access to '", pszPath,
"' and we therefore cannot trust the directory content or that of any subdirectory");
+diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+index 2991d3a7..d042a08b 100644
+--- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
++++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
+
+ /* Get the path to the executable directory w/ trailing slash: */
+ char szPath[RTPATH_MAX];
+- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
++ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
+ AssertRCReturn(vrc, vrc);
+ size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
+ AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
+diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+index 2e57690a..3272c840 100644
+--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
++++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
+ * ASSUME it is relative to the directory that holds VBoxSVC.
+ */
+ char szExePath[RTPATH_MAX];
+- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
++ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
+ RTPathStripFilename(szExePath);
+ int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
+ AssertLogRelRCReturn(vrc, vrc);
diff --git a/src/VBox/Main/src-server/generic/NetIf-generic.cpp b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
-index 98dc91a..43a819f 100644
+index af155966..3b8e793d 100644
--- a/src/VBox/Main/src-server/generic/NetIf-generic.cpp
+++ b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
-@@ -47,7 +47,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
+@@ -48,7 +48,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
const char *args[] = { NULL, pcszIfName, pszAddr, pszOption, pszMask, NULL };
-
+
char szAdpCtl[RTPATH_MAX];
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
if (RT_FAILURE(rc))
{
LogRel(("NetIfAdpCtl: failed to get program path, rc=%Rrc.\n", rc));
-@@ -89,7 +89,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
+@@ -95,7 +95,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
int NetIfAdpCtlOut(const char * pcszName, const char * pcszCmd, char *pszBuffer, size_t cBufSize)
{
char szAdpCtl[RTPATH_MAX];
@@ -97,23 +123,23 @@ index 98dc91a..43a819f 100644
if (RT_FAILURE(rc))
{
LogRel(("NetIfAdpCtlOut: Failed to get program path, rc=%Rrc\n", rc));
-@@ -201,7 +201,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
+@@ -210,7 +210,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
progress.queryInterfaceTo(aProgress);
-
+
char szAdpCtl[RTPATH_MAX];
-- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
-+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
- if (RT_FAILURE(rc))
+- vrc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
++ vrc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
+ if (RT_FAILURE(vrc))
{
progress->i_notifyComplete(E_FAIL,
diff --git a/src/VBox/Runtime/r3/path.cpp b/src/VBox/Runtime/r3/path.cpp
-index 944848e..744a261 100644
+index 4b1a0ada..7f6dd707 100644
--- a/src/VBox/Runtime/r3/path.cpp
+++ b/src/VBox/Runtime/r3/path.cpp
@@ -81,6 +81,12 @@ RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath)
}
-
-
+
+
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath)
+{
+ return RTStrCopy(pszPath, cchPath, "/run/wrappers/bin");
@@ -124,13 +150,13 @@ index 944848e..744a261 100644
{
#if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE)
diff --git a/src/VBox/Runtime/r3/process.cpp b/src/VBox/Runtime/r3/process.cpp
-index 2aab645..9795f21 100644
+index 5f7c7a87..59461cfa 100644
--- a/src/VBox/Runtime/r3/process.cpp
+++ b/src/VBox/Runtime/r3/process.cpp
-@@ -111,6 +111,26 @@ RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath)
- return NULL;
+@@ -117,6 +117,25 @@ RTR3DECL(const char *) RTProcExecutablePath(void)
+ return g_szrtProcExePath;
}
-
+
+/*
+ * Note the / at the end! This is important, because the functions using this
+ * will cut off everything after the rightmost / as this function is analogous
@@ -150,33 +176,6 @@ index 2aab645..9795f21 100644
+ AssertMsgFailed(("Buffer too small (%zu <= %zu)\n", cbExecPath, sizeof(SUIDDIR)));
+ return NULL;
+}
-+
-
+
RTR3DECL(const char *) RTProcShortName(void)
{
-diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
-index 2e57690..3272c84 100644
---- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
-+++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
-@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
- * ASSUME it is relative to the directory that holds VBoxSVC.
- */
- char szExePath[RTPATH_MAX];
-- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
-+ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
- RTPathStripFilename(szExePath);
- int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
- AssertLogRelRCReturn(vrc, vrc);
-diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
-index 2991d3a7..d042a08b 100644
---- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
-+++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
-@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
-
- /* Get the path to the executable directory w/ trailing slash: */
- char szPath[RTPATH_MAX];
-- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
-+ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
- AssertRCReturn(vrc, vrc);
- size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
- AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index d3da358b6396..124c1abe6f9c 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -1,9 +1,10 @@
{ lib
, stdenv
, fetchFromGitHub
-, fetchpatch
, cairo
, fontconfig
+, libevdev
+, libinput
, libxkbcommon
, makeWrapper
, mesa
@@ -23,24 +24,15 @@
stdenv.mkDerivation rec {
pname = "cagebreak";
- version = "1.7.1";
+ version = "1.8.0";
src = fetchFromGitHub {
owner = "project-repo";
repo = pname;
rev = version;
- hash = "sha256-1IztedN5/I/4TDKHLJ26fSrDsvJ5QAr+cbzS2PQITDE=";
+ hash = "sha256-tWfHJajAOYZJ73GckZWWTdVz75YmHA7t/qDhM7+tJgk=";
};
- patches = [
- # To fix the build with wlroots 0.14.0:
- (fetchpatch {
- # Add fixes for wlroots 0.14.0
- url = "https://github.com/project-repo/cagebreak/commit/d57869d43add58331386fc8e89c14bb2b74afe17.patch";
- sha256 = "0g6sl8y4kk0bm5x6pxqbxw2j0gyg3ybr2v9m70q2pxp70kms4lqg";
- })
- ];
-
nativeBuildInputs = [
makeWrapper
meson
@@ -53,6 +45,8 @@ stdenv.mkDerivation rec {
buildInputs = [
cairo
fontconfig
+ libevdev
+ libinput
libxkbcommon
mesa # for libEGL headers
pango
@@ -80,7 +74,8 @@ stdenv.mkDerivation rec {
'';
postFixup = lib.optionalString withXwayland ''
- wrapProgram $out/bin/cagebreak --prefix PATH : "${xwayland}/bin"
+ wrapProgram $out/bin/cagebreak \
+ --prefix PATH : "${lib.makeBinPath [ xwayland ]}"
'';
meta = with lib; {
diff --git a/pkgs/applications/window-managers/cardboard/default.nix b/pkgs/applications/window-managers/cardboard/default.nix
index 17ef08af5e82..5347b0961a54 100644
--- a/pkgs/applications/window-managers/cardboard/default.nix
+++ b/pkgs/applications/window-managers/cardboard/default.nix
@@ -57,7 +57,7 @@ let
in
stdenv.mkDerivation rec {
pname = "cardboard";
- version = "0.0.0+unstable=2021-05-10";
+ version = "0.pre+unstable=2021-05-10";
src = fetchFromGitLab {
owner = "cardboardwm";
diff --git a/pkgs/applications/window-managers/dzen2/default.nix b/pkgs/applications/window-managers/dzen2/default.nix
index 84380bfc9d86..df7521cd2c41 100644
--- a/pkgs/applications/window-managers/dzen2/default.nix
+++ b/pkgs/applications/window-managers/dzen2/default.nix
@@ -1,13 +1,14 @@
{ lib, stdenv, fetchurl, pkg-config, libX11, libXft, libXinerama, libXpm }:
-stdenv.mkDerivation {
- name = "dzen2-0.9.5";
+stdenv.mkDerivation rec {
+ pname = "dzen2";
+ version = "0.9.5";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libX11 libXft libXinerama libXpm ];
src = fetchurl {
- url = "https://github.com/robm/dzen/tarball/master/dzen2-0.9.5git.tar.gz";
+ url = "https://github.com/robm/dzen/tarball/master/dzen2-${version}git.tar.gz";
sha256 = "d4f7943cd39dc23fd825eb684b49dc3484860fa8443d30b06ee38af72a53b556";
};
diff --git a/pkgs/applications/window-managers/evilwm/default.nix b/pkgs/applications/window-managers/evilwm/default.nix
index 94562cd0d224..0855e512fd8e 100644
--- a/pkgs/applications/window-managers/evilwm/default.nix
+++ b/pkgs/applications/window-managers/evilwm/default.nix
@@ -1,19 +1,36 @@
-{ lib, stdenv, fetchurl, libX11, libXext, libXrandr, libXrender,
- xorgproto, patches ? [] }:
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXext
+, libXrandr
+, libXrender
+, xorgproto
+, patches ? [ ]
+}:
stdenv.mkDerivation rec {
- name = "evilwm-1.1.1";
+ pname = "evilwm";
+ version = "1.1.1";
src = fetchurl {
- url = "http://www.6809.org.uk/evilwm/${name}.tar.gz";
+ url = "http://www.6809.org.uk/evilwm/evilwm-${version}.tar.gz";
sha256 = "79589c296a5915ee0bae1d231e8912601fc794d9f0a9cacb6b648ff9a5f2602a";
};
- buildInputs = [ libX11 libXext libXrandr libXrender
- xorgproto ];
+ buildInputs = [
+ libX11
+ libXext
+ libXrandr
+ libXrender
+ xorgproto
+ ];
- prePatch = ''substituteInPlace ./Makefile --replace /usr $out \
- --replace "CC = gcc" "#CC = gcc"'';
+ postPatch = ''
+ substituteInPlace ./Makefile \
+ --replace /usr $out \
+ --replace "CC = gcc" "#CC = gcc"
+ '';
# Allow users set their own list of patches
inherit patches;
@@ -21,14 +38,12 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "http://www.6809.org.uk/evilwm/";
description = "Minimalist window manager for the X Window System";
-
license = {
shortName = "evilwm";
fullName = "Custom, inherited from aewm and 9wm";
url = "http://www.6809.org.uk/evilwm/";
free = true;
- }; # like BSD/MIT, but Share-Alike'y; See README.
-
+ }; # like BSD/MIT, but Share-Alike'y; See README.
maintainers = with maintainers; [ amiloradovsky ];
platforms = platforms.all;
};
diff --git a/pkgs/applications/window-managers/eww/default.nix b/pkgs/applications/window-managers/eww/default.nix
new file mode 100644
index 000000000000..c2cc2f23cdb8
--- /dev/null
+++ b/pkgs/applications/window-managers/eww/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, gtk3
+, withWayland ? false
+, gtk-layer-shell
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "eww";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "elkowar";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "050zc3w1z9f2vg6sz86mdxf345gd3s3jf09gf4y8y1mqkzs86b8x";
+ };
+
+ cargoSha256 = "sha256-LejnTVv9rhL9CVW1fgj2gFv4amHQeziu5uaH2ae8AAw=";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ gtk3 ] ++ lib.optional withWayland gtk-layer-shell;
+
+ cargoBuildFlags = [ "--bin" "eww" ] ++ lib.optionals withWayland [
+ "--no-default-features"
+ "--features=wayland"
+ ];
+
+ cargoTestFlags = cargoBuildFlags;
+
+ # requires unstable rust features
+ RUSTC_BOOTSTRAP = 1;
+
+ meta = with lib; {
+ description = "ElKowars wacky widgets";
+ homepage = "https://github.com/elkowar/eww";
+ license = licenses.mit;
+ maintainers = with maintainers; [ figsoda legendofmiracles ];
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/pkgs/applications/window-managers/fluxbox/default.nix b/pkgs/applications/window-managers/fluxbox/default.nix
index 36a22cb46d76..934f8c9b3fc2 100644
--- a/pkgs/applications/window-managers/fluxbox/default.nix
+++ b/pkgs/applications/window-managers/fluxbox/default.nix
@@ -15,6 +15,15 @@ stdenv.mkDerivation rec {
sha256 = "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w";
};
+ patches = [
+ # Upstream fix to build against gcc-11.
+ (fetchurl {
+ name = "gcc-11.patch";
+ url = "http://git.fluxbox.org/fluxbox.git/patch/?id=22866c4d30f5b289c429c5ca88d800200db4fc4f";
+ sha256 = "1x7126rlmzky51lk370fczssgnjs7i6wgfaikfib9pvn4vv945ai";
+ })
+ ];
+
nativeBuildInputs = [ pkg-config ];
buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xorgproto libXinerama imlib2 ];
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index a51c80bf0833..0d07ce4e8d1a 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -1,18 +1,28 @@
{ fetchurl, lib, stdenv, pkg-config, makeWrapper, meson, ninja, installShellFiles, libxcb, xcbutilkeysyms
, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
, yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
-, xorgserver, xvfb-run }:
+, xorgserver, xvfb-run
+, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
+}:
stdenv.mkDerivation rec {
pname = "i3";
- version = "4.19.2";
+ version = "4.20";
src = fetchurl {
url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
- sha256 = "sha256-im7hd2idzyKWTSC2CTAU7k+gQZNF0/1RXVUS2ZgLsnk=";
+ sha256 = "sha256-jPTxdPbPVU84VjOAaBq+JYaOmVWIN5HgmG7NicU6wyI=";
};
- nativeBuildInputs = [ pkg-config makeWrapper meson ninja installShellFiles ];
+ nativeBuildInputs = [
+ pkg-config makeWrapper meson ninja installShellFiles
+ asciidoc xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs
+ ];
+
+ mesonFlags = [
+ "-Ddocs=true"
+ "-Dmans=true"
+ ];
buildInputs = [
libxcb xcbutilkeysyms xcbutil xcbutilwm xcbutilxrm libxkbcommon
diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
index 8ab8c5630d09..6884e5ea7a1c 100644
--- a/pkgs/applications/window-managers/i3/gaps.nix
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -2,13 +2,13 @@
i3.overrideAttrs (oldAttrs : rec {
pname = "i3-gaps";
- version = "4.19.1";
+ version = "4.20";
src = fetchFromGitHub {
owner = "Airblader";
repo = "i3";
rev = version;
- sha256 = "sha256-Ydks0hioGAnVBGKraoy3a7Abq9/vHmSne+VFbrYXCug=";
+ sha256 = "sha256-D16wMwCabEOG0AfAhohwcCHeUSvVF93i3zT/yu0FCu8=";
};
meta = with lib; {
diff --git a/pkgs/applications/window-managers/i3/lock-fancy.nix b/pkgs/applications/window-managers/i3/lock-fancy.nix
index 7e42a8efd7e9..9a1b959690a2 100644
--- a/pkgs/applications/window-managers/i3/lock-fancy.nix
+++ b/pkgs/applications/window-managers/i3/lock-fancy.nix
@@ -1,36 +1,49 @@
-{ lib, stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk
-, i3lock-color, getopt, fontconfig
+{ lib
+, stdenv
+, fetchFromGitHub
+, coreutils
+, scrot
+, imagemagick
+, gawk
+, i3lock-color
+, getopt
+, fontconfig
}:
stdenv.mkDerivation rec {
- rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
- name = "i3lock-fancy-unstable-2018-11-25_rev${builtins.substring 0 7 rev}";
+ pname = "i3lock-fancy";
+ version = "unstable-2018-11-25";
+
src = fetchFromGitHub {
owner = "meskarune";
repo = "i3lock-fancy";
- inherit rev;
+ rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
sha256 = "00lqsvz1knb8iqy8lnkn3sf4c2c4nzb0smky63qf48m8za5aw9b1";
};
- patchPhase = ''
- sed -i -e "s|mktemp|${coreutils}/bin/mktemp|" i3lock-fancy
- sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" i3lock-fancy
- sed -i -e "s|scrot -z |${scrot}/bin/scrot -z |" i3lock-fancy
- sed -i -e "s|convert |${imagemagick.out}/bin/convert |" i3lock-fancy
- sed -i -e "s|awk -F|${gawk}/bin/awk -F|" i3lock-fancy
- sed -i -e "s| awk | ${gawk}/bin/awk |" i3lock-fancy
- sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" i3lock-fancy
- sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' i3lock-fancy
- sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy
- sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy
- sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy
- sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|" i3lock-fancy
+
+ postPatch = ''
+ sed -i i3lock-fancy \
+ -e "s|mktemp|${coreutils}/bin/mktemp|" \
+ -e "s|'rm -f |'${coreutils}/bin/rm -f |" \
+ -e "s|scrot -z |${scrot}/bin/scrot -z |" \
+ -e "s|convert |${imagemagick.out}/bin/convert |" \
+ -e "s|awk -F|${gawk}/bin/awk -F|" \
+ -e "s| awk | ${gawk}/bin/awk |" \
+ -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" \
+ -e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' \
+ -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' \
+ -e "s|getopt |${getopt}/bin/getopt |" \
+ -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" \
+ -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|"
rm Makefile
'';
+
installPhase = ''
mkdir -p $out/bin $out/share/i3lock-fancy/icons
cp i3lock-fancy $out/bin/i3lock-fancy
cp icons/lock*.png $out/share/i3lock-fancy/icons
'';
+
meta = with lib; {
description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
homepage = "https://github.com/meskarune/i3lock-fancy";
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index edb482ad15f0..defb44f0f35d 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -12,16 +12,16 @@
rustPlatform.buildRustPackage rec {
pname = "i3status-rust";
- version = "0.20.4";
+ version = "0.20.6";
src = fetchFromGitHub {
owner = "greshake";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-lohMrsMCAnb2p7H+xfa24Wx3LEFxCAlGHfP9A70Hg48=";
+ sha256 = "sha256-FLMfXloAAIz/9KAtKFfB8uokQz/J8R+WsGarq/5cblo=";
};
- cargoSha256 = "sha256-pe96VNTH49qgQ4yxKcAcQPN31W2k1mD9TdhNKBp4x5Q=";
+ cargoSha256 = "sha256-UVAF2rz0y6h3/rcTJ+31mMyJDLG7q40n6vBK8Wxultg=";
nativeBuildInputs = [ pkg-config makeWrapper ];
diff --git a/pkgs/applications/window-managers/i3/status.nix b/pkgs/applications/window-managers/i3/status.nix
index 8e9cb2d2b76f..bbbad532d096 100644
--- a/pkgs/applications/window-managers/i3/status.nix
+++ b/pkgs/applications/window-managers/i3/status.nix
@@ -1,10 +1,11 @@
{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
stdenv.mkDerivation rec {
- name = "i3status-2.13";
+ pname = "i3status";
+ version = "2.13";
src = fetchurl {
- url = "https://i3wm.org/i3status/${name}.tar.bz2";
+ url = "https://i3wm.org/i3status/i3status-${version}.tar.bz2";
sha256 = "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff";
};
diff --git a/pkgs/applications/window-managers/ion-3/default.nix b/pkgs/applications/window-managers/ion-3/default.nix
index 8f172ac87003..4794de1d5f84 100644
--- a/pkgs/applications/window-managers/ion-3/default.nix
+++ b/pkgs/applications/window-managers/ion-3/default.nix
@@ -1,18 +1,25 @@
{ lib, stdenv, fetchurl, xlibsWrapper, lua, gettext, groff }:
-stdenv.mkDerivation {
- name = "ion-3-20090110";
- meta = {
- description = "Tiling tabbed window manager designed with keyboard users in mind";
- homepage = "http://modeemi.fi/~tuomov/ion";
- platforms = with lib.platforms; linux;
- license = lib.licenses.lgpl21;
- };
+stdenv.mkDerivation rec {
+ pname = "ion";
+ version = "3-20090110";
+
src = fetchurl {
- url = "http://tuomov.iki.fi/software/dl/ion-3-20090110.tar.gz";
+ url = "http://tuomov.iki.fi/software/dl/ion-${version}.tar.gz";
sha256 = "1nkks5a95986nyfkxvg2rik6zmwx0lh7szd5fji7yizccwzc9xns";
};
+
buildInputs = [ xlibsWrapper lua gettext groff ];
+
buildFlags = [ "LUA_DIR=${lua}" "X11_PREFIX=/no-such-path" "PREFIX=\${out}" ];
+
installFlags = [ "PREFIX=\${out}" ];
+
+ meta = with lib; {
+ description = "Tiling tabbed window manager designed with keyboard users in mind";
+ homepage = "http://modeemi.fi/~tuomov/ion";
+ platforms = with platforms; linux;
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ ];
+ };
}
diff --git a/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch b/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch
deleted file mode 100644
index f7b6a4cb9f16..000000000000
--- a/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 347d325..dce95a0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -489,7 +489,8 @@ fi
- ############################################################################
- AM_ICONV
- AM_GNU_GETTEXT([external])
--AM_GNU_GETTEXT_VERSION([0.19])
-+AM_GNU_GETTEXT_VERSION([0.19.6])
-+AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
- LDFLAGS="$LDFLAGS $LIBINTL $LIBICONV"
-
- ############################################################################
diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix
index 3c97c5630b08..2c9461d6388b 100644
--- a/pkgs/applications/window-managers/jwm/default.nix
+++ b/pkgs/applications/window-managers/jwm/default.nix
@@ -1,21 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, automake, autoconf, libtool, gettext
+{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, gettext
, which, xorg, libX11, libXext, libXinerama, libXpm, libXft, libXau, libXdmcp
, libXmu, libpng, libjpeg, expat, xorgproto, librsvg, freetype, fontconfig }:
stdenv.mkDerivation rec {
pname = "jwm";
- version = "1685";
+ version = "2.4.0";
src = fetchFromGitHub {
owner = "joewing";
repo = "jwm";
- rev = "s${version}";
- sha256 = "1kyvy022sij898g2hm5spy5vq0kw6aqd7fsnawl2xyh06gwh29wg";
+ rev = "v${version}";
+ sha256 = "19fnrlw05njib13ljh7pmi48myfclra1xhy4b6hi74c6w6yz2fgj";
};
- patches = [ ./0001-Fix-Gettext-Requirement.patch ];
-
- nativeBuildInputs = [ pkg-config automake autoconf libtool gettext which ];
+ nativeBuildInputs = [ pkg-config gettext which autoreconfHook ];
buildInputs = [
libX11
@@ -38,12 +36,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- preConfigure = "./autogen.sh";
-
meta = {
homepage = "http://joewing.net/projects/jwm/";
description = "Joe's Window Manager is a light-weight X11 window manager";
- license = lib.licenses.gpl2;
+ license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.romildo ];
};
diff --git a/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
index d3b685e7dcd7..d01e1bfdf975 100644
--- a/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
+++ b/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
@@ -1,14 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext, libXpm, libGL, fltk, hicolor-icon-theme, glib, gnome2, which }:
+{ lib, stdenv, fetchbzr, cmake, pkg-config, gettext, libXpm, libGL, fltk, hicolor-icon-theme, glib, gnome2, which }:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "jwm-settings-manager";
- version = "2018-10-19";
+ version = "2019-01-27";
- src = fetchFromGitHub {
- owner = "Israel-D";
- repo = "jwm-settings-manager";
- rev = "cb32a70563cf1f3927339093481542b85ec3c8c8";
- sha256 = "0d5bqf74p8zg8azns44g46q973blhmp715k8kcd73x88g7sfir8s";
+ src = fetchbzr {
+ url = "lp:${pname}";
+ rev = "292";
+ sha256 = "1yqc1ac2pbkc88z7p1qags1jygdlr5y1rhc5mx6gapcf54bk0lmi";
};
nativeBuildInputs = [
@@ -34,6 +33,11 @@ stdenv.mkDerivation {
--replace 'DESTINATION usr/share' "DESTINATION share"
'';
+ postConfigure = ''
+ substituteInPlace cmake_install.cmake \
+ --replace "/var/empty" "/usr"
+ '';
+
meta = with lib; {
description = "A full configuration manager for JWM";
homepage = "https://joewing.net/projects/jwm";
diff --git a/pkgs/applications/window-managers/larswm/default.nix b/pkgs/applications/window-managers/larswm/default.nix
index e9d400378e62..ce212b1c682b 100644
--- a/pkgs/applications/window-managers/larswm/default.nix
+++ b/pkgs/applications/window-managers/larswm/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }:
-stdenv.mkDerivation {
- name = "larswm-7.5.3";
+stdenv.mkDerivation rec {
+ pname = "larswm";
+ version = "7.5.3";
src = fetchurl {
- url = "mirror://sourceforge/larswm/larswm-7.5.3.tar.gz";
+ url = "mirror://sourceforge/larswm/larswm-${version}.tar.gz";
sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v";
};
diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix
index e8330ee29368..9379fb358b35 100644
--- a/pkgs/applications/window-managers/leftwm/default.nix
+++ b/pkgs/applications/window-managers/leftwm/default.nix
@@ -6,16 +6,16 @@ in
rustPlatform.buildRustPackage rec {
pname = "leftwm";
- version = "0.2.8";
+ version = "0.2.9";
src = fetchFromGitHub {
owner = "leftwm";
repo = "leftwm";
rev = version;
- sha256 = "sha256-T4A9NGT6sUSTKmLcAWjcp3Y8QQzZFAVSXevXtGm3szY=";
+ sha256 = "sha256:0w4afhrp2cxz0nmpvalyaxz1dpywajjj2wschw8dpkvgxqs64gd5";
};
- cargoSha256 = "sha256-2prRtdBxpYc2xI/bLZNlqs3mxESfO9GhNUSlKFF//eE=";
+ cargoSha256 = "sha256:0r0smpv50gim2naaa0qf6yhvqvsa2f40rkgiryi686y69m5ii7mv";
buildInputs = rpathLibs;
diff --git a/pkgs/applications/window-managers/oroborus/default.nix b/pkgs/applications/window-managers/oroborus/default.nix
index 0124261e423f..d24abb68fb7e 100644
--- a/pkgs/applications/window-managers/oroborus/default.nix
+++ b/pkgs/applications/window-managers/oroborus/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
libXft libXpm libXrandr libXrender xorgproto libXinerama ];
src = fetchurl {
- url = "http://ftp.debian.org/debian/pool/main/o/oroborus/oroborus_${version}.tar.gz";
+ url = "mirror://debian/pool/main/o/oroborus/oroborus_${version}.tar.gz";
sha256 = "12bvk8x8rfnymbfbwmdcrd9g8m1zxbcq7rgvfdkjr0gnpi0aa82j";
};
diff --git a/pkgs/applications/window-managers/picom/picom-next.nix b/pkgs/applications/window-managers/picom/picom-next.nix
new file mode 100644
index 000000000000..67b510396f7d
--- /dev/null
+++ b/pkgs/applications/window-managers/picom/picom-next.nix
@@ -0,0 +1,13 @@
+{ picom, lib, fetchFromGitHub }:
+
+picom.overrideAttrs (oldAttrs: rec {
+ pname = "picom-next";
+ version = "unstable-2021-10-31";
+ src = fetchFromGitHub {
+ owner = "yshui";
+ repo = "picom";
+ rev = "fade045eadf171d2c732820d6ebde7d1943a1397";
+ sha256 = "fPiLZ63+Bw5VCxVNqj9i5had2YLa+jFMMf85MYdqvHU=";
+ };
+ meta.maintainers = with lib.maintainers; oldAttrs.meta.maintainers ++ [ GKasparov ];
+})
diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix
index 786a47d49c34..e17cbce7e2bb 100644
--- a/pkgs/applications/window-managers/qtile/default.nix
+++ b/pkgs/applications/window-managers/qtile/default.nix
@@ -47,6 +47,9 @@ let
psutil
pyxdg
pygobject3
+ pywayland
+ pywlroots
+ xkbcommon
];
doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/applications/window-managers/river/default.nix
index 5c809097ee17..e59ce5449e2c 100644
--- a/pkgs/applications/window-managers/river/default.nix
+++ b/pkgs/applications/window-managers/river/default.nix
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "river";
- version = "unstable-2021-08-03";
+ version = "0.1.0";
src = fetchFromGitHub {
owner = "ifreund";
repo = pname;
- rev = "2fc0875a3e17a0328d14d0c6323bd8022d5b15de";
- sha256 = "sha256-Cs9RRubxy0DY6ILRZY36HtcoqBvzbN7NEfpREq1KBBQ=";
+ rev = "v${version}";
+ sha256 = "03pdgrcpj8db9s14249815z76dyjwwma8xv6p9hpw79flk6rk7v7";
fetchSubmodules = true;
};
@@ -34,7 +34,6 @@ stdenv.mkDerivation rec {
buildInputs = [
wayland-protocols
wlroots
- pixman
libxkbcommon
pixman
udev
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 92de633f0fa8..fb0cb31fad57 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -6,6 +6,8 @@
, nixosTests
# Used by the NixOS module:
, isNixOS ? false
+
+, enableXWayland ? true
}:
stdenv.mkDerivation rec {
@@ -40,13 +42,16 @@ stdenv.mkDerivation rec {
buildInputs = [
wayland libxkbcommon pcre json_c dbus libevdev
pango cairo libinput libcap pam gdk-pixbuf librsvg
- wlroots wayland-protocols libdrm
+ wayland-protocols libdrm
+ (wlroots.override { inherit enableXWayland; })
];
mesonFlags = [
"-Ddefault-wallpaper=false"
"-Dsd-bus-provider=libsystemd"
- ];
+ ]
+ ++ lib.optional (!enableXWayland) "-Dxwayland=disabled"
+ ;
passthru.tests.basic = nixosTests.sway;
diff --git a/pkgs/applications/window-managers/sway/lock-fancy.nix b/pkgs/applications/window-managers/sway/lock-fancy.nix
index bee1f925f60a..8c2a7e91649a 100644
--- a/pkgs/applications/window-managers/sway/lock-fancy.nix
+++ b/pkgs/applications/window-managers/sway/lock-fancy.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, coreutils, grim, gawk, swaylock
-, imagemagick, getopt, fontconfig, makeWrapper
+{ lib, stdenv, fetchFromGitHub, coreutils, grim, gawk, jq, swaylock
+, imagemagick, getopt, fontconfig, wmctrl, makeWrapper
}:
let
@@ -7,20 +7,22 @@ let
coreutils
grim
gawk
+ jq
swaylock
imagemagick
getopt
fontconfig
+ wmctrl
];
in stdenv.mkDerivation rec {
pname = "swaylock-fancy-unstable";
- version = "2020-02-22";
+ version = "2021-10-11";
src = fetchFromGitHub {
owner = "Big-B";
repo = "swaylock-fancy";
- rev = "5cf977b12f372740aa7b7e5a607d583f93f1e028";
- sha256 = "0laqwzi6069sgz91i69438ns0g2nq4zkqickavrf80h4g3gcs8vm";
+ rev = "265fbfb438392339bf676b0a9dbe294abe2a699e";
+ sha256 = "NjxeJyWYXBb1P8sXKgb2EWjF+cNodTE83r1YwRYoBjM=";
};
postPatch = ''
diff --git a/pkgs/applications/window-managers/sway/wrapper.nix b/pkgs/applications/window-managers/sway/wrapper.nix
index 07459295d759..827fce897026 100644
--- a/pkgs/applications/window-managers/sway/wrapper.nix
+++ b/pkgs/applications/window-managers/sway/wrapper.nix
@@ -6,6 +6,8 @@
, extraOptions ? [] # E.g.: [ "--verbose" ]
# Used by the NixOS module:
, isNixOS ? false
+
+, enableXWayland ? true
}:
assert extraSessionCommands != "" -> withBaseWrapper;
@@ -13,7 +15,7 @@ assert extraSessionCommands != "" -> withBaseWrapper;
with lib;
let
- sway = sway-unwrapped.override { inherit isNixOS; };
+ sway = sway-unwrapped.override { inherit isNixOS enableXWayland; };
baseWrapper = writeShellScriptBin "sway" ''
set -o errexit
if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
@@ -50,7 +52,10 @@ in symlinkJoin {
${optionalString (extraOptions != []) "${concatMapStrings (x: " --add-flags " + x) extraOptions}"}
'';
- passthru.providedSessions = [ "sway" ];
+ passthru = {
+ inherit (sway.passthru) tests;
+ providedSessions = [ "sway" ];
+ };
inherit (sway) meta;
}
diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix
index 2eeae7f4da5e..7366ff196954 100644
--- a/pkgs/applications/window-managers/tabbed/default.nix
+++ b/pkgs/applications/window-managers/tabbed/default.nix
@@ -1,9 +1,8 @@
-{lib, stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [] }:
-
-with lib;
+{ lib, stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [ ] }:
stdenv.mkDerivation {
- name = "tabbed-20180310";
+ pname = "tabbed";
+ version = "unstable-2018-03-10";
src = fetchgit {
url = "https://git.suckless.org/tabbed";
@@ -23,7 +22,7 @@ stdenv.mkDerivation {
"PREFIX=$(out)"
];
- meta = {
+ meta = with lib; {
homepage = "https://tools.suckless.org/tabbed";
description = "Simple generic tabbed fronted to xembed aware applications";
license = licenses.mit;
diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
index c210b39fe181..57cf0fc93fac 100644
--- a/pkgs/applications/window-managers/trayer/default.nix
+++ b/pkgs/applications/window-managers/trayer/default.nix
@@ -1,22 +1,24 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, gtk2 }:
stdenv.mkDerivation rec {
- name = "trayer-1.1.8";
-
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ gdk-pixbuf gtk2 ];
+ pname = "trayer";
+ version = "1.1.8";
src = fetchFromGitHub {
owner = "sargon";
repo = "trayer-srg";
- rev = name;
+ rev = "${pname}-${version}";
sha256 = "1mvhwaqa9bng9wh3jg3b7y8gl7nprbydmhg963xg0r076jyzv0cg";
};
- preConfigure = ''
+ postPatch = ''
patchShebangs configure
'';
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ gdk-pixbuf gtk2 ];
+
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix
index 9eea18f79d60..7c47eb9c4d99 100644
--- a/pkgs/applications/window-managers/vwm/default.nix
+++ b/pkgs/applications/window-managers/vwm/default.nix
@@ -1,11 +1,21 @@
-{lib, stdenv, fetchurl, ncurses, pkg-config, glib, libviper, libpseudo, gpm,
-libvterm}:
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+, pkg-config
+, glib
+, libviper
+, libpseudo
+, gpm
+, libvterm
+}:
stdenv.mkDerivation rec {
- name = "vwm-2.1.3";
+ pname = "vwm";
+ version = "2.1.3";
src = fetchurl {
- url = "mirror://sourceforge/vwm/${name}.tar.gz";
+ url = "mirror://sourceforge/vwm/vwm-${version}.tar.gz";
sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf";
};
diff --git a/pkgs/applications/window-managers/wio/default.nix b/pkgs/applications/window-managers/wio/default.nix
index 03ec26f6fb8b..86bbfd3dc72d 100644
--- a/pkgs/applications/window-managers/wio/default.nix
+++ b/pkgs/applications/window-managers/wio/default.nix
@@ -1,39 +1,40 @@
{ lib
, stdenv
-, fetchFromBitbucket
-, meson
-, ninja
-, pkg-config
+, fetchFromGitHub
, alacritty
, cage
, cairo
, libxkbcommon
+, makeWrapper
+, mesa
+, meson
+, ninja
+, pkg-config
, udev
, wayland
, wayland-protocols
, wlroots
-, mesa
, xwayland
-, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "wio";
- version = "0.0.0+unstable=2021-06-27";
+ version = "0.pre+unstable=2021-06-27";
- src = fetchFromBitbucket {
- owner = "anderson_torres";
+ src = fetchFromGitHub {
+ owner = "museoa";
repo = pname;
rev = "e0b258777995055d69e61a0246a6a64985743f42";
sha256 = "sha256-8H9fOnZsNjjq9XvOv68F4RRglGNluxs5/jp/h4ROLiI=";
};
nativeBuildInputs = [
+ makeWrapper
meson
ninja
pkg-config
- makeWrapper
];
+
buildInputs = [
cairo
libxkbcommon
@@ -59,7 +60,7 @@ stdenv.mkDerivation rec {
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
- platforms = with platforms; linux;
+ inherit (wayland.meta) platforms;
};
passthru.providedSessions = [ "wio" ];
diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix
index 99cc1259023a..9fe9aa457987 100644
--- a/pkgs/build-support/agda/default.nix
+++ b/pkgs/build-support/agda/default.nix
@@ -49,6 +49,7 @@ let
, meta
, buildInputs ? []
, everythingFile ? "./Everything.agda"
+ , includePaths ? []
, libraryName ? pname
, libraryFile ? "${libraryName}.agda-lib"
, buildPhase ? null
@@ -57,6 +58,7 @@ let
, ...
}: let
agdaWithArgs = withPackages (builtins.filter (p: p ? isAgdaDerivation) buildInputs);
+ includePathArgs = concatMapStrings (path: "-i" + path + " ") (includePaths ++ [(dirOf everythingFile)]);
in
{
inherit libraryName libraryFile;
@@ -67,7 +69,7 @@ let
buildPhase = if buildPhase != null then buildPhase else ''
runHook preBuild
- agda -i ${dirOf everythingFile} ${everythingFile}
+ agda ${includePathArgs} ${everythingFile}
runHook postBuild
'';
@@ -77,7 +79,12 @@ let
find -not \( -path ${everythingFile} -or -path ${lib.interfaceFile everythingFile} \) -and \( ${concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions)} \) -exec cp -p --parents -t "$out" {} +
runHook postInstall
'';
+
meta = if meta.broken or false then meta // { hydraPlatforms = lib.platforms.none; } else meta;
+
+ # Retrieve all packages from the finished package set that have the current package as a dependency and build them
+ passthru.tests = with builtins;
+ lib.filterAttrs (name: pkg: self.lib.isUnbrokenAgdaPackage pkg && elem pname (map (pkg: pkg.pname) pkg.buildInputs)) self;
};
in
{
diff --git a/pkgs/build-support/agda/lib.nix b/pkgs/build-support/agda/lib.nix
index 976151a8283c..80a0974192bb 100644
--- a/pkgs/build-support/agda/lib.nix
+++ b/pkgs/build-support/agda/lib.nix
@@ -7,4 +7,9 @@
* interfaceFile "src/Everything.lagda.tex" == "src/Everything.agdai"
*/
interfaceFile = agdaFile: lib.head (builtins.match ''(.*\.)l?agda(\.(md|org|rst|tex))?'' agdaFile) + "agdai";
+
+ /* Takes an arbitrary derivation and says whether it is an agda library package
+ * that is not marked as broken.
+ */
+ isUnbrokenAgdaPackage = pkg: pkg.isAgdaDerivation or false && !pkg.meta.broken;
}
diff --git a/pkgs/build-support/alternatives/blas/default.nix b/pkgs/build-support/alternatives/blas/default.nix
index 2fab523f6a94..8917784bc6c3 100644
--- a/pkgs/build-support/alternatives/blas/default.nix
+++ b/pkgs/build-support/alternatives/blas/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation {
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension}
'' else if stdenv.hostPlatform.isDarwin then ''
install_name_tool \
- -id libblas${canonicalExtension} \
+ -id $out/lib/libblas${canonicalExtension} \
-add_rpath ${lib.getLib blasProvider}/lib \
$out/lib/libblas${canonicalExtension}
'' else "") + ''
@@ -114,7 +114,7 @@ EOF
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libcblas${canonicalExtension}
'' else if stdenv.hostPlatform.isDarwin then ''
install_name_tool \
- -id libcblas${canonicalExtension} \
+ -id $out/lib/libcblas${canonicalExtension} \
-add_rpath ${lib.getLib blasProvider}/lib \
$out/lib/libcblas${canonicalExtension}
'' else "") + ''
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index a759726eb104..8a2b2324574b 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -1,5 +1,4 @@
{ lib
-
, bash
, binutils-unwrapped
, coreutils
@@ -27,7 +26,7 @@ rec {
];
};
- extract = { name, src }: pkgs.runCommand "${name}-extracted" {
+ extract = args@{ name ? "${args.pname}-${args.version}", src, ... }: pkgs.runCommand "${name}-extracted" {
buildInputs = [ appimage-exec ];
} ''
appimage-exec.sh -x $out ${src}
@@ -38,7 +37,7 @@ rec {
extractType2 = extract;
wrapType1 = wrapType2;
- wrapAppImage = args@{ name, src, extraPkgs, ... }: buildFHSUserEnv
+ wrapAppImage = args@{ name ? "${args.pname}-${args.version}", src, extraPkgs, ... }: buildFHSUserEnv
(defaultFhsEnvArgs // {
inherit name;
@@ -46,9 +45,9 @@ rec {
++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
runScript = "appimage-exec.sh -w ${src} --";
- } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage))));
+ } // (removeAttrs args ([ "pname" "version" ] ++ (builtins.attrNames (builtins.functionArgs wrapAppImage)))));
- wrapType2 = args@{ name, src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage
+ wrapType2 = args@{ name ? "${args.pname}-${args.version}", src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage
(args // {
inherit name extraPkgs;
src = extract { inherit name src; };
@@ -175,7 +174,7 @@ rec {
harfbuzz
e2fsprogs
- libgpgerror
+ libgpg-error
keyutils.lib
libjack2
fribidi
diff --git a/pkgs/build-support/bintools-wrapper/add-hardening.sh b/pkgs/build-support/bintools-wrapper/add-hardening.sh
index 4d289a334b77..0a2b2509a826 100644
--- a/pkgs/build-support/bintools-wrapper/add-hardening.sh
+++ b/pkgs/build-support/bintools-wrapper/add-hardening.sh
@@ -37,7 +37,11 @@ fi
for flag in "${!hardeningEnableMap[@]}"; do
case $flag in
pie)
- if [[ ! ("$*" =~ " -shared " || "$*" =~ " -static " || "$*" =~ " -r " || "$*" =~ " -Ur " || "$*" =~ " -i ") ]]; then
+ if [[ ! (" $* " =~ " -shared " \
+ || " $* " =~ " -static " \
+ || " $* " =~ " -r " \
+ || " $* " =~ " -Ur " \
+ || " $* " =~ " -i ") ]]; then
if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi
hardeningLDFlags+=('-pie')
fi
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 3d64639d33fa..53f367b9b84d 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -324,6 +324,16 @@ stdenv.mkDerivation {
echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
''
+ ##
+ ## GNU specific extra strip flags
+ ##
+
+ # TODO(@sternenseemann): make a generic strip wrapper?
+ + optionalString (bintools.isGNU or false) ''
+ wrap ${targetPrefix}strip ${./gnu-binutils-strip-wrapper.sh} \
+ "${bintools_bin}/bin/${targetPrefix}strip"
+ ''
+
###
### Remove LC_UUID
###
diff --git a/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh b/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh
new file mode 100644
index 000000000000..5b5136e3d14c
--- /dev/null
+++ b/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh
@@ -0,0 +1,4 @@
+#! @shell@
+# shellcheck shell=bash
+
+exec @prog@ --enable-deterministic-archives "$@"
diff --git a/pkgs/build-support/build-dotnet-module/default.nix b/pkgs/build-support/build-dotnet-module/default.nix
new file mode 100644
index 000000000000..6a7b70e070b0
--- /dev/null
+++ b/pkgs/build-support/build-dotnet-module/default.nix
@@ -0,0 +1,192 @@
+{ lib, stdenvNoCC, linkFarmFromDrvs, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, cacert }:
+
+{ name ? "${args.pname}-${args.version}"
+, enableParallelBuilding ? true
+, doCheck ? false
+# Flags to pass to `makeWrapper`. This is done to avoid double wrapping.
+, makeWrapperArgs ? []
+
+# Flags to pass to `dotnet restore`.
+, dotnetRestoreFlags ? []
+# Flags to pass to `dotnet build`.
+, dotnetBuildFlags ? []
+# Flags to pass to `dotnet test`, if running tests is enabled.
+, dotnetTestFlags ? []
+# Flags to pass to `dotnet install`.
+, dotnetInstallFlags ? []
+# Flags to pass to dotnet in all phases.
+, dotnetFlags ? []
+
+# The binaries that should get installed to `$out/bin`, relative to `$out/lib/$pname/`. These get wrapped accordingly.
+# Unfortunately, dotnet has no method for doing this automatically.
+# If unset, all executables in the projects root will get installed. This may cause bloat!
+, executables ? null
+# The packages project file, which contains instructions on how to compile it.
+, projectFile ? null
+# The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched.
+# This can be generated using the `nuget-to-nix` tool.
+, nugetDeps ? null
+# Libraries that need to be available at runtime should be passed through this.
+# These get wrapped into `LD_LIBRARY_PATH`.
+, runtimeDeps ? []
+
+# Tests to disable. This gets passed to `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all frameworks.
+# See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#filter-option-details for more details.
+, disabledTests ? []
+# The project file to run unit tests against. This is usually the regular project file, but sometimes it needs to be manually set.
+, testProjectFile ? projectFile
+
+# The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc.
+, buildType ? "Release"
+# The dotnet SDK to use.
+, dotnet-sdk ? dotnetCorePackages.sdk_5_0
+# The dotnet runtime to use.
+, dotnet-runtime ? dotnetCorePackages.runtime_5_0
+# The dotnet SDK to run tests against. This can differentiate from the SDK compiled against.
+, dotnet-test-sdk ? dotnet-sdk
+, ... } @ args:
+
+assert projectFile == null -> throw "Defining the `projectFile` attribute is required. This is usually an `.csproj`, or `.sln` file.";
+
+# TODO: Automatically generate a dependency file when a lockfile is present.
+# This file is unfortunately almost never present, as Microsoft recommands not to push this in upstream repositories.
+assert nugetDeps == null -> throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated using the `nuget-to-nix` tool.";
+
+let
+ _nugetDeps = linkFarmFromDrvs "${name}-nuget-deps" (import nugetDeps {
+ fetchNuGet = { name, version, sha256 }: fetchurl {
+ name = "nuget-${name}-${version}.nupkg";
+ url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+ inherit sha256;
+ };
+ });
+
+ nuget-source = stdenvNoCC.mkDerivation rec {
+ name = "${args.pname}-nuget-source";
+ meta.description = "A Nuget source with the dependencies for ${args.pname}";
+
+ nativeBuildInputs = [ dotnetPackages.Nuget xml2 ];
+ buildCommand = ''
+ export HOME=$(mktemp -d)
+ mkdir -p $out/{lib,share}
+
+ nuget sources Add -Name nixos -Source "$out/lib"
+ nuget init "${_nugetDeps}" "$out/lib"
+
+ # Generates a list of all unique licenses' spdx ids.
+ find "$out/lib" -name "*.nuspec" -exec sh -c \
+ "xml2 < {} | grep "license=" | cut -d'=' -f2" \; | sort -u > $out/share/licenses
+ '';
+ } // { # This is done because we need data from `$out` for `meta`. We have to use overrides as to not hit infinite recursion.
+ meta.licence = let
+ depLicenses = lib.splitString "\n" (builtins.readFile "${nuget-source}/share/licenses");
+ getLicence = spdx: lib.filter (license: license.spdxId or null == spdx) (builtins.attrValues lib.licenses);
+ in (lib.flatten (lib.forEach depLicenses (spdx:
+ if (getLicence spdx) != [] then (getLicence spdx) else [] ++ lib.optional (spdx != "") spdx
+ )));
+ };
+
+ package = stdenvNoCC.mkDerivation (args // {
+ inherit buildType;
+
+ nativeBuildInputs = args.nativeBuildInputs or [] ++ [ dotnet-sdk cacert makeWrapper ];
+
+ # Stripping breaks the executable
+ dontStrip = true;
+
+ DOTNET_NOLOGO = true; # This disables the welcome message.
+ DOTNET_CLI_TELEMETRY_OPTOUT = true;
+
+ configurePhase = args.configurePhase or ''
+ runHook preConfigure
+
+ export HOME=$(mktemp -d)
+
+ dotnet restore "$projectFile" \
+ ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ --source "${nuget-source}/lib" \
+ "''${dotnetRestoreFlags[@]}" \
+ "''${dotnetFlags[@]}"
+
+ runHook postConfigure
+ '';
+
+ buildPhase = args.buildPhase or ''
+ runHook preBuild
+
+ dotnet build "$projectFile" \
+ -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
+ -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ -p:Version=${args.version} \
+ --configuration "$buildType" \
+ --no-restore \
+ "''${dotnetBuildFlags[@]}" \
+ "''${dotnetFlags[@]}"
+
+ runHook postBuild
+ '';
+
+ checkPhase = args.checkPhase or ''
+ runHook preCheck
+
+ ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$testProjectFile" \
+ -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ --configuration "$buildType" \
+ --no-build \
+ --logger "console;verbosity=normal" \
+ ${lib.optionalString (disabledTests != []) "--filter \"FullyQualifiedName!=${lib.concatStringsSep "|FullyQualifiedName!=" disabledTests}\""} \
+ "''${dotnetTestFlags[@]}" \
+ "''${dotnetFlags[@]}"
+
+ runHook postCheck
+ '';
+
+ installPhase = args.installPhase or ''
+ runHook preInstall
+
+ dotnet publish "$projectFile" \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ --output $out/lib/${args.pname} \
+ --configuration "$buildType" \
+ --no-build \
+ --no-self-contained \
+ "''${dotnetInstallFlags[@]}" \
+ "''${dotnetFlags[@]}"
+ '' + (if executables != null then ''
+ for executable in $executables; do
+ execPath="$out/lib/${args.pname}/$executable"
+
+ if [[ -f "$execPath" && -x "$execPath" ]]; then
+ makeWrapper "$execPath" "$out/bin/$(basename "$executable")" \
+ --set DOTNET_ROOT "${dotnet-runtime}" \
+ --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
+ "''${gappsWrapperArgs[@]}" \
+ "''${makeWrapperArgs[@]}"
+ else
+ echo "Specified binary \"$executable\" is either not an executable, or does not exist!"
+ exit 1
+ fi
+ done
+ '' else ''
+ for executable in $out/lib/${args.pname}/*; do
+ if [[ -f "$executable" && -x "$executable" && "$executable" != *"dll"* ]]; then
+ makeWrapper "$executable" "$out/bin/$(basename "$executable")" \
+ --set DOTNET_ROOT "${dotnet-runtime}" \
+ --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
+ "''${gappsWrapperArgs[@]}" \
+ "''${makeWrapperArgs[@]}"
+ fi
+ done
+ '') + ''
+ runHook postInstall
+ '';
+ });
+in
+ package
diff --git a/pkgs/build-support/build-dotnet-package/default.nix b/pkgs/build-support/build-dotnet-package/default.nix
index 440b10044f0f..16dfd694ed3d 100644
--- a/pkgs/build-support/build-dotnet-package/default.nix
+++ b/pkgs/build-support/build-dotnet-package/default.nix
@@ -3,7 +3,7 @@
attrsOrig @
{ baseName
, version
-, buildInputs ? []
+, nativeBuildInputs ? []
, xBuildFiles ? [ ]
, xBuildFlags ? [ "/p:Configuration=Release" ]
, outputFiles ? [ "bin/Release/*" ]
@@ -19,12 +19,12 @@ attrsOrig @
attrs = {
name = "${baseName}-${version}";
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [
- mono
- dotnetbuildhelpers
+ nativeBuildInputs = [
+ pkg-config
makeWrapper
- ] ++ buildInputs;
+ dotnetbuildhelpers
+ mono
+ ] ++ nativeBuildInputs;
configurePhase = ''
runHook preConfigure
@@ -87,7 +87,7 @@ attrsOrig @
then
echo "$dll already exported by a buildInputs, not re-exporting"
else
- ${dotnetbuildhelpers}/bin/create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll"
+ create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll"
fi
done
done
@@ -113,4 +113,4 @@ attrsOrig @
'';
};
in
- stdenv.mkDerivation (attrs // (builtins.removeAttrs attrsOrig [ "buildInputs" ] ))
+ stdenv.mkDerivation (attrs // (builtins.removeAttrs attrsOrig [ "nativeBuildInputs" ] ))
diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix
index c2186cf6bfa0..006fc2aff923 100644
--- a/pkgs/build-support/buildenv/default.nix
+++ b/pkgs/build-support/buildenv/default.nix
@@ -62,7 +62,7 @@ runCommand name
# and otherwise use `meta.outputsToInstall`. The attribute is guaranteed
# to exist in mkDerivation-created cases. The other cases (e.g. runCommand)
# aren't expected to have multiple outputs.
- (if drv.outputUnspecified or false
+ (if (! drv ? outputSpecified || ! drv.outputSpecified)
&& drv.meta.outputsToInstall or null != null
then map (outName: drv.${outName}) drv.meta.outputsToInstall
else [ drv ])
diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh
index 8e2fe6c407ea..e5d296f6c9c5 100644
--- a/pkgs/build-support/cc-wrapper/add-hardening.sh
+++ b/pkgs/build-support/cc-wrapper/add-hardening.sh
@@ -45,11 +45,12 @@ for flag in "${!hardeningEnableMap[@]}"; do
hardeningCFlags+=('-fstack-protector-strong' '--param' 'ssp-buffer-size=4')
;;
pie)
+ # NB: we do not use `+=` here, because PIE flags must occur before any PIC flags
if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling CFlags -fPIE >&2; fi
- hardeningCFlags+=('-fPIE')
- if [[ ! ("$*" =~ " -shared " || "$*" =~ " -static ") ]]; then
+ hardeningCFlags=('-fPIE' "${hardeningCFlags[@]}")
+ if [[ ! (" $* " =~ " -shared " || " $* " =~ " -static ") ]]; then
if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi
- hardeningCFlags+=('-pie')
+ hardeningCFlags=('-pie' "${hardeningCFlags[@]}")
fi
;;
pic)
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 4bda4d2a5c23..dcfa5ec593d1 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -31,12 +31,15 @@
, writeText
, writeTextDir
, writePython3
-, system
-, # Note: This is the cross system we're compiling for
}:
let
+ inherit (lib)
+ escapeShellArgs
+ toList
+ ;
+
mkDbExtraCommand = contents:
let
contentsList = if builtins.isList contents then contents else [ contents ];
@@ -191,13 +194,13 @@ rec {
, postMount ? ""
, postUmount ? ""
}:
- let
- result = vmTools.runInLinuxVM (
+ vmTools.runInLinuxVM (
runCommand name
{
preVM = vmTools.createEmptyImage {
size = diskSize;
fullName = "docker-run-disk";
+ destination = "./image";
};
inherit fromImage fromImageName fromImageTag;
@@ -278,12 +281,6 @@ rec {
${postUmount}
'');
- in
- runCommand name { } ''
- mkdir -p $out
- cd ${result}
- cp layer.tar json VERSION $out
- '';
exportImage = { name ? fromImage.name, fromImage, fromImageName ? null, fromImageTag ? null, diskSize ? 1024 }:
runWithOverlay {
@@ -291,7 +288,13 @@ rec {
postMount = ''
echo "Packing raw image..."
- tar -C mnt --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cf $out .
+ tar -C mnt --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cf $out/layer.tar .
+ '';
+
+ postUmount = ''
+ mv $out/layer.tar .
+ rm -rf $out
+ mv layer.tar $out
'';
};
@@ -402,7 +405,7 @@ rec {
preMount = lib.optionalString (contents != null && contents != [ ]) ''
echo "Adding contents..."
- for item in ${toString contents}; do
+ for item in ${escapeShellArgs (map (c: "${c}") (toList contents))}; do
echo "Adding $item..."
rsync -a${if keepContentsDirlinks then "K" else "k"} --chown=0:0 $item/ layer/
done
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index c66aca56fea0..141c2ba0ea45 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -95,6 +95,15 @@ rec {
finalImageTag = "2.2.1";
finalImageName = "nix";
};
+ # Same example, but re-fetches every time the fetcher implementation changes.
+ # NOTE: Only use this for testing, or you'd be wasting a lot of time, network and space.
+ testNixFromDockerHub = pkgs.invalidateFetcherByDrvHash pullImage {
+ imageName = "nixos/nix";
+ imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357";
+ sha256 = "19fw0n3wmddahzr20mhdqv6jkjn1kanh6n2mrr08ai53dr8ph5n7";
+ finalImageTag = "2.2.1";
+ finalImageName = "nix";
+ };
# 5. example of multiple contents, emacs and vi happily coexisting
editors = buildImage {
@@ -541,4 +550,19 @@ rec {
config.Cmd = [ "hello" ];
includeStorePaths = false;
};
+
+ # Example export of the bash image
+ exportBash = pkgs.dockerTools.exportImage { fromImage = bash; };
+
+ build-image-with-path = buildImage {
+ name = "build-image-with-path";
+ tag = "latest";
+ contents = [ pkgs.bashInteractive ./test-dummy ];
+ };
+
+ layered-image-with-path = pkgs.dockerTools.streamLayeredImage {
+ name = "layered-image-with-path";
+ tag = "latest";
+ contents = [ pkgs.bashInteractive ./test-dummy ];
+ };
}
diff --git a/pkgs/build-support/docker/test-dummy/hello.txt b/pkgs/build-support/docker/test-dummy/hello.txt
new file mode 100644
index 000000000000..495cc9fa8f9c
--- /dev/null
+++ b/pkgs/build-support/docker/test-dummy/hello.txt
@@ -0,0 +1 @@
+Hello there!
diff --git a/pkgs/build-support/fetchfirefoxaddon/default.nix b/pkgs/build-support/fetchfirefoxaddon/default.nix
index 127f32dd61b6..79014fd23c48 100644
--- a/pkgs/build-support/fetchfirefoxaddon/default.nix
+++ b/pkgs/build-support/fetchfirefoxaddon/default.nix
@@ -2,19 +2,26 @@
{
name
-, url
+, url ? null
, md5 ? ""
, sha1 ? ""
, sha256 ? ""
, sha512 ? ""
, fixedExtid ? null
, hash ? ""
+, src ? ""
}:
-stdenv.mkDerivation rec {
-
- inherit name;
+let
extid = if fixedExtid == null then "nixos@${name}" else fixedExtid;
+ source = if url == null then src else fetchurl {
+ url = url;
+ inherit md5 sha1 sha256 sha512 hash;
+ };
+in
+stdenv.mkDerivation {
+ inherit name;
+
passthru = {
inherit extid;
};
@@ -26,16 +33,12 @@ stdenv.mkDerivation rec {
UUID="${extid}"
mkdir -p "$out/$UUID"
- unzip -q ${src} -d "$out/$UUID"
+ unzip -q ${source} -d "$out/$UUID"
NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}, "browser_specific_settings":{"gecko":{"id": "${extid}"}}}' "$out/$UUID/manifest.json")
echo "$NEW_MANIFEST" > "$out/$UUID/manifest.json"
cd "$out/$UUID"
zip -r -q -FS "$out/$UUID.xpi" *
rm -r "$out/$UUID"
'';
- src = fetchurl {
- url = url;
- inherit md5 sha1 sha256 sha512 hash;
- };
nativeBuildInputs = [ coreutils unzip zip jq ];
}
diff --git a/pkgs/build-support/fetchfirefoxaddon/tests.nix b/pkgs/build-support/fetchfirefoxaddon/tests.nix
new file mode 100644
index 000000000000..c407d0e74b82
--- /dev/null
+++ b/pkgs/build-support/fetchfirefoxaddon/tests.nix
@@ -0,0 +1,21 @@
+{ invalidateFetcherByDrvHash, fetchFirefoxAddon, fetchurl, ... }:
+
+{
+ simple = invalidateFetcherByDrvHash fetchFirefoxAddon {
+ name = "image-search-options";
+ # Chosen because its only 147KB
+ url = "https://addons.mozilla.org/firefox/downloads/file/3059971/image_search_options-3.0.12-fx.xpi";
+ sha256 = "sha256-H73YWX/DKxvhEwKpWOo7orAQ7c/rQywpljeyxYxv0Gg=";
+ };
+ overidden-source =
+ let
+ image-search-options = fetchurl {
+ url = "https://addons.mozilla.org/firefox/downloads/file/3059971/image_search_options-3.0.12-fx.xpi";
+ sha256 = "sha256-H73YWX/DKxvhEwKpWOo7orAQ7c/rQywpljeyxYxv0Gg=";
+ };
+ in
+ invalidateFetcherByDrvHash fetchFirefoxAddon {
+ name = "image-search-options";
+ src = image-search-options;
+ };
+}
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 3222866dc781..3a05008dacb5 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -12,7 +12,7 @@
else "";
in "${if matched == null then base else builtins.head matched}${appendShort}";
in
-{ url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? deepClone
+{ url, rev ? "HEAD", md5 ? "", sha256 ? "", hash ? "", leaveDotGit ? deepClone
, fetchSubmodules ? true, deepClone ? false
, branchName ? null
, name ? urlToName url rev
@@ -21,6 +21,11 @@ in
postFetch ? ""
, preferLocalBuild ? true
, fetchLFS ? false
+, # Shell code to build a netrc file for BASIC auth
+ netrcPhase ? null
+, # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes)
+ # needed for netrcPhase
+ netrcImpureEnvVars ? []
}:
/* NOTE:
@@ -49,6 +54,8 @@ assert deepClone -> leaveDotGit;
if md5 != "" then
throw "fetchgit does not support md5 anymore, please use sha256"
+else if hash != "" && sha256 != "" then
+ throw "Only one of sha256 or hash can be set"
else
stdenvNoCC.mkDerivation {
inherit name;
@@ -58,16 +65,28 @@ stdenvNoCC.mkDerivation {
nativeBuildInputs = [ git ]
++ lib.optionals fetchLFS [ git-lfs ];
- outputHashAlgo = "sha256";
+ outputHashAlgo = if hash != "" then null else "sha256";
outputHashMode = "recursive";
- outputHash = sha256;
+ outputHash = if hash != "" then
+ hash
+ else if sha256 != "" then
+ sha256
+ else
+ lib.fakeSha256;
inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName postFetch;
+ postHook = if netrcPhase == null then null else ''
+ ${netrcPhase}
+ # required that git uses the netrc file
+ mv {,.}netrc
+ export HOME=$PWD
+ '';
+
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
- impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
- "GIT_PROXY_COMMAND" "SOCKS_SERVER"
+ impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ netrcImpureEnvVars ++ [
+ "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER"
];
inherit preferLocalBuild;
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 6e869ab5e437..10b402de6145 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -17,6 +17,10 @@ branchName=$NIX_PREFETCH_GIT_BRANCH_NAME
out=${out:-}
http_proxy=${http_proxy:-}
+# allow overwritting cacert's ca-bundle.crt with a custom one
+# this can be done by setting NIX_GIT_SSL_CAINFO and NIX_SSL_CERT_FILE enviroment variables for the nix-daemon
+GIT_SSL_CAINFO=${NIX_GIT_SSL_CAINFO:-$GIT_SSL_CAINFO}
+
# populated by clone_user_rev()
fullRev=
humanReadableRev=
diff --git a/pkgs/build-support/fetchgit/tests.nix b/pkgs/build-support/fetchgit/tests.nix
new file mode 100644
index 000000000000..6805473e2968
--- /dev/null
+++ b/pkgs/build-support/fetchgit/tests.nix
@@ -0,0 +1,10 @@
+{ invalidateFetcherByDrvHash, fetchgit, ... }:
+
+{
+ simple = invalidateFetcherByDrvHash fetchgit {
+ name = "nix-source";
+ url = "https://github.com/NixOS/nix";
+ rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
+ sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
+ };
+}
diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix
index 3f355d10f8a1..ea95bbb47931 100644
--- a/pkgs/build-support/fetchgithub/default.nix
+++ b/pkgs/build-support/fetchgithub/default.nix
@@ -2,7 +2,7 @@
{ owner, repo, rev, name ? "source"
, fetchSubmodules ? false, leaveDotGit ? null
-, deepClone ? false, private ? false
+, deepClone ? false, private ? false, forceFetchGit ? false
, githubBase ? "github.com", varPrefix ? null
, ... # For hash agility
}@args:
@@ -10,7 +10,7 @@ let
baseUrl = "https://${githubBase}/${owner}/${repo}";
passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "private" "githubBase" "varPrefix" ];
varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
- useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone;
+ useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit;
# We prefer fetchzip in cases we don't need submodules as the hash
# is more stable in that case.
fetcher = if useFetchGit then fetchgit else fetchzip;
@@ -32,10 +32,8 @@ let
then {
inherit rev deepClone fetchSubmodules; url = "${baseUrl}.git";
} // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; }
- else ({ url = "${baseUrl}/archive/${rev}.tar.gz"; } // privateAttrs)
- ) // passthruAttrs // { inherit name; };
+ else { url = "${baseUrl}/archive/${rev}.tar.gz"; }
+ ) // privateAttrs // passthruAttrs // { inherit name; };
in
-assert private -> !useFetchGit;
-
fetcher fetcherArgs // { meta.homepage = baseUrl; inherit rev; }
diff --git a/pkgs/build-support/fetchgitlab/default.nix b/pkgs/build-support/fetchgitlab/default.nix
index 5b9dbd71c595..9ee0b3ca3686 100644
--- a/pkgs/build-support/fetchgitlab/default.nix
+++ b/pkgs/build-support/fetchgitlab/default.nix
@@ -1,7 +1,7 @@
{ fetchgit, fetchzip, lib }:
# gitlab example
-{ owner, repo, rev, domain ? "gitlab.com", name ? "source", group ? null
+{ owner, repo, rev, protocol ? "https", domain ? "gitlab.com", name ? "source", group ? null
, fetchSubmodules ? false, leaveDotGit ? false, deepClone ? false
, ... # For hash agility
} @ args:
@@ -17,10 +17,10 @@ let
fetcherArgs = (if useFetchGit then {
inherit rev deepClone fetchSubmodules leaveDotGit;
- url = "https://${domain}/${slug}.git";
+ url = "${protocol}://${domain}/${slug}.git";
} else {
- url = "https://${domain}/api/v4/projects/${escapedSlug}/repository/archive.tar.gz?sha=${escapedRev}";
+ url = "${protocol}://${domain}/api/v4/projects/${escapedSlug}/repository/archive.tar.gz?sha=${escapedRev}";
}) // passthruAttrs // { inherit name; };
in
-fetcher fetcherArgs // { meta.homepage = "https://${domain}/${slug}/"; inherit rev; }
+fetcher fetcherArgs // { meta.homepage = "${protocol}://${domain}/${slug}/"; inherit rev; }
diff --git a/pkgs/build-support/fetchnextcloudapp/default.nix b/pkgs/build-support/fetchnextcloudapp/default.nix
new file mode 100644
index 000000000000..7fe5b35e2596
--- /dev/null
+++ b/pkgs/build-support/fetchnextcloudapp/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, gnutar, findutils, fetchurl, ... }:
+{ name
+, url
+, version
+, sha256
+, patches ? [ ]
+}:
+stdenv.mkDerivation {
+ name = "nc-app-${name}";
+ inherit version patches;
+
+ src = fetchurl {
+ inherit url sha256;
+ };
+
+ nativeBuildInputs = [
+ gnutar
+ findutils
+ ];
+
+ unpackPhase = ''
+ tar -xzpf $src
+ '';
+
+ installPhase = ''
+ approot="$(dirname $(dirname $(find -path '*/appinfo/info.xml' | head -n 1)))"
+
+ if [ -d "$approot" ];
+ then
+ mv "$approot/" $out
+ chmod -R a-w $out
+ else
+ echo "Could not find appinfo/info.xml"
+ exit 1;
+ fi
+ '';
+}
diff --git a/pkgs/build-support/fetchpatch/tests.nix b/pkgs/build-support/fetchpatch/tests.nix
new file mode 100644
index 000000000000..4240b325d656
--- /dev/null
+++ b/pkgs/build-support/fetchpatch/tests.nix
@@ -0,0 +1,8 @@
+{ invalidateFetcherByDrvHash, fetchpatch, ... }:
+
+{
+ simple = invalidateFetcherByDrvHash fetchpatch {
+ url = "https://github.com/facebook/zstd/pull/2724/commits/e1f85dbca3a0ed5ef06c8396912a0914db8dea6a.patch";
+ sha256 = "sha256-PuYAqnJWAE+L9bsroOnnBGJhERW8LHrGSLtIEkKU9vg=";
+ };
+}
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 8dc4f4207b6c..3ab4be4d8be2 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -2,7 +2,7 @@
# Content-addressable Nix mirrors.
hashedMirrors = [
- "http://tarballs.nixos.org"
+ "https://tarballs.nixos.org"
];
# Mirrors for mirror://site/filename URIs, where "site" is
@@ -11,7 +11,7 @@
luarocks = [
"https://luarocks.org/"
"https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/"
- "http://luafr.org/moonrocks/"
+ "https://luafr.org/moonrocks/"
"http://luarocks.logiceditor.com/rocks/"
];
@@ -41,21 +41,22 @@
# mirror.
"https://ftpmirror.gnu.org/"
- "http://ftp.nluug.nl/pub/gnu/"
- "http://mirrors.kernel.org/gnu/"
- "http://mirror.ibcp.fr/pub/gnu/"
- "http://mirror.dogado.de/gnu/"
- "http://mirror.tochlab.net/pub/gnu/"
- "ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/"
+ "https://ftp.nluug.nl/pub/gnu/"
+ "https://mirrors.kernel.org/gnu/"
+ "https://mirror.ibcp.fr/pub/gnu/"
+ "https://mirror.dogado.de/gnu/"
+ "https://mirror.tochlab.net/pub/gnu/"
# This one is the master repository, and thus it's always up-to-date.
- "http://ftp.gnu.org/pub/gnu/"
+ "https://ftp.gnu.org/pub/gnu/"
+
+ "ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/"
];
# GCC.
gcc = [
"https://bigsearcher.com/mirrors/gcc/"
- "http://mirror.koddos.net/gcc/"
+ "https://mirror.koddos.net/gcc/"
"ftp://ftp.nluug.nl/mirror/languages/gcc/"
"ftp://ftp.fu-berlin.de/unix/languages/gcc/"
"ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/"
@@ -65,18 +66,16 @@
# GnuPG.
gnupg = [
"https://gnupg.org/ftp/gcrypt/"
+ "https://mirrors.dotsrc.org/gcrypt/"
+ "https://ftp.heanet.ie/mirrors/ftp.gnupg.org/gcrypt/"
+ "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/"
"http://www.ring.gr.jp/pub/net/"
- "http://mirrors.dotsrc.org/gcrypt/"
- "http://ftp.heanet.ie/mirrors/ftp.gnupg.org/gcrypt/"
- "http://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/"
];
# kernel.org's /pub (/pub/{linux,software}) tree.
kernel = [
- "http://cdn.kernel.org/pub/"
- "http://ramses.wh2.tu-dresden.de/pub/mirrors/kernel.org/"
+ "https://cdn.kernel.org/pub/"
"http://linux-kernel.uio.no/pub/"
- "http://kernel.osuosl.org/pub/"
"ftp://ftp.funet.fi/pub/mirrors/ftp.kernel.org/pub/"
];
@@ -85,52 +84,46 @@
"https://download.kde.org/download.php?url="
"https://ftp.gwdg.de/pub/linux/kde/"
"https://mirrors.ocf.berkeley.edu/kde/"
- "http://mirrors.mit.edu/kde/"
+ "https://mirrors.mit.edu/kde/"
"https://mirrors.ustc.edu.cn/kde/"
- "http://ftp.funet.fi/pub/mirrors/ftp.kde.org/pub/kde/"
+ "https://ftp.funet.fi/pub/mirrors/ftp.kde.org/pub/kde/"
];
# Gentoo files.
gentoo = [
- "http://ftp.snt.utwente.nl/pub/os/linux/gentoo/"
- "http://distfiles.gentoo.org/"
- "ftp://mirrors.kernel.org/gentoo/"
+ "https://ftp.snt.utwente.nl/pub/os/linux/gentoo/"
+ "https://distfiles.gentoo.org/"
+ "https://mirrors.kernel.org/gentoo/"
];
savannah = [
# Mirrors from https://download-mirror.savannah.gnu.org/releases/00_MIRRORS.html
- "http://mirror.easyname.at/nongnu/"
+ "https://mirror.easyname.at/nongnu/"
+ "https://savannah.c3sl.ufpr.br/"
+ "https://mirror.csclub.uwaterloo.ca/nongnu/"
+ "https://mirror.cedia.org.ec/nongnu/"
+ "https://ftp.igh.cnrs.fr/pub/nongnu/"
+ "https://mirror6.layerjet.com/nongnu"
+ "https://mirror.netcologne.de/savannah/"
+ "https://ftp.cc.uoc.gr/mirrors/nongnu.org/"
+ "https://nongnu.uib.no/"
+ "https://ftp.acc.umu.se/mirror/gnu.org/savannah/"
"http://mirror2.klaus-uwe.me/nongnu/"
- "http://savannah.c3sl.ufpr.br/"
- "http://mirror.csclub.uwaterloo.ca/nongnu/"
- "http://mirror.cedia.org.ec/nongnu/"
- "http://ftp.igh.cnrs.fr/pub/nongnu/"
- "http://mirror6.layerjet.com/nongnu"
- "http://mirror.netcologne.de/savannah/"
- "http://ftp.cc.uoc.gr/mirrors/nongnu.org/"
- "http://nongnu.uib.no/"
"http://mirrors.fe.up.pt/pub/nongnu/"
- "http://ftp.acc.umu.se/mirror/gnu.org/savannah/"
"http://ftp.twaren.net/Unix/NonGNU/"
- "http://ftp.yzu.edu.tw/pub/nongnu/"
- "http://mirror.rackdc.com/savannah/"
"http://savannah-nongnu-org.ip-connect.vn.ua/"
"http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/"
"http://gnu.mirrors.pair.com/savannah/savannah/"
"ftp://mirror.easyname.at/nongnu/"
"ftp://mirror2.klaus-uwe.me/nongnu/"
- "ftp://savannah.c3sl.ufpr.br/savannah-nongnu/"
"ftp://mirror.csclub.uwaterloo.ca/nongnu/"
- "ftp://mirror.cedia.org.ec/nongnu"
"ftp://ftp.igh.cnrs.fr/pub/nongnu/"
"ftp://mirror.netcologne.de/savannah/"
"ftp://nongnu.uib.no/pub/nongnu/"
"ftp://mirrors.fe.up.pt/pub/nongnu/"
"ftp://ftp.twaren.net/Unix/NonGNU/"
- "ftp://ftp.yzu.edu.tw/pub/nongnu/"
"ftp://savannah-nongnu-org.ip-connect.vn.ua/mirror/savannah.nongnu.org/"
"ftp://ftp.mirrorservice.org/sites/download.savannah.gnu.org/releases/"
- "ftp://spinellicreations.com/gnu_dot_org_savannah_mirror/"
];
samba = [
@@ -140,8 +133,8 @@
# BitlBee mirrors, see https://www.bitlbee.org/main.php/mirrors.html .
bitlbee = [
- "http://get.bitlbee.org/"
- "http://ftp.snt.utwente.nl/pub/software/bitlbee/"
+ "https://get.bitlbee.org/"
+ "https://ftp.snt.utwente.nl/pub/software/bitlbee/"
"http://bitlbee.intergenia.de/"
];
@@ -150,109 +143,92 @@
"https://www.imagemagick.org/download/"
"https://mirror.checkdomain.de/imagemagick/"
"https://ftp.nluug.nl/ImageMagick/"
- "ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/" # also contains older versions removed from most mirrors
- "http://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/"
- "ftp://ftp.imagemagick.org/pub/ImageMagick/"
- "http://ftp.fifi.org/ImageMagick/"
- "ftp://ftp.fifi.org/ImageMagick/"
+ "https://ftp.sunet.se/mirror/imagemagick.org/ftp/"
+ "ftp://ftp.sunet.se/mirror/imagemagick.org/ftp/" # also contains older versions removed from most mirrors
];
# CPAN mirrors.
cpan = [
"https://cpan.metacpan.org/"
"https://cpan.perl.org/"
- "http://backpan.perl.org/" # for old releases
+ "https://backpan.perl.org/" # for old releases
];
# CentOS.
centos = [
- "http://mirror.centos.org/centos/"
# For old releases
- "http://vault.centos.org/"
+ "https://vault.centos.org/"
"https://archive.kernel.org/centos-vault/"
- "http://ftp.jaist.ac.jp/pub/Linux/CentOS-vault/"
- "http://mirrors.aliyun.com/centos-vault/"
+ "https://ftp.jaist.ac.jp/pub/Linux/CentOS-vault/"
+ "https://mirrors.aliyun.com/centos-vault/"
"https://mirror.chpc.utah.edu/pub/vault.centos.org/"
"https://mirror.math.princeton.edu/pub/centos-vault/"
"https://mirrors.tripadvisor.com/centos-vault/"
+ "http://mirror.centos.org/centos/"
];
# Debian.
debian = [
- "http://httpredir.debian.org/debian/"
+ "https://httpredir.debian.org/debian/"
+ "https://ftp.debian.org/debian/"
"ftp://ftp.de.debian.org/debian/"
"ftp://ftp.fr.debian.org/debian/"
"ftp://ftp.nl.debian.org/debian/"
"ftp://ftp.ru.debian.org/debian/"
- "http://ftp.debian.org/debian/"
"http://archive.debian.org/debian-archive/debian/"
"ftp://ftp.funet.fi/pub/mirrors/ftp.debian.org/debian/"
];
# Ubuntu.
ubuntu = [
- "http://nl.archive.ubuntu.com/ubuntu/"
+ "https://nl.archive.ubuntu.com/ubuntu/"
+ "https://old-releases.ubuntu.com/ubuntu/"
"http://de.archive.ubuntu.com/ubuntu/"
"http://archive.ubuntu.com/ubuntu/"
- "http://old-releases.ubuntu.com/ubuntu/"
];
# Fedora (please only add full mirrors that carry old Fedora distributions as well).
# See: https://mirrors.fedoraproject.org/publiclist (but not all carry old content).
fedora = [
- "http://archives.fedoraproject.org/pub/fedora/"
- "http://fedora.osuosl.org/"
+ "https://archives.fedoraproject.org/pub/fedora/"
+ "https://fedora.osuosl.org/"
+ "https://ftp.funet.fi/pub/mirrors/ftp.redhat.com/pub/fedora/"
+ "https://ftp.linux.cz/pub/linux/fedora/"
+ "https://archives.fedoraproject.org/pub/archive/fedora/"
"http://ftp.nluug.nl/pub/os/Linux/distr/fedora/"
- "http://ftp.funet.fi/pub/mirrors/ftp.redhat.com/pub/fedora/"
- "http://fedora.bhs.mirrors.ovh.net/"
"http://mirror.csclub.uwaterloo.ca/fedora/"
- "http://ftp.linux.cz/pub/linux/fedora/"
- "http://ftp.heanet.ie/pub/fedora/"
"http://mirror.1000mbps.com/fedora/"
- "http://archives.fedoraproject.org/pub/archive/fedora/"
];
# openSUSE.
opensuse = [
- "http://opensuse.hro.nl/opensuse/distribution/"
- "http://ftp.funet.fi/pub/linux/mirrors/opensuse/distribution/"
- "http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/"
- "http://ftp.uni-kassel.de/opensuse/distribution/"
- "http://ftp.opensuse.org/pub/opensuse/distribution/"
- "http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/"
+ "https://opensuse.hro.nl/opensuse/distribution/"
+ "https://ftp.funet.fi/pub/linux/mirrors/opensuse/distribution/"
+ "https://ftp.opensuse.org/pub/opensuse/distribution/"
+ "https://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/"
"http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/"
- "http://opensuse.mirror.server4you.net/distribution/"
- "http://ftp.nsysu.edu.tw/Linux/OpenSuSE/distribution/"
];
- # Gnome (see http://ftp.gnome.org/pub/GNOME/MIRRORS).
gnome = [
# This one redirects to some mirror closeby, so it should be all you need.
- "http://download.gnome.org/"
+ "https://download.gnome.org/"
- "http://ftp.unina.it/pub/linux/GNOME/"
- "http://fr2.rpmfind.net/linux/gnome.org/"
- "ftp://ftp.dit.upm.es/pub/GNOME/"
- "http://ftp.acc.umu.se/pub/GNOME/"
- "http://ftp.belnet.be/mirror/ftp.gnome.org/"
- "http://linorg.usp.br/gnome/"
- "http://mirror.aarnet.edu.au/pub/GNOME/"
+ "https://fr2.rpmfind.net/linux/gnome.org/"
+ "https://ftp.acc.umu.se/pub/GNOME/"
+ "https://ftp.belnet.be/mirror/ftp.gnome.org/"
"ftp://ftp.cse.buffalo.edu/pub/Gnome/"
"ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/"
];
xfce = [
- "http://archive.xfce.org/"
- "http://mirror.netcologne.de/xfce/"
+ "https://archive.xfce.org/"
+ "https://mirror.netcologne.de/xfce/"
+ "https://archive.be.xfce.org/xfce/"
+ "https://archive.al-us.xfce.org/"
"http://archive.se.xfce.org/xfce/"
- "http://archive.be.xfce.org/xfce/"
"http://mirror.perldude.de/archive.xfce.org/"
"http://archive.be2.xfce.org/"
"http://ftp.udc.es/xfce/"
- "http://archive.al-us.xfce.org/"
- "http://mirror.yongbok.net/X11/xfce-mirror/"
- "http://mirrors.tummy.com/pub/archive.xfce.org/"
- "http://xfce.mirror.uber.com.au/"
];
# X.org.
@@ -261,24 +237,19 @@
"https://ftp.x.org/archive/"
];
- # Apache mirrors (see http://www.apache.org/mirrors/).
apache = [
"https://www-eu.apache.org/dist/"
"https://ftp.wayne.edu/apache/"
- "http://www.eu.apache.org/dist/"
- "ftp://ftp.fu-berlin.de/unix/www/apache/"
- "http://ftp.tudelft.nl/apache/"
- "http://mirror.cc.columbia.edu/pub/software/apache/"
"https://www.apache.org/dist/"
"https://archive.apache.org/dist/" # fallback for old releases
+ "https://apache.cs.uu.nl/"
+ "https://apache.cs.utah.edu/"
+ "http://ftp.tudelft.nl/apache/"
"ftp://ftp.funet.fi/pub/mirrors/apache.org/"
- "http://apache.cs.uu.nl/"
- "http://apache.cs.utah.edu/"
];
postgresql = [
- "http://ftp.postgresql.org/pub/"
- "ftp://ftp.postgresql.org/pub/"
+ "https://ftp.postgresql.org/pub/"
];
metalab = [
@@ -286,7 +257,7 @@
"ftp://ftp.metalab.unc.edu/pub/linux/"
];
- # Bioconductor mirrors (from http://bioconductor.org/about/mirrors)
+ # Bioconductor mirrors (from https://bioconductor.org/about/mirrors/)
# The commented-out ones don't seem to allow direct package downloads;
# they serve error messages that result in hash mismatches instead.
bioc = [
@@ -295,82 +266,80 @@
# http://bioconductor.fmrp.usp.br/
# http://mirror.aarnet.edu.au/pub/bioconductor/
# http://watson.nci.nih.gov/bioc_mirror/
+ "https://bioconductor.statistik.tu-dortmund.de/packages/"
+ "https://mirrors.ustc.edu.cn/bioc/"
"http://bioconductor.jp/packages/"
- "http://bioconductor.statistik.tu-dortmund.de/packages/"
- "http://mirrors.ustc.edu.cn/bioc/"
];
# Hackage mirrors
hackage = [
- "http://hackage.haskell.org/package/"
- "http://hdiff.luite.com/packages/archive/package/"
- "http://hackage.fpcomplete.com/package/"
- "http://objects-us-east-1.dream.io/hackage-mirror/package/"
+ "https://hackage.haskell.org/package/"
];
# Roy marples mirrors
roy = [
- "http://roy.marples.name/downloads/"
- "http://cflags.cc/roy/"
+ "https://roy.marples.name/downloads/"
+ "https://cflags.cc/roy/"
];
- # Sage mirrors (http://www.sagemath.org/mirrors.html)
+ # Sage mirrors (https://www.sagemath.org/mirrors.html)
sageupstream = [
- # Africa
- "ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/spkg/upstream/"
- "http://sagemath.mirror.ac.za/spkg/upstream/"
- "https://ftp.leg.uct.ac.za/pub/packages/sage/spkg/upstream/"
- "http://mirror.ufs.ac.za/sagemath/spkg/upstream/"
+ # Africa (HTTPS)
+ "https://sagemath.mirror.ac.za/spkg/upstream/"
+ "https://mirror.ufs.ac.za/sagemath/spkg/upstream/"
- # America, North
- "http://mirrors-usa.go-parts.com/sage/sagemath/spkg/upstream/"
- "http://mirrors.mit.edu/sage/spkg/upstream/"
- "http://www.cecm.sfu.ca/sage/spkg/upstream/"
- "http://files.sagemath.org/spkg/upstream/"
- "http://mirror.clibre.uqam.ca/sage/spkg/upstream/"
+ # America, North (HTTPS)
+ "https://mirrors.mit.edu/sage/spkg/upstream/"
"https://mirrors.xmission.com/sage/spkg/upstream/"
- # America, South
- "http://sagemath.c3sl.ufpr.br/spkg/upstream/"
- "http://linorg.usp.br/sage/spkg/upstream"
-
- # Asia
- "http://mirror.hust.edu.cn/sagemath/spkg/upstream/"
- "https://ftp.iitm.ac.in/sage/spkg/upstream/"
- "http://ftp.kaist.ac.kr/sage/spkg/upstream/"
- "http://ftp.riken.jp/sagemath/spkg/upstream/"
+ # Asia (HTTPS)
"https://mirrors.tuna.tsinghua.edu.cn/sagemath/spkg/upstream/"
"https://mirrors.ustc.edu.cn/sagemath/spkg/upstream/"
"http://ftp.tsukuba.wide.ad.jp/software/sage/spkg/upstream/"
- "http://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/"
+ "https://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/"
"https://mirror.yandex.ru/mirrors/sage.math.washington.edu/spkg/upstream/"
- # Australia
- "http://mirror.aarnet.edu.au/pub/sage/spkg/upstream/"
+ # Australia (HTTPS)
+ "https://mirror.aarnet.edu.au/pub/sage/spkg/upstream/"
- # Europe
- "http://sage.mirror.garr.it/mirrors/sage/spkg/upstream/"
- "http://mirror.switch.ch/mirror/sagemath/spkg/upstream/"
+ # Europe (HTTPS)
+ "https://sage.mirror.garr.it/mirrors/sage/spkg/upstream/"
+ "https://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/"
+
+ # Africa (non-HTTPS)
+ "ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/spkg/upstream/"
+
+ # America, North (non-HTTPS)
+ "http://www.cecm.sfu.ca/sage/spkg/upstream/"
+
+ # America, South (non-HTTPS)
+ "http://sagemath.c3sl.ufpr.br/spkg/upstream/"
+ "http://linorg.usp.br/sage/spkg/upstream"
+
+ # Asia (non-HTTPS)
+ "http://ftp.kaist.ac.kr/sage/spkg/upstream/"
+ "http://ftp.riken.jp/sagemath/spkg/upstream/"
+
+ # Europe (non-HTTPS)
"http://mirrors.fe.up.pt/pub/sage/spkg/upstream/"
- "http://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/"
"http://ftp.ntua.gr/pub/sagemath/spkg/upstream/"
];
# MySQL mirrors
mysql = [
- "http://cdn.mysql.com/Downloads/"
+ "https://cdn.mysql.com/Downloads/"
];
# OpenBSD mirrors
openbsd = [
- "http://ftp.openbsd.org/pub/OpenBSD/"
+ "https://ftp.openbsd.org/pub/OpenBSD/"
"ftp://ftp.nluug.nl/pub/OpenBSD/"
"ftp://ftp-stud.fht-esslingen.de/pub/OpenBSD/"
];
# Steam Runtime mirrors
steamrt = [
- "http://repo.steampowered.com/steamrt/"
+ "https://repo.steampowered.com/steamrt/"
"https://public.abbradar.moe/steamrt/"
];
@@ -389,7 +358,7 @@
# Mozilla projects.
mozilla = [
- "http://download.cdn.mozilla.net/pub/mozilla.org/"
+ "https://download.cdn.mozilla.net/pub/mozilla.org/"
"https://archive.mozilla.org/pub/"
];
diff --git a/pkgs/build-support/java/canonicalize-jar.nix b/pkgs/build-support/java/canonicalize-jar.nix
new file mode 100644
index 000000000000..1edd9a6e0d20
--- /dev/null
+++ b/pkgs/build-support/java/canonicalize-jar.nix
@@ -0,0 +1,9 @@
+{ substituteAll, unzip, zip }:
+
+substituteAll {
+ name = "canonicalize-jar";
+ src = ./canonicalize-jar.sh;
+
+ unzip = "${unzip}/bin/unzip";
+ zip = "${zip}/bin/zip";
+}
diff --git a/pkgs/build-support/java/canonicalize-jar.sh b/pkgs/build-support/java/canonicalize-jar.sh
new file mode 100644
index 000000000000..af010bcd2b26
--- /dev/null
+++ b/pkgs/build-support/java/canonicalize-jar.sh
@@ -0,0 +1,29 @@
+# Canonicalize the manifest & repack with deterministic timestamps.
+canonicalizeJar() {
+ local input='' outer=''
+ input="$(realpath -sm -- "$1")"
+ outer="$(pwd)"
+ # -qq: even quieter
+ @unzip@ -qq "$input" -d "$input-tmp"
+ canonicalizeJarManifest "$input-tmp/META-INF/MANIFEST.MF"
+ # Sets all timestamps to Jan 1 1980, the earliest mtime zips support.
+ find -- "$input-tmp" -exec touch -t 198001010000.00 {} +
+ rm "$input"
+ pushd "$input-tmp" 2>/dev/null
+ # -q|--quiet, -r|--recurse-paths
+ # -o|--latest-time: canonicalizes overall archive mtime
+ # -X|--no-extra: don't store platform-specific extra file attribute fields
+ @zip@ -qroX "$outer/tmp-out.jar" . 2> /dev/null
+ popd 2>/dev/null
+ rm -rf "$input-tmp"
+ mv "$outer/tmp-out.jar" "$input"
+}
+
+# See also the Java specification's JAR requirements:
+# https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files
+canonicalizeJarManifest() {
+ local input=''
+ input="$(realpath -sm -- "$1")"
+ (head -n 1 "$input" && tail -n +2 "$input" | sort | grep -v '^\s*$') > "$input-tmp"
+ mv "$input-tmp" "$input"
+}
diff --git a/pkgs/build-support/libredirect/default.nix b/pkgs/build-support/libredirect/default.nix
index 42525ec98a7e..f87c6d23dd79 100644
--- a/pkgs/build-support/libredirect/default.nix
+++ b/pkgs/build-support/libredirect/default.nix
@@ -38,11 +38,11 @@ stdenv.mkDerivation rec {
install -vD "$libName" "$out/lib/$libName"
+ # Provide a setup hook that injects our library into every process.
mkdir -p "$hook/nix-support"
cat < "$hook/nix-support/setup-hook"
${if stdenv.isDarwin then ''
export DYLD_INSERT_LIBRARIES="$out/lib/$libName"
- export DYLD_FORCE_FLAT_NAMESPACE=1
'' else ''
export LD_PRELOAD="$out/lib/$libName"
''}
diff --git a/pkgs/build-support/libredirect/libredirect.c b/pkgs/build-support/libredirect/libredirect.c
index 5b0ef4856708..7dac4684722f 100644
--- a/pkgs/build-support/libredirect/libredirect.c
+++ b/pkgs/build-support/libredirect/libredirect.c
@@ -2,6 +2,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -13,6 +14,22 @@
#define MAX_REDIRECTS 128
+#ifdef __APPLE__
+ struct dyld_interpose {
+ const void * replacement;
+ const void * replacee;
+ };
+ #define WRAPPER(ret, name) static ret _libredirect_wrapper_##name
+ #define LOOKUP_REAL(name) &name
+ #define WRAPPER_DEF(name) \
+ __attribute__((used)) static struct dyld_interpose _libredirect_interpose_##name \
+ __attribute__((section("__DATA,__interpose"))) = { &_libredirect_wrapper_##name, &name };
+#else
+ #define WRAPPER(ret, name) ret name
+ #define LOOKUP_REAL(name) dlsym(RTLD_NEXT, #name)
+ #define WRAPPER_DEF(name)
+#endif
+
static int nrRedirects = 0;
static char * from[MAX_REDIRECTS];
static char * to[MAX_REDIRECTS];
@@ -80,9 +97,9 @@ static int open_needs_mode(int flags)
it contains only what we needed for programs in Nixpkgs. Just add
more functions as needed. */
-int open(const char * path, int flags, ...)
+WRAPPER(int, open)(const char * path, int flags, ...)
{
- int (*open_real) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open");
+ int (*open_real) (const char *, int, mode_t) = LOOKUP_REAL(open);
mode_t mode = 0;
if (open_needs_mode(flags)) {
va_list ap;
@@ -93,10 +110,12 @@ int open(const char * path, int flags, ...)
char buf[PATH_MAX];
return open_real(rewrite(path, buf), flags, mode);
}
+WRAPPER_DEF(open)
-int open64(const char * path, int flags, ...)
+#ifndef __APPLE__
+WRAPPER(int, open64)(const char * path, int flags, ...)
{
- int (*open64_real) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64");
+ int (*open64_real) (const char *, int, mode_t) = LOOKUP_REAL(open64);
mode_t mode = 0;
if (open_needs_mode(flags)) {
va_list ap;
@@ -107,10 +126,12 @@ int open64(const char * path, int flags, ...)
char buf[PATH_MAX];
return open64_real(rewrite(path, buf), flags, mode);
}
+WRAPPER_DEF(open64)
+#endif
-int openat(int dirfd, const char * path, int flags, ...)
+WRAPPER(int, openat)(int dirfd, const char * path, int flags, ...)
{
- int (*openat_real) (int, const char *, int, mode_t) = dlsym(RTLD_NEXT, "openat");
+ int (*openat_real) (int, const char *, int, mode_t) = LOOKUP_REAL(openat);
mode_t mode = 0;
if (open_needs_mode(flags)) {
va_list ap;
@@ -121,57 +142,73 @@ int openat(int dirfd, const char * path, int flags, ...)
char buf[PATH_MAX];
return openat_real(dirfd, rewrite(path, buf), flags, mode);
}
+WRAPPER_DEF(openat)
-FILE * fopen(const char * path, const char * mode)
+WRAPPER(FILE *, fopen)(const char * path, const char * mode)
{
- FILE * (*fopen_real) (const char *, const char *) = dlsym(RTLD_NEXT, "fopen");
+ FILE * (*fopen_real) (const char *, const char *) = LOOKUP_REAL(fopen);
char buf[PATH_MAX];
return fopen_real(rewrite(path, buf), mode);
}
+WRAPPER_DEF(fopen)
-FILE * __nss_files_fopen(const char * path)
+#ifndef __APPLE__
+WRAPPER(FILE *, __nss_files_fopen)(const char * path)
{
- FILE * (*__nss_files_fopen_real) (const char *) = dlsym(RTLD_NEXT, "__nss_files_fopen");
+ FILE * (*__nss_files_fopen_real) (const char *) = LOOKUP_REAL(__nss_files_fopen);
char buf[PATH_MAX];
return __nss_files_fopen_real(rewrite(path, buf));
}
+WRAPPER_DEF(__nss_files_fopen)
+#endif
-FILE * fopen64(const char * path, const char * mode)
+#ifndef __APPLE__
+WRAPPER(FILE *, fopen64)(const char * path, const char * mode)
{
- FILE * (*fopen64_real) (const char *, const char *) = dlsym(RTLD_NEXT, "fopen64");
+ FILE * (*fopen64_real) (const char *, const char *) = LOOKUP_REAL(fopen64);
char buf[PATH_MAX];
return fopen64_real(rewrite(path, buf), mode);
}
+WRAPPER_DEF(fopen64)
+#endif
-int __xstat(int ver, const char * path, struct stat * st)
+#ifndef __APPLE__
+WRAPPER(int, __xstat)(int ver, const char * path, struct stat * st)
{
- int (*__xstat_real) (int ver, const char *, struct stat *) = dlsym(RTLD_NEXT, "__xstat");
+ int (*__xstat_real) (int ver, const char *, struct stat *) = LOOKUP_REAL(__xstat);
char buf[PATH_MAX];
return __xstat_real(ver, rewrite(path, buf), st);
}
+WRAPPER_DEF(__xstat)
+#endif
-int __xstat64(int ver, const char * path, struct stat64 * st)
+#ifndef __APPLE__
+WRAPPER(int, __xstat64)(int ver, const char * path, struct stat64 * st)
{
- int (*__xstat64_real) (int ver, const char *, struct stat64 *) = dlsym(RTLD_NEXT, "__xstat64");
+ int (*__xstat64_real) (int ver, const char *, struct stat64 *) = LOOKUP_REAL(__xstat64);
char buf[PATH_MAX];
return __xstat64_real(ver, rewrite(path, buf), st);
}
+WRAPPER_DEF(__xstat64)
+#endif
-int stat(const char * path, struct stat * st)
+WRAPPER(int, stat)(const char * path, struct stat * st)
{
- int (*__stat_real) (const char *, struct stat *) = dlsym(RTLD_NEXT, "stat");
+ int (*__stat_real) (const char *, struct stat *) = LOOKUP_REAL(stat);
char buf[PATH_MAX];
return __stat_real(rewrite(path, buf), st);
}
+WRAPPER_DEF(stat)
-int access(const char * path, int mode)
+WRAPPER(int, access)(const char * path, int mode)
{
- int (*access_real) (const char *, int mode) = dlsym(RTLD_NEXT, "access");
+ int (*access_real) (const char *, int mode) = LOOKUP_REAL(access);
char buf[PATH_MAX];
return access_real(rewrite(path, buf), mode);
}
+WRAPPER_DEF(access)
-int posix_spawn(pid_t * pid, const char * path,
+WRAPPER(int, posix_spawn)(pid_t * pid, const char * path,
const posix_spawn_file_actions_t * file_actions,
const posix_spawnattr_t * attrp,
char * const argv[], char * const envp[])
@@ -179,12 +216,13 @@ int posix_spawn(pid_t * pid, const char * path,
int (*posix_spawn_real) (pid_t *, const char *,
const posix_spawn_file_actions_t *,
const posix_spawnattr_t *,
- char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "posix_spawn");
+ char * const argv[], char * const envp[]) = LOOKUP_REAL(posix_spawn);
char buf[PATH_MAX];
return posix_spawn_real(pid, rewrite(path, buf), file_actions, attrp, argv, envp);
}
+WRAPPER_DEF(posix_spawn)
-int posix_spawnp(pid_t * pid, const char * file,
+WRAPPER(int, posix_spawnp)(pid_t * pid, const char * file,
const posix_spawn_file_actions_t * file_actions,
const posix_spawnattr_t * attrp,
char * const argv[], char * const envp[])
@@ -192,43 +230,48 @@ int posix_spawnp(pid_t * pid, const char * file,
int (*posix_spawnp_real) (pid_t *, const char *,
const posix_spawn_file_actions_t *,
const posix_spawnattr_t *,
- char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "posix_spawnp");
+ char * const argv[], char * const envp[]) = LOOKUP_REAL(posix_spawnp);
char buf[PATH_MAX];
return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp);
}
+WRAPPER_DEF(posix_spawnp)
-int execv(const char * path, char * const argv[])
+WRAPPER(int, execv)(const char * path, char * const argv[])
{
- int (*execv_real) (const char * path, char * const argv[]) = dlsym(RTLD_NEXT, "execv");
+ int (*execv_real) (const char * path, char * const argv[]) = LOOKUP_REAL(execv);
char buf[PATH_MAX];
return execv_real(rewrite(path, buf), argv);
}
+WRAPPER_DEF(execv)
-int execvp(const char * path, char * const argv[])
+WRAPPER(int, execvp)(const char * path, char * const argv[])
{
- int (*_execvp) (const char *, char * const argv[]) = dlsym(RTLD_NEXT, "execvp");
+ int (*_execvp) (const char *, char * const argv[]) = LOOKUP_REAL(execvp);
char buf[PATH_MAX];
return _execvp(rewrite(path, buf), argv);
}
+WRAPPER_DEF(execvp)
-int execve(const char * path, char * const argv[], char * const envp[])
+WRAPPER(int, execve)(const char * path, char * const argv[], char * const envp[])
{
- int (*_execve) (const char *, char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "execve");
+ int (*_execve) (const char *, char * const argv[], char * const envp[]) = LOOKUP_REAL(execve);
char buf[PATH_MAX];
return _execve(rewrite(path, buf), argv, envp);
}
+WRAPPER_DEF(execve)
-DIR * opendir(const char * path)
+WRAPPER(DIR *, opendir)(const char * path)
{
char buf[PATH_MAX];
- DIR * (*_opendir) (const char*) = dlsym(RTLD_NEXT, "opendir");
+ DIR * (*_opendir) (const char*) = LOOKUP_REAL(opendir);
return _opendir(rewrite(path, buf));
}
+WRAPPER_DEF(opendir)
#define SYSTEM_CMD_MAX 512
-char *replace_substring(char * source, char * buf, char * replace_string, char * start_ptr, char * suffix_ptr) {
+static char * replace_substring(char * source, char * buf, char * replace_string, char * start_ptr, char * suffix_ptr) {
char head[SYSTEM_CMD_MAX] = {0};
strncpy(head, source, start_ptr - source);
@@ -241,7 +284,7 @@ char *replace_substring(char * source, char * buf, char * replace_string, char *
return buf;
}
-char *replace_string(char * buf, char * from, char * to) {
+static char * replace_string(char * buf, char * from, char * to) {
int num_matches = 0;
char * matches[SYSTEM_CMD_MAX];
int from_len = strlen(from);
@@ -264,18 +307,48 @@ char *replace_string(char * buf, char * from, char * to) {
return buf;
}
-void rewriteSystemCall(const char * command, char * buf) {
- strcpy(buf, command);
+static void rewriteSystemCall(const char * command, char * buf) {
+ char * p = buf;
+
+ #ifdef __APPLE__
+ // The dyld environment variable is not inherited by the subprocess spawned
+ // by system(), so this hack redefines it.
+ Dl_info info;
+ dladdr(&rewriteSystemCall, &info);
+ p = stpcpy(p, "export DYLD_INSERT_LIBRARIES=");
+ p = stpcpy(p, info.dli_fname);
+ p = stpcpy(p, ";");
+ #endif
+
+ stpcpy(p, command);
+
for (int n = 0; n < nrRedirects; ++n) {
replace_string(buf, from[n], to[n]);
}
}
-int system(const char *command)
+WRAPPER(int, system)(const char *command)
{
- int (*_system) (const char*) = dlsym(RTLD_NEXT, "system");
+ int (*_system) (const char*) = LOOKUP_REAL(system);
char newCommand[SYSTEM_CMD_MAX];
rewriteSystemCall(command, newCommand);
return _system(newCommand);
}
+WRAPPER_DEF(system)
+
+WRAPPER(int, mkdir)(const char *path, mode_t mode)
+{
+ int (*mkdir_real) (const char *path, mode_t mode) = LOOKUP_REAL(mkdir);
+ char buf[PATH_MAX];
+ return mkdir_real(rewrite(path, buf), mode);
+}
+WRAPPER_DEF(mkdir)
+
+WRAPPER(int, mkdirat)(int dirfd, const char *path, mode_t mode)
+{
+ int (*mkdirat_real) (int dirfd, const char *path, mode_t mode) = LOOKUP_REAL(mkdirat);
+ char buf[PATH_MAX];
+ return mkdirat_real(dirfd, rewrite(path, buf), mode);
+}
+WRAPPER_DEF(mkdirat)
diff --git a/pkgs/build-support/node/fetch-yarn-deps/default.nix b/pkgs/build-support/node/fetch-yarn-deps/default.nix
new file mode 100644
index 000000000000..6d67b87915ac
--- /dev/null
+++ b/pkgs/build-support/node/fetch-yarn-deps/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, lib, makeWrapper, coreutils, nix-prefetch-git, fetchurl, nodejs-slim, prefetch-yarn-deps, cacert, callPackage, nix }:
+
+let
+ yarnpkg-lockfile-tar = fetchurl {
+ url = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz";
+ sha512 = "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
+ };
+
+in {
+ prefetch-yarn-deps = stdenv.mkDerivation {
+ name = "prefetch-yarn-deps";
+
+ dontUnpack = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ coreutils nix-prefetch-git nodejs-slim nix ];
+
+ buildPhase = ''
+ runHook preBuild
+
+ mkdir libexec
+ tar --strip-components=1 -xf ${yarnpkg-lockfile-tar} package/index.js
+ mv index.js libexec/yarnpkg-lockfile.js
+ cp ${./index.js} libexec/index.js
+ patchShebangs libexec/index.js
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ cp -r libexec $out
+ makeWrapper $out/libexec/index.js $out/bin/prefetch-yarn-deps \
+ --prefix PATH : ${lib.makeBinPath [ coreutils nix-prefetch-git nix ]}
+
+ runHook postInstall
+ '';
+ };
+
+ fetchYarnDeps = let
+ f = {
+ name ? "offline",
+ yarnLock,
+ hash ? "",
+ sha256 ? "",
+ }: let
+ hash_ =
+ if hash != "" then { outputHashAlgo = null; outputHash = hash; }
+ else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
+ else { outputHashAlgo = "sha256"; outputHash = lib.fakeSha256; };
+ in stdenv.mkDerivation {
+ inherit name;
+
+ dontUnpack = true;
+ dontInstall = true;
+
+ nativeBuildInputs = [ prefetch-yarn-deps ];
+ GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+ buildPhase = ''
+ mkdir -p $out
+ (cd $out; prefetch-yarn-deps --verbose --builder ${yarnLock})
+ '';
+
+ outputHashMode = "recursive";
+ inherit (hash_) outputHashAlgo outputHash;
+ };
+
+ in lib.setFunctionArgs f (lib.functionArgs f) // {
+ tests = callPackage ./tests {};
+ };
+}
diff --git a/pkgs/build-support/node/fetch-yarn-deps/index.js b/pkgs/build-support/node/fetch-yarn-deps/index.js
new file mode 100755
index 000000000000..e728ad89e1c4
--- /dev/null
+++ b/pkgs/build-support/node/fetch-yarn-deps/index.js
@@ -0,0 +1,182 @@
+#!/usr/bin/env node
+'use strict'
+
+const fs = require('fs')
+const crypto = require('crypto')
+const process = require('process')
+const https = require('https')
+const child_process = require('child_process')
+const path = require('path')
+const lockfile = require('./yarnpkg-lockfile.js')
+const { promisify } = require('util')
+
+const execFile = promisify(child_process.execFile)
+
+const exec = async (...args) => {
+ const res = await execFile(...args)
+ if (res.error) throw new Error(res.stderr)
+ return res
+}
+
+// This has to match the logic in pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
+// so that fixup_yarn_lock produces the same paths
+const urlToName = url => {
+ const isCodeloadGitTarballUrl = url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')
+
+ if (url.startsWith('git+') || isCodeloadGitTarballUrl) {
+ return path.basename(url)
+ } else {
+ return url
+ .replace(/https:\/\/(.)*(.com)\//g, '') // prevents having long directory names
+ .replace(/[@/%:-]/g, '_') // replace @ and : and - and % characters with underscore
+ }
+}
+
+const downloadFileHttps = (fileName, url, expectedHash) => {
+ return new Promise((resolve, reject) => {
+ https.get(url, (res) => {
+ const file = fs.createWriteStream(fileName)
+ const hash = crypto.createHash('sha1')
+ res.pipe(file)
+ res.pipe(hash).setEncoding('hex')
+ res.on('end', () => {
+ file.close()
+ const h = hash.read()
+ if (h != expectedHash) return reject(new Error(`hash mismatch, expected ${expectedHash}, got ${h}`))
+ resolve()
+ })
+ res.on('error', e => reject(e))
+ })
+ })
+}
+
+const downloadGit = async (fileName, url, rev) => {
+ await exec('nix-prefetch-git', [
+ '--out', fileName + '.tmp',
+ '--url', url,
+ '--rev', rev,
+ '--builder'
+ ])
+
+ await exec('tar', [
+ // hopefully make it reproducible across runs and systems
+ '--owner=0', '--group=0', '--numeric-owner', '--format=gnu', '--sort=name', '--mtime=@1',
+
+ // Set u+w because tar-fs can't unpack archives with read-only dirs: https://github.com/mafintosh/tar-fs/issues/79
+ '--mode', 'u+w',
+
+ '-C', fileName + '.tmp',
+ '-cf', fileName, '.'
+ ])
+
+ await exec('rm', [ '-rf', fileName + '.tmp', ])
+}
+
+const downloadPkg = (pkg, verbose) => {
+ const [ url, hash ] = pkg.resolved.split('#')
+ if (verbose) console.log('downloading ' + url)
+ const fileName = urlToName(url)
+ if (url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')) {
+ const s = url.split('/')
+ downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[6])
+ } else if (url.startsWith('https://')) {
+ return downloadFileHttps(fileName, url, hash)
+ } else if (url.startsWith('git:')) {
+ return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
+ } else if (url.startsWith('git+')) {
+ return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
+ } else if (url.startsWith('file:')) {
+ console.warn(`ignoring unsupported file:path url "${url}"`)
+ } else {
+ throw new Error('don\'t know how to download "' + url + '"')
+ }
+}
+
+const performParallel = tasks => {
+ const worker = async () => {
+ while (tasks.length > 0) await tasks.shift()()
+ }
+
+ const workers = []
+ for (let i = 0; i < 4; i++) {
+ workers.push(worker())
+ }
+
+ return Promise.all(workers)
+}
+
+const prefetchYarnDeps = async (lockContents, verbose) => {
+ const lockData = lockfile.parse(lockContents)
+ const tasks = Object.values(
+ Object.entries(lockData.object)
+ .map(([key, value]) => {
+ return { key, ...value }
+ })
+ .reduce((out, pkg) => {
+ out[pkg.resolved] = pkg
+ return out
+ }, {})
+ )
+ .map(pkg => () => downloadPkg(pkg, verbose))
+
+ await performParallel(tasks)
+ await fs.promises.writeFile('yarn.lock', lockContents)
+ if (verbose) console.log('Done')
+}
+
+const showUsage = async () => {
+ process.stderr.write(`
+syntax: prefetch-yarn-deps [path to yarn.lock] [options]
+
+Options:
+ -h --help Show this help
+ -v --verbose Verbose output
+ --builder Only perform the download to current directory, then exit
+`)
+ process.exit(1)
+}
+
+const main = async () => {
+ const args = process.argv.slice(2)
+ let next, lockFile, verbose, isBuilder
+ while (next = args.shift()) {
+ if (next == '--builder') {
+ isBuilder = true
+ } else if (next == '--verbose' || next == '-v') {
+ verbose = true
+ } else if (next == '--help' || next == '-h') {
+ showUsage()
+ } else if (!lockFile) {
+ lockFile = next
+ } else {
+ showUsage()
+ }
+ }
+ let lockContents
+ try {
+ lockContents = await fs.promises.readFile(lockFile || 'yarn.lock', 'utf-8')
+ } catch {
+ showUsage()
+ }
+
+ if (isBuilder) {
+ await prefetchYarnDeps(lockContents, verbose)
+ } else {
+ const { stdout: tmpDir } = await exec('mktemp', [ '-d' ])
+
+ try {
+ process.chdir(tmpDir.trim())
+ await prefetchYarnDeps(lockContents, verbose)
+ const { stdout: hash } = await exec('nix-hash', [ '--type', 'sha256', '--base32', tmpDir.trim() ])
+ console.log(hash)
+ } finally {
+ await exec('rm', [ '-rf', tmpDir.trim() ])
+ }
+ }
+}
+
+main()
+ .catch(e => {
+ console.error(e)
+ process.exit(1)
+ })
diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/default.nix b/pkgs/build-support/node/fetch-yarn-deps/tests/default.nix
new file mode 100644
index 000000000000..a781dad83072
--- /dev/null
+++ b/pkgs/build-support/node/fetch-yarn-deps/tests/default.nix
@@ -0,0 +1,16 @@
+{ invalidateFetcherByDrvHash, fetchYarnDeps, ... }:
+
+{
+ simple = invalidateFetcherByDrvHash fetchYarnDeps {
+ yarnLock = ./simple.lock;
+ sha256 = "sha256-Erdkw2E8wWT09jFNLXGkrdwKl0HuSZWnUDJUrV95vSE=";
+ };
+ gitDep = invalidateFetcherByDrvHash fetchYarnDeps {
+ yarnLock = ./git.lock;
+ sha256 = "sha256-lAqN4LpoE+jgsQO1nDtuORwcVEO7ogEV53jCu2jFJUI=";
+ };
+ githubDep = invalidateFetcherByDrvHash fetchYarnDeps {
+ yarnLock = ./github.lock;
+ sha256 = "sha256-Tsfgyjxz8x6gNmfN0xR7G/NQNoEs4svxRN/N+26vfJU=";
+ };
+}
diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/git.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/git.lock
new file mode 100644
index 000000000000..9eda5b2c409d
--- /dev/null
+++ b/pkgs/build-support/node/fetch-yarn-deps/tests/git.lock
@@ -0,0 +1,7 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"async@git+https://github.com/caolan/async":
+ version "3.2.1"
+ resolved "git+https://github.com/caolan/async#fc9ba651341af5ab974aade6b1640e345912be83"
diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/github.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/github.lock
new file mode 100644
index 000000000000..057e043a5390
--- /dev/null
+++ b/pkgs/build-support/node/fetch-yarn-deps/tests/github.lock
@@ -0,0 +1,7 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"async@github:caolan/async":
+ version "3.2.1"
+ resolved "https://codeload.github.com/caolan/async/tar.gz/fc9ba651341af5ab974aade6b1640e345912be83"
diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/simple.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/simple.lock
new file mode 100644
index 000000000000..db2f4b2be4b7
--- /dev/null
+++ b/pkgs/build-support/node/fetch-yarn-deps/tests/simple.lock
@@ -0,0 +1,8 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+lit-html@1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.4.1.tgz#0c6f3ee4ad4eb610a49831787f0478ad8e9ae5e0"
+ integrity sha512-B9btcSgPYb1q4oSOb/PrOT6Z/H+r6xuNzfH4lFli/AWhYwdtrgQkQWBbIc6mdnf6E2IL3gDXdkkqNktpU0OZQA==
diff --git a/pkgs/build-support/release/ant-build.nix b/pkgs/build-support/release/ant-build.nix
deleted file mode 100644
index 6b59241e01ed..000000000000
--- a/pkgs/build-support/release/ant-build.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-{ src
-, pkgs
-, lib
-, stdenv ? pkgs.stdenv
-, name
-, antTargets ? []
-, jars ? []
-, jarWrappers ? []
-, antProperties ? []
-, antBuildInputs ? []
-, buildfile ? "build.xml"
-, ant ? pkgs.ant
-, jre ? pkgs.jdk
-, hydraAntLogger ? pkgs.hydraAntLogger
-, zip ? pkgs.zip
-, unzip ? pkgs.unzip
-, ... } @ args:
-
-let
- antFlags = "-f ${buildfile} " + lib.concatMapStrings ({name, value}: "-D${name}=${value} " ) antProperties ;
-in
-stdenv.mkDerivation (
-
- {
- inherit jre ant;
- showBuildStats = true;
-
- postPhases =
- ["generateWrappersPhase" "finalPhase"];
-
- prePhases =
- ["antSetupPhase"];
-
- antSetupPhase = with lib; ''
- if test "$hydraAntLogger" != "" ; then
- export ANT_ARGS="-logger org.hydra.ant.HydraLogger -lib `ls $hydraAntLogger/share/java/*.jar | head -1`"
- fi
- for abi in ${concatStringsSep " " (map (f: "`find ${f} -name '*.jar'`") antBuildInputs)}; do
- export ANT_ARGS="$ANT_ARGS -lib $abi"
- done
- '';
-
- installPhase = ''
- runHook preInstall
-
- mkdir -p $out/share/java
- ${ if jars == [] then ''
- find . -name "*.jar" | xargs -I{} cp -v {} $out/share/java
- '' else lib.concatMapStrings (j: ''
- cp -v ${j} $out/share/java
- '') jars }
-
- . ${./functions.sh}
- for j in $out/share/java/*.jar ; do
- canonicalizeJar $j
- echo file jar $j >> $out/nix-support/hydra-build-products
- done
-
- runHook postInstall
- '';
-
- generateWrappersPhase =
- let
- cp = w: "-cp '${lib.optionalString (w ? classPath) w.classPath}${lib.optionalString (w ? mainClass) ":$out/share/java/*"}'";
- in
- ''
- header "Generating jar wrappers"
- '' + (lib.concatMapStrings (w: ''
-
- mkdir -p $out/bin
- cat >> $out/bin/${w.name} < $out/nix-support/system
- . ${./functions.sh}
-
- origSrc=$src
- src=$(findTarball $src)
- '';
- }
-)
diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix
index bd54401e2356..9104bf2dce5c 100644
--- a/pkgs/build-support/release/debian-build.nix
+++ b/pkgs/build-support/release/debian-build.nix
@@ -3,7 +3,7 @@
{ name ? "debian-build"
, diskImage
-, src, stdenv, vmTools, checkinstall
+, src, lib, stdenv, vmTools, checkinstall
, fsTranslation ? false
, # Features provided by this package.
debProvides ? []
diff --git a/pkgs/build-support/release/default.nix b/pkgs/build-support/release/default.nix
index 83f755b2bece..d593ec81197e 100644
--- a/pkgs/build-support/release/default.nix
+++ b/pkgs/build-support/release/default.nix
@@ -14,10 +14,6 @@ rec {
{ inherit stdenv;
} // args);
- antBuild = args: import ./ant-build.nix (
- { inherit lib pkgs;
- } // args);
-
mvnBuild = args: import ./maven-build.nix (
{ inherit stdenv;
} // args);
diff --git a/pkgs/build-support/release/functions.sh b/pkgs/build-support/release/functions.sh
index 120d19685427..0c4b81edf822 100644
--- a/pkgs/build-support/release/functions.sh
+++ b/pkgs/build-support/release/functions.sh
@@ -11,29 +11,6 @@ findTarball() {
fi
}
-canonicalizeJarManifest() {
- local input=$1
- # http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files
- (head -n 1 $input && tail -n +2 $input | sort | grep -v '^\s*$') > $input-tmp
- mv $input-tmp $input
-}
-
-# Post-process a jar file to contain canonical timestamps and metadata ordering
-canonicalizeJar() {
- local input=$1
- local outer=$(pwd)
- unzip -qq $input -d $input-tmp
- canonicalizeJarManifest $input-tmp/META-INF/MANIFEST.MF
- # Set all timestamps to Jan 1 1980, which is the earliest date the zip format supports...
- find $input-tmp -exec touch -t 198001010000.00 {} +
- rm $input
- pushd $input-tmp
- zip -q -r -o -X $outer/tmp-out.jar . 2> /dev/null
- popd
- rm -rf $input-tmp
- mv $outer/tmp-out.jar $input
-}
-
propagateImageName() {
mkdir -p $out/nix-support
cat "$diskImage"/nix-support/full-name > $out/nix-support/full-name
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 3441e2c5e7bf..42c5f6ab3c0f 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -15,8 +15,9 @@
"--remap-path-prefix=$NIX_BUILD_TOP=/"
(mkRustcDepArgs dependencies crateRenames)
(mkRustcFeatureArgs crateFeatures)
+ ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "--target" (rust.toRustTargetSpec stdenv.hostPlatform)
] ++ extraRustcOpts
- ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTargetSpec stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
# since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
# https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022
++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro"
diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index d1010ac1adb3..1a9705591d6d 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -13,7 +13,7 @@
, crateRenames
, crateVersion
, extraLinkFlags
-, extraRustcOpts
+, extraRustcOptsForBuildRs
, libName
, libPath
, release
@@ -24,7 +24,7 @@ let version_ = lib.splitString "-" crateVersion;
version = lib.splitVersion (lib.head version_);
rustcOpts = lib.foldl' (opts: opt: opts + " " + opt)
(if release then "-C opt-level=3" else "-C debuginfo=2")
- (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts);
+ (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOptsForBuildRs);
buildDeps = mkRustcDepArgs buildDependencies crateRenames;
authors = lib.concatStringsSep ":" crateAuthors;
optLevel = if release then 3 else 0;
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index 13b153315f7f..afb938e51182 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -172,6 +172,11 @@ crate_: lib.makeOverridable
# Example: [ "-Z debuginfo=2" ]
# Default: []
, extraRustcOpts
+ # A list of extra options to pass to rustc when building a build.rs.
+ #
+ # Example: [ "-Z debuginfo=2" ]
+ # Default: []
+ , extraRustcOptsForBuildRs
# Whether to enable building tests.
# Use true to enable.
# Default: false
@@ -228,6 +233,7 @@ crate_: lib.makeOverridable
nativeBuildInputs_ = nativeBuildInputs;
buildInputs_ = buildInputs;
extraRustcOpts_ = extraRustcOpts;
+ extraRustcOptsForBuildRs_ = extraRustcOptsForBuildRs;
buildTests_ = buildTests;
# crate2nix has a hack for the old bash based build script that did split
@@ -308,12 +314,16 @@ crate_: lib.makeOverridable
lib.optionals (crate ? extraRustcOpts) crate.extraRustcOpts
++ extraRustcOpts_
++ (lib.optional (edition != null) "--edition ${edition}");
+ extraRustcOptsForBuildRs =
+ lib.optionals (crate ? extraRustcOptsForBuildRs) crate.extraRustcOptsForBuildRs
+ ++ extraRustcOptsForBuildRs_
+ ++ (lib.optional (edition != null) "--edition ${edition}");
configurePhase = configureCrate {
inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription
crateFeatures crateRenames libName build workspace_member release libPath crateVersion
- extraLinkFlags extraRustcOpts
+ extraLinkFlags extraRustcOptsForBuildRs
crateAuthors crateHomepage verbose colors;
};
buildPhase = buildCrate {
@@ -337,6 +347,7 @@ crate_: lib.makeOverridable
release = crate_.release or true;
verbose = crate_.verbose or true;
extraRustcOpts = [ ];
+ extraRustcOptsForBuildRs = [ ];
features = [ ];
nativeBuildInputs = [ ];
buildInputs = [ ];
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/build-rust-package/default.nix
similarity index 90%
rename from pkgs/build-support/rust/default.nix
rename to pkgs/build-support/rust/build-rust-package/default.nix
index 2eb45bcafa13..3d7057dd7d97 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/build-rust-package/default.nix
@@ -1,17 +1,15 @@
-{ stdenv
-, lib
-, buildPackages
+{ lib
+, importCargoLock
+, fetchCargoTarball
+, rust
+, stdenv
+, callPackage
, cacert
+, git
, cargoBuildHook
, cargoCheckHook
, cargoInstallHook
, cargoSetupHook
-, fetchCargoTarball
-, importCargoLock
-, rustPlatform
-, callPackage
-, git
-, rust
, rustc
, libiconv
, windows
@@ -19,12 +17,6 @@
{ name ? "${args.pname}-${args.version}"
- # SRI hash
-, cargoHash ? ""
-
- # Legacy hash
-, cargoSha256 ? ""
-
# Name for the vendored dependencies tarball
, cargoDepsName ? name
@@ -56,7 +48,7 @@
, buildAndTestSubdir ? null
, ... } @ args:
-assert cargoVendorDir == null && cargoLock == null -> cargoSha256 == "" && cargoHash == ""
+assert cargoVendorDir == null && cargoLock == null -> !(args ? cargoSha256) && !(args ? cargoHash)
-> throw "cargoSha256, cargoHash, cargoVendorDir, or cargoLock must be set";
assert buildType == "release" || buildType == "debug";
@@ -68,15 +60,17 @@ let
else fetchCargoTarball ({
inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
name = cargoDepsName;
- hash = cargoHash;
patches = cargoPatches;
- sha256 = cargoSha256;
+ } // lib.optionalAttrs (args ? cargoHash) {
+ hash = args.cargoHash;
+ } // lib.optionalAttrs (args ? cargoSha256) {
+ sha256 = args.cargoSha256;
} // depsExtraArgs)
else null;
# If we have a cargoSha256 fixed-output derivation, validate it at build time
# against the src fixed-output derivation to check consistency.
- validateCargoDeps = !(cargoHash == "" && cargoSha256 == "");
+ validateCargoDeps = args ? cargoHash || args ? cargoSha256;
target = rust.toRustTargetSpec stdenv.hostPlatform;
targetIsJSON = lib.hasSuffix ".json" target;
@@ -88,7 +82,7 @@ let
(lib.removeSuffix ".json" (builtins.baseNameOf "${target}"))
else target;
- sysroot = (callPackage ./sysroot {}) {
+ sysroot = callPackage ./sysroot { } {
inherit target shortTarget;
RUSTFLAGS = args.RUSTFLAGS or "";
originalCargoToml = src + /Cargo.toml; # profile info is later extracted
diff --git a/pkgs/build-support/rust/patch-registry-deps/pkg-config b/pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config
similarity index 100%
rename from pkgs/build-support/rust/patch-registry-deps/pkg-config
rename to pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config
diff --git a/pkgs/build-support/rust/sysroot/Cargo.lock b/pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock
similarity index 100%
rename from pkgs/build-support/rust/sysroot/Cargo.lock
rename to pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock
diff --git a/pkgs/build-support/rust/sysroot/cargo.py b/pkgs/build-support/rust/build-rust-package/sysroot/cargo.py
similarity index 100%
rename from pkgs/build-support/rust/sysroot/cargo.py
rename to pkgs/build-support/rust/build-rust-package/sysroot/cargo.py
diff --git a/pkgs/build-support/rust/sysroot/default.nix b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
similarity index 100%
rename from pkgs/build-support/rust/sysroot/default.nix
rename to pkgs/build-support/rust/build-rust-package/sysroot/default.nix
diff --git a/pkgs/build-support/rust/sysroot/update-lockfile.sh b/pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh
similarity index 100%
rename from pkgs/build-support/rust/sysroot/update-lockfile.sh
rename to pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh
diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix
index e14cbcc1183d..841cad09efa1 100644
--- a/pkgs/build-support/rust/default-crate-overrides.nix
+++ b/pkgs/build-support/rust/default-crate-overrides.nix
@@ -22,6 +22,11 @@
, clang
, llvmPackages
, linux-pam
+, cmake
+, glib
+, freetype
+, rdkafka
+, udev
, ...
}:
@@ -60,6 +65,10 @@ in
buildInputs = [ dbus ];
};
+ expat-sys = attrs: {
+ nativeBuildInputs = [ cmake ];
+ };
+
foundationdb-sys = attrs: {
buildInputs = [ foundationdb ];
# needed for 0.4+ release, when the FFI bindings are auto-generated
@@ -74,6 +83,16 @@ in
buildInputs = [ foundationdb ];
};
+ freetype-sys = attrs: {
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ freetype ];
+ };
+
+ glib-sys = attrs: {
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ glib ];
+ };
+
gobject-sys = attrs: {
buildInputs = [ dbus-glib ];
};
@@ -111,6 +130,11 @@ in
buildInputs = [ dbus ];
};
+ libudev-sys = attrs: {
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ udev ];
+ };
+
nettle-sys = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ nettle clang ];
@@ -135,6 +159,11 @@ in
buildInputs = [ postgresql ];
};
+ rdkafka-sys = attr: {
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ rdkafka ];
+ };
+
rink = attrs: {
buildInputs = [ gmp ];
crateBin = [{ name = "rink"; path = "src/bin/rink.rs"; }];
@@ -178,6 +207,11 @@ in
buildInputs = lib.optional stdenv.isDarwin Security;
};
+ servo-fontconfig-sys = attrs: {
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ freetype ];
+ };
+
thrussh-libsodium = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libsodium ];
diff --git a/pkgs/build-support/rust/cargo-vendor-normalise.py b/pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py
similarity index 100%
rename from pkgs/build-support/rust/cargo-vendor-normalise.py
rename to pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py
diff --git a/pkgs/build-support/rust/fetchCargoTarball.nix b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix
similarity index 88%
rename from pkgs/build-support/rust/fetchCargoTarball.nix
rename to pkgs/build-support/rust/fetch-cargo-tarball/default.nix
index 2e8830b47574..d36200aa5f90 100644
--- a/pkgs/build-support/rust/fetchCargoTarball.nix
+++ b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix
@@ -9,8 +9,8 @@ let cargo-vendor-normalise = stdenv.mkDerivation {
postFixup = "wrapPythonPrograms";
doInstallCheck = true;
installCheckPhase = ''
- # check that ./fetchcargo-default-config.toml is a fix point
- reference=${./fetchcargo-default-config.toml}
+ # check that ../fetchcargo-default-config.toml is a fix point
+ reference=${../fetchcargo-default-config.toml}
< $reference $out/bin/cargo-vendor-normalise > test;
cmp test $reference
'';
@@ -22,15 +22,13 @@ in
, srcs ? []
, patches ? []
, sourceRoot ? ""
-, hash ? ""
-, sha256 ? ""
, cargoUpdateHook ? ""
, ...
} @ args:
let hash_ =
- if hash != "" then { outputHashAlgo = null; outputHash = hash; }
- else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
+ if args ? hash then { outputHashAlgo = null; outputHash = args.hash; }
+ else if args ? sha256 then { outputHashAlgo = "sha256"; outputHash = args.sha256; }
else throw "fetchCargoTarball requires a hash for ${name}";
in stdenv.mkDerivation ({
name = "${name}-vendor.tar.gz";
diff --git a/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/pkgs/build-support/rust/hooks/cargo-check-hook.sh
index f0339afb38fa..8a8e434f0ff6 100644
--- a/pkgs/build-support/rust/hooks/cargo-check-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-check-hook.sh
@@ -16,11 +16,11 @@ cargoCheckHook() {
threads=1
fi
- if [ "${cargoBuildType}" != "debug" ]; then
- cargoBuildProfileFlag="--${cargoBuildType}"
+ if [ "${cargoCheckType}" != "debug" ]; then
+ cargoCheckProfileFlag="--${cargoCheckType}"
fi
- argstr="${cargoBuildProfileFlag} --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}";
+ argstr="${cargoCheckProfileFlag} --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}";
(
set -x
diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix
new file mode 100644
index 000000000000..24adcf2cb4e2
--- /dev/null
+++ b/pkgs/build-support/rust/lib/default.nix
@@ -0,0 +1,37 @@
+{ lib }:
+
+rec {
+ # https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch
+ toTargetArch = platform:
+ if platform.isAarch32 then "arm"
+ else platform.parsed.cpu.name;
+
+ # https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
+ toTargetOs = platform:
+ if platform.isDarwin then "macos"
+ else platform.parsed.kernel.name;
+
+ # Returns the name of the rust target, even if it is custom. Adjustments are
+ # because rust has slightly different naming conventions than we do.
+ toRustTarget = platform: let
+ inherit (platform.parsed) cpu vendor kernel abi;
+ cpu_ = platform.rustc.platform.arch or {
+ "armv7a" = "armv7";
+ "armv7l" = "armv7";
+ "armv6l" = "arm";
+ "armv5tel" = "armv5te";
+ "riscv64" = "riscv64gc";
+ }.${cpu.name} or cpu.name;
+ vendor_ = platform.rustc.platform.vendor or {
+ "w64" = "pc";
+ }.${vendor.name} or vendor.name;
+ in platform.rustc.config
+ or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
+
+ # Returns the name of the rust target if it is standard, or the json file
+ # containing the custom target spec.
+ toRustTargetSpec = platform:
+ if (platform.rustc or {}) ? platform
+ then builtins.toFile (toRustTarget platform + ".json") (builtins.toJSON platform.rustc.platform)
+ else toRustTarget platform;
+}
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh
index d310f8255224..4b3a1c5c3909 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -63,10 +63,9 @@ getRpathFromElfBinary() {
# NOTE: This does not use runPatchelf because it may encounter non-ELF
# files. Caller is expected to check the return code if needed.
local rpath
- rpath="$(patchelf --print-rpath "$1" 2> /dev/null)" || return $?
+ IFS=':' read -ra rpath < <(patchelf --print-rpath "$1" 2> /dev/null) || return $?
- local IFS=':'
- printf "%s\n" $rpath
+ printf "%s\n" "${rpath[@]}"
}
populateCacheForDep() {
@@ -115,8 +114,52 @@ populateCacheWithRecursiveDeps() {
done
}
-getSoArch() {
- $OBJDUMP -f "$1" | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p'
+getBinArch() {
+ $OBJDUMP -f "$1" 2> /dev/null | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p'
+}
+
+# Returns the specific OS ABI for an ELF file in the format produced by
+# readelf(1), like "UNIX - System V" or "UNIX - GNU".
+getBinOsabi() {
+ $READELF -h "$1" 2> /dev/null | sed -ne 's/^[ \t]*OS\/ABI:[ \t]*\(.*\)/\1/p'
+}
+
+# Tests whether two OS ABIs are compatible, taking into account the generally
+# accepted compatibility of SVR4 ABI with other ABIs.
+areBinOsabisCompatible() {
+ local wanted="$1"
+ local got="$2"
+
+ if [[ -z "$wanted" || -z "$got" ]]; then
+ # One of the types couldn't be detected, so as a fallback we'll assume
+ # they're compatible.
+ return 0
+ fi
+
+ # Generally speaking, the base ABI (0x00), which is represented by
+ # readelf(1) as "UNIX - System V", indicates broad compatibility with other
+ # ABIs.
+ #
+ # TODO: This isn't always true. For example, some OSes embed ABI
+ # compatibility into SHT_NOTE sections like .note.tag and .note.ABI-tag.
+ # It would be prudent to add these to the detection logic to produce better
+ # ABI information.
+ if [[ "$wanted" == "UNIX - System V" ]]; then
+ return 0
+ fi
+
+ # Similarly here, we should be able to link against a superset of features,
+ # so even if the target has another ABI, this should be fine.
+ if [[ "$got" == "UNIX - System V" ]]; then
+ return 0
+ fi
+
+ # Otherwise, we simply return whether the ABIs are identical.
+ if [[ "$wanted" == "$got" ]]; then
+ return 0
+ fi
+
+ return 1
}
# NOTE: If you want to use this function outside of the autoPatchelf function,
@@ -127,6 +170,7 @@ getSoArch() {
findDependency() {
local filename="$1"
local arch="$2"
+ local osabi="$3"
local lib dep
if [ $depCacheInitialised -eq 0 ]; then
@@ -138,7 +182,7 @@ findDependency() {
for dep in "${autoPatchelfCachedDeps[@]}"; do
if [ "$filename" = "${dep##*/}" ]; then
- if [ "$(getSoArch "$dep")" = "$arch" ]; then
+ if [ "$(getBinArch "$dep")" = "$arch" ] && areBinOsabisCompatible "$osabi" "$(getBinOsabi "$dep")"; then
foundDependency="$dep"
return 0
fi
@@ -162,7 +206,24 @@ autoPatchelfFile() {
local dep rpath="" toPatch="$1"
local interpreter
- interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")"
+ interpreter="$(< "$NIX_BINTOOLS/nix-support/dynamic-linker")"
+
+ local interpreterArch interpreterOsabi toPatchArch toPatchOsabi
+ interpreterArch="$(getBinArch "$interpreter")"
+ interpreterOsabi="$(getBinOsabi "$interpreter")"
+ toPatchArch="$(getBinArch "$toPatch")"
+ toPatchOsabi="$(getBinOsabi "$toPatch")"
+
+ if [ "$interpreterArch" != "$toPatchArch" ]; then
+ # Our target architecture is different than this file's architecture,
+ # so skip it.
+ echo "skipping $toPatch because its architecture ($toPatchArch) differs from target ($interpreterArch)" >&2
+ return 0
+ elif ! areBinOsabisCompatible "$interpreterOsabi" "$toPatchOsabi"; then
+ echo "skipping $toPatch because its OS ABI ($toPatchOsabi) is not compatible with target ($interpreterOsabi)" >&2
+ return 0
+ fi
+
if isExecutable "$toPatch"; then
runPatchelf --set-interpreter "$interpreter" "$toPatch"
# shellcheck disable=SC2154
@@ -175,7 +236,7 @@ autoPatchelfFile() {
fi
local libcLib
- libcLib="$(< "$NIX_CC/nix-support/orig-libc")/lib"
+ libcLib="$(< "$NIX_BINTOOLS/nix-support/orig-libc")/lib"
echo "searching for dependencies of $toPatch" >&2
@@ -187,14 +248,21 @@ autoPatchelfFile() {
# new package where you don't yet know its dependencies.
for dep in $missing; do
- # Check whether this library exists in libc. If so, we don't need to do
- # any futher searching -- it will be resolved correctly by the linker.
- if [ -f "$libcLib/$dep" ]; then
+ if [[ "$dep" == /* ]]; then
+ # This is an absolute path. If it exists, just use it. Otherwise,
+ # we probably want this to produce an error when checked (because
+ # just updating the rpath won't satisfy it).
+ if [ -f "$dep" ]; then
+ continue
+ fi
+ elif [ -f "$libcLib/$dep" ]; then
+ # This library exists in libc, and will be correctly resolved by
+ # the linker.
continue
fi
echo -n " $dep -> " >&2
- if findDependency "$dep" "$(getSoArch "$toPatch")"; then
+ if findDependency "$dep" "$toPatchArch" "$toPatchOsabi"; then
rpath="$rpath${rpath:+:}${foundDependency%/*}"
echo "found: $foundDependency" >&2
else
diff --git a/pkgs/build-support/setup-hooks/canonicalize-jars.sh b/pkgs/build-support/setup-hooks/canonicalize-jars.sh
new file mode 100644
index 000000000000..8c55810748ea
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/canonicalize-jars.sh
@@ -0,0 +1,17 @@
+# This setup hook causes the fixup phase to repack all JAR files in a
+# canonical & deterministic fashion, e.g. resetting mtimes (like with normal
+# store files) and avoiding impure metadata.
+
+fixupOutputHooks+=('if [ -z "$dontCanonicalizeJars" -a -e "$prefix" ]; then canonicalizeJarsIn "$prefix"; fi')
+
+canonicalizeJarsIn() {
+ local dir="$1"
+ header "canonicalizing jars in $dir"
+ dir="$(realpath -sm -- "$dir")"
+ while IFS= read -rd '' f; do
+ canonicalizeJar "$f"
+ done < <(find -- "$dir" -type f -name '*.jar' -print0)
+ stopNest
+}
+
+source @canonicalize_jar@
diff --git a/pkgs/build-support/setup-hooks/compress-man-pages.sh b/pkgs/build-support/setup-hooks/compress-man-pages.sh
index f5af76e8168f..0d8a76558026 100644
--- a/pkgs/build-support/setup-hooks/compress-man-pages.sh
+++ b/pkgs/build-support/setup-hooks/compress-man-pages.sh
@@ -9,7 +9,7 @@ compressManPages() {
echo "gzipping man pages under $dir/share/man/"
# Compress all uncompressed manpages. Don't follow symlinks, etc.
- find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\)$' -print0 \
+ find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 \
| while IFS= read -r -d $'\0' f
do
if gzip -c -n "$f" > "$f".gz; then
@@ -20,7 +20,7 @@ compressManPages() {
done
# Point symlinks to compressed manpages.
- find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\)$' -print0 \
+ find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 \
| sort -z \
| while IFS= read -r -d $'\0' f
do
diff --git a/pkgs/build-support/setup-hooks/move-docs.sh b/pkgs/build-support/setup-hooks/move-docs.sh
index ef31dcdce274..e4460f98816d 100644
--- a/pkgs/build-support/setup-hooks/move-docs.sh
+++ b/pkgs/build-support/setup-hooks/move-docs.sh
@@ -6,7 +6,7 @@ preFixupHooks+=(_moveToShare)
_moveToShare() {
forceShare=${forceShare:=man doc info}
- if [ -z "$forceShare" -o -z "$out" ]; then return; fi
+ if [[ -z "$out" ]]; then return; fi
for d in $forceShare; do
if [ -d "$out/$d" ]; then
diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh
index c31a50eba57b..2d8e66a89fa3 100644
--- a/pkgs/build-support/setup-hooks/strip.sh
+++ b/pkgs/build-support/setup-hooks/strip.sh
@@ -51,7 +51,7 @@ stripDirs() {
if [ -n "${dirs}" ]; then
header "stripping (with command $cmd and flags $stripFlags) in$dirs"
- find $dirs -type f -exec $cmd $commonStripFlags $stripFlags '{}' \; 2>/dev/null
+ find $dirs -type f -exec $cmd $stripFlags '{}' \; 2>/dev/null
stopNest
fi
}
diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix
index 318f5b430fef..a6a3cd001b4a 100644
--- a/pkgs/build-support/singularity-tools/default.nix
+++ b/pkgs/build-support/singularity-tools/default.nix
@@ -73,7 +73,7 @@ rec {
''}
# Build /bin and copy across closure
- mkdir -p bin nix/store
+ mkdir -p bin ./${builtins.storeDir}
for f in $(cat $layerClosure) ; do
cp -ar $f ./$f
done
diff --git a/pkgs/build-support/skaware/build-skaware-man-pages.nix b/pkgs/build-support/skaware/build-skaware-man-pages.nix
index a1f3977c0d56..92d8202ae95a 100644
--- a/pkgs/build-support/skaware/build-skaware-man-pages.nix
+++ b/pkgs/build-support/skaware/build-skaware-man-pages.nix
@@ -7,8 +7,6 @@
, version
# : string
, sha256
- # : list (int | string)
-, sections
# : string
, description
# : list Maintainer
@@ -39,10 +37,6 @@ stdenv.mkDerivation {
dontBuild = true;
- preInstall = lib.concatMapStringsSep "\n"
- (section: "mkdir -p \"${manDir}/man${builtins.toString section}\"")
- sections;
-
meta = with lib; {
inherit description license maintainers;
inherit (src.meta) homepage;
diff --git a/pkgs/build-support/skaware/build-skaware-package.nix b/pkgs/build-support/skaware/build-skaware-package.nix
index d6f26fe908aa..50d83f2ffff9 100644
--- a/pkgs/build-support/skaware/build-skaware-package.nix
+++ b/pkgs/build-support/skaware/build-skaware-package.nix
@@ -22,7 +22,8 @@
, postInstall
# : list Maintainer
, maintainers ? []
-
+ # : passtrhu arguments (e.g. tests)
+, passthru ? {}
}:
@@ -49,6 +50,8 @@ let
"CHANGELOG"
"README"
"README.*"
+ "DCO"
+ "CONTRIBUTING"
];
in stdenv.mkDerivation {
@@ -106,4 +109,6 @@ in stdenv.mkDerivation {
[ pmahoney Profpatsch qyliss ] ++ maintainers;
};
+ inherit passthru;
+
}
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index f06d2136b8c6..2966675be7ca 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, stdenvNoCC, lndir, runtimeShell }:
+{ lib, stdenv, stdenvNoCC, lndir, runtimeShell, shellcheck }:
rec {
@@ -111,9 +111,10 @@ rec {
, executable ? false # run chmod +x ?
, destination ? "" # relative path appended to $out eg "/bin/foo"
, checkPhase ? "" # syntax checks, e.g. for scripts
+ , meta ? { }
}:
runCommand name
- { inherit text executable checkPhase;
+ { inherit text executable checkPhase meta;
passAsFile = [ "text" ];
# Pointless to do this on a remote machine.
preferLocalBuild = true;
@@ -249,6 +250,60 @@ rec {
'';
};
+ /*
+ * Similar to writeShellScriptBin and writeScriptBin.
+ * Writes an executable Shell script to /nix/store//bin/ and
+ * checks its syntax with shellcheck and the shell's -n option.
+ * Automatically includes sane set of shellopts (errexit, nounset, pipefail)
+ * and handles creation of PATH based on runtimeInputs
+ *
+ * Note that the checkPhase uses stdenv.shell for the test run of the script,
+ * while the generated shebang uses runtimeShell. If, for whatever reason,
+ * those were to mismatch you might lose fidelity in the default checks.
+ *
+ * Example:
+ * # Writes my-file to /nix/store//bin/my-file and makes executable.
+ * writeShellApplication {
+ * name = "my-file";
+ * runtimeInputs = [ curl w3m ];
+ * text = ''
+ * curl -s 'https://nixos.org' | w3m -dump -T text/html
+ * '';
+ * }
+ */
+ writeShellApplication =
+ { name
+ , text
+ , runtimeInputs ? [ ]
+ , checkPhase ? null
+ }:
+ writeTextFile {
+ inherit name;
+ executable = true;
+ destination = "/bin/${name}";
+ text = ''
+ #!${runtimeShell}
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
+
+ ${text}
+ '';
+
+ checkPhase =
+ if checkPhase == null then ''
+ runHook preCheck
+ ${stdenv.shell} -n $out/bin/${name}
+ ${shellcheck}/bin/shellcheck $out/bin/${name}
+ runHook postCheck
+ ''
+ else checkPhase;
+
+ meta.mainProgram = name;
+ };
+
# Create a C binary
writeCBin = name: code:
runCommandCC name
@@ -465,6 +520,88 @@ rec {
'';
+ /*
+ * Extract a string's references to derivations and paths (its
+ * context) and write them to a text file, removing the input string
+ * itself from the dependency graph. This is useful when you want to
+ * make a derivation depend on the string's references, but not its
+ * contents (to avoid unnecessary rebuilds, for example).
+ *
+ * Note that this only works as intended on Nix >= 2.3.
+ */
+ writeStringReferencesToFile = string:
+ /*
+ * The basic operation this performs is to copy the string context
+ * from `string' to a second string and wrap that string in a
+ * derivation. However, that alone is not enough, since nothing in the
+ * string refers to the output paths of the derivations/paths in its
+ * context, meaning they'll be considered build-time dependencies and
+ * removed from the wrapper derivation's closure. Putting the
+ * necessary output paths in the new string is however not very
+ * straightforward - the attrset returned by `getContext' contains
+ * only references to derivations' .drv-paths, not their output
+ * paths. In order to "convert" them, we try to extract the
+ * corresponding paths from the original string using regex.
+ */
+ let
+ # Taken from https://github.com/NixOS/nix/blob/130284b8508dad3c70e8160b15f3d62042fc730a/src/libutil/hash.cc#L84
+ nixHashChars = "0123456789abcdfghijklmnpqrsvwxyz";
+ context = builtins.getContext string;
+ derivations = lib.filterAttrs (n: v: v ? outputs) context;
+ # Objects copied from outside of the store, such as paths and
+ # `builtins.fetch*`ed ones
+ sources = lib.attrNames (lib.filterAttrs (n: v: v ? path) context);
+ packages =
+ lib.mapAttrs'
+ (name: value:
+ {
+ inherit value;
+ name = lib.head (builtins.match "${builtins.storeDir}/[${nixHashChars}]+-(.*)\.drv" name);
+ })
+ derivations;
+ # The syntax of output paths differs between outputs named `out`
+ # and other, explicitly named ones. For explicitly named ones,
+ # the output name is suffixed as `-name`, but `out` outputs
+ # aren't suffixed at all, and thus aren't easily distinguished
+ # from named output paths. Therefore, we find all the named ones
+ # first so we can use them to remove false matches when looking
+ # for `out` outputs (see the definition of `outputPaths`).
+ namedOutputPaths =
+ lib.flatten
+ (lib.mapAttrsToList
+ (name: value:
+ (map
+ (output:
+ lib.filter
+ lib.isList
+ (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name}-${output})" string))
+ (lib.remove "out" value.outputs)))
+ packages);
+ # Only `out` outputs
+ outputPaths =
+ lib.flatten
+ (lib.mapAttrsToList
+ (name: value:
+ if lib.elem "out" value.outputs then
+ lib.filter
+ (x: lib.isList x &&
+ # If the matched path is in `namedOutputPaths`,
+ # it's a partial match of an output path where
+ # the output name isn't `out`
+ lib.all (o: !lib.hasPrefix (lib.head x) o) namedOutputPaths)
+ (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name})" string)
+ else
+ [])
+ packages);
+ allPaths = lib.concatStringsSep "\n" (lib.unique (sources ++ namedOutputPaths ++ outputPaths));
+ allPathsWithContext = builtins.appendContext allPaths context;
+ in
+ if builtins ? getContext then
+ writeText "string-references" allPathsWithContext
+ else
+ writeDirectReferencesToFile (writeText "string-file" string);
+
+
/* Print an error message if the file with the specified name and
* hash doesn't exist in the Nix store. This function should only
* be used by non-redistributable software with an unfree license
diff --git a/pkgs/build-support/trivial-builders/test.sh b/pkgs/build-support/trivial-builders/test/references-test.sh
similarity index 67%
rename from pkgs/build-support/trivial-builders/test.sh
rename to pkgs/build-support/trivial-builders/test/references-test.sh
index b7c4726a9be0..473ca6e10769 100755
--- a/pkgs/build-support/trivial-builders/test.sh
+++ b/pkgs/build-support/trivial-builders/test/references-test.sh
@@ -8,11 +8,11 @@
#
# This file can be run independently (quick):
#
-# $ pkgs/build-support/trivial-builders/test.sh
+# $ pkgs/build-support/trivial-builders/references-test.sh
#
# or in the build sandbox with a ~20s VM overhead
#
-# $ nix-build -A tests.trivial-builders
+# $ nix-build -A tests.trivial-builders.references
#
# -------------------------------------------------------------------------- #
@@ -26,9 +26,15 @@ set -euo pipefail
cd "$(dirname ${BASH_SOURCE[0]})" # nixpkgs root
if [[ -z ${SAMPLE:-} ]]; then
- sample=( `nix-build test/sample.nix` )
- directRefs=( `nix-build test/invoke-writeDirectReferencesToFile.nix` )
- references=( `nix-build test/invoke-writeReferencesToFile.nix` )
+ echo "Running the script directly is currently not supported."
+ echo "If you need to iterate, remove the raw path, which is not returned by nix-build."
+ exit 1
+# sample=( `nix-build --no-out-link sample.nix` )
+# directRefs=( `nix-build --no-out-link invoke-writeDirectReferencesToFile.nix` )
+# references=( `nix-build --no-out-link invoke-writeReferencesToFile.nix` )
+# echo "sample: ${#sample[@]}"
+# echo "direct: ${#directRefs[@]}"
+# echo "indirect: ${#references[@]}"
else
# Injected by Nix (to avoid evaluating in a derivation)
# turn them into arrays
diff --git a/pkgs/build-support/trivial-builders/test.nix b/pkgs/build-support/trivial-builders/test/references.nix
similarity index 73%
rename from pkgs/build-support/trivial-builders/test.nix
rename to pkgs/build-support/trivial-builders/test/references.nix
index 204fb54fca3d..a2bee51b13e7 100644
--- a/pkgs/build-support/trivial-builders/test.nix
+++ b/pkgs/build-support/trivial-builders/test/references.nix
@@ -8,11 +8,11 @@
#
# This file can be run independently (quick):
#
-# $ pkgs/build-support/trivial-builders/test.sh
+# $ pkgs/build-support/trivial-builders/references-test.sh
#
# or in the build sandbox with a ~20s VM overhead
#
-# $ nix-build -A tests.trivial-builders
+# $ nix-build -A tests.trivial-builders.references
#
# -------------------------------------------------------------------------- #
@@ -33,16 +33,17 @@ nixosTest {
builtins.toJSON [hello figlet stdenvNoCC]
);
environment.variables = {
- SAMPLE = invokeSamples ./test/sample.nix;
- REFERENCES = invokeSamples ./test/invoke-writeReferencesToFile.nix;
- DIRECT_REFS = invokeSamples ./test/invoke-writeDirectReferencesToFile.nix;
+ SAMPLE = invokeSamples ./sample.nix;
+ REFERENCES = invokeSamples ./invoke-writeReferencesToFile.nix;
+ DIRECT_REFS = invokeSamples ./invoke-writeDirectReferencesToFile.nix;
};
};
- testScript = ''
- machine.succeed("""
- ${./test.sh} 2>/dev/console
- """)
- '';
+ testScript =
+ ''
+ machine.succeed("""
+ ${./references-test.sh} 2>/dev/console
+ """)
+ '';
meta = {
license = lib.licenses.mit; # nixpkgs license
maintainers = with lib.maintainers; [
diff --git a/pkgs/build-support/trivial-builders/test/sample.nix b/pkgs/build-support/trivial-builders/test/sample.nix
index 27aee6b73dbe..a4eedce8417e 100644
--- a/pkgs/build-support/trivial-builders/test/sample.nix
+++ b/pkgs/build-support/trivial-builders/test/sample.nix
@@ -1,17 +1,27 @@
-{ pkgs ? import ../../../.. { config = {}; overlays = []; } }:
+{ pkgs ? import ../../../.. { config = { }; overlays = [ ]; } }:
let
inherit (pkgs)
figlet
+ zlib
hello
writeText
+ runCommand
;
in
{
hello = hello;
figlet = figlet;
+ zlib = zlib;
+ zlib-dev = zlib.dev;
norefs = writeText "hi" "hello";
+ norefsDup = writeText "hi" "hello";
helloRef = writeText "hi" "hello ${hello}";
+ helloRefDup = writeText "hi" "hello ${hello}";
+ path = ./invoke-writeReferencesToFile.nix;
+ pathLike.outPath = ./invoke-writeReferencesToFile.nix;
helloFigletRef = writeText "hi" "hello ${hello} ${figlet}";
+ selfRef = runCommand "self-ref-1" {} "echo $out >$out";
+ selfRef2 = runCommand "self-ref-2" {} ''echo "${figlet}, $out" >$out'';
inherit (pkgs)
emptyFile
emptyDirectory
diff --git a/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix b/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix
new file mode 100644
index 000000000000..b93b43b74aa4
--- /dev/null
+++ b/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix
@@ -0,0 +1,18 @@
+{ callPackage, lib, pkgs, runCommand, writeText, writeStringReferencesToFile }:
+let
+ sample = import ./sample.nix { inherit pkgs; };
+ samplePaths = lib.unique (lib.attrValues sample);
+ stri = x: "${x}";
+ sampleText = writeText "sample-text" (lib.concatStringsSep "\n" (lib.unique (map stri samplePaths)));
+ stringReferencesText =
+ writeStringReferencesToFile
+ ((lib.concatMapStringsSep "fillertext"
+ stri
+ (lib.attrValues sample)) + ''
+ STORE=${builtins.storeDir};\nsystemctl start bar-foo.service
+ '');
+in
+runCommand "test-writeStringReferencesToFile" { } ''
+ diff -U3 <(sort ${stringReferencesText}) <(sort ${sampleText})
+ touch $out
+''
diff --git a/pkgs/build-support/upstream-updater/attrset-to-dir.nix b/pkgs/build-support/upstream-updater/attrset-to-dir.nix
index 24f7b735c2e2..006537278dae 100644
--- a/pkgs/build-support/upstream-updater/attrset-to-dir.nix
+++ b/pkgs/build-support/upstream-updater/attrset-to-dir.nix
@@ -1,8 +1,7 @@
-a :
+a :
a.stdenv.mkDerivation {
buildCommand = ''
mkdir -p "$out/attributes"
-
'' + (a.lib.concatStrings (map
(n: ''
ln -s "${a.writeTextFile {name=n; text=builtins.getAttr n a.theAttrSet;}}" $out/attributes/${n};
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 3a52d756571c..a6633d11286f 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -8,14 +8,17 @@
++ pkgs.lib.optional (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) "rtc_cmos"
}:
-with pkgs;
-with import ../../../nixos/lib/qemu-flags.nix { inherit pkgs; };
-
+let
+ inherit (pkgs) bash bashInteractive busybox cpio coreutils e2fsprogs fetchurl kmod rpm
+ stdenv util-linux
+ buildPackages writeScript writeText runCommand;
+in
rec {
+ qemu-common = import ../../../nixos/lib/qemu-common.nix { inherit lib pkgs; };
- qemu = pkgs.qemu_kvm;
+ qemu = buildPackages.qemu_kvm;
- modulesClosure = makeModulesClosure {
+ modulesClosure = pkgs.makeModulesClosure {
inherit kernel rootModules;
firmware = kernel;
};
@@ -24,7 +27,7 @@ rec {
hd = "vda"; # either "sda" or "vda"
initrdUtils = runCommand "initrd-utils"
- { buildInputs = [ nukeReferences ];
+ { nativeBuildInputs = [ buildPackages.nukeReferences ];
allowedReferences = [ "out" modulesClosure ]; # prevent accidents like glibc being included in the initrd
}
''
@@ -137,7 +140,7 @@ rec {
'';
- initrd = makeInitrd {
+ initrd = pkgs.makeInitrd {
contents = [
{ object = stage1Init;
symlink = "/init";
@@ -152,7 +155,7 @@ rec {
# Set the system time from the hardware clock. Works around an
# apparent KVM > 1.5.2 bug.
- ${pkgs.util-linux}/bin/hwclock -s
+ ${util-linux}/bin/hwclock -s
export NIX_STORE=${storeDir}
export NIX_BUILD_TOP=/tmp
@@ -192,13 +195,13 @@ rec {
export PATH=/bin:/usr/bin:${coreutils}/bin
echo "Starting interactive shell..."
echo "(To run the original builder: \$origBuilder \$origArgs)"
- exec ${busybox}/bin/setsid ${bashInteractive}/bin/bash < /dev/${qemuSerialDevice} &> /dev/${qemuSerialDevice}
+ exec ${busybox}/bin/setsid ${bashInteractive}/bin/bash < /dev/${qemu-common.qemuSerialDevice} &> /dev/${qemu-common.qemuSerialDevice}
fi
'';
qemuCommandLinux = ''
- ${qemuBinary qemu} \
+ ${qemu-common.qemuBinary qemu} \
-nographic -no-reboot \
-device virtio-rng-pci \
-virtfs local,path=${storeDir},security_model=none,mount_tag=store \
@@ -206,7 +209,7 @@ rec {
''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \
-kernel ${kernel}/${img} \
-initrd ${initrd}/initrd \
- -append "console=${qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \
+ -append "console=${qemu-common.qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \
$QEMU_OPTS
'';
@@ -257,14 +260,23 @@ rec {
eval "$postVM"
'';
-
- createEmptyImage = {size, fullName}: ''
- mkdir $out
- diskImage=$out/disk-image.qcow2
+ /*
+ A bash script fragment that produces a disk image at `destination`.
+ */
+ createEmptyImage = {
+ # Disk image size in MiB
+ size,
+ # Name that will be written to ${destination}/nix-support/full-name
+ fullName,
+ # Where to write the image files, defaulting to $out
+ destination ? "$out"
+ }: ''
+ mkdir -p ${destination}
+ diskImage=${destination}/disk-image.qcow2
${qemu}/bin/qemu-img create -f qcow2 $diskImage "${toString size}M"
- mkdir $out/nix-support
- echo "${fullName}" > $out/nix-support/full-name
+ mkdir ${destination}/nix-support
+ echo "${fullName}" > ${destination}/nix-support/full-name
'';
@@ -315,7 +327,7 @@ rec {
extractFs = {file, fs ? null} :
- with pkgs; runInLinuxVM (
+ runInLinuxVM (
stdenv.mkDerivation {
name = "extract-file";
buildInputs = [ util-linux ];
@@ -340,10 +352,10 @@ rec {
extractMTDfs = {file, fs ? null} :
- with pkgs; runInLinuxVM (
+ runInLinuxVM (
stdenv.mkDerivation {
name = "extract-file-mtd";
- buildInputs = [ util-linux mtdutils ];
+ buildInputs = [ pkgs.util-linux pkgs.mtdutils ];
buildCommand = ''
ln -s ${kernel}/lib /lib
${kmod}/bin/modprobe mtd
@@ -378,7 +390,7 @@ rec {
diskImage=$(pwd)/disk-image.qcow2
origImage=${attrs.diskImage}
if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi
- ${qemu}/bin/qemu-img create -b "$origImage" -f qcow2 $diskImage
+ ${qemu}/bin/qemu-img create -F ${attrs.diskImageFormat} -b "$origImage" -f qcow2 $diskImage
'';
/* Inside the VM, run the stdenv setup script normally, but at the
@@ -494,7 +506,7 @@ rec {
tarball must contain an RPM specfile. */
buildRPM = attrs: runInLinuxImage (stdenv.mkDerivation ({
- prePhases = [ prepareImagePhase sysInfoPhase ];
+ prePhases = [ pkgs.prepareImagePhase pkgs.sysInfoPhase ];
dontUnpack = true;
dontConfigure = true;
@@ -575,7 +587,7 @@ rec {
buildCommand = ''
${createRootFS}
- PATH=$PATH:${lib.makeBinPath [ dpkg dpkg glibc xz ]}
+ PATH=$PATH:${lib.makeBinPath [ pkgs.dpkg pkgs.glibc pkgs.xz ]}
# Unpack the .debs. We do this to prevent pre-install scripts
# (which have lots of circular dependencies) from barfing.
@@ -655,7 +667,10 @@ rec {
rpmClosureGenerator =
{name, packagesLists, urlPrefixes, packages, archs ? []}:
assert (builtins.length packagesLists) == (builtins.length urlPrefixes);
- runCommand "${name}.nix" {buildInputs = [perl perlPackages.XMLSimple]; inherit archs;} ''
+ runCommand "${name}.nix" {
+ nativeBuildInputs = [ buildPackages.perl buildPackages.perlPackages.XMLSimple ];
+ inherit archs;
+ } ''
${lib.concatImapStrings (i: pl: ''
gunzip < ${pl} > ./packages_${toString i}.xml
'') packagesLists}
@@ -694,7 +709,8 @@ rec {
debClosureGenerator =
{name, packagesLists, urlPrefix, packages}:
- runCommand "${name}.nix" { buildInputs = [ perl dpkg ]; } ''
+ runCommand "${name}.nix"
+ { nativeBuildInputs = [ buildPackages.perl buildPackages.dpkg ]; } ''
for i in ${toString packagesLists}; do
echo "adding $i..."
case $i in
diff --git a/pkgs/build-support/vm/test.nix b/pkgs/build-support/vm/test.nix
index 1a29554ee80c..384c92088083 100644
--- a/pkgs/build-support/vm/test.nix
+++ b/pkgs/build-support/vm/test.nix
@@ -28,10 +28,10 @@ with vmTools;
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
name = "deb-compile";
src = patchelf.src;
- diskImage = diskImages.ubuntu1204i386;
+ diskImage = diskImages.ubuntu1804i386;
+ diskImageFormat = "qcow2";
memSize = 512;
- prePhases = [ sysInfoPhase ];
- sysInfoPhase = ''
+ postHook = ''
dpkg-query --list
'';
});
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index 111ec68a6021..216e41f6d7ec 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, gawk, gnused, gixy }:
+{ pkgs, buildPackages, lib, gawk, gnused, gixy }:
with lib;
rec {
@@ -77,7 +77,11 @@ rec {
}) ''
${compileScript}
${lib.optionalString strip
- "${pkgs.binutils-unwrapped}/bin/strip --strip-unneeded $out"}
+ "${lib.getBin buildPackages.bintools-unwrapped}/bin/${buildPackages.bintools-unwrapped.targetPrefix}strip -S $out"}
+ # Sometimes binaries produced for darwin (e. g. by GHC) won't be valid
+ # mach-o executables from the get-go, but need to be corrected somehow
+ # which is done by fixupPhase.
+ ${lib.optionalString pkgs.stdenvNoCC.hostPlatform.isDarwin "fixupPhase"}
${optionalString (types.path.check nameOrPath) ''
mv $out tmp
mkdir -p $out/$(dirname "${nameOrPath}")
diff --git a/pkgs/common-updater/scripts/list-archive-two-level-versions b/pkgs/common-updater/scripts/list-archive-two-level-versions
index e46652820ad2..36a051e97c91 100755
--- a/pkgs/common-updater/scripts/list-archive-two-level-versions
+++ b/pkgs/common-updater/scripts/list-archive-two-level-versions
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/usr/bin/env bash
# lists all available versions listed for a package in a site (http)
diff --git a/pkgs/common-updater/scripts/list-git-tags b/pkgs/common-updater/scripts/list-git-tags
index ff09671c7cb0..d137552cdd66 100755
--- a/pkgs/common-updater/scripts/list-git-tags
+++ b/pkgs/common-updater/scripts/list-git-tags
@@ -1,4 +1,4 @@
-#! /bin/sh -x
+#!/usr/bin/env bash
# lists all available tags from a git repository
diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version
index d5c23466ee03..0ac6b3cf8c28 100755
--- a/pkgs/common-updater/scripts/update-source-version
+++ b/pkgs/common-updater/scripts/update-source-version
@@ -188,7 +188,9 @@ tempHash=$(printf '%0*d' "$hashLength" 0)
if [[ -n "$sri" ]]; then
# SRI hashes only support base64
# SRI hashes need to declare the hash type as part of the hash
- tempHash="$(nix to-sri --type "$oldHashAlgo" "$tempHash")"
+ tempHash="$(nix hash to-sri --type "$oldHashAlgo" "$tempHash" 2>/dev/null \
+ || nix to-sri --type "$oldHashAlgo" "$tempHash" 2>/dev/null)" \
+ || die "Failed to convert hash to SRI representation!"
fi
# Escape regex metacharacter that are allowed in hashes (+)
@@ -232,7 +234,9 @@ if [[ -z "$newHash" ]]; then
if [[ -n "$sri" ]]; then
# nix-build preserves the hashing scheme so we can just convert the result to SRI using the old type
- newHash="$(nix to-sri --type "$oldHashAlgo" "$newHash")"
+ newHash="$(nix hash to-sri --type "$oldHashAlgo" "$newHash" 2>/dev/null \
+ || nix to-sri --type "$oldHashAlgo" "$newHash" 2>/dev/null)" \
+ || die "Failed to convert hash to SRI representation!"
fi
fi
diff --git a/pkgs/data/documentation/execline-man-pages/default.nix b/pkgs/data/documentation/execline-man-pages/default.nix
index 9e325b79748a..ed4389cad6c9 100644
--- a/pkgs/data/documentation/execline-man-pages/default.nix
+++ b/pkgs/data/documentation/execline-man-pages/default.nix
@@ -2,9 +2,8 @@
buildManPages {
pname = "execline-man-pages";
- version = "2.8.0.1.1";
- sha256 = "0xv9v39na1qnd8cm4v7xb8wa4ap3djq20iws0lrqz7vn1w40i8b4";
+ version = "2.8.1.0.3";
+ sha256 = "1n7c75lmyrjzzcbwjl6fxhfs4k29qlr66r1q35799h942cn4li7v";
description = "Port of the documentation for the execline suite to mdoc";
- sections = [ 1 7 ];
maintainers = [ lib.maintainers.sternenseemann ];
}
diff --git a/pkgs/data/documentation/gnome-user-docs/default.nix b/pkgs/data/documentation/gnome-user-docs/default.nix
index ded70a91c955..cdc104f3a535 100644
--- a/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -9,11 +9,11 @@
stdenv.mkDerivation rec {
pname = "gnome-user-docs";
- version = "40.3";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "PeBXr6KsDebKcH9KdsKTLcvFVsHQ0cwCBWXcGHYpLM0=";
+ sha256 = "0lfxj8irwm88n3ba351ak85r97pqlds6y2hqbsic714yj4k8df1a";
};
nativeBuildInputs = [
diff --git a/pkgs/data/documentation/linux-manual/default.nix b/pkgs/data/documentation/linux-manual/default.nix
new file mode 100644
index 000000000000..27690f9b99cd
--- /dev/null
+++ b/pkgs/data/documentation/linux-manual/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, perl, linuxPackages_latest }:
+
+stdenv.mkDerivation rec {
+ pname = "linux-manual";
+ inherit (linuxPackages_latest.kernel) version src;
+
+ nativeBuildInputs = [ perl ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ postPatch = ''
+ patchShebangs --build \
+ scripts/kernel-doc \
+ scripts/split-man.pl
+ '';
+
+ installPhase = ''
+ mandir=$out/share/man/man9
+ mkdir -p $mandir
+
+ KBUILD_BUILD_TIMESTAMP=$(stat -c %Y Makefile) \
+ grep -F -l -Z \
+ --exclude-dir Documentation \
+ --exclude-dir tools \
+ -R '/**' \
+ | xargs -0 -n 256 -P $NIX_BUILD_CORES \
+ $SHELL -c '{ scripts/kernel-doc -man "$@" || :; } \
+ | scripts/split-man.pl '$mandir kernel-doc
+
+ test -f $mandir/kmalloc.9
+ '';
+
+ meta = with lib; {
+ homepage = "https://kernel.org/";
+ description = "Linux kernel API manual pages";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ mvs ];
+ };
+}
diff --git a/pkgs/data/documentation/s6-man-pages/default.nix b/pkgs/data/documentation/s6-man-pages/default.nix
index 78e3d1a3b866..d38df8cf0373 100644
--- a/pkgs/data/documentation/s6-man-pages/default.nix
+++ b/pkgs/data/documentation/s6-man-pages/default.nix
@@ -2,9 +2,8 @@
buildManPages {
pname = "s6-man-pages";
- version = "2.10.0.3.1";
- sha256 = "0q9b6v7kbyjsh390s4bw80kjdp92kih609vlmnpl1qzyrr6kivsg";
+ version = "2.11.0.0.2";
+ sha256 = "1ddab4l4wwrg2jdcrdqp1rx8dzbzbdsvx4mzayraxva4q97d1g9r";
description = "Port of the documentation for the s6 supervision suite to mdoc";
- sections = [ 1 7 ];
maintainers = [ lib.maintainers.sternenseemann ];
}
diff --git a/pkgs/data/documentation/s6-networking-man-pages/default.nix b/pkgs/data/documentation/s6-networking-man-pages/default.nix
index 4177b502b5e5..769f34348b16 100644
--- a/pkgs/data/documentation/s6-networking-man-pages/default.nix
+++ b/pkgs/data/documentation/s6-networking-man-pages/default.nix
@@ -2,9 +2,8 @@
buildManPages {
pname = "s6-networking-man-pages";
- version = "2.4.1.1.1";
- sha256 = "1qrqzm2r4rxf8hglz8k4laknjqcx1y0z1kjf636z91w1077qg0pn";
+ version = "2.5.0.0.2";
+ sha256 = "1ix8qrivp9prw0m401d7s9vkxhw16a4sxfhrs7abf9qqhs2zkd1r";
description = "Port of the documentation for the s6-networking suite to mdoc";
- sections = [ 1 7 ];
maintainers = [ lib.maintainers.sternenseemann ];
}
diff --git a/pkgs/data/fonts/3270font/default.nix b/pkgs/data/fonts/3270font/default.nix
index d737c9383f15..914583d97eec 100644
--- a/pkgs/data/fonts/3270font/default.nix
+++ b/pkgs/data/fonts/3270font/default.nix
@@ -1,13 +1,13 @@
{ lib, fetchzip }:
let
- version = "2.3.0";
+ version = "2.3.1";
in
fetchzip {
name = "3270font-${version}";
- url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_fd00815.zip";
+ url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_3b8f2fb.zip";
- sha256 = "0ny2jcsfa1kfzkm979dfzqv756ijm5xirm02ln7a4kwhxxsm5xr1";
+ sha256 = "06n87ydn2ayfhpg8318chmnwmdk3d4mmy65fcgf8frbiv2kpqncs";
postFetch = ''
mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/arphic/default.nix b/pkgs/data/fonts/arphic/default.nix
index 714af585d255..02e2a2de417b 100644
--- a/pkgs/data/fonts/arphic/default.nix
+++ b/pkgs/data/fonts/arphic/default.nix
@@ -6,7 +6,7 @@ in {
arphic-ukai = fetchzip {
name = "arphic-ukai-${version}";
- url = "http://archive.ubuntu.com/ubuntu/pool/main/f/fonts-arphic-ukai/fonts-arphic-ukai_${version}.orig.tar.bz2";
+ url = "mirror://ubuntu/pool/main/f/fonts-arphic-ukai/fonts-arphic-ukai_${version}.orig.tar.bz2";
postFetch = ''
tar -xjvf $downloadedFile --strip-components=1
@@ -31,7 +31,7 @@ in {
arphic-uming = fetchzip {
name = "arphic-uming-${version}";
- url = "http://archive.ubuntu.com/ubuntu/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_${version}.orig.tar.bz2";
+ url = "mirror://ubuntu/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_${version}.orig.tar.bz2";
postFetch = ''
tar -xjvf $downloadedFile --strip-components=1
diff --git a/pkgs/data/fonts/atkinson-hyperlegible/default.nix b/pkgs/data/fonts/atkinson-hyperlegible/default.nix
new file mode 100644
index 000000000000..ef7425e12e49
--- /dev/null
+++ b/pkgs/data/fonts/atkinson-hyperlegible/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+ pname = "atkinson-hyperlegible";
+ version = "unstable-2021-04-29";
+in fetchFromGitHub {
+ name = "${pname}-${version}";
+
+ owner = "googlefonts";
+ repo = "atkinson-hyperlegible";
+ rev = "1cb311624b2ddf88e9e37873999d165a8cd28b46";
+ sha256 = "sha256-urSTqC3rfDRM8IMG+edwKEe7NPiTuDZph3heGHzLDks=";
+
+ postFetch = ''
+ tar xf $downloadedFile --strip=1
+ install -Dm644 -t $out/share/fonts/opentype fonts/otf/*
+ '';
+
+ meta = with lib; {
+ description = "Typeface designed to offer greater legibility and readability for low vision readers";
+ homepage = "https://brailleinstitute.org/freefont";
+ license = licenses.ofl;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ zhaofengli ];
+ };
+}
diff --git a/pkgs/data/fonts/bront/default.nix b/pkgs/data/fonts/bront/default.nix
new file mode 100644
index 000000000000..d21c820f127b
--- /dev/null
+++ b/pkgs/data/fonts/bront/default.nix
@@ -0,0 +1,26 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+ pname = "bront_fonts";
+ version = "unstable-2015-06-28";
+
+ src = fetchFromGitHub {
+ owner = "chrismwendt";
+ repo = "bront";
+ rev = "aef23d9a11416655a8351230edb3c2377061c077";
+ sha256 = "1sx2gv19pgdyccb38sx3qnwszksmva7pqa1c8m35s6cipgjhhgb4";
+ };
+
+ installPhase = ''
+ install -m444 -Dt $out/share/fonts/truetype *Bront.ttf
+ '';
+
+ meta = with lib; {
+ description = "Bront Fonts";
+ longDescription = "Ubuntu Mono Bront and DejaVu Sans Mono Bront fonts.";
+ homepage = "https://github.com/chrismwendt/bront";
+ license = licenses.free;
+ platforms = platforms.all;
+ maintainers = [ maintainers.grburst ];
+ };
+}
diff --git a/pkgs/data/fonts/cascadia-code/default.nix b/pkgs/data/fonts/cascadia-code/default.nix
index c223f9366af1..b6a1a7a2c174 100644
--- a/pkgs/data/fonts/cascadia-code/default.nix
+++ b/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,13 +1,13 @@
{ lib, fetchzip }:
let
- version = "2106.17";
+ version = "2108.26";
in
fetchzip {
name = "cascadia-code-${version}";
url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
- sha256 = "sha256-EsXD6gY3q3KIk37vYPz731lLz5989cd+s5fz5rKIn2k=";
+ sha256 = "1dvwn5rs4ss4rwd64namy8ccz8dagkk84qjg13sxxqizyd5y08h1";
postFetch = ''
mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/chonburi/default.nix b/pkgs/data/fonts/chonburi/default.nix
new file mode 100644
index 000000000000..4a14368f1f5f
--- /dev/null
+++ b/pkgs/data/fonts/chonburi/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "chonburi";
+ version = "unstable-2021-09-15";
+
+ src = fetchFromGitHub {
+ owner = "cadsondemak";
+ repo = pname;
+ rev = "daf26bf77d82fba50eaa3aa3fad905cb9f6b5e28";
+ sha256 = "sha256-oC7ZCfNOyvGtqT9+Ap/CfCHzdWNzeCuac2dJ9fctgB8=";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/doc/chonburi $out/share/fonts/{opentype,truetype}
+
+ cp $src/OFL.txt $src/BRIEF.md $out/share/doc/chonburi
+ cp $src/fonts/*.otf $out/share/fonts/opentype
+ cp $src/fonts/*.ttf $out/share/fonts/truetype
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ homepage = "https://cadsondemak.github.io/chonburi/";
+ description = "A Didonic Thai and Latin display typeface";
+ longDescription = ''
+ The objective of this project is to create a Thai and Latin Display
+ typeface. Chonburi is a display typeface with high contrast in a Didone
+ style. This single-weight typeface provides advance typographical support
+ with features such as discretionary ligature. This font can be extended
+ the family to other weights including both narrow and extended version. It
+ is also ready to be matched with other non-Latin script.
+ '';
+ license = licenses.ofl;
+ platforms = platforms.all;
+ maintainers = [ maintainers.toastal ];
+ };
+}
diff --git a/pkgs/data/fonts/comfortaa/default.nix b/pkgs/data/fonts/comfortaa/default.nix
index 39c228d235b3..fc7ce56f7965 100644
--- a/pkgs/data/fonts/comfortaa/default.nix
+++ b/pkgs/data/fonts/comfortaa/default.nix
@@ -1,13 +1,13 @@
{ lib, fetchFromGitHub }:
let
- version = "3.101";
+ version = "2021-07-29";
in fetchFromGitHub rec {
name = "comfortaa-${version}";
owner = "googlefonts";
repo = "comfortaa";
- rev = version;
+ rev = "2a87ac6f6ea3495150bfa00d0c0fb53dd0a2f11b";
postFetch = ''
tar -xf $downloadedFile --strip=1
@@ -16,7 +16,7 @@ in fetchFromGitHub rec {
cp FONTLOG.txt README.md $out/share/doc/comfortaa
'';
- sha256 = "06jhdrfzl01ma085bp354g002ypmkbp6a51jn1lsj77zfj2mfmfc";
+ sha256 = "12ad7qy11q49iv9h3l2d7x7y7kf0hxbqhclb92bzwig8dzly9n2k";
meta = with lib; {
homepage = "http://aajohan.deviantart.com/art/Comfortaa-font-105395949";
diff --git a/pkgs/data/fonts/corefonts/default.nix b/pkgs/data/fonts/corefonts/default.nix
index c37d3251a9dc..4b4772699cd1 100644
--- a/pkgs/data/fonts/corefonts/default.nix
+++ b/pkgs/data/fonts/corefonts/default.nix
@@ -25,7 +25,8 @@ let
in
stdenv.mkDerivation {
- name = "corefonts-1";
+ pname = "corefonts";
+ version = "1";
exes = map ({name, sha256}: fetchurl {
url = "mirror://sourceforge/corefonts/${name}32.exe";
diff --git a/pkgs/data/fonts/gdouros/default.nix b/pkgs/data/fonts/gdouros/default.nix
index eb6635ec3a38..a707d6f25a49 100644
--- a/pkgs/data/fonts/gdouros/default.nix
+++ b/pkgs/data/fonts/gdouros/default.nix
@@ -2,36 +2,36 @@
let
fonts = {
- aegan = { version = "10.00"; file = "Aegean.zip"; sha256 = "0k47nhzw4vx771ch3xx8mf6xx5vx0hg0cif5jdlmdaz4h2c3rawz"; description = "Aegean"; };
- aegyptus = { version = "8.00"; file = "Aegyptus.zip"; sha256 = "13h2pi641k9vxgqi9l11mjya10ym9ln54wrkwxx6gxq63zy7y5mj"; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
- akkadian = { version = "7.18"; file = "Akkadian.zip"; sha256 = "1bplcvszbdrk85kqipn9lzhr62647wjibz1p8crzjvsw6f9ymxy3"; description = "Sumero-Akkadian Cuneiform"; };
- assyrian = { version = "2.00"; file = "AssyrianFont.zip"; sha256 = "0vdvb24vsnmwzd6bw14akqg0hbvsk8avgnbwk9fkybn1f801475k"; description = "Neo-Assyrian in Unicode with OpenType"; };
- eemusic = { version = "2.00"; file = "EEMusic.zip"; sha256 = "1y9jf105a2b689m7hdjmhhr7z5j0qd2w6dmb3iic9bwaczlrjy7j"; description = "Byzantine Musical Notation in Unicode with OpenType"; };
- maya = { version = "4.18"; file = "Maya.zip"; sha256 = "08z2ch0z2c43fjfg5m4yp3l1dp0cbk7lv5i7wzsr3cr9kr59wpi9"; description = "Maya Hieroglyphs"; };
- symbola = { version = "12.00"; file = "Symbola.zip"; sha256 = "1i3xra33xkj32vxs55xs2afrqyc822nk25669x78px5g5qd8gypm"; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
- textfonts = { version = "9.00"; file = "Textfonts.zip"; sha256 = "0wzxz4j4fgk81b88d58715n1wvq2mqmpjpk4g5hi3vk77y2zxc4d"; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
- unidings = { version = "9.19"; file = "Unidings.zip"; sha256 = "1bybzgdqhmq75hb12n3pjrsdcpw1a6sgryx464s68jlq4zi44g78"; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
+ aegan = { version = "13.00"; file = "Aegean.zip"; sha256 = "1w4ks341jw12p6zi1fy1hb3kqiqv61yn8i2hr9ybng9n8xdw03li"; description = "Aegean"; };
+ aegyptus = { version = "13.00"; file = "Aegyptus.zip"; sha256 = "16j8rj3mr2cddag7laxvzpm5w3yk467fwzsk60nq8pnh6ab1v05y"; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
+ akkadian = { version = "13.00"; file = "Akkadian.zip"; sha256 = "1f2v9cjk307c5lw0si9hwjcll5wb9nwwy5im0y16kvpgwh2ccshc"; description = "Sumero-Akkadian Cuneiform"; };
+ assyrian = { version = "13.00"; file = "Assyrian.zip"; sha256 = "18nx6ayfk3ba6wg1rp37r9fll5ajrwq2mp5w2l3y1q1kk92frkid"; description = "Neo-Assyrian in Unicode with OpenType"; };
+ eemusic = { version = "13.00"; file = "EEMusic.zip"; sha256 = "1kk5rd3wd7y13z9bqcg1k9idbwad4l3hfmi3lbfk4y1w895vgxk2"; description = "Byzantine Musical Notation in Unicode with OpenType"; };
+ maya = { version = "13.00"; file = "Maya%20Hieroglyphs.zip"; sha256 = "0fzzrlkd4m2dj2phg97nz782w0afmw0f0ykdvlwyp29j1ak7yyp1"; description = "Maya Hieroglyphs"; };
+ symbola = { version = "13.00"; file = "Symbola.zip"; sha256 = "04pxh5agvlkyg8mvv2szwshnmzi3n0m7va4xsyq401zbsa147rmi"; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
+ textfonts = { version = "13.00"; file = "Textfonts.zip"; sha256 = "1xp8qlfpvcf5n96zgm07zij3ndlzvqjlii8gx9sbj5aa56rxkdgb"; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
+ unidings = { version = "13.00"; file = "Unidings.zip"; sha256 = "0cvnxblk9wsr8mxm5lrdpdm456vi7lln7qh53b67npg4baf0as63"; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
};
mkpkg = name_: {version, file, sha256, description}: fetchzip rec {
name = "${name_}-${version}";
- url = "http://users.teilar.gr/~g1951d/${file}";
+ url = "https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/${file}";
postFetch = ''
mkdir -p $out/share/{fonts,doc}
- unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
- unzip -j $downloadedFile \*.docx \*.pdf \*.xlsx -d "$out/share/doc/${name}" || true # unpack docs if any
+ unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile \*.odt \*.pdf \*.xlsx -d "$out/share/doc/${name}" || true # unpack docs if any
rmdir "$out/share/doc/${name}" $out/share/doc || true # remove dirs if empty
'';
inherit sha256;
meta = {
inherit description;
- # see http://users.teilar.gr/~g1951d/License.pdf
+ # see https://dn-works.com/wp-content/uploads/2020/UFAS-Docs/License.pdf
# quite draconian: non-commercial, no modifications,
# no redistribution, "a single instantiation and no
# network installation"
license = lib.licenses.unfree;
- homepage = "http://users.teilar.gr/~g1951d/";
+ homepage = "https://dn-works.com/ufas/";
};
};
in
diff --git a/pkgs/data/fonts/i-dot-ming/default.nix b/pkgs/data/fonts/i-dot-ming/default.nix
new file mode 100644
index 000000000000..766440032f3a
--- /dev/null
+++ b/pkgs/data/fonts/i-dot-ming/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let
+ version = "7.01";
+in
+fetchzip {
+ name = "i.ming-${version}";
+ url = "https://raw.githubusercontent.com/ichitenfont/I.Ming/${version}/${version}/I.Ming-${version}.ttf";
+ sha256 = "1b2dj7spkznpkad8a0blqigj9f6ism057r0wn9wdqg5g88yp32vd";
+
+ postFetch = ''
+ install -DT -m444 $downloadedFile $out/share/fonts/truetype/I.Ming/I.Ming.ttf
+ '';
+
+ meta = with lib; {
+ description = "An open source Pan-CJK serif typeface";
+ homepage = "https://github.com/ichitenfont/I.Ming";
+ license = licenses.ipa;
+ platforms = platforms.all;
+ maintainers = [ maintainers.linsui ];
+ };
+}
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index cd33a834acc5..c24c507695e5 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "5.1.3";
+ version = "6.0.0";
in fetchzip {
name = "ibm-plex-${version}";
@@ -10,14 +10,15 @@ in fetchzip {
postFetch = ''
mkdir -p $out/share/fonts
- unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
+ unzip -j $downloadedFile "OpenType/*/*.otf" -x "OpenType/IBM-Plex-Sans-JP/unhinted/*" -d $out/share/fonts/opentype
'';
- sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
+ sha256 = "0zv9kw4hmchf374pl0iajzybmx5wklsplg56j115m46i4spij6mr";
meta = with lib; {
description = "IBM Plex Typeface";
homepage = "https://www.ibm.com/plex/";
+ changelog = "https://github.com/IBM/plex/raw/v${version}/CHANGELOG.md";
license = licenses.ofl;
platforms = platforms.all;
maintainers = [ maintainers.romildo ];
diff --git a/pkgs/data/fonts/inconsolata/default.nix b/pkgs/data/fonts/inconsolata/default.nix
index 327b7fa2ca52..57069fadbc5e 100644
--- a/pkgs/data/fonts/inconsolata/default.nix
+++ b/pkgs/data/fonts/inconsolata/default.nix
@@ -1,12 +1,18 @@
-{ lib, stdenv, google-fonts }:
+{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
pname = "inconsolata";
+ version = "unstable-2021-01-19";
- inherit (google-fonts) src version;
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "fonts";
+ rev = "f113126dc4b9b1473d9354a86129c9d7b837aa1a";
+ sha256 = "0safw5prpa63mqcyfw3gr3a535w4c9hg5ayw5pkppiwil7n3pyxs";
+ };
installPhase = ''
- install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/static/*.ttf
+ install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/*.ttf
'';
meta = with lib; {
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index ced17e2cc8e0..08c4a1b145e2 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -11,7 +11,7 @@ let
(builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
in stdenv.mkDerivation rec {
pname = "${name}-bin";
- version = "10.0.0";
+ version = "10.1.0";
src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
diff --git a/pkgs/data/fonts/iosevka/variants.nix b/pkgs/data/fonts/iosevka/variants.nix
index ce96f183375d..0ce5212b1311 100644
--- a/pkgs/data/fonts/iosevka/variants.nix
+++ b/pkgs/data/fonts/iosevka/variants.nix
@@ -1,95 +1,95 @@
# This file was autogenerated. DO NOT EDIT!
{
- iosevka = "1730pcbxkcyzfw22hgqsv45sybd79pdsm7vb4l2gm9pfzasypjra";
- iosevka-aile = "1nm0s8zhmg5v181rik4d4nsygxrvfr9wdjwqz6gfl2dmg17r7cyi";
- iosevka-curly = "0kmvj1zhf0xs02rdf2x1f3lnahj36dpc91p6k4mbji5mn9klb547";
- iosevka-curly-slab = "0zklkypyh303gi5gqpdkwmj3g9m1f1xqda3ah232c3d6cfznbyqc";
- iosevka-etoile = "1nj0p25pbjkzc1lg8fp45zxj6r3q4k5yc882rra3jkjmlw2h65b7";
- iosevka-slab = "1vz9443swmxb27iqmimjyg3zs6q0pw7fpwiiaa7k1s7gc5xkyb5s";
- iosevka-ss01 = "1g2xxl9x5apyhhm7lsbmplh19c5aln3jwryzqvrqxpnsngkqmp0h";
- iosevka-ss02 = "1d2b8syvdx8i1dqw9k87yirkyg3wdvr7y2hy5c3nzj62sg7drfla";
- iosevka-ss03 = "0b4y1v6kri4d56h6m58qqmc50bh4r4151h72n1a2q0a0nwkgvlwm";
- iosevka-ss04 = "0fj7rj9xy9sfrzdhjqzv37v34lmkajz4d497i7lvdc2i0w4ia4gf";
- iosevka-ss05 = "0xncnrf8d78iqf3731z0midw4rlza8hdji0m3gvxnigbq3cqxhwd";
- iosevka-ss06 = "15vclj2m5brp1fnw82w5b53cwlwzzsr5hzxm6j2bj9bghc75cigm";
- iosevka-ss07 = "1hs7c5n5pcgmspwrhdxv69dc0wdycfcdfs1mxwbamnal77c9q0s8";
- iosevka-ss08 = "00fz1yb0g1rlzw3pxfpi88vh03k1q9nkzi8h6naqv0hngcbsz1ia";
- iosevka-ss09 = "1ig5lqpk86z7mwr45gqvsdxs00g7b0mvx1i8q8hx5x4pyr36y7yh";
- iosevka-ss10 = "12c50mh3xggz03lqqrkdcmdfvfq3m87x8xb9x0h8lwfslqaa0c0x";
- iosevka-ss11 = "1qvdsfviif8wyms0bkzm7vx0gf8vx5gic3ghincv4ignx8hmrbm9";
- iosevka-ss12 = "17qxrpmbrandlibhshycsgjlwspx7gz0x6mzhy1n8ccycrd7qlii";
- iosevka-ss13 = "07nz5wf99j6m72vkrnbhpr4yhn3pdgb898dinzi4n5k0rmky03zb";
- iosevka-ss14 = "1h9icwqz4qdzm99j17qxmrv1jvm3dzqrcghsffva9yvr32anc5y6";
- iosevka-ss15 = "06362h12vy48ib338dw7vjxx6vqpfzcc47f54f23pp1b73ygrkxp";
- iosevka-ss16 = "1sbby53vmjaq8h09a2izf4w5nha5knpgb0ljfyfd1wj1nnkdbisp";
- iosevka-ss17 = "13l3dindp0x76c3ddx7ibjins65f6xpv8zy7dfjyil8kg2570lfq";
- iosevka-ss18 = "1z0ypy19cj2hlg8qhvg0a54p0704f8szljf0lrrajprc8ws4cqy0";
- sgr-iosevka = "0cl08cxidpvrjy2ifhjb4cgrcjsldv86ipx4i8wh2kvs632hkz42";
- sgr-iosevka-aile = "01a7glrzrifwbfh05jynhmjd78cck4hw8aik3qf8pjr0lmyn8inz";
- sgr-iosevka-curly = "1wl80fn6zk1dvhqnfwxc74i2f925yf362s45d1bshi3n2qd7ixv4";
- sgr-iosevka-curly-slab = "18vvhkqhljnpv75v7cbw5z3d4xc418g0pgh39zyy1sdpq01h6ycj";
- sgr-iosevka-etoile = "0g7brirxpb2s0a94vc00jk8d45wafcimkd1dkilhpc5h862d7y3d";
- sgr-iosevka-fixed = "17g81448bjms88xph2h8cjfz2z2bhy4dc5ialy583zw9hafk0b6k";
- sgr-iosevka-fixed-curly = "18kfz4bdp81ylwjikdyj00m58bb5ykaxnxv288d9qr9r0wav14bf";
- sgr-iosevka-fixed-curly-slab = "1r1223m547ddpjrc0dpzkmkbw4851lvkc2g37yzd97i7g3da0q5g";
- sgr-iosevka-fixed-slab = "006d1cznz5ikclpz6kli69h5jnsr50yd08za3m6k07npnj4g9i9h";
- sgr-iosevka-fixed-ss01 = "0dxjmxvhq7dba7f4dcw2z85mgbx4qmy3w1nz99kbn729pjv3xbnr";
- sgr-iosevka-fixed-ss02 = "1ljq7dxj7dfg8bwmljykbl0lgkw4q9v5h41mflrvxhxkgblghji9";
- sgr-iosevka-fixed-ss03 = "14q5wi4af1mnm6g895zgpmf1qcnadv0mpiyydcizayqxnc015xr0";
- sgr-iosevka-fixed-ss04 = "0szy07dlv9ag7jqahlgyi9wgwpas73rg2vw74jg63fx06svwyx7z";
- sgr-iosevka-fixed-ss05 = "1bm6mqal8jni9za27dmbq9pdqs9j3x58w0cnzx7ma3gyaypfi5jc";
- sgr-iosevka-fixed-ss06 = "08a6mzrbx7wl4z147kv3289fbaccd7cs0r1gp3dnkkypsy4cw907";
- sgr-iosevka-fixed-ss07 = "05l0i4mblgx2zqfp5qvpwqp9671mkfj60i4pg0kznwd13j0ya8qs";
- sgr-iosevka-fixed-ss08 = "15ils79jpa1kibyh3ih5dkjk0qi0ppsy9iibyyl301c4vyhgypzb";
- sgr-iosevka-fixed-ss09 = "1s2m349m7560zz10r0w0nmgixxzn0ys4j8jwy3c1zxzphdq60a10";
- sgr-iosevka-fixed-ss10 = "1iby1afylism23cn70x0bb2qi8mdkf0ysgnmagdr47cgh6n8kgmy";
- sgr-iosevka-fixed-ss11 = "10zn26ijrdj2s0fzc1d1kyi0rpy6qw1bbp6qwf1x1mbhapj0mc8a";
- sgr-iosevka-fixed-ss12 = "1vdxn5qr1h192c1czxifvr4f2mv1jhkb20m5n3wgawyf75p7blcy";
- sgr-iosevka-fixed-ss13 = "1fdki2kf6xy2mvxnna1m77xgk5hm88i1g5ds8dzr6gc5mkm5mw8m";
- sgr-iosevka-fixed-ss14 = "1gaycm1zzm2qnriy76xnyy74rk9ccs54q71br2m55jlr4ifglanv";
- sgr-iosevka-fixed-ss15 = "07b9ss5a2vk4gndwc6zw8qwa4wgsrfnfq9cbrx9zlzj08143q9dr";
- sgr-iosevka-fixed-ss16 = "156yh0hbqqklhpf7czblk43nmq3cw0akgiy4z7jq0904b96v68zs";
- sgr-iosevka-fixed-ss17 = "0wj8j09wvf7m7m1ss47bqf6s0nvrn3vlzdhgnmzwc2jc4rkrvjpa";
- sgr-iosevka-fixed-ss18 = "0zsy2ql3r0419h6ganfdfhmwzn7lprypw26bq7iqzvld03vss45c";
- sgr-iosevka-slab = "10al24w3lglgdz9v86yx6q58mx4qyrxr8kffl0qvjiqvdcyyp460";
- sgr-iosevka-ss01 = "0ipwpjwg14wijzx0qb0zni8rzvw6wwfbwzqv8pzf2dmm6iwnmnqc";
- sgr-iosevka-ss02 = "0nfbw5smfarglma3cddzw397rjh72qjxqhz3g28l0sj26gk2bwma";
- sgr-iosevka-ss03 = "0cdvb5igir3c216niq3i0hbjvff1y9bnzf6fwny17303vjvfqg41";
- sgr-iosevka-ss04 = "0sj62id2ljwsms8xv17j474pdr881r6z8kb7a26gv48p08r225fq";
- sgr-iosevka-ss05 = "13pxfc2s2vxxkqp4jvzam6bx7ywn350phs5xhlzmcdk4sjgml9i2";
- sgr-iosevka-ss06 = "0xscng0a90vlr621pnl3hxpn2la862rgcx7xy8d1i6k47wpp1zbj";
- sgr-iosevka-ss07 = "0yj11jc8fzw9l2316y90mdj7hsqd46y5i1rckxlvih5nv300x1cp";
- sgr-iosevka-ss08 = "15jn1xjafawd5b4y2z4fkbaf22fgbvc861m3sjx4hib5vqjn41p3";
- sgr-iosevka-ss09 = "0kffxk8kr5giisfc10a5h889azgkqs4q9f0gggv8xlml4afdycd0";
- sgr-iosevka-ss10 = "1ldwpx2ysx0v79qfzhcqcc2cwylwnr6x81fy2yqqnv2319v1xrky";
- sgr-iosevka-ss11 = "1rd98yvky9wxgxcp4ps9p1k4ll8hnh9g9vgwf1r0bjlykhv7dhmf";
- sgr-iosevka-ss12 = "0439fg1pvxnv96v77rzrn0sbzna962ixgn8bx4ykpx0wkrigmyrk";
- sgr-iosevka-ss13 = "0qzbf4milkijhmxfkv3al2w5s2aa0a0aqqqxbv2wgza7g3i2glgv";
- sgr-iosevka-ss14 = "0vk8s71lyrdgngdbaasimdg0a5ygckciy7wxkkbixvxh18vi3mfr";
- sgr-iosevka-ss15 = "0c5sai8zbciwpkwrfliakf8091n5zcj7bilkbhzljpgfhalxg43v";
- sgr-iosevka-ss16 = "0a8q3ns3chw6kg77fxc03njlbr4slnq83381lwznhnsziyk7jb6r";
- sgr-iosevka-ss17 = "0bbfq7fjbr718fnmfy4nl7m9n7sjnra89chig9am7571ws66wbxc";
- sgr-iosevka-ss18 = "16sj1g5i75hfd07ghsm6zb655mypgwagxzpz5sk22dkrilxwrdix";
- sgr-iosevka-term = "1ncr05mprm8bar8v9saqsklgm36mymzhzw5x1viz04757s89cqnc";
- sgr-iosevka-term-curly = "0vwi4ccz0fnd7a3adfxffar5qxfzkx4pz23208kzc5zjidl9s9ka";
- sgr-iosevka-term-curly-slab = "0dwjcj8d4am5kqw35w68hm3qnxyk9w5k44z2n1mf9gsj411layi8";
- sgr-iosevka-term-slab = "1i7gp1lirdzzcmcv5lcrdf2mb2l9v3kjx1yhhdydfpapq85q5wma";
- sgr-iosevka-term-ss01 = "0zjx0r7sznzdw1diy88p6bkdki0ihqilvksil6qccbg4fn9f2swm";
- sgr-iosevka-term-ss02 = "1ma8366h42n5ij2czhkhmfyzmv23hmn165ihjxmwkxhg0c58l4jl";
- sgr-iosevka-term-ss03 = "0n23fy0ks0pid1m8z5vl9j7g607nl70h7bxfn015lryl7v8yj2dm";
- sgr-iosevka-term-ss04 = "1a7llxzf4cs9jr7ldnhxdc7r2jviaffq2kvhkj3spqan9bk6ymcx";
- sgr-iosevka-term-ss05 = "1d3sp99f6gycbmxk6z0raa7gk0is0m7bc7dqb4dy6zikra35kv4x";
- sgr-iosevka-term-ss06 = "1vjc785rzzrcbdbcp5j2dljk9flv9inmcjswyf7fyacn4ghszap6";
- sgr-iosevka-term-ss07 = "03pjbr7bp1av2pav1x913j1h18b4nhxvr7k62dg68b019rj1pvfg";
- sgr-iosevka-term-ss08 = "1b9qvkb4zpvwfygvh7i6b6dcwk8jk0y1kg078ma4vlpfag9ay4xb";
- sgr-iosevka-term-ss09 = "0zcg1b1j7113qp5q81s5dx34n1h3lmrshrx8xkvy6kn1n48b17b8";
- sgr-iosevka-term-ss10 = "1nrciywy8fr8x716w087pyyw0vkyd60j3lmxc7ixsr9yl3ff9bb0";
- sgr-iosevka-term-ss11 = "1k4xsl9x6195ap2zg0xxrla4svvzxhwas6xf0dbh7k2baiwyknb3";
- sgr-iosevka-term-ss12 = "16h0i0vj98l0l6hfyjsq4qy8mxkz5p8xpqxnpd56wxm7mnl2b7i9";
- sgr-iosevka-term-ss13 = "1i907injbdamdyfd1ydzdjsygn0b3syab0ahas7xmd438rfkcfj6";
- sgr-iosevka-term-ss14 = "1ypx059ws3pdhkn6lsc4cai4qhm8gzm9chmrsiqk2978yaf2z06c";
- sgr-iosevka-term-ss15 = "1nqbslx44ikj4wd3h1ycqsbk6sk72zz2n49pkn9r3khp9wwz7qwn";
- sgr-iosevka-term-ss16 = "1lpmph22gqzn3zf9zsr5hzb59573xkiz7yq9pfqg5bxnx248byr9";
- sgr-iosevka-term-ss17 = "02d3vs46cg4nbak1y64cw5jlhzgxmlxxkhlz3jzf5wzzb9kli4iv";
- sgr-iosevka-term-ss18 = "1z580s3icbzpivp766cqdc3j8ijgpp5f2yz9a4g4hpz3isa1lpy6";
+ iosevka = "09fwk1sm2i0yf2qvwc99g46jhhi9jwmxrqm02m9n348gcsvml7k1";
+ iosevka-aile = "07nykjvm5acnxc585y7qfs38d1mm4x654wykq24cwd0qdialz2yn";
+ iosevka-curly = "1v9v5xhv4pdihb2q1hgzlw3z54vpg9lvjf753z95x97ah246kbyc";
+ iosevka-curly-slab = "0av94y57pi9vy8skb96dbvlcbz7j6hz7cvhsrdpx50nbf9x2ya4b";
+ iosevka-etoile = "0vinmfcxs16rx1i86sl7ig7hwwyfwv49vh12k6yx9gx56jyywj51";
+ iosevka-slab = "18sjdj5gdg993a0mzvx43l3ll7q2l8w30j12934nlzlw5cadv8gf";
+ iosevka-ss01 = "1k08nwzgdz78iiijd6bzfricjbwa23xmzjm6jq72q7cvcqrwpzfj";
+ iosevka-ss02 = "139q7ps9y97qzmyqr45xqphw5szr4a119pm1jnwrc5scplnhiisb";
+ iosevka-ss03 = "1rbsvrc11skznnk448nj0brfvj58zhgkczlq7skhb8rc3mznhgb8";
+ iosevka-ss04 = "0rr7zy9n84lqxj7h0ljd091m8a5yjs0kzpyp3j68mvccsdwncqq4";
+ iosevka-ss05 = "035rv0pq7741n6c7zkajjzis2rkdyb75z9zjzyiiylfx19j6d6a7";
+ iosevka-ss06 = "0bvbl36zpk79f3h7svs51l0wbllmnnkgxmdk76ikfg4a490nz4g9";
+ iosevka-ss07 = "061xngjvznr6syk1y996fmnjqpj0kvnnibibr46lgqcx5xb1w38x";
+ iosevka-ss08 = "0szc3iydg3kkg6v42ym52b7nd6ljfwrfcw7n3j1av9vhf5gmn0rv";
+ iosevka-ss09 = "1p0hsl6vihly2drh6yiniijcwvwjz35d34d6jfxavjhx028h92mw";
+ iosevka-ss10 = "152asnmd7m7q1hligkv4ar8h71xn96586p9whplvmkgfrcr731p7";
+ iosevka-ss11 = "0mf3gg1b9x3i1j8c3yqks7sc56j97fwx736pr01bf99lw4jchd2h";
+ iosevka-ss12 = "136s3i5dwz0iv8mivq8fraadhbqzjjc5h2c5wqydvmw9i7rpyp2h";
+ iosevka-ss13 = "0n9886kn9sr89rwnc0r0q9d2a16fykq5asd0cazrs95jbqq0acix";
+ iosevka-ss14 = "128y8dgsawdz20lyjshdl7932222dph6qyiirim6rkh99bp2kdy6";
+ iosevka-ss15 = "0h2ywzn2gmaj61n5gzdms7v3yqa3x474icdg10vqds7i86n6g8am";
+ iosevka-ss16 = "1c1sr4lphwf8x5xdagciws8dr7ia8jh2cy3zv787g8dhflhzvc1i";
+ iosevka-ss17 = "1gqbwx89hcnky7bi1xscz13ykh4srvycbfgf9z4b5j26wflfk2a9";
+ iosevka-ss18 = "07h0zcf789g6qw5laznf5y67syh003lwhr6141ifz2zv2sgjl716";
+ sgr-iosevka = "0h9yg63cjc0s4kbl5k9lpic48y5iz0hlm8bi7h2h850zhbj405fm";
+ sgr-iosevka-aile = "1sv0lb2xb18skwvvw95qzdi9hqr1mr3gi2p4plqlbxq6bjpcvc57";
+ sgr-iosevka-curly = "1irg71zrbqnw1r2ar5qkfzdjzb1ziwd22jyvm9g1gynjiwh1idaj";
+ sgr-iosevka-curly-slab = "12lc9gqlbnp4crp9qrqf38dlzwaqanyj3l9xyasd96z33wmgnvcr";
+ sgr-iosevka-etoile = "0j78cbrdsz9qnvs6y6vkv1ys2spfv9l207z20zkyw5m0i3yvhwi4";
+ sgr-iosevka-fixed = "04lirldlmjlvz8q33xb2886d1jqaj1a7a94mnrm1ikw2gzbh7j1m";
+ sgr-iosevka-fixed-curly = "1s4xyzlmg9s8jvpvc22bxqc6z9qn0bbgham9kp1w2nwlmlnhl712";
+ sgr-iosevka-fixed-curly-slab = "01g6rk0n1xs0bv4vyqv9pwyndzk9k8cfhf0sd640zdkqi51p4raw";
+ sgr-iosevka-fixed-slab = "1ipzwxs0jqk4cc8snyy9mxhak1zrj9qlicwwhhhv8pmxs2lcirgq";
+ sgr-iosevka-fixed-ss01 = "1vpfgj496yzn5n8zb5hxzlx0kh0yfh27v2naz4zi4gci0k58mj4g";
+ sgr-iosevka-fixed-ss02 = "122id78h9lvnm4abflng5572zjdn52wqci9jq88gh5iyk02kja6b";
+ sgr-iosevka-fixed-ss03 = "0wa4q1zqp75ja5m34wy3zmx5in225ldr0ah23y7l9kh3x67lfykd";
+ sgr-iosevka-fixed-ss04 = "11dxlc3r1gn3psf4bpsiwr283zjpc63d8fgswwbh5d6swk9nxm7v";
+ sgr-iosevka-fixed-ss05 = "0jw57byz8rbdc5h1ig5d4kpjklqrm6880sx0z06gw97z3p4aqmb1";
+ sgr-iosevka-fixed-ss06 = "0saxvswnrszi3kirv5j1pp96n9fhnqwrmsc8naqdgq342rcy13w5";
+ sgr-iosevka-fixed-ss07 = "0bsrpfbcjf2g8vd6f6sv6yxvdi9s6wdjckbjb3m64mdgv25lpdwv";
+ sgr-iosevka-fixed-ss08 = "1l5k2y0h4h3fsk2ac7akym4rash6bb63bj9vhh3f9igq062dk10a";
+ sgr-iosevka-fixed-ss09 = "09s1x6q7lx4y0462m0ac3jp8jfy4x2sc2irfmxcz2rl5px2smgdg";
+ sgr-iosevka-fixed-ss10 = "0j8h200gw60rzknxyg7nvcg9cw1nhvgy3n6n70lf3b8jnp5splzd";
+ sgr-iosevka-fixed-ss11 = "0cgxy8gq5wak1a7z3j013l1kadph45ckl865dlkw5jnmndz7a684";
+ sgr-iosevka-fixed-ss12 = "1y9grhh3ami6qwdm8a6r7m671n7c9bnxp7qgmk7qxgb8jax31qcp";
+ sgr-iosevka-fixed-ss13 = "1a9in4ybl9vjyvxab0hdbjnq46rg3yx9gyalj6x8y3mxsfij0wh2";
+ sgr-iosevka-fixed-ss14 = "0wc3yw6rf05wdh8kzz6af1apirvyspkb8bav4pbdxahsy1asij58";
+ sgr-iosevka-fixed-ss15 = "1b7ns68lx267y9rwlv47yl0y48nvwyzqdpgpwdfwkmpl6vd9kmnn";
+ sgr-iosevka-fixed-ss16 = "07h4zvcll7324r4l7kwwk13874hmjs7vdiiffbjwhi403vbiw1an";
+ sgr-iosevka-fixed-ss17 = "1rjb0c3yvww8n3sam49ynj2f7h0xgbdsznk7xbj4sk5pkx3l5zr5";
+ sgr-iosevka-fixed-ss18 = "0s39p9khjidasizg1ps3k87ldlkpy3cxy5l6r0c2bkvnfz63k66n";
+ sgr-iosevka-slab = "10gx0hlr2iywj3nksc70idjha9wja3fw9fl8yvkmnpbqaxlrlzm8";
+ sgr-iosevka-ss01 = "1fzxzx9ky4zrbv3zbjh7c57k8dm949xz356a4jk1lpbmwyd0gry4";
+ sgr-iosevka-ss02 = "1qk9f257pq2r4jfilrh02viwgy80kqga4czpc1mvwwbqfalz2lg9";
+ sgr-iosevka-ss03 = "0cj2xgpfcxdj4sh2sdp6cvbg08s6c8gvg0h01ylrqnazxddfv1xr";
+ sgr-iosevka-ss04 = "02q2xqv1qvdijn53p3nbz2swn39yk2pp5ndq1wkakm5j3w5n52f9";
+ sgr-iosevka-ss05 = "0y4f8zkzvxq512ns4qzbq5hnd6zzwdjlc1p2iify0f4m491msx5n";
+ sgr-iosevka-ss06 = "154jzvb44h1njzkzsk9x6mk7g9sa5jr7kqjv26ylm0ax0i039ax2";
+ sgr-iosevka-ss07 = "08025i39hkinrd0sq0yj3d9dc3fqhv5qfdvxaqg3wp89p5jz2q2q";
+ sgr-iosevka-ss08 = "1hj80l9k1qi4cnw5dqfp431z3yiyqvrhby9f4ny84ppkpihp60xk";
+ sgr-iosevka-ss09 = "0pl1fz70nx0ls0l4zr8j111flf2mh54miavb0422r2dzprvqaviq";
+ sgr-iosevka-ss10 = "1wb03i26g36n6qgzkyza3sbdbgpari5sw0m4qm7yaz3c2f91ic69";
+ sgr-iosevka-ss11 = "1mz1mg0pc3nidsl5pb6kvdmmga62fj8x77x0n1xjzcz2iwvdd616";
+ sgr-iosevka-ss12 = "0g3i88rhax9am4nfjzq91kdkj1k6vzszia7g79hzsw8nfyrd1i52";
+ sgr-iosevka-ss13 = "1jcg4y52xbig8npjd7jbjxqdr9nsbwh120mh9sjy9vvq3hxdsbqh";
+ sgr-iosevka-ss14 = "1am7j9ymxgmyb50qziyd3xkal1f82cnx4m21gd2rqxijpa12x1r3";
+ sgr-iosevka-ss15 = "0zpwz51xdbckldgycgbmrqf3g9wssanmb2z554n1vbmc5whhwkpp";
+ sgr-iosevka-ss16 = "19jzkq3xj0cncs4mk11z8q8mmf6h75i0x2nj4ikcvk01mlrss6s8";
+ sgr-iosevka-ss17 = "1zn0xh0h997afjsj6n97bmxanxk441iw6mcdliavfs9l6lj1zhns";
+ sgr-iosevka-ss18 = "147w89y3p9s2qanm4wwxv3plpif50fs85hzhhdz23jin5zvh5lz2";
+ sgr-iosevka-term = "01aqqniw3r2njv4fc114iymjzp9k5mdl7c5dyxypm71sdlpcjxqj";
+ sgr-iosevka-term-curly = "0rh0k1svfsan04q50ihhf2xf2fa8isggpqmfps77q1xrbih9miyc";
+ sgr-iosevka-term-curly-slab = "0ys2apprdz1awf6nad6phv2k2kf0qfigb22j930y1gya9vshxqx1";
+ sgr-iosevka-term-slab = "0qbiwsllyim81ayh0whrkzc1nq06x9g7hnv8haxh91jg9nf327vw";
+ sgr-iosevka-term-ss01 = "0mdgh9hdnz752d7sxv91ayi6lyp6czs6gq21dqigk3wmkgwaraz2";
+ sgr-iosevka-term-ss02 = "0zxynyzbngng6ymajd7yf5pmagdzxnr19vnpbmqkvhjnsjmhqpcd";
+ sgr-iosevka-term-ss03 = "192fjh0kc8jh0z8y7l74g41jvqfnax5p2shnn0ch1h824vraklvd";
+ sgr-iosevka-term-ss04 = "0fjmy0wl8hh38gbhf5h6m064la1dp68lyfimmxvjpf1s2c3g5szd";
+ sgr-iosevka-term-ss05 = "0w57k1kjn91srngy297fywi1wnc64bwyymclk0w704sqpx04jv4n";
+ sgr-iosevka-term-ss06 = "0n2ifw444z606qm9w4il6inmf5zmbkhrk2wvldfx5bsgv2pfxnjd";
+ sgr-iosevka-term-ss07 = "1wwky8pichvr467ypgxrxyfqgr27hqkpmx7c35fzka9c0kap483q";
+ sgr-iosevka-term-ss08 = "117c54z898rmsclm23hn4x2wvhypc2vmncrq2mvkqck0wawkwaxw";
+ sgr-iosevka-term-ss09 = "0lahhifnar8f716xq63xjhibay7cfqgaa7drxvz4pqxmzijv6r2r";
+ sgr-iosevka-term-ss10 = "0fp149a4dn7wgdsms70k162g60jgdg5ric93rhxnkn83x3d5jam1";
+ sgr-iosevka-term-ss11 = "16pvy63b194vig5vxy15ylmyl5422vrj9adqqwl82r0l9aqpkqlw";
+ sgr-iosevka-term-ss12 = "1gldv3srnm7zx9gkyizi6gvf34b7z7xg17qk77882jczsv95hyh1";
+ sgr-iosevka-term-ss13 = "0aznbica0yc4vhp4bp84dflfd6jhzw8lsakknfn8dz10kj1qq7vc";
+ sgr-iosevka-term-ss14 = "0x73vwywxj7j6qg3armbhm6rjy308j1rk1fhjfriv51hnkm6ylz2";
+ sgr-iosevka-term-ss15 = "0px9y25bx75ppsdaq0rfddd9ljxwa3fv5296kvvkw3mwd0ralflx";
+ sgr-iosevka-term-ss16 = "1bmnf7z8v4mbcq97lj2qkf722ww1n500jgv2zgs36vxc22zjjrvk";
+ sgr-iosevka-term-ss17 = "0lp5qz8j9xc8n959lm4sbfkjhm3ib79qnv69a57nkv5a10ddk20r";
+ sgr-iosevka-term-ss18 = "0jkp6zjx9ih5m4pa95a2rn7j1wx4hvnxg2j24cib9dixr7sc81b6";
}
diff --git a/pkgs/data/fonts/julia-mono/default.nix b/pkgs/data/fonts/julia-mono/default.nix
index 5e1cd786534d..a1f8f316773e 100644
--- a/pkgs/data/fonts/julia-mono/default.nix
+++ b/pkgs/data/fonts/julia-mono/default.nix
@@ -1,13 +1,13 @@
{ lib, fetchzip }:
let
- version = "0.042";
+ version = "0.043";
in
fetchzip {
name = "JuliaMono-ttf-${version}";
url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono-ttf.tar.gz";
- sha256 = "sha256-oXODkeLDT5GXO4+r1fGaRrRS/SSBhzro5XE0GOwl4mQ=";
+ sha256 = "sha256-oxQRrFhTf37OrJSbDlmzh/7xOuKrtxO7v2+j7QcsAmE=";
postFetch = ''
mkdir -p $out/share/fonts/truetype
diff --git a/pkgs/data/fonts/kanit/default.nix b/pkgs/data/fonts/kanit/default.nix
index 9b5be79061c1..8875704ba6b6 100644
--- a/pkgs/data/fonts/kanit/default.nix
+++ b/pkgs/data/fonts/kanit/default.nix
@@ -12,12 +12,16 @@ stdenv.mkDerivation rec {
};
installPhase = ''
- mkdir -p $out/share/doc/${pname}/css/ $out/share/fonts/{opentype,truetype}
+ runHook preInstall
- cp $src/OFL.txt $src/documentation/{BRIEF.md,features.html} $out/share/doc/${pname}
- cp $src/documentation/css/fonts.css $out/share/doc/${pname}/css
+ mkdir -p $out/share/doc/kanit/css/ $out/share/fonts/{opentype,truetype}
+
+ cp $src/OFL.txt $src/documentation/{BRIEF.md,features.html} $out/share/doc/kanit
+ cp $src/documentation/css/fonts.css $out/share/doc/kanit/css
cp $src/fonts/otf/*.otf $out/share/fonts/opentype
cp $src/fonts/ttf/*.ttf $out/share/fonts/truetype
+
+ runHook postInstall
'';
meta = with lib; {
diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index 27e414b12e2a..88c17e8f4a31 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -110,20 +110,25 @@ in
};
noto-fonts-emoji = let
- version = "2.028";
+ version = "2.034";
emojiPythonEnv =
python3.withPackages (p: with p; [ fonttools nototools ]);
in stdenv.mkDerivation {
pname = "noto-fonts-emoji";
- version = builtins.replaceStrings [ "_" ] [ "." ] version;
+ inherit version;
src = fetchFromGitHub {
owner = "googlefonts";
repo = "noto-emoji";
rev = "v${version}";
- sha256 = "0dy7px7wfl6bqkfzz82jm4gvbjp338ddsx0mwfl6m7z48l7ng4v6";
+ sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
};
+ makeFlags = [
+ # TODO(@sternenseemann): remove if afdko is new enough to know about Unicode 14.0
+ "BYPASS_SEQUENCE_CHECK=True"
+ ];
+
nativeBuildInputs = [
cairo
imagemagick
@@ -166,31 +171,32 @@ in
homepage = "https://github.com/googlefonts/noto-emoji";
license = with licenses; [ ofl asl20 ];
platforms = platforms.all;
- maintainers = with maintainers; [ mathnerd314 ];
+ maintainers = with maintainers; [ mathnerd314 sternenseemann ];
};
};
- noto-fonts-emoji-blob-bin = stdenv.mkDerivation rec {
- pname = "noto-fonts-emoji-blob-bin";
- version = "2019-06-14-Emoji-12";
-
- src = fetchurl {
+ noto-fonts-emoji-blob-bin =
+ let
+ pname = "noto-fonts-emoji-blob-bin";
+ version = "14.0.1";
+ in
+ fetchurl {
+ name = "${pname}-${version}";
url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
- sha256 = "0snvymglmvpnfgsriw2cnnqm0f4llav0jvzir6mpd17mqqhhabbh";
+ sha256 = "sha256-wSH9kRJ8y2i5ZDqzeT96dJcEJnHDSpU8bOhmxaT+UCg=";
+
+ downloadToTemp = true;
+ recursiveHash = true;
+ postFetch = ''
+ install -Dm 444 $downloadedFile $out/share/fonts/blobmoji/Blobmoji.ttf
+ '';
+
+ meta = with lib; {
+ description = "Noto Emoji with extended Blob support";
+ homepage = "https://github.com/C1710/blobmoji";
+ license = with licenses; [ ofl asl20 ];
+ platforms = platforms.all;
+ maintainers = with maintainers; [ rileyinman jk ];
+ };
};
-
- dontUnpack = true;
-
- installPhase = ''
- install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf
- '';
-
- meta = with lib; {
- description = "Noto Emoji with extended Blob support";
- homepage = "https://github.com/C1710/blobmoji";
- license = with licenses; [ ofl asl20 ];
- platforms = platforms.all;
- maintainers = with maintainers; [ rileyinman ];
- };
- };
}
diff --git a/pkgs/data/fonts/noto-fonts/tools.nix b/pkgs/data/fonts/noto-fonts/tools.nix
index 791aa6534d28..7d850ef71667 100644
--- a/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/pkgs/data/fonts/noto-fonts/tools.nix
@@ -7,7 +7,7 @@
buildPythonPackage rec {
pname = "nototools";
- version = "0.2.13";
+ version = "0.2.16";
disabled = pythonOlder "3.6";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
owner = "googlefonts";
repo = "nototools";
rev = "v${version}";
- sha256 = "0ggp65xgkf9y7jamncm65lkm84wapsa47abf133pcb702875v8jz";
+ sha256 = "14rrdamkmhrykff8ln07fq9cm8zwj3k113lzwjcy0lgz23g51jyl";
};
postPatch = ''
diff --git a/pkgs/data/fonts/ocr-a/default.nix b/pkgs/data/fonts/ocr-a/default.nix
new file mode 100644
index 000000000000..216b960994d7
--- /dev/null
+++ b/pkgs/data/fonts/ocr-a/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "OCR-A";
+ version = "1.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ocr-a-font/OCR-A/${version}/OCRA.ttf";
+ sha256 = "0kpmjjxwzm84z8maz6lq9sk1b0xv1zkvl28lwj7i0m2xf04qixd0";
+ };
+
+ dontUnpack = true;
+
+ installPhase = ''
+ install -D -m 0644 $src $out/share/fonts/truetype/OCRA.ttf
+ '';
+
+ meta = with lib; {
+ description = "ANSI OCR font from the '60s. CYBER";
+ homepage = "https://sourceforge.net/projects/ocr-a-font/";
+ license = licenses.publicDomain;
+ maintainers = with maintainers; [ V ];
+ };
+}
diff --git a/pkgs/data/fonts/public-sans/default.nix b/pkgs/data/fonts/public-sans/default.nix
index 7d7a81ec7e73..88da0cb5d558 100644
--- a/pkgs/data/fonts/public-sans/default.nix
+++ b/pkgs/data/fonts/public-sans/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "1.008";
+ version = "2.000";
in fetchzip {
name = "public-sans-${version}";
@@ -9,14 +9,11 @@ in fetchzip {
postFetch = ''
mkdir -p $out/share/fonts
- unzip -j $downloadedFile binaries/otf/\*.otf -d $out/share/fonts/opentype
- unzip -j $downloadedFile binaries/variable/\*.ttf -d $out/share/fonts/truetype
- unzip -j $downloadedFile binaries/webfonts/\*.ttf -d $out/share/fonts/truetype
- unzip -j $downloadedFile binaries/webfonts/\*.woff -d $out/share/fonts/woff
- unzip -j $downloadedFile binaries/webfonts/\*.woff2 -d $out/share/fonts/woff2
+ unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "1s4xmliri3r1gcn1ws3wa6davj6giliqjdbcv0bh9ryg3dfpjz74";
+ sha256 = "0r34h9mim5c3h48cpq2m2ixkdqhv3i594pip10pavkmskldpbha5";
meta = with lib; {
description = "A strong, neutral, principles-driven, open source typeface for text or display";
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
index caff63da8c7c..a1d99c33b85b 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "1.079";
+ version = "1.082";
in
fetchzip {
name = "recursive-${version}";
@@ -14,7 +14,7 @@ fetchzip {
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "sha256-nRFjfbbZG9wDHGbGfS+wzViKF/ogWs8i/6OG0rkDHDg=";
+ sha256 = "1hjyjvzhfgqw58py4gk58fwyp5pxr3j8j76ppj6apg4dndfhs0lp";
meta = with lib; {
homepage = "https://recursive.design/";
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 5bc691e72440..00caa09a00b4 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,23 +1,25 @@
{ lib, fetchurl, libarchive }:
let
- version = "0.32.9";
+ version = "0.34.7";
in fetchurl {
name = "sarasa-gothic-${version}";
+ # Use the 'ttc' files here for a smaller closure size.
+ # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
- sha256 = "0mwaj9dq26f36ddywjm7m0is1jml2kpmqm46b16c8avvr97c65z5";
+ sha256 = "0fzbqj32jiffqsr4s0i8fignk01v5d1rik6ldg2q7dgl1298sgk8";
recursiveHash = true;
downloadToTemp = true;
postFetch = ''
- mkdir -p $out/share/fonts
- ${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts
+ mkdir -p $out/share/fonts/truetype
+ ${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts/truetype
'';
meta = with lib; {
- description = "SARASA GOTHIC is a Chinese & Japanese programming font based on Iosevka and Source Han Sans";
+ description = "A CJK programming font based on Iosevka and Source Han Sans";
homepage = "https://github.com/be5invis/Sarasa-Gothic";
license = licenses.ofl;
maintainers = [ maintainers.ChengCat ];
diff --git a/pkgs/data/fonts/scientifica/default.nix b/pkgs/data/fonts/scientifica/default.nix
index d8eda3e92326..bf5b887cc771 100644
--- a/pkgs/data/fonts/scientifica/default.nix
+++ b/pkgs/data/fonts/scientifica/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchurl }:
let
- version = "2.2";
+ version = "2.3";
in fetchurl rec {
name = "scientifica-${version}";
@@ -11,7 +11,7 @@ in fetchurl rec {
recursiveHash = true;
- sha256 = "sha256-mkZnuW+CB20t6MEpEeQR1CWkIUtqgVwrKN4sezQRaB4=";
+ sha256 = "sha256-pVWkj/2lFpmWk0PPDrIMU4Gey7/m/9tzUsuD3ZDUAdc=";
postFetch = ''
tar xf $downloadedFile
diff --git a/pkgs/data/fonts/source-code-pro/default.nix b/pkgs/data/fonts/source-code-pro/default.nix
index c9518b78a65a..eaf82d412a1d 100644
--- a/pkgs/data/fonts/source-code-pro/default.nix
+++ b/pkgs/data/fonts/source-code-pro/default.nix
@@ -1,21 +1,21 @@
{ lib, fetchzip }:
let
- version = "2.030";
+ version = "2.038";
in fetchzip {
name = "source-code-pro-${version}";
- url = "https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip";
+ url = "https://github.com/adobe-fonts/source-code-pro/releases/download/${version}R-ro%2F1.058R-it%2F1.018R-VAR/OTF-source-code-pro-${version}R-ro-1.058R-it.zip";
postFetch = ''
mkdir -p $out/share/fonts
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
'';
- sha256 = "0d8qwzjgnz264wlm4qim048z3236z4hbblvc6yplw13f6b65j6fv";
+ sha256 = "027cf62zj27q7l3d4sqzdfgz423lzysihdg8cvmkk6z910a1v368";
meta = {
- description = "A set of monospaced OpenType fonts designed for coding environments";
+ description = "Monospaced font family for user interface and coding environments";
maintainers = with lib.maintainers; [ relrod ];
platforms = with lib.platforms; all;
homepage = "https://adobe-fonts.github.io/source-code-pro/";
diff --git a/pkgs/data/fonts/source-han-code-jp/default.nix b/pkgs/data/fonts/source-han-code-jp/default.nix
index 5960e4fb6ea4..7f12fee5067b 100644
--- a/pkgs/data/fonts/source-han-code-jp/default.nix
+++ b/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -2,7 +2,7 @@
let
pname = "source-han-code-jp";
- version = "2.011R";
+ version = "2.012R";
in fetchzip {
name = "${pname}-${version}";
@@ -13,7 +13,7 @@ in fetchzip {
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
'';
- sha256 = "184vrjkymcm29k1cx00cdvjchzqr1w17925lmh85f0frx7vwljcd";
+ sha256 = "16y5as1k864ghy3vzp8svr3q0sw57rv53za3f48700ksvxz5pwry";
meta = {
description = "A monospaced Latin font suitable for coding";
diff --git a/pkgs/data/fonts/source-han/default.nix b/pkgs/data/fonts/source-han/default.nix
index 28ec08f63b6d..1672af411c04 100644
--- a/pkgs/data/fonts/source-han/default.nix
+++ b/pkgs/data/fonts/source-han/default.nix
@@ -1,55 +1,66 @@
{ stdenvNoCC
, lib
, fetchzip
-, fetchurl
}:
let
- makePackage = { family, description, rev, sha256 }: let
- Family =
+ makePackage =
+ { family
+ , description
+ , rev
+ , sha256
+ , postFetch ? ''
+ install -m444 -Dt $out/share/fonts/opentype/source-han-${family} $downloadedFile
+ ''
+ , zip ? ""
+ }:
+ let Family =
lib.toUpper (lib.substring 0 1 family) +
lib.substring 1 (lib.stringLength family) family;
+ in
+ fetchzip {
+ name = "source-han-${family}-${lib.removeSuffix "R" rev}";
- ttc = fetchurl {
- url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc";
- inherit sha256;
+ url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc${zip}";
+ inherit sha256 postFetch;
+
+ meta = {
+ description = "An open source Pan-CJK ${description} typeface";
+ homepage = "https://github.com/adobe-fonts/source-han-${family}";
+ license = lib.licenses.ofl;
+ maintainers = with lib.maintainers; [ taku0 emily ];
+ };
};
- in stdenvNoCC.mkDerivation {
- pname = "source-han-${family}";
- version = lib.removeSuffix "R" rev;
-
- buildCommand = ''
- mkdir -p $out/share/fonts/opentype/source-han-${family}
- ln -s ${ttc} $out/share/fonts/opentype/source-han-${family}/SourceHan${Family}.ttc
- '';
-
- meta = {
- description = "An open source Pan-CJK ${description} typeface";
- homepage = "https://github.com/adobe-fonts/source-han-${family}";
- license = lib.licenses.ofl;
- maintainers = with lib.maintainers; [ taku0 emily ];
- };
- };
in
{
sans = makePackage {
family = "sans";
description = "sans-serif";
- rev = "2.001R";
- sha256 = "101p8q0sagf1sd1yzwdrmmxvkqq7j0b8hi0ywsfck9w56r4zx54y";
+ rev = "2.004R";
+ sha256 = "052d17hvz435zc4r2y1p9cgkkgn0ps8g74mfbvnbm1pv8ykj40m9";
+ postFetch = ''
+ mkdir -p $out/share/fonts/opentype/source-han-sans
+ unzip $downloadedFile -d $out/share/fonts/opentype/source-han-sans
+ '';
+ zip = ".zip";
};
serif = makePackage {
family = "serif";
description = "serif";
- rev = "1.001R";
- sha256 = "1d968h30qvvwy3s77m9y3f1glq8zlr6bnfw00yinqa18l97n7k45";
+ rev = "2.000R";
+ sha256 = "0x3n6s4khdd6l0crwd7g9sjaqp8lkvksglhc7kj3cv80hldab9wp";
+ postFetch = ''
+ mkdir -p $out/share/fonts/opentype/source-han-serif
+ unzip $downloadedFile -d $out/share/fonts/opentype/source-han-serif
+ '';
+ zip = ".zip";
};
mono = makePackage {
family = "mono";
description = "monospaced";
rev = "1.002";
- sha256 = "1haqffkcgz0cc24y8rc9bg36v8x9hdl8fdl3xc8qz14hvr42868c";
+ sha256 = "010h1y469c21bjavwdmkpbwk3ny686inz8i062wh1dhcv8cnqk3c";
};
}
diff --git a/pkgs/data/fonts/source-sans-pro/default.nix b/pkgs/data/fonts/source-sans/default.nix
similarity index 55%
rename from pkgs/data/fonts/source-sans-pro/default.nix
rename to pkgs/data/fonts/source-sans/default.nix
index 7d5c7679ad8c..c16d0d2b8b4f 100644
--- a/pkgs/data/fonts/source-sans-pro/default.nix
+++ b/pkgs/data/fonts/source-sans/default.nix
@@ -1,11 +1,11 @@
{ lib, fetchzip }:
let
- version = "3.006";
+ version = "3.046";
in fetchzip {
- name = "source-sans-pro-${version}";
+ name = "source-sans-${version}";
- url = "https://github.com/adobe-fonts/source-sans-pro/releases/download/${version}R/source-sans-pro-${version}R.zip";
+ url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
postFetch = ''
mkdir -p $out/share/fonts/{opentype,truetype,variable}
@@ -14,11 +14,11 @@ in fetchzip {
unzip -j $downloadedFile "*/VAR/*.otf" -d $out/share/fonts/variable
'';
- sha256 = "11jd50cqiq2s0z39rclg73iiw2j5yzgs1glfs9psw5wbbisgysmr";
+ sha256 = "1wxdinnliq0xqbjrs0sqykwaggkmyqawfq862d9xn05g1pnxda94";
meta = with lib; {
- homepage = "https://adobe-fonts.github.io/source-sans-pro/";
- description = "A set of OpenType fonts designed by Adobe for UIs";
+ homepage = "https://adobe-fonts.github.io/source-sans/";
+ description = "Sans serif font family for user interface environments";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ ttuegel ];
diff --git a/pkgs/data/fonts/source-serif-pro/default.nix b/pkgs/data/fonts/source-serif-pro/default.nix
deleted file mode 100644
index 86a45b80efd7..000000000000
--- a/pkgs/data/fonts/source-serif-pro/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, fetchzip }:
-
-let
- version = "3.000";
-in fetchzip {
- name = "source-serif-pro-${version}";
-
- url = "https://github.com/adobe-fonts/source-serif-pro/releases/download/${version}R/source-serif-pro-${version}R.zip";
-
- postFetch = ''
- mkdir -p $out/share/fonts/{opentype,truetype,variable}
- unzip -j $downloadedFile "OTF/*.otf" -d $out/share/fonts/opentype
- unzip -j $downloadedFile "TTF/*.ttf" -d $out/share/fonts/truetype
- unzip -j $downloadedFile "VAR/*.otf" -d $out/share/fonts/variable
- '';
-
- sha256 = "06yp8y79mqk02qzp81h8zkmzqqlhicgrkwmzkd0bm338xh8grsiz";
-
- meta = with lib; {
- homepage = "https://adobe-fonts.github.io/source-serif-pro/";
- description = "A set of OpenType fonts to complement Source Sans Pro";
- license = licenses.ofl;
- platforms = platforms.all;
- maintainers = with maintainers; [ ttuegel ];
- };
-}
-
diff --git a/pkgs/data/fonts/source-serif/default.nix b/pkgs/data/fonts/source-serif/default.nix
new file mode 100644
index 000000000000..855fe7e6e9e9
--- /dev/null
+++ b/pkgs/data/fonts/source-serif/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+ version = "4.004";
+in fetchzip {
+ name = "source-serif-${version}";
+
+ url = "https://github.com/adobe-fonts/source-serif/releases/download/${version}R/source-serif-${version}.zip";
+
+ postFetch = ''
+ mkdir -p $out/share/fonts/{opentype,truetype,variable}
+ unzip -j $downloadedFile "*/OTF/*.otf" -d $out/share/fonts/opentype
+ unzip -j $downloadedFile "*/TTF/*.ttf" -d $out/share/fonts/truetype
+ unzip -j $downloadedFile "*/VAR/*.otf" -d $out/share/fonts/variable
+ '';
+
+ sha256 = "06814hcp20abca6p0ii61f23g6h1ibqyhq30lsva59wbwx5iha0h";
+
+ meta = with lib; {
+ homepage = "https://adobe-fonts.github.io/source-serif/";
+ description = "Typeface for setting text in many sizes, weights, and languages. Designed to complement Source Sans";
+ license = licenses.ofl;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ttuegel ];
+ };
+}
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index bc8396a7a214..2cb310109ba4 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
{ lib, fetchzip }:
let
- version = "0.55.2";
+ version = "0.60";
in fetchzip {
name = "sudo-font-${version}";
url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
- sha256 = "0r7w58r80yblyzlh6qb57pmafxb3frg1iny644bfr3p64j4cbzzb";
+ sha256 = "1zhl9yhx0dzkzc31i60lmcrizq8f3rkc7dbng5fal6iy8dwhnkmg";
postFetch = ''
mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch b/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch
new file mode 100644
index 000000000000..6154b8014759
--- /dev/null
+++ b/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch
@@ -0,0 +1,83 @@
+From 2f935030ddb834426da1180b768e6b1e71d0824a Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich
+Date: Sat, 9 Oct 2021 10:17:05 +0100
+Subject: [PATCH] terminus-font: bin/otb1cli.py: add support for
+ SOURCE_DATE_EPOCH
+
+NixOS (and a few other distributions) strive for bit-reproducible
+builds. terminus-font-4.49.1 fails reproducibility test due to
+timestamp embedding into .otb files. diffoscope says that two
+consecutive builds differ at file creation timestamp:
+
+ $ diffoscope '...-terminus-font-4.49.1' '...-terminus-font-4.49.1.check'
+ - ...-terminus-font-4.49.1/share/fonts/terminus/ter-u12b.otb
+ + ...-terminus-font-4.49.1.check/share/fonts/terminus/ter-u12b.otb
+ showttf {}
+ @@ -1,32 +1,32 @@
+ version=1, numtables=12, searchRange=128 entrySel=3 rangeshift=64
+ File Checksum =b1b0afba (should be 0xb1b0afba), diff=0
+ EBDT checksum=5263c696 actual=5263c696 diff=0 offset=204 len=23056
+ EBLC checksum=350f1222 actual=350f1222 diff=0 offset=23260 len=84
+ OS/2 checksum=8b4939dd actual=8b4939dd diff=0 offset=23344 len=96
+ cmap checksum=da4e56f3 actual=da4e56f3 diff=0 offset=23440 len=1220
+ glyf checksum=00000000 actual=00000000 diff=0 offset=24660 len=0
+ -head checksum=1cb1374e actual=9db28c18 diff=8103bb56 offset=24660 len=54
+ +head checksum=1cb528c7 actual=9dae9a9f diff=811bb258 offset=24660 len=54
+ hhea checksum=055706a2 actual=055706a2 diff=0 offset=24716 len=36
+ hmtx checksum=98000000 actual=98000000 diff=0 offset=24752 len=5424
+ loca checksum=00000000 actual=00000000 diff=0 offset=30176 len=2714
+ maxp checksum=058e0003 actual=058e0003 diff=0 offset=32892 len=32
+ name checksum=208d345e actual=208d345e diff=0 offset=32924 len=448
+ post checksum=ffd80056 actual=ffd80056 diff=0 offset=33372 len=32
+
+ HEAD table (at 24660)
+ Version=1
+ fontRevision=1
+ - checksumAdj=810154ca
+ + checksumAdj=80f971d8
+ magicNumber=5f0f3cf5 (0x5f0f3cf5, diff=0)
+ flags=20b baseline_at_0 lsb_at_0 ppem_to_int
+ unitsPerEm=1024
+ create[0]=0
+ - create[1]=dd831dec
+ - File created: Wed Oct 6 09:33:32 2021
+ + create[1]=dd870f65
+ + File created: Sat Oct 9 09:20:37 2021
+
+The change uses SOURCE_DATE_EPOCH environment variable to override
+on-disk timestamps:
+ https://reproducible-builds.org/docs/source-date-epoch/
+---
+ bin/otb1cli.py | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/bin/otb1cli.py b/bin/otb1cli.py
+index 92ab07b..847b570 100644
+--- a/bin/otb1cli.py
++++ b/bin/otb1cli.py
+@@ -17,6 +17,7 @@
+ #
+
+ from datetime import datetime, timezone
++import os
+
+ import fnutil
+ import fncli
+@@ -81,8 +82,12 @@ def main_program(nonopt, parsed):
+ try:
+ stat = ifs.fstat()
+ if stat:
+- parsed.created = datetime.fromtimestamp(stat.st_ctime, timezone.utc)
+- parsed.modified = datetime.fromtimestamp(stat.st_mtime, timezone.utc)
++ # Allow deterministic builds when SOURCE_DATE_EPOCH is set:
++ # https://reproducible-builds.org/docs/source-date-epoch/
++ ct = int(os.environ.get('SOURCE_DATE_EPOCH', stat.st_ctime))
++ mt = int(os.environ.get('SOURCE_DATE_EPOCH', stat.st_mtime))
++ parsed.created = datetime.fromtimestamp(ct, timezone.utc)
++ parsed.modified = datetime.fromtimestamp(mt, timezone.utc)
+ except Exception as ex:
+ fnutil.warning(ifs.location(), str(ex))
+
+--
+2.33.0
+
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index fca357706a60..9ccf0371f192 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -1,21 +1,20 @@
{ lib, stdenv, fetchurl, python3
-, libfaketime, fonttosfnt
, bdftopcf, mkfontscale
}:
stdenv.mkDerivation rec {
pname = "terminus-font";
- version = "4.48"; # set here for use in URL below
+ version = "4.49.1";
src = fetchurl {
- url = "mirror://sourceforge/project/${pname}/${pname}-${version}/${pname}-${version}.tar.gz";
- sha256 = "1bwlkj39rqbyq57v5yssayav6hzv1n11b9ml2s0dpiyfsn6rqy9l";
+ url = "mirror://sourceforge/project/${pname}/${pname}-${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
+ sha256 = "0yggffiplk22lgqklfmd2c0rw8gwchynjh5kz4bz8yv2h6vw2qfr";
};
+ patches = [ ./SOURCE_DATE_EPOCH-for-otb.patch ];
+
nativeBuildInputs =
- [ python3 bdftopcf libfaketime
- fonttosfnt mkfontscale
- ];
+ [ python3 bdftopcf mkfontscale ];
enableParallelBuilding = true;
@@ -24,22 +23,7 @@ stdenv.mkDerivation rec {
substituteInPlace Makefile --replace 'gzip' 'gzip -n'
'';
- postBuild = ''
- # convert unicode bdf fonts to otb
- for i in *.bdf; do
- name=$(basename $i .bdf)
- faketime -f "1970-01-01 00:00:01" \
- fonttosfnt -v -o "$name.otb" "$i"
- done
- '';
-
- postInstall = ''
- # install otb fonts (for GTK applications)
- install -m 644 -D *.otb -t "$out/share/fonts/misc";
- mkfontdir "$out/share/fonts/misc"
- '';
-
- installTargets = [ "install" "fontdir" ];
+ installTargets = [ "install" "install-otb" "fontdir" ];
meta = with lib; {
description = "A clean fixed width font";
diff --git a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
index b1da06ccd8b4..4733bcf04e72 100644
--- a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -1,12 +1,12 @@
{ lib, fetchzip }:
let
- version = "2.0";
+ version = "2.2";
in
fetchzip {
name = "ultimate-oldschool-pc-font-pack-${version}";
- url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_ttf.zip";
- sha256 = "0z0fw6ni7iq806y4m83xrfx46r14xxxql09ch2gxjqi062awqyh8";
+ url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_linux.zip";
+ sha256 = "sha256-BOA2fMa2KT3Bkpvj/0DzrzuZbl3RARvNn4qbI/+dApU=";
postFetch= ''
mkdir -p $out/share/fonts/truetype
@@ -16,6 +16,7 @@ fetchzip {
meta = with lib; {
description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)";
homepage = "https://int10h.org/oldschool-pc-fonts/";
+ changelog = "https://int10h.org/oldschool-pc-fonts/readme/#history";
license = licenses.cc-by-sa-40;
maintainers = [ maintainers.endgame ];
};
diff --git a/pkgs/data/fonts/unifont/default.nix b/pkgs/data/fonts/unifont/default.nix
index f7cb84f285ac..44c3a2312461 100644
--- a/pkgs/data/fonts/unifont/default.nix
+++ b/pkgs/data/fonts/unifont/default.nix
@@ -4,16 +4,16 @@
stdenv.mkDerivation rec {
pname = "unifont";
- version = "13.0.06";
+ version = "14.0.01";
ttf = fetchurl {
url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
- sha256 = "0hp72lcj8q8cw490lxl5y1ygw9mcicryjwqr1mmkdz8zh4jh8g6p";
+ sha256 = "19algkm4nnixmzshc25rjgh8gfccqinallgi86wgvkcwcmn6ccn6";
};
pcf = fetchurl {
url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
- sha256 = "0y030km1x8mai8zrk661dqsb0yq8rpx6akl7p2sw5ijkcdsfm85f";
+ sha256 = "1aj29pswi6qwpvjwncv5w3ndwy2nzli0200i6dx6f80036z8nz9i";
};
nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
diff --git a/pkgs/data/fonts/unifont_upper/default.nix b/pkgs/data/fonts/unifont_upper/default.nix
index 40799fafab79..902aba0caa24 100644
--- a/pkgs/data/fonts/unifont_upper/default.nix
+++ b/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "13.0.06";
+ version = "14.0.01";
in fetchzip rec {
name = "unifont_upper-${version}";
@@ -9,7 +9,7 @@ in fetchzip rec {
postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
- sha256 = "0bqw30h5b787dw8bn1dj8shz22mlxr1zmcfp68fpyll5vg02540n";
+ sha256 = "0sb3m2qg0ri7zmxhjvrq8n0jmxxjx8rrx9rpibh5f5fbfkibq4gm";
meta = with lib; {
description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
diff --git a/pkgs/data/fonts/victor-mono/default.nix b/pkgs/data/fonts/victor-mono/default.nix
index 940c0d76c46a..17ad7e23e8c9 100644
--- a/pkgs/data/fonts/victor-mono/default.nix
+++ b/pkgs/data/fonts/victor-mono/default.nix
@@ -1,14 +1,10 @@
-{ lib, fetchFromGitHub }:
+{ lib, fetchzip }:
let
- pname = "victor-mono";
- version = "1.4.1";
-in fetchFromGitHub rec {
- name = "${pname}-${version}";
-
- owner = "rubjo";
- repo = pname;
- rev = "v${version}";
+ version = "1.5.0";
+in
+fetchzip {
+ name = "victor-mono-${version}";
# Upstream prefers we download from the website,
# but we really insist on a more versioned resource.
@@ -17,23 +13,21 @@ in fetchFromGitHub rec {
# so we extract it from the tagged release.
# Both methods produce the same file, but this way
# we can safely reason about what version it is.
+ url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
+
postFetch = ''
- tar xvf $downloadedFile --strip-components=2 ${pname}-${version}/public/VictorMonoAll.zip
-
- mkdir -p $out/share/fonts/{true,open}type/${pname}
-
- unzip -j VictorMonoAll.zip \*.ttf -d $out/share/fonts/truetype/${pname}
- unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
+ mkdir -p $out/share/fonts/
+ unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "1g3jjrqd2fiw2hdifhff2fn20p5a0xfma3964f67ibdyri976zq5";
+ sha256 = "1x3dnkq8awn5zniywap78qwp5nxmf14bq8snzsywk70ah0jmbawi";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";
homepage = "https://rubjo.github.io/victor-mono";
- license = with licenses; [ mit ];
+ license = licenses.ofl;
maintainers = with maintainers; [ jpotier dtzWill ];
platforms = platforms.all;
};
}
-
diff --git a/pkgs/data/fonts/vista-fonts-cht/default.nix b/pkgs/data/fonts/vista-fonts-cht/default.nix
index 264d5a41bf48..78271e2f1e93 100644
--- a/pkgs/data/fonts/vista-fonts-cht/default.nix
+++ b/pkgs/data/fonts/vista-fonts-cht/default.nix
@@ -5,7 +5,7 @@ stdenvNoCC.mkDerivation {
version = "1";
src = fetchurl {
- url = https://download.microsoft.com/download/7/6/b/76bd7a77-be02-47f3-8472-fa1de7eda62f/VistaFont_CHT.EXE;
+ url = "https://download.microsoft.com/download/7/6/b/76bd7a77-be02-47f3-8472-fa1de7eda62f/VistaFont_CHT.EXE";
sha256 = "sha256-fSnbbxlMPzbhFSQyKxQaS5paiWji8njK7tS8Eppsj6g=";
};
diff --git a/pkgs/data/fonts/vista-fonts/default.nix b/pkgs/data/fonts/vista-fonts/default.nix
index ca2ae302b3ee..fa8308b8c972 100644
--- a/pkgs/data/fonts/vista-fonts/default.nix
+++ b/pkgs/data/fonts/vista-fonts/default.nix
@@ -14,11 +14,12 @@ stdenvNoCC.mkDerivation {
unpackPhase = ''
cabextract --lowercase --filter ppviewer.cab $src
cabextract --lowercase --filter '*.TTF' ppviewer.cab
+ cabextract --lowercase --filter '*.TTC' ppviewer.cab
'';
installPhase = ''
mkdir -p $out/share/fonts/truetype
- cp *.ttf $out/share/fonts/truetype
+ cp *.ttf *.ttc $out/share/fonts/truetype
# Set up no-op font configs to override any aliases set up by
# other packages.
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
index 5c8f3d15b663..89fd80c468e5 100644
--- a/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "kora-icon-theme";
- version = "1.4.5";
+ version = "1.4.7";
src = fetchFromGitHub {
owner = "bikass";
repo = "kora";
rev = "v${version}";
- sha256 = "sha256-5tXXAfGY5JQ5RiKayUuQJDgX6sPHRi8Hy2ht/Hl0hdo=";
+ sha256 = "sha256-Ol4DrQJmQT/LIU5qWJJEm6od7e29h7g913YTFQjudBQ=";
};
nativeBuildInputs = [
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
index 3b5bc262c033..3a40ef978e3a 100644
--- a/pkgs/data/icons/luna-icons/default.nix
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "luna-icons";
- version = "1.3";
+ version = "1.6";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = version;
- sha256 = "0pww8882qvlnamxzvn7jxyi0h7lffrwld7qqs1q08h73xc3p18nv";
+ sha256 = "1iw9wqfs8s3l5k5ngyjmvvxbsxcsya3a6h1xwl6d603swv7h1s02";
};
nativeBuildInputs = [
diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index 194a36021a94..c46cc0a6ec9a 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "numix-icon-theme";
- version = "21.04.14";
+ version = "21.10.31";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
- sha256 = "1ilzqh9f7skdfg5sl97zfgwrzvwa1zna22dpq0954gyyzvy7k7lg";
+ sha256 = "sha256-wyVvXifdbKR2aiBMrki8y/H0khH4eFD1RHVSC+jAT28=";
};
nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 777e38041de5..9e8856528b10 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "papirus-icon-theme";
- version = "20210901";
+ version = "20211001";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = pname;
rev = version;
- sha256 = "sha256-SbqEHLXSomUUaLRJA1MJbtF1lTQPiWSUXgapjEzSl00=";
+ sha256 = "sha256-OVG/bKWOdSxOXVvtMOITnCDoGNSc+zPNZ/XOablfSEE=";
};
nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/qogir-icon-theme/default.nix b/pkgs/data/icons/qogir-icon-theme/default.nix
index 00de4f6760cd..c0f65ab7eadc 100644
--- a/pkgs/data/icons/qogir-icon-theme/default.nix
+++ b/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "qogir-icon-theme";
- version = "2021-07-14";
+ version = "2021-10-14";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "0anma2ss3yqr9njx4ay2nyxjkgnj7ky17c93ipwgrvgsv8jk5nn2";
+ sha256 = "0qbbg0hcdda7apk892b8nhbrsvji12nv97ss7lv412xwcmxsj9fp";
};
nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix
index aaf32fdf16dc..69f0337fcaa6 100644
--- a/pkgs/data/icons/tela-icon-theme/default.nix
+++ b/pkgs/data/icons/tela-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenvNoCC }:
+{ lib, stdenvNoCC, fetchFromGitHub, gtk3, jdupes, hicolor-icon-theme }:
stdenvNoCC.mkDerivation rec {
pname = "tela-icon-theme";
- version = "2021-01-21";
+ version = "2021-11-05";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "0gphy4aq2qjcg79k6rc0q5901mn3q76qhckn5vxvmypn9n3lb9ph";
+ sha256 = "sha256-mvkgHBdZm6vF+/DS3CRLl1m14U0Lj4Xtz4J/vpJUTQM=";
};
nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/pkgs/data/icons/vimix-icon-theme/default.nix b/pkgs/data/icons/vimix-icon-theme/default.nix
new file mode 100644
index 000000000000..502a8023c9bd
--- /dev/null
+++ b/pkgs/data/icons/vimix-icon-theme/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes }:
+
+stdenv.mkDerivation rec {
+ pname = "vimix-icon-theme";
+ version = "2021-11-09";
+
+ src = fetchFromGitHub {
+ owner = "vinceliuice";
+ repo = pname;
+ rev = version;
+ sha256 = "1ali128027yw5kllip7p32c92pby5gaqs0i393m3bp69547np1d4";
+ };
+
+ nativeBuildInputs = [ gtk3 jdupes ];
+
+ propagatedBuildInputs = [ hicolor-icon-theme ];
+
+ dontDropIconThemeCache = true;
+
+ # These fixup steps are slow and unnecessary for this package
+ dontPatchELF = true;
+ dontRewriteSymlinks = true;
+
+ installPhase = ''
+ runHook preInstall
+ patchShebangs install.sh
+ ./install.sh -a -d $out/share/icons
+ # replace duplicate files with symlinks
+ jdupes -l -r $out/share/icons
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "A Material Design icon theme based on Paper icon theme";
+ homepage = "https://github.com/vinceliuice/vimix-icon-theme";
+ license = with licenses; [ cc-by-sa-40 ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/pkgs/data/icons/whitesur-icon-theme/default.nix b/pkgs/data/icons/whitesur-icon-theme/default.nix
index 27695f3cbd15..27465b828a61 100644
--- a/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "Whitesur-icon-theme";
- version = "2021-08-26";
+ version = "2021-11-08";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "O7nb6X20HvnzldijP/fXqAs/2qE5JUg3DEMb84ZMQp4=";
+ sha256 = "LZ0GLJFUUvzsPhU2sBkfy5mPpQHuPzYhbumwFKnogoA=";
};
nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/misc/brise/fetchPackages.nix b/pkgs/data/misc/brise/fetchPackages.nix
index 92930c67cc90..50ad1113aa93 100644
--- a/pkgs/data/misc/brise/fetchPackages.nix
+++ b/pkgs/data/misc/brise/fetchPackages.nix
@@ -4,8 +4,8 @@ fetchFromGitHub:
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-array";
- rev = "9ca2b725ae52c9b3185213e3555df1f9d4f1c53f";
- sha256 = "0x3sifdpdivr8ssynjhc4g1zfl6h9hm9nh9p9zb9wkh1ky9z7kha";
+ rev = "d10f2f8b2aec7c7e736ace01e8a399e5ae5e7c3a";
+ sha256 = "sha256-4t6+gh2V57SueDp9Tn6vTuxQCZNGzjLdJEhzIEqRjdI=";
}} array
ln -sv ${fetchFromGitHub {
owner = "rime";
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index bd67e2a58f12..49645ee80083 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -1,126 +1,27 @@
{ lib
, stdenv
+, writeText
, fetchurl
-, nss
-, python3
-, blacklist ? [ ]
+, buildcatrust
+, blacklist ? []
+, extraCertificateFiles ? []
+, extraCertificateStrings ? []
- # Used for tests only
+# Used by update.sh
+, nssOverride ? null
+
+# Used for tests only
, runCommand
, cacert
, openssl
}:
let
- certdata2pem = fetchurl {
- name = "certdata2pem.py";
- urls = [
- "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py"
- "https://git.launchpad.net/ubuntu/+source/ca-certificates/plain/mozilla/certdata2pem.py?id=47e49e1e0a8a1ca74deda27f88fe181191562957"
- ];
- sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
- };
-in
-
-stdenv.mkDerivation rec {
- pname = "nss-cacert";
- version = "3.66";
-
- src = fetchurl {
- url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
- sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
- };
-
- outputs = [ "out" "unbundled" ];
-
- nativeBuildInputs = [ python3 ];
-
- configurePhase = ''
- ln -s nss/lib/ckfw/builtins/certdata.txt
-
- cat << EOF > blacklist.txt
- ${lib.concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
- EOF
-
- # copy from the store, otherwise python will scan it for imports
- cat "${certdata2pem}" > certdata2pem.py
- '';
-
- buildPhase = ''
- python certdata2pem.py | grep -vE '^(!|UNTRUSTED)'
-
- for cert in *.crt; do
- echo $cert | cut -d. -f1 | sed -e 's,_, ,g' >> ca-bundle.crt
- cat $cert >> ca-bundle.crt
- echo >> ca-bundle.crt
- done
- '';
-
- installPhase = ''
- mkdir -pv $out/etc/ssl/certs
- cp -v ca-bundle.crt $out/etc/ssl/certs
- # install individual certs in unbundled output
- mkdir -pv $unbundled/etc/ssl/certs
- cp -v *.crt $unbundled/etc/ssl/certs
- rm $unbundled/etc/ssl/certs/ca-bundle.crt # not wanted in unbundled
- '';
-
- setupHook = ./setup-hook.sh;
-
- passthru = {
- updateScript = ./update.sh;
- tests = {
- # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
- blacklist-utf8 =
- let
- blacklistCAToFingerprint = {
- # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
- "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
- "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
- };
- mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint);
- in
- runCommand "verify-the-cacert-filter-output"
- {
- cacert = cacert.unbundled;
- cacertWithExcludes = (cacert.override {
- blacklist = builtins.attrNames blacklistCAToFingerprint;
- }).unbundled;
-
- nativeBuildInputs = [ openssl ];
- } ''
- isPresent() {
- # isPresent
- for f in $1/etc/ssl/certs/*.crt; do
- fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
- if [[ "x$fingerprint" == "x$3" ]]; then
- return 0
- fi
- done
- return 1
- }
-
- # Ensure that each certificate is in the main "cacert".
- ${mapBlacklist (caName: caFingerprint: ''
- isPresent "$cacert" "${caName}" "${caFingerprint}" || ({
- echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
- exit 1
- })
- '')}
-
- # Ensure that each certificate is NOT in the "cacertWithExcludes".
- ${mapBlacklist (caName: caFingerprint: ''
- isPresent "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
- echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
- exit 1
- })
- '')}
-
- touch $out
- '';
- };
- };
+ blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
+ extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
+ srcVersion = "3.71";
+ version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html";
description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
@@ -128,4 +29,179 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ andir fpletz lukegb ];
license = licenses.mpl20;
};
+ certdata = stdenv.mkDerivation {
+ pname = "nss-cacert-certdata";
+ inherit version;
+
+ src = if nssOverride != null then nssOverride.src else fetchurl {
+ url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
+ sha256 = "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir $out
+ cp nss/lib/ckfw/builtins/certdata.txt $out
+
+ runHook postInstall
+ '';
+
+ inherit meta;
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "nss-cacert";
+ inherit version;
+
+ src = certdata;
+
+ outputs = [ "out" "unbundled" "p11kit" ];
+
+ nativeBuildInputs = [ buildcatrust ];
+
+ buildPhase = ''
+ mkdir unbundled
+ buildcatrust \
+ --certdata_input certdata.txt \
+ --ca_bundle_input "${extraCertificatesBundle}" ${lib.escapeShellArgs (map (arg: "${arg}") extraCertificateFiles)} \
+ --blocklist "${blocklist}" \
+ --ca_bundle_output ca-bundle.crt \
+ --ca_unpacked_output unbundled \
+ --p11kit_output ca-bundle.trust.p11-kit
+ '';
+
+ installPhase = ''
+ install -D -t "$out/etc/ssl/certs" ca-bundle.crt
+
+ # install p11-kit specific output to p11kit output
+ install -D -t "$p11kit/etc/ssl/trust-source" ca-bundle.trust.p11-kit
+
+ # install individual certs in unbundled output
+ install -D -t "$unbundled/etc/ssl/certs" unbundled/*.crt
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ passthru = {
+ updateScript = ./update.sh;
+ tests = let
+ isTrusted = ''
+ isTrusted() {
+ # isTrusted
+ for f in $1/etc/ssl/certs/*.crt; do
+ if ! [[ -s "$f" ]]; then continue; fi
+ fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
+ if [[ "x$fingerprint" == "x$3" ]]; then
+ # If the certificate is treated as rejected for TLS Web Server, then we consider it untrusted.
+ if openssl x509 -in "$f" -noout -text | grep -q '^Rejected Uses:'; then
+ if openssl x509 -in "$f" -noout -text | grep -A1 '^Rejected Uses:' | grep -q 'TLS Web Server'; then
+ return 1
+ fi
+ fi
+ return 0
+ fi
+ done
+ return 1
+ }
+ '';
+ in {
+ # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
+ blacklist-utf8 = let
+ blacklistCAToFingerprint = {
+ # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
+ "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
+ "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
+ };
+ mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint);
+ in runCommand "verify-the-cacert-filter-output" {
+ cacert = cacert.unbundled;
+ cacertWithExcludes = (cacert.override {
+ blacklist = builtins.attrNames blacklistCAToFingerprint;
+ }).unbundled;
+
+ nativeBuildInputs = [ openssl ];
+ } ''
+ ${isTrusted}
+
+ # Ensure that each certificate is in the main "cacert".
+ ${mapBlacklist (caName: caFingerprint: ''
+ isTrusted "$cacert" "${caName}" "${caFingerprint}" || ({
+ echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
+ exit 1
+ })
+ '')}
+
+ # Ensure that each certificate is NOT in the "cacertWithExcludes".
+ ${mapBlacklist (caName: caFingerprint: ''
+ isTrusted "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
+ echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
+ exit 1
+ })
+ '')}
+
+ touch "$out"
+ '';
+
+ # Test that we can add additional certificates to the store, and have them be trusted.
+ extra-certificates = let
+ extraCertificateStr = ''
+ -----BEGIN CERTIFICATE-----
+ MIIB5DCCAWqgAwIBAgIUItvsAYEIdYDkOIo5sdDYMcUaNuIwCgYIKoZIzj0EAwIw
+ KTEnMCUGA1UEAwweTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlMB4XDTIx
+ MDYxMjE5MDQzMFoXDTIyMDYxMjE5MDQzMFowKTEnMCUGA1UEAwweTml4T1MgY2Fj
+ ZXJ0IGV4dHJhIGNlcnRpZmljYXRlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuP8y
+ lAm6ZyQt9v/P6gTlV/a9R+D61WjucW04kaegOhg8csiluimYodiSv0Pbgymu+Zxm
+ A3Bz9QGmytaYTiJ16083rJkwwIhqoYl7kWsLzreSTaLz87KH+rdeol59+H0Oo1Mw
+ UTAdBgNVHQ4EFgQUCxuHfvqI4YVU5M+A0+aKvd1LrdswHwYDVR0jBBgwFoAUCxuH
+ fvqI4YVU5M+A0+aKvd1LrdswDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNo
+ ADBlAjEArgxgjdNmRlSEuai0dzlktmBEDZKy2Iiul+ttSoce9ohfEVYESwO602HW
+ keVvI56vAjBCro3dc3m2TuktiKO6lQV56PUEyxko4H/sR5pnHlduCGRDlFzQKXf/
+ pMMmtj7cVb8=
+ -----END CERTIFICATE-----
+ '';
+ extraCertificateFile = ./test-cert-file.crt;
+ extraCertificatesToFingerprint = {
+ # String above
+ "NixOS cacert extra certificate string" = "A3:20:D0:84:96:97:25:FF:98:B8:A9:6D:A3:7C:89:95:6E:7A:77:21:92:F3:33:E9:31:AF:5E:03:CE:A9:E5:EE";
+
+ # File
+ "NixOS cacert extra certificate file" = "88:B8:BE:A7:57:AC:F1:FE:D6:98:8B:50:E0:BD:0A:AE:88:C7:DF:70:26:E1:67:5E:F5:F6:91:27:FF:02:D4:A5";
+ };
+ mapExtra = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f extraCertificatesToFingerprint);
+ in runCommand "verify-the-cacert-extra-output" {
+ cacert = cacert.unbundled;
+ cacertWithExtras = (cacert.override {
+ extraCertificateStrings = [ extraCertificateStr ];
+ extraCertificateFiles = [ extraCertificateFile ];
+ }).unbundled;
+
+ nativeBuildInputs = [ openssl ];
+ } ''
+ ${isTrusted}
+
+ # Ensure that the extra certificate is not in the main "cacert".
+ ${mapExtra (extraName: extraFingerprint: ''
+ isTrusted "$cacert" "${extraName}" "${extraFingerprint}" && ({
+ echo "'extra' CA fingerprint ${extraFingerprint} (${extraName}) is present in the main CA bundle." >&2
+ exit 1
+ })
+ '')}
+
+ # Ensure that the extra certificates ARE in the "cacertWithExtras".
+ ${mapExtra (extraName: extraFingerprint: ''
+ isTrusted "$cacertWithExtras" "${extraName}" "${extraFingerprint}" || ({
+ echo "CA fingerprint ${extraFingerprint} (${extraName}) is not present in the cacertWithExtras bundle." >&2
+ exit 1
+ })
+ '')}
+
+ touch "$out"
+ '';
+ };
+ };
+
+ inherit meta;
}
diff --git a/pkgs/data/misc/cacert/test-cert-file.crt b/pkgs/data/misc/cacert/test-cert-file.crt
new file mode 100644
index 000000000000..095f38817d20
--- /dev/null
+++ b/pkgs/data/misc/cacert/test-cert-file.crt
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB7TCCAXSgAwIBAgIUFJB0STXn22fIEDjpncEt++IdFeMwCgYIKoZIzj0EAwIw
+LjEsMCoGA1UEAwwjTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlIGZpbGUw
+HhcNMjEwNjEyMTkxODA4WhcNMjIwNjEyMTkxODA4WjAuMSwwKgYDVQQDDCNOaXhP
+UyBjYWNlcnQgZXh0cmEgY2VydGlmaWNhdGUgZmlsZTB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABMifTLM5K5xd+guGdKE1+NR7wnEJbxw5INzuMrkg/7jgEIQil4+L2YOF
+kU1gxcM80Ot8tQAG5OcSvX1DF6CxunpoCT+hnHqyfqoWFvl89i1BUKjyWCQ5WXEe
+nSkuJUmYC6NTMFEwHQYDVR0OBBYEFBE2kNis1ri4fweyNVRmvje83gFQMB8GA1Ud
+IwQYMBaAFBE2kNis1ri4fweyNVRmvje83gFQMA8GA1UdEwEB/wQFMAMBAf8wCgYI
+KoZIzj0EAwIDZwAwZAIwUZf1qaSb4cezulV+4B4FoJHY2B/nRVIi/rFD8634YEDT
+vcg6dmCi/AqLEzJn7uFMAjBVTu4EVC/mtQCGESFChMeb04fsuhXgttWSwWliVPEG
+jkG7u0UNNGaU8dvrjpqRRmA=
+-----END CERTIFICATE-----
diff --git a/pkgs/data/misc/cacert/update.sh b/pkgs/data/misc/cacert/update.sh
index 1c286dc6206f..72d581b9650f 100755
--- a/pkgs/data/misc/cacert/update.sh
+++ b/pkgs/data/misc/cacert/update.sh
@@ -28,7 +28,7 @@ BASEDIR="$(dirname "$0")/../../../.."
CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
-PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.overrideAttrs (_: { inherit (nss_pkg) src version; })).out")
+PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.override { nssOverride = nss_pkg; }).out")
# Check the hash of the etc subfolder
# We can't check the entire output as that contains the nix-support folder
@@ -38,5 +38,5 @@ PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
if [[ "$CURRENT_HASH" != "$PATCHED_HASH" ]]; then
NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .)
- update-source-version cacert "$NSS_VERSION"
+ update-source-version --version-key=srcVersion cacert.src "$NSS_VERSION"
fi
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index 2a55794abfd7..996e993d8003 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
{
- "commit": "6b93e40198f31ac2a9d52e4f3ce90f22f1e9e6f9",
- "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/6b93e40198f31ac2a9d52e4f3ce90f22f1e9e6f9.tar.gz",
- "sha256": "1zs9d0h55q6lj3v0d0n19yxl58lhn07lmnw2j5k2y8zbx3pcqi8l",
- "msg": "Update from Hackage at 2021-09-17T18:08:40Z"
+ "commit": "da98cdcb5ec11aea3b1979174b3b1cab24014908",
+ "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/da98cdcb5ec11aea3b1979174b3b1cab24014908.tar.gz",
+ "sha256": "14qdmvlqkaixv331g1lfr8hghrvzdx45xhn69fz1g7zhv4w88jix",
+ "msg": "Update from Hackage at 2021-11-05T06:34:09Z"
}
diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix
index 60735eb4782c..29ebac848d85 100644
--- a/pkgs/data/misc/iana-etc/default.nix
+++ b/pkgs/data/misc/iana-etc/default.nix
@@ -1,17 +1,23 @@
-{ lib, fetchzip }:
+{ lib, fetchzip, stdenvNoCC, writeText }:
let
version = "20210225";
-in fetchzip {
+in stdenvNoCC.mkDerivation {
name = "iana-etc-${version}";
- url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
- sha256 = "sha256-NVvZG3EJEYOXFDTBXD5m9sg/8msyMiBMkiZr+ZxWZ/g=";
+ src = fetchzip {
+ url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
+ sha256 = "sha256:1bbbnj2ya0apyyhnw37521yl1hrz3zy3l8dw6sacmir0y6pmx9gi";
+ };
- postFetch = ''
- tar -xzvf $downloadedFile --strip-components=1
+ installPhase = ''
install -D -m0644 -t $out/etc services protocols
'';
+ setupHook = writeText "setup-hook" ''
+ export NIX_ETC_PROTOCOLS=@out@/etc/protocols
+ export NIX_ETC_SERVICES=@out@/etc/services
+ '';
+
meta = with lib; {
homepage = "https://github.com/Mic92/iana-etc";
description = "IANA protocol and port number assignments (/etc/protocols and /etc/services)";
diff --git a/pkgs/data/misc/rime-data/fetchSchema.nix b/pkgs/data/misc/rime-data/fetchSchema.nix
index 7bf7d8477c5e..c2841a9f1e61 100644
--- a/pkgs/data/misc/rime-data/fetchSchema.nix
+++ b/pkgs/data/misc/rime-data/fetchSchema.nix
@@ -5,8 +5,8 @@ mkdir -p package/rime
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-array";
- rev = "8514193da939bc8888ad6a744f5e5921d4baebc7";
- sha256 = "1fy7pcq7d8m0wzkkhklmv6p370ms9lqc1zpndyy2xjamzrbb9l83";
+ rev = "d10f2f8b2aec7c7e736ace01e8a399e5ae5e7c3a";
+ sha256 = "sha256-4t6+gh2V57SueDp9Tn6vTuxQCZNGzjLdJEhzIEqRjdI=";
}} package/rime/array
ln -sv ${fetchFromGitHub {
owner = "rime";
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 416bf0095188..4c60895897fe 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
pname = "shared-mime-info";
version = "2.1";
+ outputs = [ "out" "dev" ];
+
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "xdg";
diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix
index aa3d9e787b68..fddd1aec61ac 100644
--- a/pkgs/data/misc/tzdata/default.nix
+++ b/pkgs/data/misc/tzdata/default.nix
@@ -2,16 +2,16 @@
stdenv.mkDerivation rec {
pname = "tzdata";
- version = "2021a";
+ version = "2021c";
srcs =
[ (fetchurl {
url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
- sha256 = "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr";
+ sha256 = "0himprzx3ahxkmg4rvp8n5lqry76qzc65j6sfq151hqirg4d3wdl";
})
(fetchurl {
url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
- sha256 = "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb";
+ sha256 = "01fsa661vzdij46z286pa8q07cppqz29sr2pf0qqldqpldbb6km3";
})
];
@@ -73,6 +73,6 @@ stdenv.mkDerivation rec {
publicDomain # tzdata
];
platforms = platforms.all;
- maintainers = with maintainers; [ fpletz ];
+ maintainers = with maintainers; [ ajs124 fpletz ];
};
}
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
new file mode 100644
index 000000000000..bff703563d4b
--- /dev/null
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoModule, fetchFromGitHub, lib }:
+
+let
+ generator = buildGoModule rec {
+ pname = "v2ray-domain-list-community";
+ version = "20211103073737";
+ src = fetchFromGitHub {
+ owner = "v2fly";
+ repo = "domain-list-community";
+ rev = version;
+ sha256 = "sha256-NYgEXbow16w+XMRjbQG1cIn/BjPbbcj+uzb4kcVR6eI=";
+ };
+ vendorSha256 = "sha256-JuLU9v1ukVfAEtz07tGk66st1+sO4SBz83BlK3IPQwU=";
+ meta = with lib; {
+ description = "community managed domain list";
+ homepage = "https://github.com/v2fly/domain-list-community";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nickcao ];
+ };
+ };
+in
+stdenv.mkDerivation {
+ inherit (generator) pname version src meta;
+ buildPhase = ''
+ runHook preBuild
+ ${generator}/bin/domain-list-community -datapath $src/data --exportlists=category-ads-all,tld-cn,cn,tld-\!cn,geolocation-\!cn,apple,icloud
+ runHook postBuild
+ '';
+ installPhase = ''
+ runHook preInstall
+ install -Dm644 dlc.dat $out/share/v2ray/geosite.dat
+ runHook postInstall
+ '';
+ passthru.generator = generator;
+}
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index d23733fb0312..2a729c7aa2fc 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "wireless-regdb";
- version = "2021.07.14";
+ version = "2021.08.28";
src = fetchurl {
url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
- sha256 = "sha256-Li3SFqXxoxC4SXdK9j5jCdlMIgfDR3GlNMR64YsWJ0I=";
+ sha256 = "sha256-z/NwxBDR5tMWrgp/qKxieP3x78pdPWZKynz9Kq+lREY=";
};
dontBuild = true;
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
index 3e72d8a74b8a..f1424b15ad1a 100644
--- a/pkgs/data/themes/adwaita-qt/default.nix
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -14,6 +14,8 @@ mkDerivation rec {
pname = "adwaita-qt";
version = "1.4.0";
+ outputs = [ "out" "dev" ];
+
src = fetchFromGitHub {
owner = "FedoraQt";
repo = pname;
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
index ea2362c0529f..ea18da119c7e 100644
--- a/pkgs/data/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "arc-theme";
- version = "20210412";
+ version = "20211018";
src = fetchFromGitHub {
owner = "jnsh";
repo = pname;
rev = version;
- sha256 = "sha256-BNJirtBtdWsIzQfsJsZzg1zFbJEzZPq1j2qZ+1QjRH8=";
+ sha256 = "1rrxm5b7l8kq1h0lm08ck54xljzm8w573mxx904n3rhdg3ri9d63";
};
nativeBuildInputs = [
diff --git a/pkgs/data/themes/ayu-theme-gtk/default.nix b/pkgs/data/themes/ayu-theme-gtk/default.nix
new file mode 100644
index 000000000000..2e8453b097dd
--- /dev/null
+++ b/pkgs/data/themes/ayu-theme-gtk/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, gnome
+, gtk-engine-murrine
+, gtk3
+, inkscape
+, lib
+, optipng
+, pkg-config
+, sassc
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ayu-theme-gtk";
+ version = "unstable-2017-05-12";
+
+ src = fetchFromGitHub {
+ owner = "dnordstrom";
+ repo = "ayu-theme";
+ rev = "cc6f3d3b72897c304e2f00afcaf51df863155e35";
+ sha256 = "sha256-1EhTfPhYl+4IootTCCE04y6V7nW1/eWdHarfF7/j1U0=";
+ };
+
+ postPatch = ''
+ ln -sn 3.20 common/gtk-3.0/3.24
+ ln -sn 3.18 common/gnome-shell/3.24
+ '';
+
+ nativeBuildInputs = [
+ autoreconfHook
+ gtk3
+ inkscape
+ optipng
+ pkg-config
+ sassc
+ ];
+
+ propagatedUserEnvPkgs = [
+ gnome.gnome-themes-extra
+ gtk-engine-murrine
+ ];
+
+ enableParallelBuilding = true;
+
+ preBuild = ''
+ # Shut up inkscape's warnings about creating profile directory
+ export HOME="$NIX_BUILD_ROOT"
+ '';
+
+ configureFlags = [
+ "--with-gnome-shell=${gnome.gnome-shell.version}"
+ "--disable-unity"
+ ];
+
+ postInstall = ''
+ install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
+ '';
+
+ meta = with lib; {
+ description = "Ayu colored GTK and Kvantum themes based on Arc";
+ homepage = "https://github.com/dnordstrom/ayu-theme/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+}
+
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
index e36f567b5f80..1b6a9025eef8 100644
--- a/pkgs/data/themes/dracula-theme/default.nix
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -22,7 +22,14 @@ stdenv.mkDerivation {
installPhase = ''
runHook preInstall
mkdir -p $out/share/themes/${themeName}
- cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,index.theme,kde,metacity-1,unity,xfwm4} $out/share/themes/${themeName}
+ cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,index.theme,metacity-1,unity,xfwm4} $out/share/themes/${themeName}
+
+ cp -a kde/{color-schemes,plasma} $out/share/
+ cp -a kde/kvantum $out/share/Kvantum
+ mkdir -p $out/share/aurorae/themes
+ cp -a kde/aurorae/* $out/share/aurorae/themes/
+ mkdir -p $out/share/sddm/themes
+ cp -a kde/sddm/* $out/share/sddm/themes/
runHook postInstall
'';
@@ -31,6 +38,6 @@ stdenv.mkDerivation {
homepage = "https://github.com/dracula/gtk";
license = licenses.gpl3;
platforms = platforms.all;
- maintainers = with maintainers; [ alexarice vonfry ];
+ maintainers = with maintainers; [ alexarice ];
};
}
diff --git a/pkgs/data/themes/flat-remix-gnome/default.nix b/pkgs/data/themes/flat-remix-gnome/default.nix
index 28bfb12f4c59..bef378d66c3e 100644
--- a/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -6,20 +6,20 @@
stdenv.mkDerivation rec {
pname = "flat-remix-gnome";
- version = "20210716";
+ version = "20211028";
src = fetchFromGitHub {
owner = "daniruiz";
repo = pname;
rev = version;
- hash = "sha256-UAWi4MyqtuSzp5TEkVLYJF7+2tzH/aT60ObNOimCJ4o=";
+ hash = "sha256-sHJj81MmU9s5sUq5gaIT3leezuG0aVvgTD70Kho9Z0c=";
};
nativeBuildInputs = [ glib ];
makeFlags = [ "PREFIX=$(out)" ];
preInstall = ''
# make install will back up this file, it will fail if the file doesn't exist.
- # https://github.com/daniruiz/flat-remix-gnome/blob/20210716/Makefile#L53
+ # https://github.com/daniruiz/flat-remix-gnome/blob/20211028/Makefile#L54
mkdir -p $out/share/gnome-shell/
touch $out/share/gnome-shell/gnome-shell-theme.gresource
'';
diff --git a/pkgs/data/themes/greybird/default.nix b/pkgs/data/themes/greybird/default.nix
index 202424eeb2c4..06496ea9be14 100644
--- a/pkgs/data/themes/greybird/default.nix
+++ b/pkgs/data/themes/greybird/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "greybird";
- version = "3.22.14";
+ version = "3.22.15";
src = fetchFromGitHub {
owner = "shimmerproject";
repo = pname;
rev = "v${version}";
- sha256 = "0b0axzrvdsv7aa029idz4rs1jm6df4ff3v4j4d5wf4yiypb48js9";
+ sha256 = "1fk66fxy2lif9ngazlgkpsziw216i4b1ld2zm97cadf7n97376g9";
};
nativeBuildInputs = [
diff --git a/pkgs/data/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix
index f33fa2db5462..42979c8c81b3 100644
--- a/pkgs/data/themes/jade1/default.nix
+++ b/pkgs/data/themes/jade1/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "theme-jade1";
- version = "1.13";
+ version = "1.14";
src = fetchurl {
url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
- sha256 = "04a9c56w4hm8lwa8hzy5lwj4yli19gzy5wp5iinsm61qas9xgy69";
+ sha256 = "01p1g0gy6d1c8aa9y7inhn6zhm0qy0fzmwlniiv07h15g32appvd";
};
sourceRoot = ".";
diff --git a/pkgs/data/themes/kde-gruvbox/default.nix b/pkgs/data/themes/kde-gruvbox/default.nix
new file mode 100644
index 000000000000..e0f478a53cbe
--- /dev/null
+++ b/pkgs/data/themes/kde-gruvbox/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "kde-gruvbox";
+ version = "unstable-2015-08-09";
+
+ src = fetchFromGitHub {
+ owner = "printesoi";
+ repo = pname;
+ rev = "2dd95283076d7194345a460edb3630cfd020759c";
+ sha256 = "sha256-ppAeEfwoHZg7XEj3zGc+uq4Z6hUgJNM2EjuDsc8pFQo=";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/{plasma/desktoptheme,yakuake/kns_skins}
+ cp -R color-schemes konsole $out/share
+ cp -R plasma5/gruvbox $out/share/plasma/desktoptheme
+ cp -R yakuake/breeze-gruvbox-dark $out/share/yakuake/kns_skins
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "A suite of themes for KDE applications that match the retro gruvbox colorscheme";
+ homepage = "https://github.com/printesoi/kde-gruvbox";
+ license = licenses.mit;
+ maintainers = [ maintainers.ymarkus ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix b/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
new file mode 100644
index 000000000000..2f5230181d5e
--- /dev/null
+++ b/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, wrapQtAppsHook
+, kwin
+, lib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sierra-breeze-enhanced";
+ version = "1.0.3";
+
+ src = fetchFromGitHub {
+ owner = "kupiqu";
+ repo = "SierraBreezeEnhanced";
+ rev = "V${version}";
+ sha256 = "0kqbfn1jqsbii3hqcqlb93x8cg8dyh5mf66i9r237w41knks5mnw";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+ buildInputs = [ kwin ];
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_PREFIX=$out"
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DBUILD_TESTING=OFF"
+ "-DKDE_INSTALL_USE_QT_SYS_PATHS=ON"
+ ];
+
+ meta = with lib; {
+ description = "OSX-like window decoration for KDE Plasma written in C++";
+ homepage = "https://github.com/kupiqu/SierraBreezeEnhanced";
+ changelog = "https://github.com/kupiqu/SierraBreezeEnhanced/releases/tag/V${version}";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ flexagoon ];
+ };
+}
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
index bdb14be0bdd8..5676d03abeee 100644
--- a/pkgs/data/themes/marwaita/default.nix
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "marwaita";
- version = "10.3";
+ version = "11.3";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = version;
- sha256 = "0v9sxjy4x03y3hcgbkn9lj010kd5csiyc019dwxzvx5kg8xh8qca";
+ sha256 = "sha256-7l3fvqhMMJyv27yv/jShju0hL5AAvHk8pmISj/oyUP4=";
};
buildInputs = [
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index 3d88a78b39f4..4507e3c2f151 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "matcha-gtk-theme";
- version = "2021-08-23";
+ version = "2021-09-24";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "sha256-gemDiGcr7xLv247w9J1CMOSKg2tWp8ADKpG16qa3hZQ=";
+ sha256 = "064x340z6fif59bbk1p7ryl6xfj8hlf42ld7h8prcjsyghpznw15";
};
buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/pkgs/data/themes/materia-kde/default.nix b/pkgs/data/themes/materia-kde/default.nix
index bf3b56ae6666..a50cadb06769 100644
--- a/pkgs/data/themes/materia-kde/default.nix
+++ b/pkgs/data/themes/materia-kde/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "materia-kde-theme";
- version = "20210624";
+ version = "20210814";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = "materia-kde";
rev = version;
- sha256 = "jmUJAWoQ/GVPNQOjlyZBg4rIIo+rhzr5imnCFAWOtrA=";
+ sha256 = "KfC1nB5WUcYixqSy5XCP+6Uqhs07Y3p2F1H+5HB8wAg=";
};
makeFlags = [ "PREFIX=$(out)" ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A port of the materia theme for Plasma";
homepage = "https://github.com/PapirusDevelopmentTeam/materia-kde";
- license = licenses.gpl3;
+ license = licenses.gpl3Plus;
maintainers = [ maintainers.diffumist ];
platforms = platforms.all;
};
diff --git a/pkgs/data/themes/venta/default.nix b/pkgs/data/themes/venta/default.nix
index 83de638674e9..1f739c660060 100644
--- a/pkgs/data/themes/venta/default.nix
+++ b/pkgs/data/themes/venta/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "venta";
- version = "0.6";
+ version = "0.7.1";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = version;
- sha256 = "1fhiq1kji5qmwsh8335rzilvhs30g5jp126czf2rf532iba0ivd7";
+ sha256 = "14ckkvyarq1xmf48fh47by5h3jnkmksj2n4y6zvx3aw7pfg2jc51";
};
buildInputs = [
diff --git a/pkgs/data/themes/whitesur/default.nix b/pkgs/data/themes/whitesur/default.nix
index c158cc8a00ce..46594e4f5e17 100644
--- a/pkgs/data/themes/whitesur/default.nix
+++ b/pkgs/data/themes/whitesur/default.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "whitesur-gtk-theme";
- version = "2021-07-27";
+ version = "2021-10-21";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "17x4lqlv6whx8vg0c1nm89j7671l033apn4alqyhjb9qx5w2fa43";
+ sha256 = "1rbwf6z2bda647kw00q2fp349gjzvdc4gyk986fkjli0nr0jh8hp";
};
nativeBuildInputs = [
@@ -33,7 +33,9 @@ stdenv.mkDerivation rec {
];
postPatch = ''
- find -name "*.sh" -print0 | while IFS= read -r -d ''' file; do patchShebangs "$file"; done
+ find -name "*.sh" -print0 | while IFS= read -r -d ''' file; do
+ patchShebangs "$file"
+ done
# Do not provide `sudo`, as it is not needed in our use case of the install script
substituteInPlace lib-core.sh --replace '$(which sudo)' false
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index 05ddd5ad15d9..64bd3eb5eebc 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "yaru";
- version = "21.10.1";
+ version = "21.10.2";
src = fetchFromGitHub {
owner = "ubuntu";
repo = "yaru";
rev = version;
- sha256 = "sha256-VcuH/lEnSeOYGFXr3OPw9PRUwHOVx4RjUQXblv6jdD8=";
+ sha256 = "sha256-VN/jgKGM2Th+2nv91vEz47kmQiBx8xAiEVbtXwhZg6U=";
};
nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/pkgs/desktops/arcan/arcan/000-openal.patch b/pkgs/desktops/arcan/arcan/000-openal.patch
new file mode 100644
index 000000000000..f8e02a4cb0c6
--- /dev/null
+++ b/pkgs/desktops/arcan/arcan/000-openal.patch
@@ -0,0 +1,15 @@
+diff -Naur source-old/src/CMakeLists.txt source-new/src/CMakeLists.txt
+--- source-old/src/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
++++ source-new/src/CMakeLists.txt 2021-10-29 12:03:06.461399341 -0300
+@@ -362,10 +360,8 @@
+ if (EXISTS ${EXTERNAL_SRC_DIR}/git/openal AND STATIC_OPENAL)
+ amsg("${CL_YEL}Building OpenAL static from external/git mirror${CL_RST}")
+ ExternalProject_Add(OpenAL
+- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/openal
++ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/openal"
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/openal_static
+- UPDATE_COMMAND ""
+- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/openal"
+ ${EXTERNAL_DEFS}
+ ${CMAKE_EXTERNAL_DEFS}
+ -DALSOFT_BACKEND_DSOUND=OFF
diff --git a/pkgs/desktops/arcan/arcan/001-luajit.patch b/pkgs/desktops/arcan/arcan/001-luajit.patch
new file mode 100644
index 000000000000..eff3c0a5aad0
--- /dev/null
+++ b/pkgs/desktops/arcan/arcan/001-luajit.patch
@@ -0,0 +1,17 @@
+diff -Naur source-old/src/CMakeLists.txt source-new/src/CMakeLists.txt
+--- source-old/src/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
++++ source-new/src/CMakeLists.txt 2021-10-29 12:03:06.461399341 -0300
+@@ -419,12 +415,7 @@
+ set(LUA_TAG "luajit51")
+ if (EXISTS ${EXTERNAL_SRC_DIR}/git/luajit)
+ ExternalProject_Add(luajit
+- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/luajit
+- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/luajit"
+- CONFIGURE_COMMAND ""
+- GIT_TAG "v2.1.0-beta3"
+- UPDATE_COMMAND ""
+- INSTALL_COMMAND ""
++ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/luajit"
+ BUILD_IN_SOURCE 1
+ BUILD_COMMAND "${EXTMAKE_CMD}"
+ DEFAULT_CC=${CMAKE_C_COMPILER}
diff --git a/pkgs/desktops/arcan/arcan/002-libuvc.patch b/pkgs/desktops/arcan/arcan/002-libuvc.patch
new file mode 100644
index 000000000000..48d25fe8271e
--- /dev/null
+++ b/pkgs/desktops/arcan/arcan/002-libuvc.patch
@@ -0,0 +1,15 @@
+diff -Naur source-old/src/frameserver/decode/default/CMakeLists.txt source-new/src/frameserver/decode/default/CMakeLists.txt
+--- source-old/src/frameserver/decode/default/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
++++ source-new/src/frameserver/decode/default/CMakeLists.txt 2021-10-29 12:01:31.989933725 -0300
+@@ -62,10 +62,8 @@
+ if (STATIC_LIBUVC)
+ pkg_check_modules(LIBUSB_1 REQUIRED libusb-1.0)
+ ExternalProject_Add(libuvc
+- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/frameserver/decode/libuvc"
++ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/libuvc"
+ BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libuvc_static"
+- UPDATE_COMMAND ""
+- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/libuvc"
+ ${EXTERNAL_DEFS}
+ ${CMAKE_EXTERNAL_DEFS}
+ -DBUILD_UVC_STATIC=ON
diff --git a/pkgs/desktops/arcan/arcan/003-freetype.patch b/pkgs/desktops/arcan/arcan/003-freetype.patch
new file mode 100644
index 000000000000..e38d329b0260
--- /dev/null
+++ b/pkgs/desktops/arcan/arcan/003-freetype.patch
@@ -0,0 +1,14 @@
+diff -Naur source-old/src/CMakeLists.txt source-new/src/CMakeLists.txt
+--- source-old/src/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
++++ source-new/src/CMakeLists.txt 2021-10-29 12:03:06.461399341 -0300
+@@ -317,9 +317,7 @@
+ find_package(BZip2 REQUIRED QUIET)
+ pkg_check_modules(HARFBUZZ REQUIRED QUIET harfbuzz)
+ ExternalProject_Add(Freetype
+- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/freetype"
+- UPDATE_COMMAND ""
+- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/freetype"
++ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/freetype"
+ ${EXTERNAL_DEFS}
+ ${CMAKE_EXTERNAL_DEFS}
+ -DWITH_ZLIB=OFF
diff --git a/pkgs/desktops/arcan/arcan/clone-sources.nix b/pkgs/desktops/arcan/arcan/clone-sources.nix
new file mode 100644
index 000000000000..2ade63e70bfa
--- /dev/null
+++ b/pkgs/desktops/arcan/arcan/clone-sources.nix
@@ -0,0 +1,25 @@
+{ fetchgit, fetchFromGitHub }:
+{
+ letoram-openal-src = fetchFromGitHub {
+ owner = "letoram";
+ repo = "openal";
+ rev = "1c7302c580964fee9ee9e1d89ff56d24f934bdef";
+ hash = "sha256-InqU59J0zvwJ20a7KU54xTM7d76VoOlFbtj7KbFlnTU=";
+ };
+ freetype-src = fetchgit {
+ url = "git://git.sv.nongnu.org/freetype/freetype2.git";
+ rev = "94cb3a2eb96b3f17a1a3bd0e6f7da97c0e1d8f57";
+ sha256 = "sha256-LzjqunX/T8khF2UjPlPYiQOwMGem8MqPYneR2LdZ5Fg=";
+ };
+ libuvc-src = fetchgit {
+ owner = "libuvc";
+ repo = "libuvc";
+ rev = "b2b01ae6a2875d05c99eb256bb15815018d6e837";
+ sha256 = "sha256-2zCTjyodRARkHM/Q0r4bdEH9LO1Z9xPCnY2xE4KZddA=";
+ };
+ luajit-src = fetchgit {
+ url = "https://luajit.org/git/luajit-2.0.git";
+ rev = "d3294fa63b344173db68dd612c6d3801631e28d4";
+ sha256 = "sha256-1iHBXcbYhWN4M8g5oH09S1j1WrjYzI6qcRbHsdfpRkk=";
+ };
+}
diff --git a/pkgs/desktops/arcan/arcan.nix b/pkgs/desktops/arcan/arcan/default.nix
similarity index 57%
rename from pkgs/desktops/arcan/arcan.nix
rename to pkgs/desktops/arcan/arcan/default.nix
index a0d037725ed0..8420df5e7e21 100644
--- a/pkgs/desktops/arcan/arcan.nix
+++ b/pkgs/desktops/arcan/arcan/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchgit
, SDL2
, cmake
, espeak
@@ -23,6 +24,7 @@
, libvncserver
, libxcb
, libxkbcommon
+, lua
, luajit
, makeWrapper
, mesa
@@ -37,47 +39,24 @@
, xcbutilwm
, xz
, buildManPages ? true, ruby
+, useBuiltinLua ? true
+, useStaticFreetype ? false
+, useStaticLibuvc ? false
+, useStaticOpenAL ? true
+, useStaticSqlite ? false
}:
-let
- # TODO: investigate vendoring, especially OpenAL
- # WARN: vendoring of OpenAL is required for running arcan_lwa
- # INFO: maybe it needs leaveDotGit, but it is dangerous/impure
- letoram-openal-src = fetchFromGitHub {
- owner = "letoram";
- repo = "openal";
- rev = "1c7302c580964fee9ee9e1d89ff56d24f934bdef";
- hash = "sha256-InqU59J0zvwJ20a7KU54xTM7d76VoOlFbtj7KbFlnTU=";
- };
-in
stdenv.mkDerivation rec {
- pname = "arcan";
- version = "0.6.1pre1+unstable=2021-09-05";
+ pname = "arcan" + lib.optionalString useStaticOpenAL "-static-openal";
+ version = "0.6.1pre1+unstable=2021-10-16";
src = fetchFromGitHub {
owner = "letoram";
repo = "arcan";
- rev = "525521177e4458199d7a57f8e6d37d41c04a988d";
- hash = "sha256-RsvTHPIvF9TeOfjPGcArptIiF9g42BfZkVMCbjJcXnE=";
+ rev = "e0182b944152fbcb49f5c16932d38c05a9fb2680";
+ hash = "sha256-4FodFuO51ehvyjH4YaF/xBY9dwA6cP/e6/BvEsH4w7U=";
};
- postUnpack = ''
- (
- cd $sourceRoot/external/git/
- cp -a ${letoram-openal-src}/ openal/
- chmod --recursive 744 openal/
- )
- '';
-
- # TODO: work with upstream in order to get rid of these hardcoded paths
- postPatch = ''
- substituteInPlace ./src/platform/posix/paths.c \
- --replace "/usr/bin" "$out/bin" \
- --replace "/usr/share" "$out/share"
-
- substituteInPlace ./src/CMakeLists.txt --replace "SETUID" "# SETUID"
- '';
-
nativeBuildInputs = [
cmake
makeWrapper
@@ -108,6 +87,7 @@ stdenv.mkDerivation rec {
libvncserver
libxcb
libxkbcommon
+ lua
luajit
mesa
openal
@@ -121,10 +101,56 @@ stdenv.mkDerivation rec {
xz
];
+ patches = [
+ # Nixpkgs-specific: redirect vendoring
+ ./000-openal.patch
+ ./001-luajit.patch
+ ./002-libuvc.patch
+ ./003-freetype.patch
+ ];
+
+ # Emulate external/git/clone.sh
+ postUnpack = let
+ inherit (import ./clone-sources.nix { inherit fetchFromGitHub fetchgit; })
+ letoram-openal-src freetype-src libuvc-src luajit-src;
+ in
+ ''
+ pushd $sourceRoot/external/git/
+ ''
+ + (lib.optionalString useStaticOpenAL ''
+ cp -a ${letoram-openal-src}/ openal
+ chmod --recursive 744 openal
+ '')
+ + (lib.optionalString useStaticFreetype ''
+ cp -a ${freetype-src}/ freetype
+ chmod --recursive 744 freetype
+ '')
+ + (lib.optionalString useStaticLibuvc ''
+ cp -a ${libuvc-src}/ libuvc
+ chmod --recursive 744 libuvc
+ '')
+ + (lib.optionalString useBuiltinLua ''
+ cp -a ${luajit-src}/ luajit
+ chmod --recursive 744 luajit
+ '') +
+ ''
+ popd
+ '';
+
+ postPatch = ''
+ substituteInPlace ./src/platform/posix/paths.c \
+ --replace "/usr/bin" "$out/bin" \
+ --replace "/usr/share" "$out/share"
+
+ substituteInPlace ./src/CMakeLists.txt --replace "SETUID" "# SETUID"
+ '';
+
# INFO: According to the source code, the manpages need to be generated before
# the configure phase
preConfigure = lib.optionalString buildManPages ''
- (cd doc; ruby docgen.rb mangen)
+ pushd doc
+ ruby docgen.rb mangen
+ popd
'';
cmakeFlags = [
@@ -133,7 +159,12 @@ stdenv.mkDerivation rec {
"-DDISTR_TAG=Nixpkgs"
"-DENGINE_BUILDTAG=${version}"
"-DHYBRID_SDL=on"
- "-DSTATIC_OPENAL=off"
+ "-DBUILTIN_LUA=${if useBuiltinLua then "on" else "off"}"
+ "-DDISABLE_JIT=${if useBuiltinLua then "on" else "off"}"
+ "-DSTATIC_FREETYPE=${if useStaticFreetype then "on" else "off"}"
+ "-DSTATIC_LIBUVC=${if useStaticLibuvc then "on" else "off"}"
+ "-DSTATIC_OPENAL=${if useStaticOpenAL then "on" else "off"}"
+ "-DSTATIC_SQLite3=${if useStaticSqlite then "on" else "off"}"
"../src"
];
diff --git a/pkgs/desktops/arcan/default.nix b/pkgs/desktops/arcan/default.nix
index 39d3e489c592..9d9f28a79538 100644
--- a/pkgs/desktops/arcan/default.nix
+++ b/pkgs/desktops/arcan/default.nix
@@ -9,25 +9,26 @@ rec {
# Arcan
- arcan = callPackage ./arcan.nix { };
+ arcan = callPackage ./arcan { };
arcan-wrapped = callPackage ./wrapper.nix { };
- xarcan = callPackage ./xarcan.nix { };
+ xarcan = callPackage ./xarcan { };
# Appls
- durden = callPackage ./durden.nix { };
+ durden = callPackage ./durden { };
durden-wrapped = callPackage ./wrapper.nix {
name = "durden-wrapped";
appls = [ durden ];
};
- pipeworld = callPackage ./pipeworld.nix { };
+ pipeworld = callPackage ./pipeworld { };
pipeworld-wrapped = callPackage ./wrapper.nix {
name = "pipeworld-wrapped";
appls = [ pipeworld ];
};
- prio = callPackage ./prio.nix { };
+ # Warning: prio is deprecated; however it works and is useful for testing
+ prio = callPackage ./prio { };
prio-wrapped = callPackage ./wrapper.nix {
name = "prio-wrapped";
appls = [ prio ];
diff --git a/pkgs/desktops/arcan/durden.nix b/pkgs/desktops/arcan/durden/default.nix
similarity index 85%
rename from pkgs/desktops/arcan/durden.nix
rename to pkgs/desktops/arcan/durden/default.nix
index f6837f96fb6b..69aae1d216a3 100644
--- a/pkgs/desktops/arcan/durden.nix
+++ b/pkgs/desktops/arcan/durden/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "durden";
- version = "0.6.1+unstable=2021-07-11";
+ version = "0.6.1+unstable=2021-10-15";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
- rev = "8e0a5c07cade9ad9f606781615c9ebae7b28b6d5";
- hash = "sha256-4cGuCAeYmmr4ACWt2akVQu2cPqqyE6p+XFaKWcFf3t0=";
+ rev = "ab6cdaf19e87b74895a9ab5e1d005a07ea9396a6";
+ hash = "sha256-FxqY1TUgbD/PjQjTZZerb7ngn5nkcqmVwqPvbRAYaqo=";
};
installPhase = ''
diff --git a/pkgs/desktops/arcan/pipeworld.nix b/pkgs/desktops/arcan/pipeworld/default.nix
similarity index 97%
rename from pkgs/desktops/arcan/pipeworld.nix
rename to pkgs/desktops/arcan/pipeworld/default.nix
index 78af4ee049ee..359c3a21a67c 100644
--- a/pkgs/desktops/arcan/pipeworld.nix
+++ b/pkgs/desktops/arcan/pipeworld/default.nix
@@ -5,7 +5,7 @@
stdenv.mkDerivation rec {
pname = "pipeworld";
- version = "0.0.0+unstable=2021-08-01";
+ version = "0.pre+unstable=2021-08-01";
src = fetchFromGitHub {
owner = "letoram";
diff --git a/pkgs/desktops/arcan/prio.nix b/pkgs/desktops/arcan/prio/default.nix
similarity index 94%
rename from pkgs/desktops/arcan/prio.nix
rename to pkgs/desktops/arcan/prio/default.nix
index 764d82fae9b7..34443baa8017 100644
--- a/pkgs/desktops/arcan/prio.nix
+++ b/pkgs/desktops/arcan/prio/default.nix
@@ -5,7 +5,7 @@
stdenv.mkDerivation rec {
pname = "prio";
- version = "0.0.0+unstable=2018-09-13";
+ version = "0.pre+unstable=2018-09-13";
src = fetchFromGitHub {
owner = "letoram";
diff --git a/pkgs/desktops/arcan/wrapper.nix b/pkgs/desktops/arcan/wrapper.nix
index e394e2e08976..b61c5a5becd8 100644
--- a/pkgs/desktops/arcan/wrapper.nix
+++ b/pkgs/desktops/arcan/wrapper.nix
@@ -24,6 +24,6 @@ symlinkJoin rec {
done
'';
}
-# TODO: set ARCAN_FONTPATH to a set of fonts that can be provided in a parameter
# TODO: set ARCAN_STATEBASEPATH to $HOME/.arcan/resources/savestates/ - possibly
# via a suitable script
+# TODO: set ARCAN_FONTPATH to a set of default-but-configurable fontset
diff --git a/pkgs/desktops/arcan/xarcan.nix b/pkgs/desktops/arcan/xarcan/default.nix
similarity index 100%
rename from pkgs/desktops/arcan/xarcan.nix
rename to pkgs/desktops/arcan/xarcan/default.nix
diff --git a/pkgs/desktops/enlightenment/terminology/default.nix b/pkgs/desktops/enlightenment/terminology/default.nix
index 36c449ee9de7..e74f91d8d483 100644
--- a/pkgs/desktops/enlightenment/terminology/default.nix
+++ b/pkgs/desktops/enlightenment/terminology/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "terminology";
- version = "1.9.0";
+ version = "1.10.0";
src = fetchurl {
- url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
- sha256 = "0v74858yvrrfy0l2pq7yn6izvqhpkb9gw2jpd3a3khjwv8kw6frz";
+ url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "0imk7cjkcjss3zf4hjwmy54pbizm6l6pq553jcx7bpsnhs56bbsz";
};
nativeBuildInputs = [
@@ -30,11 +30,11 @@ stdenv.mkDerivation rec {
patchShebangs data/colorschemes/*.py
'';
- meta = {
+ meta = with lib; {
description = "Powerful terminal emulator based on EFL";
homepage = "https://www.enlightenment.org/about-terminology";
- license = lib.licenses.bsd2;
- platforms = lib.platforms.linux;
- maintainers = with lib.maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
};
}
diff --git a/pkgs/desktops/gnome/apps/cheese/default.nix b/pkgs/desktops/gnome/apps/cheese/default.nix
index 71a582993abf..38754a556938 100644
--- a/pkgs/desktops/gnome/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome/apps/cheese/default.nix
@@ -2,7 +2,6 @@
, stdenv
, gettext
, fetchurl
-, fetchpatch
, wrapGAppsHook
, gnome-video-effects
, libcanberra-gtk3
@@ -35,23 +34,15 @@
stdenv.mkDerivation rec {
pname = "cheese";
- version = "3.38.0";
+ version = "41.0";
outputs = [ "out" "man" "devdoc" ];
src = fetchurl {
- url = "mirror://gnome/sources/cheese/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8";
+ url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz";
+ sha256 = "EG8d9n4c9Bwqp5yZveZ2rskA2wNstSX6EIObBhh9Ivk=";
};
- patches = [
- # Fix build with latest Vala or GLib
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/cheese/commit/7cf6268e54620bbbe5e6e61800c50fb0cb4bea57.patch";
- sha256 = "WJgGNrpZLTahe7Sxr8HdTl+4Mf4VcmJb6DdiInlDcT4=";
- })
- ];
-
nativeBuildInputs = [
appstream-glib
docbook_xml_dtd_43
diff --git a/pkgs/desktops/gnome/apps/file-roller/default.nix b/pkgs/desktops/gnome/apps/file-roller/default.nix
index a26428652007..c4c489dae08e 100644
--- a/pkgs/desktops/gnome/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome/apps/file-roller/default.nix
@@ -1,6 +1,30 @@
-{ lib, stdenv, fetchurl, glib, gtk3, meson, ninja, pkg-config, gnome, gettext, itstool, libxml2, libarchive
-, file, json-glib, python3, wrapGAppsHook, desktop-file-utils, libnotify, nautilus, glibcLocales
-, unzip, cpio }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, desktop-file-utils
+, gettext
+, glibcLocales
+, itstool
+, libxml2
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, cpio
+, file
+, glib
+, gnome
+, gtk3
+, json-glib
+, libarchive
+, libnotify
+, nautilus
+, pantheon
+, unzip
+, withPantheon ? false
+}:
stdenv.mkDerivation rec {
pname = "file-roller";
@@ -11,11 +35,43 @@ stdenv.mkDerivation rec {
sha256 = "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a";
};
+ patches = lib.optionals withPantheon [
+ # Make this respect dark mode settings from Pantheon
+ # https://github.com/elementary/fileroller/
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/elementary/fileroller/f183eac36c68c9c9441e72294d4e305cf5fe36ed/fr-application-prefers-color-scheme.patch";
+ sha256 = "sha256-d/sqf4Oen9UrzYqru7Ck15o/6g6WfxRDH/iAGFXgYAA=";
+ })
+ ];
+
LANG = "en_US.UTF-8"; # postinstall.py
- nativeBuildInputs = [ meson ninja gettext itstool pkg-config libxml2 python3 wrapGAppsHook glibcLocales desktop-file-utils ];
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ glibcLocales
+ itstool
+ libxml2
+ meson
+ ninja
+ pkg-config
+ python3
+ wrapGAppsHook
+ ];
- buildInputs = [ glib gtk3 json-glib libarchive file gnome.adwaita-icon-theme libnotify nautilus cpio ];
+ buildInputs = [
+ cpio
+ file
+ glib
+ gnome.adwaita-icon-theme
+ gtk3
+ json-glib
+ libarchive
+ libnotify
+ nautilus
+ ] ++ lib.optionals withPantheon [
+ pantheon.granite
+ ];
PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
@@ -44,6 +100,6 @@ stdenv.mkDerivation rec {
description = "Archive manager for the GNOME desktop environment";
license = licenses.gpl2Plus;
platforms = platforms.linux;
- maintainers = teams.gnome.members;
+ maintainers = teams.gnome.members ++ teams.pantheon.members;
};
}
diff --git a/pkgs/desktops/gnome/apps/ghex/default.nix b/pkgs/desktops/gnome/apps/ghex/default.nix
index 500e60feb75c..6275bcd3fc65 100644
--- a/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ stdenv
+, lib
, fetchurl
-, fetchpatch
, pkg-config
, meson
, ninja
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "ghex";
- version = "3.18.4";
+ version = "3.41.0";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/ghex/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2";
+ sha256 = "KcdG8ihzteQVvDly29PdYNalH3CA5qPpVsNNZHrjRKI=";
};
nativeBuildInputs = [
@@ -50,18 +50,6 @@ stdenv.mkDerivation rec {
desktop-file-utils
];
- patches = [
- # Fixes for darwin. Drop in next release.
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/ghex/commit/b0af26666cd990d99076c242b2abb3efc6e98671.patch";
- sha256 = "1zwdkgr2nqrn9q3ydyvrrpn5x55cdi747fhbq6mh6blp9cbrk9b5";
- })
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/ghex/commit/cc8ef9e67b23604c402460010dc0b5dccb85391b.patch";
- sha256 = "0j2165rfhlbrlzhmcnirqd5m89ljpz0n3nz20sxbwlc8h42zv36s";
- })
- ];
-
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index 510da6c83d94..fa0f590b5f5b 100644
--- a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -55,11 +55,11 @@
stdenv.mkDerivation rec {
pname = "gnome-boxes";
- version = "40.3";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "//COj0Wkvm0zsKGpY6yzc5ujld6yFZDUOLsepvv3QFg=";
+ sha256 = "1wzhm8n485cqhbai4qshgrwl05ix881g8gjshilrj6vg8p1li79h";
};
doCheck = true;
diff --git a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index da2e37e51fc4..c8c2853203ce 100644
--- a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -24,11 +24,11 @@
stdenv.mkDerivation rec {
pname = "gnome-calendar";
- version = "40.2";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "njcB/UoOWJgA0iUgN3BkTzHVI0ZV9UqDqF/wVW3X6jM=";
+ sha256 = "0gqrxcn7fcvlh5c9691lx5zgdgs71ah15h5psrbhkg8qcqy95b3k";
};
patches = [
diff --git a/pkgs/desktops/gnome/apps/gnome-characters/default.nix b/pkgs/desktops/gnome/apps/gnome-characters/default.nix
index 5cbd58d602a9..960a3320472d 100644
--- a/pkgs/desktops/gnome/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-characters/default.nix
@@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-characters";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-characters/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha";
+ sha256 = "0yw6mimfwn0fij8zncjb4rg8bnazd1z47rmzq85lk6807nlyqag1";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
index d9a749a24b09..2e8ec02bd845 100644
--- a/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
@@ -27,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "gnome-clocks";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-clocks/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2";
+ sha256 = "34yLBKuS+mGPXe5RGFce+fyeilt5XqAKNcbcZ3ywLaw=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index a00b239641f8..5f69b30217ec 100644
--- a/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -13,6 +13,7 @@
, wrapGAppsHook
, glib
, gtk3
+, libhandy
, libxml2
, gtk-vnc
, gtk-frdp
@@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-connections";
- version = "40.0.1";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- hash = "sha256-vpvLoHzz+vWs4M5UzSL4YJtNx3ZuJe5f2cGAw5WbTRE=";
+ hash = "sha256-ia9eWM2D6mLl+abwMadKOFUIW6KS8OqFgGQIs6+DTug=";
};
nativeBuildInputs = [
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
glib
gtk-vnc
gtk3
+ libhandy
libxml2
gtk-frdp
];
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 5784fb8d481f..0b29f89d463e 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -9,13 +9,13 @@
, gtk3
, gobject-introspection
, gdk-pixbuf
+, librest
, librsvg
, libgweather
, geoclue2
, wrapGAppsHook
, folks
, libchamplain
-, gfbgraph
, libsoup
, gsettings-desktop-schemas
, webkitgtk
@@ -29,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "gnome-maps";
- version = "40.4";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-LFt+HmX39OVP6G7d2hE46qbAaRoUlAPZXL4i7cgiUJw=";
+ sha256 = "sha256-XtyUpXlHDO1HztKSxUq6Z8vnBIGOF0BsCQwB1Dlb4a0=";
};
doCheck = true;
@@ -53,7 +53,6 @@ stdenv.mkDerivation rec {
gdk-pixbuf
geoclue2
geocode-glib
- gfbgraph
gjs
gnome-online-accounts
gnome.adwaita-icon-theme
@@ -64,6 +63,7 @@ stdenv.mkDerivation rec {
libgee
libgweather
libhandy
+ librest
librsvg
libsoup
webkitgtk
diff --git a/pkgs/desktops/gnome/apps/gnome-music/default.nix b/pkgs/desktops/gnome/apps/gnome-music/default.nix
index 803235e95843..96ec321fa4a9 100644
--- a/pkgs/desktops/gnome/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-music/default.nix
@@ -25,18 +25,19 @@
, gst_all_1
, libdazzle
, libsoup
+, libhandy
, gsettings-desktop-schemas
}:
python3.pkgs.buildPythonApplication rec {
pname = "gnome-music";
- version = "40.1.1";
+ version = "41.0";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "IMtnPhHC8xQ9NYjPyrmhInkQgOun3GASypTBhglVjVE=";
+ sha256 = "1llz2aqa3n3ivwl7i09pgylsbgrfzb872vcj1k7pvivxm1kkbcb9";
};
nativeBuildInputs = [
@@ -67,6 +68,7 @@ python3.pkgs.buildPythonApplication rec {
libnotify
libdazzle
libsoup
+ libhandy
gsettings-desktop-schemas
tracker
] ++ (with gst_all_1; [
@@ -77,13 +79,12 @@ python3.pkgs.buildPythonApplication rec {
gst-plugins-ugly
]);
- propagatedBuildInputs = with python3.pkgs; [
+ pythonPath = with python3.pkgs; [
pycairo
dbus-python
pygobject3
];
-
postPatch = ''
for f in meson_post_conf.py meson_post_install.py; do
chmod +x $f
@@ -91,6 +92,13 @@ python3.pkgs.buildPythonApplication rec {
done
'';
+ # Prevent double wrapping, let the Python wrapper use the args in preFixup.
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
doCheck = false;
# handle setup hooks better
diff --git a/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/pkgs/desktops/gnome/apps/gnome-todo/default.nix
index ae1334cd562b..f3dde6585aeb 100644
--- a/pkgs/desktops/gnome/apps/gnome-todo/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-todo/default.nix
@@ -21,17 +21,28 @@
, libical
, librest
, json-glib
+, itstool
}:
stdenv.mkDerivation rec {
pname = "gnome-todo";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "aAl8lvBnXHFCZn0QQ0ToNHLdf8xTj+wKzb9gJrucobE=";
+ sha256 = "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras";
};
+ patches = [
+ # fix build race bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257667
+ (fetchpatch {
+ url = "https://cgit.freebsd.org/ports/plain/deskutils/gnome-todo/files/patch-src_meson.build?id=a4faaf6cf7835014b5f69a337b544ea4ee7f9655";
+ sha256 = "sha256:0ihixyq72yhx6njij7bldsqb80x3y217yh6livknlf5r1wr3hakn";
+ extraPrefix = "";
+ name = "gnome-todo_meson-build.patch";
+ })
+ ];
+
nativeBuildInputs = [
meson
ninja
@@ -39,6 +50,7 @@ stdenv.mkDerivation rec {
gettext
python3
wrapGAppsHook
+ itstool
];
buildInputs = [
@@ -62,10 +74,6 @@ stdenv.mkDerivation rec {
postPatch = ''
chmod +x build-aux/meson/meson_post_install.py
patchShebangs build-aux/meson/meson_post_install.py
-
- # https://gitlab.gnome.org/GNOME/gnome-todo/merge_requests/103
- substituteInPlace src/meson.build \
- --replace 'Gtk-3.0' 'Gtk-4.0'
'';
passthru = {
diff --git a/pkgs/desktops/gnome/apps/gnome-weather/default.nix b/pkgs/desktops/gnome/apps/gnome-weather/default.nix
index 17e98bb2a569..aa192a6a3b65 100644
--- a/pkgs/desktops/gnome/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-weather/default.nix
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "gnome-weather";
- version = "40.1";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-weather/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "PREUTEeXxG0gaMPd9c4rwDD8oPJyzwPyGMT0baO3PE0=";
+ sha256 = "1vidwq768xnrnr24jcfbpwjczz7vm5zmaiv41nb75q4p8avlwqg5";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/polari/default.nix b/pkgs/desktops/gnome/apps/polari/default.nix
index 0675ccb2f82d..f207307588a1 100644
--- a/pkgs/desktops/gnome/apps/polari/default.nix
+++ b/pkgs/desktops/gnome/apps/polari/default.nix
@@ -1,17 +1,15 @@
{ lib, stdenv, itstool, fetchurl, gdk-pixbuf, adwaita-icon-theme
, telepathy-glib, gjs, meson, ninja, gettext, telepathy-idle, libxml2, desktop-file-utils
-, pkg-config, gtk3, glib, libsecret, libsoup, webkitgtk, gobject-introspection, appstream-glib
-, gnome, wrapGAppsHook, telepathy-logger, gspell, gsettings-desktop-schemas }:
+, pkg-config, gtk4, gtk3, glib, libsecret, libsoup, webkitgtk, gobject-introspection, appstream-glib
+, gnome, wrapGAppsHook4, telepathy-logger, gspell, gsettings-desktop-schemas }:
-let
+stdenv.mkDerivation rec {
pname = "polari";
- version = "3.38.0";
-in stdenv.mkDerivation rec {
- name = "${pname}-${version}";
+ version = "41.0";
src = fetchurl {
- url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1l82nmb5qk4h69rsdhzlcmjjdhwh9jzfs4cnw8hy39sg5v9ady1s";
+ url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+ sha256 = "o7BfgWYDcMZ8lCtvRLKYx7eIFv6zjJJuwiEr3iLqQOs=";
};
patches = [
@@ -24,12 +22,12 @@ in stdenv.mkDerivation rec {
propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
nativeBuildInputs = [
- meson ninja pkg-config itstool gettext wrapGAppsHook libxml2
+ meson ninja pkg-config itstool gettext wrapGAppsHook4 libxml2
desktop-file-utils gobject-introspection appstream-glib
];
buildInputs = [
- gtk3 glib adwaita-icon-theme gsettings-desktop-schemas
+ gtk4 gtk3 glib adwaita-icon-theme gsettings-desktop-schemas
telepathy-glib telepathy-logger gjs gspell gdk-pixbuf libsecret libsoup webkitgtk
];
diff --git a/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch b/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch
index 0fb09eb154af..269b455f9787 100644
--- a/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch
+++ b/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch
@@ -1,24 +1,24 @@
diff --git a/src/thumbnailer.js b/src/thumbnailer.js
old mode 100644
new mode 100755
-index e2ad0a5..7ebf08a
+index ed6350ea..83d832cb
--- a/src/thumbnailer.js
+++ b/src/thumbnailer.js
@@ -1,3 +1,4 @@
-+#!/usr/bin/env gjs
- imports.gi.versions.Gdk = '3.0';
- imports.gi.versions.Gtk = '3.0';
-
++#!/usr/bin/env gjs --module
+ import Cairo from 'cairo';
+ import Gdk from 'gi://Gdk?version=3.0';
+ import Gio from 'gi://Gio';
diff --git a/src/urlPreview.js b/src/urlPreview.js
-index f17e0be..ccffc32 100644
+index 5f7931e4..d2282900 100644
--- a/src/urlPreview.js
+++ b/src/urlPreview.js
-@@ -44,7 +44,7 @@ class Thumbnailer {
- _generateThumbnail(data) {
+@@ -69,7 +69,7 @@ class Thumbnailer {
+ async _generateThumbnail(data) {
let { filename, uri } = data;
this._subProc = Gio.Subprocess.new(
-- ['gjs', `${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
+- ['gjs', '--module', `${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
+ [`${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
Gio.SubprocessFlags.NONE);
- this._subProc.wait_async(null, (o, res) => {
- try {
+ try {
+ await this._subProc.wait_async(null);
diff --git a/pkgs/desktops/gnome/apps/seahorse/default.nix b/pkgs/desktops/gnome/apps/seahorse/default.nix
index d09a4c9ff3e6..67036df2d51b 100644
--- a/pkgs/desktops/gnome/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome/apps/seahorse/default.nix
@@ -27,15 +27,13 @@
stdenv.mkDerivation rec {
pname = "seahorse";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- hash = "sha256-fscFezhousbqBB/aghQKOfXsnlsYi0UJFNRTvC1V0Cw=";
+ hash = "sha256-5u7AnoEESClfVH8YwdV3K2XD7cHZ5aJZXxC13eaJKfU=";
};
- doCheck = true;
-
nativeBuildInputs = [
meson
ninja
@@ -65,10 +63,21 @@ stdenv.mkDerivation rec {
libhandy
];
+ doCheck = true;
+
postPatch = ''
patchShebangs build-aux/
'';
+ preCheck = ''
+ # Add “org.gnome.crypto.pgp” GSettings schema to path
+ # to make it available for “gpgme-backend” test.
+ # It is used by Seahorse’s internal “common” library.
+ addToSearchPath XDG_DATA_DIRS "${glib.getSchemaPath gcr}/../.."
+ # The same test also requires home directory so that it can store settings.
+ export HOME=$TMPDIR
+ '';
+
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
diff --git a/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
index 04f8a7a3c37b..c7c85779d3fb 100644
--- a/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
+++ b/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "adwaita-icon-theme";
- version = "40.1.1";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "C2xDbtatmIeoitofcqAZex63OwINjTRKurTH+nJQ+PY=";
+ sha256 = "71M52MNfytXRBIG3BICAPw+iCz08vDOSOPys7q7gHro=";
};
# For convenience, we can specify adwaita-icon-theme only in packages
diff --git a/pkgs/desktops/gnome/core/baobab/default.nix b/pkgs/desktops/gnome/core/baobab/default.nix
index 40ff8e201543..40ea18b1af1e 100644
--- a/pkgs/desktops/gnome/core/baobab/default.nix
+++ b/pkgs/desktops/gnome/core/baobab/default.nix
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "baobab";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6";
+ sha256 = "ytYnjS3MgMhLVxBapbtY2KMM6Y1vq9dnUZ3bhshX6FU=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/eog/default.nix b/pkgs/desktops/gnome/core/eog/default.nix
index bffcb8b74c23..67ecf9f5c13c 100644
--- a/pkgs/desktops/gnome/core/eog/default.nix
+++ b/pkgs/desktops/gnome/core/eog/default.nix
@@ -28,11 +28,11 @@
stdenv.mkDerivation rec {
pname = "eog";
- version = "40.3";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-KKo7BwgdlWV1RvcIlJR/qIZjGix/lV5Wz4DbcxrjsjU=";
+ sha256 = "sha256-kX3ghv2X/T7JMPoHyIut0r4fXQrmueVpyYYATgNZqaw=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/epiphany/dark-style.patch b/pkgs/desktops/gnome/core/epiphany/dark-style.patch
deleted file mode 100644
index 56ac5c1e5b2c..000000000000
--- a/pkgs/desktops/gnome/core/epiphany/dark-style.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-diff --git a/meson.build b/meson.build
-index de9cbfa850..647f617605 100644
---- a/meson.build
-+++ b/meson.build
-@@ -92,6 +92,7 @@ iso_codes_dep = dependency('iso-codes', version: '>= 0.35')
- json_glib_dep = dependency('json-glib-1.0', version: '>= 1.6')
- libarchive_dep = dependency('libarchive')
- libdazzle_dep = dependency('libdazzle-1.0', version: '>= 3.37.1')
-+libgranite_dep = dependency('granite', version: '>= 6.0.0')
- libhandy_dep = dependency('libhandy-1', version: '>= 1.1.0')
- libsecret_dep = dependency('libsecret-1', version: '>= 0.19.0')
- libsoup_dep = dependency('libsoup-2.4', version: '>= 2.48.0')
-diff --git a/src/ephy-shell.c b/src/ephy-shell.c
-index 650531da86..b9d1355e86 100644
---- a/src/ephy-shell.c
-+++ b/src/ephy-shell.c
-@@ -50,6 +50,7 @@
-
- #include
- #include
-+#include
- #include
-
- struct _EphyShell {
-@@ -483,6 +484,20 @@ run_in_background_set_mapping (const GValue *value,
- return g_variant_new_boolean (g_variant_get_boolean (var));
- }
-
-+static void
-+ephy_shell_set_prefers_color_scheme (EphyShell *shell)
-+{
-+ GtkSettings* gtk_settings = gtk_settings_get_default ();
-+ GraniteSettings* granite_settings = granite_settings_get_default ();
-+
-+ g_object_set (
-+ gtk_settings,
-+ "gtk-application-prefer-dark-theme",
-+ granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
-+ NULL
-+ );
-+}
-+
- static void
- ephy_shell_startup (GApplication *application)
- {
-@@ -490,11 +505,18 @@ ephy_shell_startup (GApplication *application)
- EphyShell *shell = EPHY_SHELL (application);
- EphyEmbedShellMode mode;
- GAction *action;
-+ GraniteSettings* granite_settings = granite_settings_get_default ();
-
- G_APPLICATION_CLASS (ephy_shell_parent_class)->startup (application);
-
- hdy_init ();
-
-+ ephy_shell_set_prefers_color_scheme (shell);
-+
-+ g_signal_connect (granite_settings, "notify::prefers-color-scheme",
-+ G_CALLBACK (ephy_shell_set_prefers_color_scheme), shell
-+ );
-+
- /* If we are under Pantheon set the icon-theme and cursor-theme accordingly. */
- if (is_desktop_pantheon ()) {
- GtkSettings *settings = gtk_settings_get_default ();
-diff --git a/src/meson.build b/src/meson.build
-index 5bf3eb92ec..d17b1b6d93 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -74,6 +74,7 @@ libephymain_deps = [
- gdk_dep,
- gvdb_dep,
- libarchive_dep,
-+ libgranite_dep,
- libhandy_dep
- ]
-
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index 3f25e303dc1e..6f9965520647 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -3,6 +3,7 @@
, ninja
, gettext
, fetchurl
+, fetchpatch
, pkg-config
, gtk3
, glib
@@ -39,18 +40,37 @@
stdenv.mkDerivation rec {
pname = "epiphany";
- version = "40.3";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "2tE4ufLVXeJxEo/KOLYfU/2YDFh9KeG6a1CP/zsZ9WQ=";
+ sha256 = "s50YJUkllbC3TF1qZoaoV/lBnfpMAvgBPCl7yHDibdA=";
};
- patches = lib.optionals withPantheon [
+ patches = [
+ # tab-view: Update close button position on startup
+ # https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1025
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/epiphany/-/commit/6e9d6d3cf7fa7ddf21a70e9816a5cd4767a79523.patch";
+ sha256 = "sha256-lBVliGCIKwTvsYnWjAcmJxhTg1HS/2x4wlOh+4sx/xQ=";
+ })
+ ] ++ lib.optionals withPantheon [
+ # Pantheon specific patches for epiphany
# https://github.com/elementary/browser
- # FIXME: Update the patches when https://github.com/elementary/browser/pull/41 merged
- ./dark-style.patch
- ./navigation-buttons.patch
+ #
+ # Make this respect dark mode settings from Pantheon
+ # https://github.com/elementary/browser/pull/21
+ # https://github.com/elementary/browser/pull/41
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/elementary/browser/cc17559a7ac6effe593712b4f3d0bbefde6e3b62/dark-style.patch";
+ sha256 = "sha256-RzMUc9P51UN3tRFefzRtMniXR9duOOmLj5eu5gL2TEQ=";
+ })
+ # Patch to unlink nav buttons
+ # https://github.com/elementary/browser/pull/18
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/elementary/browser/cc17559a7ac6effe593712b4f3d0bbefde6e3b62/navigation-buttons.patch";
+ sha256 = "sha256-G1/JUjn/8DyO9sgL/5Kq205KbTOs4EMi4Vf3cJ8FHXU=";
+ })
];
nativeBuildInputs = [
@@ -96,7 +116,9 @@ stdenv.mkDerivation rec {
p11-kit
sqlite
webkitgtk
- ] ++ lib.optional withPantheon pantheon.granite;
+ ] ++ lib.optionals withPantheon [
+ pantheon.granite
+ ];
# Tests need an X display
mesonFlags = [
diff --git a/pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch b/pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch
deleted file mode 100644
index b7b3b620535f..000000000000
--- a/pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/resources/gtk/action-bar-start.ui b/src/resources/gtk/action-bar-start.ui
-index e604b9601f..2bfe244d53 100644
---- a/src/resources/gtk/action-bar-start.ui
-+++ b/src/resources/gtk/action-bar-start.ui
-@@ -7,7 +7,6 @@
- True
- horizontal
-
-
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
index 11cd3735e1d5..45812dbc901a 100644
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ b/pkgs/desktops/gnome/core/evince/default.nix
@@ -30,6 +30,7 @@
, gsettings-desktop-schemas
, gnome-desktop
, dbus
+, pantheon
, python3
, texlive
, t1lib
@@ -40,19 +41,27 @@
, supportMultimedia ? true # PDF multimedia
, libgxps
, supportXPS ? true # Open XML Paper Specification via libgxps
+, withPantheon ? false
}:
stdenv.mkDerivation rec {
pname = "evince";
- version = "40.4";
+ version = "41.2";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "M0IFAODgYPF4pDUGMZfULa57Z+OcxDepZRCjPd9+lfs=";
+ sha256 = "lautDW/urJVg2zq4C6fF6rsf3xyg47PJMzmvBUU6JNg=";
};
+ patches = lib.optionals withPantheon [
+ # Make this respect dark mode settings from Pantheon
+ # https://github.com/elementary/evince
+ # The patch currently differs from upstream (updated for evince 41).
+ ./pantheon-dark-style.patch
+ ];
+
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
@@ -96,9 +105,18 @@ stdenv.mkDerivation rec {
poppler
t1lib
texlive.bin.core # kpathsea for DVI support
- ] ++ lib.optional supportXPS libgxps
- ++ lib.optionals supportMultimedia (with gst_all_1; [
- gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]);
+ ] ++ lib.optionals supportXPS [
+ libgxps
+ ] ++ lib.optionals supportMultimedia (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ gst-libav
+ ]) ++ lib.optionals withPantheon [
+ pantheon.granite
+ ];
mesonFlags = [
"-Dnautilus=false"
@@ -128,8 +146,8 @@ stdenv.mkDerivation rec {
on the GNOME Desktop with a single simple application.
'';
- license = lib.licenses.gpl2Plus;
+ license = licenses.gpl2Plus;
platforms = platforms.linux;
- maintainers = teams.gnome.members;
+ maintainers = teams.gnome.members ++ teams.pantheon.members;
};
}
diff --git a/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch b/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch
new file mode 100644
index 000000000000..5e1ef67b08cd
--- /dev/null
+++ b/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch
@@ -0,0 +1,86 @@
+diff --git a/meson.build b/meson.build
+index bcb69cf7..4a18c08c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -162,6 +162,7 @@ gmodule_dep = dependency('gmodule-2.0')
+ gmodule_no_export_dep = dependency('gmodule-no-export-2.0', version: glib_req_version)
+ gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
+ gthread_dep = dependency('gthread-2.0', version: glib_req_version)
++granite_dep = dependency('granite')
+ # Keep the version here synchronised with subprojects/libhandy.wrap
+ hdy_dep = dependency('libhandy-1', version: hdy_req_version, fallback: ['libhandy', 'libhandy_dep'])
+
+diff --git a/shell/ev-application.c b/shell/ev-application.c
+index e704bda2..d705328c 100644
+--- a/shell/ev-application.c
++++ b/shell/ev-application.c
+@@ -30,6 +30,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #ifdef GDK_WINDOWING_X11
+ #include
+@@ -176,7 +177,7 @@ ev_spawn (const char *uri,
+
+ g_string_append_printf (cmd, " %s", path);
+ g_free (path);
+-
++
+ /* Page label */
+ if (dest) {
+ switch (ev_link_dest_get_dest_type (dest)) {
+@@ -940,6 +941,20 @@ ev_application_migrate_config_dir (EvApplication *application)
+ g_free (old_accels);
+ }
+
++static void
++ev_application_set_prefers_color_scheme ()
++{
++ GtkSettings* gtk_settings = gtk_settings_get_default ();
++ GraniteSettings* granite_settings = granite_settings_get_default ();
++
++ g_object_set (
++ gtk_settings,
++ "gtk-application-prefer-dark-theme",
++ granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
++ NULL
++ );
++}
++
+ static void
+ ev_application_startup (GApplication *gapplication)
+ {
+@@ -992,6 +1007,7 @@ ev_application_startup (GApplication *gapplication)
+
+ EvApplication *application = EV_APPLICATION (gapplication);
+ const gchar **it;
++ GraniteSettings* granite_settings = granite_settings_get_default ();
+
+ g_application_set_resource_base_path (gapplication, "/org/gnome/evince");
+
+@@ -999,6 +1015,11 @@ ev_application_startup (GApplication *gapplication)
+
+ hdy_init ();
+
++ ev_application_set_prefers_color_scheme ();
++
++ g_signal_connect (granite_settings, "notify::prefers-color-scheme",
++ G_CALLBACK(ev_application_set_prefers_color_scheme), NULL);
++
+ for (it = action_accels; it[0]; it += g_strv_length ((gchar **)it) + 1)
+ gtk_application_set_accels_for_action (GTK_APPLICATION (application), it[0], &it[1]);
+ }
+diff --git a/shell/meson.build b/shell/meson.build
+index 7cbc48f2..a3089b13 100644
+--- a/shell/meson.build
++++ b/shell/meson.build
+@@ -52,6 +52,7 @@ sources += gnome.compile_resources(
+ deps = [
+ gdk_pixbuf_dep,
+ gnome_desktop_dep,
++ granite_dep,
+ hdy_dep,
+ libevmisc_dep,
+ libevproperties_dep,
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index 156ffbb1c78f..9c1fd1658ec1 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "evolution-data-server";
- version = "3.40.4";
+ version = "3.42.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "h8GF8Yw3Jw42EZgfGb2SIayXTIB0Ysjc6QvqCHEsWAA=";
+ sha256 = "5uZ/KnfQ/z5tpQsD3F+iZucWYmvNou9EFE4xfjXy9Sg=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/gdm/default.nix b/pkgs/desktops/gnome/core/gdm/default.nix
index e3c693836374..392ea61688a6 100644
--- a/pkgs/desktops/gnome/core/gdm/default.nix
+++ b/pkgs/desktops/gnome/core/gdm/default.nix
@@ -26,6 +26,7 @@
, plymouth
, librsvg
, coreutils
+, xorgserver
, xwayland
, dbus
, nixos-icons
@@ -42,13 +43,13 @@ in
stdenv.mkDerivation rec {
pname = "gdm";
- version = "40.1";
+ version = "41.0";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "q7ih6mZISPLJD4SsqkLpTSVgVwNYgamPvUH7xdfRc/0=";
+ sha256 = "VzjEKTqfWoDUpungb00N8+nzE8p7Yb+02K+rqYPiANw=";
};
mesonFlags = [
@@ -102,7 +103,7 @@ stdenv.mkDerivation rec {
# Change hardcoded paths to nix store paths.
(substituteAll {
src = ./fix-paths.patch;
- inherit coreutils plymouth xwayland dbus;
+ inherit coreutils plymouth xorgserver xwayland dbus;
})
# The following patches implement certain environment variables in GDM which are set by
diff --git a/pkgs/desktops/gnome/core/gdm/fix-paths.patch b/pkgs/desktops/gnome/core/gdm/fix-paths.patch
index d649556fe9e6..980627c78d46 100644
--- a/pkgs/desktops/gnome/core/gdm/fix-paths.patch
+++ b/pkgs/desktops/gnome/core/gdm/fix-paths.patch
@@ -1,66 +1,64 @@
+diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
+index 5fbbad68..739718ec 100644
--- a/daemon/gdm-local-display-factory.c
+++ b/daemon/gdm-local-display-factory.c
-@@ -201,7 +201,7 @@
+@@ -233,9 +233,9 @@ struct GdmDisplayServerConfiguration {
+ const char *session_type;
+ } display_server_configuration[] = {
#ifdef ENABLE_WAYLAND_SUPPORT
- gboolean wayland_enabled = FALSE;
- if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
-- if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-+ if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
- return TRUE;
- }
+- { "wayland", GDM_KEY_WAYLAND_ENABLE, "/usr/bin/Xwayland", "wayland" },
++ { "wayland", GDM_KEY_WAYLAND_ENABLE, "@xwayland@/bin/Xwayland", "wayland" },
#endif
+- { "xorg", GDM_KEY_XORG_ENABLE, "/usr/bin/Xorg", "x11" },
++ { "xorg", GDM_KEY_XORG_ENABLE, "@xorgserver@/bin/Xorg", "x11" },
+ { NULL, NULL, NULL },
+ };
+
+diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
+index cc61efc9..4c9d15af 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
-@@ -145,7 +145,7 @@
+@@ -148,7 +148,7 @@ plymouth_is_running (void)
GError *error;
-
+
error = NULL;
- res = g_spawn_command_line_sync ("plymouth --ping",
+ res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth --ping",
NULL, NULL, &status, &error);
if (! res) {
g_debug ("Could not ping plymouth: %s", error->message);
-@@ -163,7 +163,7 @@
+@@ -166,7 +166,7 @@ plymouth_prepare_for_transition (void)
GError *error;
-
+
error = NULL;
- res = g_spawn_command_line_sync ("plymouth deactivate",
+ res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth deactivate",
NULL, NULL, NULL, &error);
if (! res) {
g_warning ("Could not deactivate plymouth: %s", error->message);
-@@ -178,7 +178,7 @@
+@@ -181,7 +181,7 @@ plymouth_quit_with_transition (void)
GError *error;
-
+
error = NULL;
- res = g_spawn_command_line_async ("plymouth quit --retain-splash", &error);
+ res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit --retain-splash", &error);
if (! res) {
g_warning ("Could not quit plymouth: %s", error->message);
g_error_free (error);
-@@ -194,7 +194,7 @@
+@@ -197,7 +197,7 @@ plymouth_quit_without_transition (void)
GError *error;
-
+
error = NULL;
- res = g_spawn_command_line_async ("plymouth quit", &error);
+ res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit", &error);
if (! res) {
g_warning ("Could not quit plymouth: %s", error->message);
g_error_free (error);
---- a/data/gdm.service.in
-+++ b/data/gdm.service.in
-@@ -26,7 +26,7 @@ Restart=always
- IgnoreSIGPIPE=no
- BusName=org.gnome.DisplayManager
- EnvironmentFile=-${LANG_CONFIG_FILE}
--ExecReload=/bin/kill -SIGHUP $MAINPID
-+ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
- KeyringMode=shared
-
- [Install]
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index 4b709731..245ac0cf 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
-@@ -2916,16 +2916,16 @@ gdm_session_start_session (GdmSession *self,
+@@ -2972,16 +2972,16 @@ gdm_session_start_session (GdmSession *self,
*/
if (run_launcher) {
if (is_x11) {
@@ -80,3 +78,16 @@
self->selected_program);
}
}
+diff --git a/data/gdm.service.in b/data/gdm.service.in
+index 17e8a8de..afc70977 100644
+--- a/data/gdm.service.in
++++ b/data/gdm.service.in
+@@ -26,7 +26,7 @@ Restart=always
+ IgnoreSIGPIPE=no
+ BusName=org.gnome.DisplayManager
+ EnvironmentFile=-${LANG_CONFIG_FILE}
+-ExecReload=/bin/kill -SIGHUP $MAINPID
++ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
+ KeyringMode=shared
+
+ [Install]
diff --git a/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
index 370cd14e4677..89a49e4cecb3 100644
--- a/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
@@ -2,17 +2,24 @@
stdenv.mkDerivation rec {
pname = "gnome-backgrounds";
- version = "40.1";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "YN+KDaMBzkJbcEPUKuMuxAEf8I8Y4Pxi8pQBMF2jpw4=";
+ sha256 = "HaGsDSYb7fD80shbSAvGVQXiPPUfEUMSbA03cX5pMUU=";
};
passthru = {
updateScript = gnome.updateScript { packageName = "gnome-backgrounds"; attrPath = "gnome.gnome-backgrounds"; };
};
+ patches = [
+ # Makes the database point to stable paths in /run/current-system/sw/share, which don't decay whenever this package's hash changes.
+ # This assumes a nixos + gnome system, where this package is installed in environment.systemPackages,
+ # and /share outputs are included in environment.pathsToLink.
+ ./stable-dir.patch
+ ];
+
nativeBuildInputs = [ meson ninja pkg-config gettext ];
meta = with lib; {
diff --git a/pkgs/desktops/gnome/core/gnome-backgrounds/stable-dir.patch b/pkgs/desktops/gnome/core/gnome-backgrounds/stable-dir.patch
new file mode 100644
index 000000000000..cbc55e8a5c01
--- /dev/null
+++ b/pkgs/desktops/gnome/core/gnome-backgrounds/stable-dir.patch
@@ -0,0 +1,9 @@
+diff --git a/backgrounds/meson.build b/backgrounds/meson.build
+index 2175a16..cf521df 100644
+--- a/backgrounds/meson.build
++++ b/backgrounds/meson.build
+@@ -1,5 +1,5 @@
+ dataconf = configuration_data()
+-dataconf.set('BACKGROUNDDIR', backgrounddir)
++dataconf.set('BACKGROUNDDIR', '/run/current-system/sw/share/backgrounds/gnome')
+ dataconf.set('datadir', datadir)
diff --git a/pkgs/desktops/gnome/core/gnome-calculator/default.nix b/pkgs/desktops/gnome/core/gnome-calculator/default.nix
index 7e19e9523ce8..58c079078d64 100644
--- a/pkgs/desktops/gnome/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-calculator/default.nix
@@ -26,11 +26,11 @@
stdenv.mkDerivation rec {
pname = "gnome-calculator";
- version = "40.1";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz";
+ sha256 = "pm3AS9hYfnbWc3Wmrvp5VTtWnJvfeOvcKBfxwK3j3Jk=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-contacts/default.nix b/pkgs/desktops/gnome/core/gnome-contacts/default.nix
index 62a43d20d580..919bb5206cff 100644
--- a/pkgs/desktops/gnome/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-contacts/default.nix
@@ -29,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "gnome-contacts";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-contacts/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9";
+ sha256 = "Y+MUm10UdbeiaYAFu191DzyApzVxcWDjnfjP3+v8zfA=";
};
propagatedUserEnvPkgs = [
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index 6170f53c716b..d60b64b78aab 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -1,5 +1,4 @@
{ fetchurl
-, fetchpatch
, lib
, stdenv
, substituteAll
@@ -17,6 +16,7 @@
, gettext
, glib
, glib-networking
+, gcr
, glibc
, gnome-bluetooth
, gnome-color-manager
@@ -24,8 +24,6 @@
, gnome-online-accounts
, gnome-settings-daemon
, gnome
-, grilo
-, grilo-plugins
, gsettings-desktop-schemas
, gsound
, gtk3
@@ -70,11 +68,11 @@
stdenv.mkDerivation rec {
pname = "gnome-control-center";
- version = "40.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-zMmlc2UXOFEJrlpZkGwlgkTdh5t1A61ZhM9BZVyzAvE=";
+ sha256 = "sha256-6gxxSExlzizBE3b5sB5iEfpKf/0zT0MH/FLJPw/d1Mc=";
};
patches = [
@@ -85,13 +83,6 @@ stdenv.mkDerivation rec {
inherit glibc libgnomekbd tzdata;
inherit cups networkmanagerapplet;
})
-
- # Fix startup assertion in power panel.
- # https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/974
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/9acaa10567c94048657c69538e5d7813f82c4224.patch";
- sha256 = "59GeTPcG2UiVTL4VTS/TP0p0QkAQpm3VgvuAiw64wUU=";
- })
];
nativeBuildInputs = [
@@ -119,14 +110,13 @@ stdenv.mkDerivation rec {
gdk-pixbuf
glib
glib-networking
+ gcr
gnome-bluetooth
gnome-desktop
gnome-online-accounts
gnome-remote-desktop # optional, sharing panel
gnome-settings-daemon
gnome-user-share # optional, sharing panel
- grilo
- grilo-plugins # for setting wallpaper from Flickr
gsettings-desktop-schemas
gsound
gtk3
diff --git a/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch b/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
index 57eb4b3d44a9..c31e093f4b7e 100644
--- a/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
+++ b/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
@@ -1,15 +1,17 @@
+diff --git a/libgnome-desktop/gnome-desktop-thumbnail-script.c b/libgnome-desktop/gnome-desktop-thumbnail-script.c
+index ddcc1511..546c2a36 100644
--- a/libgnome-desktop/gnome-desktop-thumbnail-script.c
+++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c
-@@ -536,9 +536,9 @@ add_bwrap (GPtrArray *array,
+@@ -555,9 +555,9 @@ add_bwrap (GPtrArray *array,
g_return_val_if_fail (script->s_infile != NULL, FALSE);
add_args (array,
- "bwrap",
- "--ro-bind", "/usr", "/usr",
-- "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
+- "--ro-bind-try", "/etc/ld.so.cache", "/etc/ld.so.cache",
+ "@bubblewrap_bin@",
+ "--ro-bind", "@storeDir@", "@storeDir@",
-+ "--ro-bind", "/run/current-system", "/run/current-system",
++ "--ro-bind-try", "/run/current-system", "/run/current-system",
NULL);
/* These directories might be symlinks into /usr/... */
diff --git a/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-desktop/default.nix
index df8096b90eec..766ed1b7cfb5 100644
--- a/pkgs/desktops/gnome/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -26,13 +26,13 @@
stdenv.mkDerivation rec {
pname = "gnome-desktop";
- version = "40.4";
+ version = "41.1";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-iK6W9YXg0IcJQbuj113fPsQDSOHFrnQTIcpIL6ydRe8=";
+ sha256 = "sha256-voqvpk17ov0xB57tY505/aHqd+9301pnjwGcTZHUc8I=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index ead50f1c9d1a..5f3ef81d905a 100644
--- a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -27,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "gnome-disk-utility";
- version = "40.2";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-ztES6qh9j/ohOv1NC62TnPp662cbeySIWaHchNb1Iec=";
+ sha256 = "sha256-h0PJj9ZWBi74YpM+/jDFvkxrMi7ALu4VTscNCO0Ild8=";
};
nativeBuildInputs = [
@@ -81,5 +81,6 @@ stdenv.mkDerivation rec {
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.linux;
+ mainProgram = "gnome-disks";
};
}
diff --git a/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
index 622a7de1bffa..4ba915df2dbd 100644
--- a/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "gnome-font-viewer";
- version = "40.0";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j";
+ sha256 = "XdQQMxvgcOTgNDl/J1SYDgc4UdUKIRny+/lq3G/i6HY=";
};
doCheck = true;
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index b6aedeeb6464..ff1d95861e37 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -35,11 +35,11 @@
stdenv.mkDerivation rec {
pname = "gnome-initial-setup";
- version = "40.4";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "QSplhO5upN+WN8QimT9Or4FYTSkZD16JOvmnhxy5Axs=";
+ sha256 = "R/ZHW2bIQ+fVPZC6Dns5SHYt8VFjSkNvaMK5u6BQVgo=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index fda0f6e2ffd6..2ab3091edec1 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -7,6 +7,7 @@
, python3
, wrapGAppsHook
, glib
+, nv-codec-headers-11
, pipewire
, systemd
, libvncserver
@@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-remote-desktop";
- version = "40.1";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- hash = "sha256-mvpuUlVwo3IJP5cwM4JwkDiU87H5+KnfX1eDbqHSnek=";
+ hash = "sha256-wOiJsO2BGxGAm777FzOElNj1L/USC+bj/9O65angX98=";
};
nativeBuildInputs = [
@@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
fuse3
gdk-pixbuf # For libnotify
glib
+ nv-codec-headers-11
libnotify
libsecret
libvncserver
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
index 4a1b7f4c20c7..307de72cc4f0 100644
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
@@ -42,11 +42,11 @@
stdenv.mkDerivation rec {
pname = "gnome-settings-daemon";
- version = "40.0.1";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "08bv32hvsmd8izw0llvldg0c2d71srch4hi8j94jwgm5d4dsrprp";
+ sha256 = "5spjYfvR3qst4aHjkNTxQWfPR7HFR9u4tlpdielmOIQ=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 94b29e8b4dee..25f7fb93ab30 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extensions";
- version = "40.4";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "9R1MQsIru9AxLKcY9Hz0Vp/FikbvQAdDrk0cx9kKzXk=";
+ sha256 = "2E+qwUSLOPl12cGUkMWSivxcWixJ3X5/ga9pD5Rm/Gg=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 6a7cb1742ba6..d9eeb9a8d8b1 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
in
stdenv.mkDerivation rec {
pname = "gnome-shell";
- version = "40.4";
+ version = "41.1";
outputs = [ "out" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "160z8bz2kqmrs6a4cs2gakv0rl9ba69p3ij2xjakqav50n9r3i9b";
+ sha256 = "X3QkVt/gBgXA8JCjcoymJ5e8SeUK+FK71yhdoaBRf/Y=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
index e17a608a2d85..8b35736ecfcd 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
+++ b/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
@@ -1,30 +1,36 @@
---- a/js/ui/extensionDownloader.js
-+++ b/js/ui/extensionDownloader.js
-@@ -86,7 +86,7 @@
- stream.output_stream.write_bytes(contents, null);
- stream.close(null);
- let [success, pid] = GLib.spawn_async(null,
-- ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
-+ ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
- null,
- GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
- null);
---- a/js/ui/status/keyboard.js
-+++ b/js/ui/status/keyboard.js
-@@ -1062,6 +1062,6 @@ class InputSourceIndicator extends PanelMenu.Button {
- if (xkbVariant.length > 0)
- description = `${description}\t${xkbVariant}`;
-
-- Util.spawn(['gkbd-keyboard-display', '-l', description]);
-+ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
- }
- });
+diff --git a/data/org.gnome.Shell-disable-extensions.service b/data/org.gnome.Shell-disable-extensions.service
+index de91167c5..1c9965678 100644
--- a/data/org.gnome.Shell-disable-extensions.service
+++ b/data/org.gnome.Shell-disable-extensions.service
-@@ -10,5 +10,5 @@ Requisite=gnome-session-stable.timer
+@@ -11,5 +11,5 @@ ConditionPathExists=%t/gnome-shell-disable-extensions
[Service]
Type=simple
# Disable extensions
-ExecStart=gsettings set org.gnome.shell disable-user-extensions true
+ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
Restart=no
+diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
+index 8bf4646a6..59e88bb4c 100644
+--- a/js/ui/extensionDownloader.js
++++ b/js/ui/extensionDownloader.js
+@@ -114,7 +114,7 @@ async function extractExtensionArchive(bytes, dir) {
+ stream.close_async(GLib.PRIORITY_DEFAULT, null);
+
+ const unzip = Gio.Subprocess.new(
+- ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
++ ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
+ Gio.SubprocessFlags.NONE);
+ await unzip.wait_check_async(null);
+ }
+diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
+index bc50f3d37..868eb5abf 100644
+--- a/js/ui/status/keyboard.js
++++ b/js/ui/status/keyboard.js
+@@ -1080,6 +1080,6 @@ class InputSourceIndicator extends PanelMenu.Button {
+ if (xkbVariant.length > 0)
+ description = '%s\t%s'.format(description, xkbVariant);
+
+- Util.spawn(['gkbd-keyboard-display', '-l', description]);
++ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
+ }
+ });
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 6d71c579d7ed..7ee3a51aba2e 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -25,7 +25,6 @@
, gsettings-desktop-schemas
, gnome-desktop
, libxmlb
-, gnome-online-accounts
, json-glib
, libsecret
, valgrind-light
@@ -43,11 +42,11 @@ in
stdenv.mkDerivation rec {
pname = "gnome-software";
- version = "40.4";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "voxhGoAvcXGNzLvUVE7ZaIcxGYRv03t7dqeq1yx5mL8=";
+ sha256 = "eil3Ziga8tvsyssQJMcT7ISYxoJ++RJG6d6Grpof4Xs=";
};
patches = [
@@ -89,7 +88,6 @@ stdenv.mkDerivation rec {
polkit
flatpak
libxmlb
- gnome-online-accounts
libsysprof-capture
] ++ lib.optionals withFwupd [
fwupd
diff --git a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
index 77579be6272d..d373d6f358c6 100644
--- a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
@@ -24,11 +24,11 @@
stdenv.mkDerivation rec {
pname = "gnome-system-monitor";
- version = "40.1";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx";
+ sha256 = "x/xExhlJt5SwKJlo67vMDBX4z8PZ5Fv6qB7UXBITnl8=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index ab3e3aecc035..1c905eec41b7 100644
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -1,36 +1,79 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, gnome, dconf, nautilus
-, gtk3, gsettings-desktop-schemas, vte, gettext, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, pcre2
-, libxslt, docbook-xsl-nons }:
+{ stdenv
+, lib
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, python3
+, libxml2
+, gnome
+, dconf
+, nautilus
+, glib
+, gtk3
+, gsettings-desktop-schemas
+, vte
+, gettext
+, which
+, libuuid
+, vala
+, desktop-file-utils
+, itstool
+, wrapGAppsHook
+, pcre2
+, libxslt
+, docbook-xsl-nons
+}:
stdenv.mkDerivation rec {
pname = "gnome-terminal";
- version = "3.40.1";
+ version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1r6qd6w18gk83w32y6bvn4hg2hd7qvngak4ymwpgndyp41rwqw07";
+ sha256 = "wxmxQFUBuMdpPmFvSOztQWldLnhhSMpfnie8fZj0rrE=";
};
- buildInputs = [
- gtk3 gsettings-desktop-schemas vte libuuid dconf
- # For extension
- nautilus
- ];
-
nativeBuildInputs = [
- pkg-config gettext itstool which libxml2 libxslt docbook-xsl-nons
- vala desktop-file-utils wrapGAppsHook pcre2
+ meson
+ ninja
+ pkg-config
+ gettext
+ itstool
+ which
+ libxml2
+ libxslt
+ glib # for glib-compile-schemas
+ docbook-xsl-nons
+ vala
+ desktop-file-utils
+ wrapGAppsHook
+ pcre2
+ python3
];
- # Silly ./configure, it looks for dbus file from gnome-shell in the
+ buildInputs = [
+ glib
+ gtk3
+ gsettings-desktop-schemas
+ vte
+ libuuid
+ dconf
+ nautilus # For extension
+ ];
+
+ # Silly build system, it looks for dbus file from gnome-shell in the
# installation tree of the package it is configuring.
postPatch = ''
- substituteInPlace configure --replace '$(eval echo $(eval echo $(eval echo ''${dbusinterfacedir})))/org.gnome.ShellSearchProvider2.xml' "${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
- substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
- '';
+ substituteInPlace src/meson.build \
+ --replace "gt_prefix / gt_dbusinterfacedir / 'org.gnome.ShellSearchProvider2.xml'" \
+ "'${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml'"
- configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30
+ patchShebangs \
+ data/icons/meson_updateiconcache.py \
+ data/meson_desktopfile.py \
+ src/meson_compileschemas.py
+ '';
passthru = {
updateScript = gnome.updateScript {
@@ -39,8 +82,6 @@ stdenv.mkDerivation rec {
};
};
- enableParallelBuilding = true;
-
meta = with lib; {
description = "The GNOME Terminal Emulator";
homepage = "https://wiki.gnome.org/Apps/Terminal";
diff --git a/pkgs/desktops/gnome/core/gnome-user-share/default.nix b/pkgs/desktops/gnome/core/gnome-user-share/default.nix
index 211326cfcdbd..bab13a6ccd19 100644
--- a/pkgs/desktops/gnome/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-user-share/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dhttpd=${apacheHttpd.out}/bin/httpd"
- "-Dmodules_path=${apacheHttpd.dev}/modules"
+ "-Dmodules_path=${apacheHttpd}/modules"
"-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
# In 3.34.0 it defaults to false but it is silently ignored and always installed.
# Let’s add it anyway in case they decide to make build respect the option in the future.
diff --git a/pkgs/desktops/gnome/core/gucharmap/default.nix b/pkgs/desktops/gnome/core/gucharmap/default.nix
index 336a4d260c4e..7d15e6b41ef6 100644
--- a/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ stdenv
+, lib
, intltool
, fetchFromGitLab
, meson
@@ -11,7 +12,6 @@
, desktop-file-utils
, gtk-doc
, wrapGAppsHook
-, gnome
, itstool
, libxml2
, yelp-tools
@@ -25,6 +25,7 @@
, runCommand
, symlinkJoin
, gobject-introspection
+, nix-update-script
}:
let
@@ -44,7 +45,7 @@ let
};
in stdenv.mkDerivation rec {
pname = "gucharmap";
- version = "13.0.2";
+ version = "14.0.0";
outputs = [ "out" "lib" "dev" "devdoc" ];
@@ -53,7 +54,7 @@ in stdenv.mkDerivation rec {
owner = "GNOME";
repo = pname;
rev = version;
- sha256 = "099za9mc6qdq9pwcbjp3d7hxjbaa43vk2w9qw4yiyswl1xq3jw62";
+ sha256 = "sha256-d283zVRH42NZNq+vGmItN3ZBrRrl9gpYDco7osm3RoY=";
};
nativeBuildInputs = [
@@ -93,8 +94,8 @@ in stdenv.mkDerivation rec {
'';
passthru = {
- updateScript = gnome.updateScript {
- packageName = pname;
+ updateScript = nix-update-script {
+ attrPath = "gnome.gucharmap";
};
};
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 3336cfab730e..209d9fbdb92a 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -14,6 +14,7 @@
, zenity
, libcanberra
, ninja
+, xvfb-run
, xkeyboard_config
, libxkbfile
, libXdamage
@@ -45,13 +46,13 @@
let self = stdenv.mkDerivation rec {
pname = "mutter";
- version = "40.4";
+ version = "41.1";
outputs = [ "out" "dev" "man" ];
src = fetchurl {
url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-pxwVnNKshKZ32l+nrMSUg7Jifa13L4gPiJ645FMKHiM=";
+ sha256 = "WOY/0LxD81E08hMTr/Suv5LIKdbfTcmaBEoeN2aR4/M=";
};
patches = [
@@ -90,6 +91,7 @@ let self = stdenv.mkDerivation rec {
mesa # needed for gbm
meson
ninja
+ xvfb-run
pkg-config
python3
wrapGAppsHook
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index 1f92e49c4f66..4f7df313ad52 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -34,11 +34,13 @@
stdenv.mkDerivation rec {
pname = "nautilus";
- version = "40.2";
+ version = "41.1";
+
+ outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "tx7y/gfl7qiaK7HlvTCUe9GIc7+zD3nL8X7fvU0g9g0=";
+ sha256 = "PmMwmIU3EaPpaxL+kiizIBgW5VSygj8WHn2QGoiAWC8=";
};
patches = [
diff --git a/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch b/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
index 6fe651b9cbb4..d2319ec13ed3 100644
--- a/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
+++ b/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
@@ -1,8 +1,8 @@
diff --git a/meson.build b/meson.build
-index 4aa683d6..a930d533 100644
+index 8af2fcf9..0e318307 100644
--- a/meson.build
+++ b/meson.build
-@@ -20,7 +20,11 @@ if not get_option('uninstalled')
+@@ -22,7 +22,11 @@ if not get_option('uninstalled')
rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'rygel')
rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'),
'rygel')
@@ -15,7 +15,7 @@ index 4aa683d6..a930d533 100644
rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.6', 'plugins')
rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.6', 'engines')
rygel_presetdir = join_paths(rygel_datadir, 'presets')
-@@ -55,7 +59,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
+@@ -57,7 +61,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
conf.set_quoted('PLUGIN_DIR', rygel_plugindir)
conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir)
conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir)
@@ -25,14 +25,11 @@ index 4aa683d6..a930d533 100644
conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract'))
conf.set_quoted('DESKTOP_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'applications'))
diff --git a/meson_options.txt b/meson_options.txt
-index cb604c4e..1b049b77 100644
+index fd04776a..3dee43ba 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -1,6 +1,7 @@
+@@ -1,3 +1,4 @@
++option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only')
option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation')
- option('systemd-user-units-dir', type : 'string', value : 'auto', description : 'Where to install the systemd user unit (use special values "auto" or "none", or pass a path')
-+option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
- option('plugins', type : 'array', choices : ['external', 'gst-launch', 'lms', 'media-export', 'mpris', 'playbin', 'ruih', 'tracker', 'tracker3'])
- option('engines', type : 'array', choices : ['simple', 'gstreamer'])
- option('examples', type : 'boolean', value : 'true')
+ option('man_pages', type: 'boolean', value: 'true', description: 'Build the man pages')
diff --git a/pkgs/desktops/gnome/core/rygel/default.nix b/pkgs/desktops/gnome/core/rygel/default.nix
index f43df23f44a1..c3cfeec8ff80 100644
--- a/pkgs/desktops/gnome/core/rygel/default.nix
+++ b/pkgs/desktops/gnome/core/rygel/default.nix
@@ -28,16 +28,20 @@
stdenv.mkDerivation rec {
pname = "rygel";
- version = "0.40.1";
+ version = "0.40.2";
# TODO: split out lib
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "QkDXd1mcjNCeZ9pEzLOV0KbceEedgJzWIZgixbVooy0=";
+ sha256 = "yejHNiltIsTe/pWXJ6KdMUN7vSt6oMZHDWviQBEFBpc=";
};
+ patches = [
+ ./add-option-for-installation-sysconfdir.patch
+ ];
+
nativeBuildInputs = [
meson
ninja
@@ -78,16 +82,10 @@ stdenv.mkDerivation rec {
"-Dapi-docs=false"
"--sysconfdir=/etc"
"-Dsysconfdir_install=${placeholder "out"}/etc"
- # Build all plug-ins except for tracker 2
- "-Dplugins=external,gst-launch,lms,media-export,mpris,playbin,ruih,tracker3"
];
doCheck = true;
- patches = [
- ./add-option-for-installation-sysconfdir.patch
- ];
-
postPatch = ''
patchShebangs data/xml/process-xml.py
'';
diff --git a/pkgs/desktops/gnome/core/simple-scan/default.nix b/pkgs/desktops/gnome/core/simple-scan/default.nix
index be501c0aef31..f5a28ead33c1 100644
--- a/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -25,11 +25,11 @@
stdenv.mkDerivation rec {
pname = "simple-scan";
- version = "40.1";
+ version = "40.6";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-6+45qx/kygU8TtK9OjynZ0L/EJQ23QZF00FWIhMroLQ=";
+ sha256 = "sha256-8v8wWZjMRGNsH93iDNirHUQdSGOgWeLXpg+Od6/o8XE=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/sushi/default.nix b/pkgs/desktops/gnome/core/sushi/default.nix
index cd93094120db..f08f51512c47 100644
--- a/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/pkgs/desktops/gnome/core/sushi/default.nix
@@ -8,8 +8,7 @@
, gnome
, gtksourceview4
, gjs
-, webkitgtk
-, libmusicbrainz5
+, webkitgtk_4_1
, icu
, wrapGAppsHook
, gst_all_1
@@ -23,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "sushi";
- version = "3.38.1";
+ version = "41.0";
src = fetchurl {
- url = "mirror://gnome/sources/sushi/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "8+bRDIFVKNA6Zl+v0VwHGeAXqBOXWzrzIHYZnjeIiOk=";
+ url = "mirror://gnome/sources/sushi/${lib.versions.major version}/${pname}-${version}.tar.xz";
+ sha256 = "m3UlaQzkNmJO+gpgV3NJNDLNDva49GSYLouETtqYmO4=";
};
nativeBuildInputs = [
@@ -49,8 +48,7 @@ stdenv.mkDerivation rec {
gtksourceview4
gdk-pixbuf
librsvg
- libmusicbrainz5
- webkitgtk
+ webkitgtk_4_1
epoxy
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
diff --git a/pkgs/desktops/gnome/core/totem/default.nix b/pkgs/desktops/gnome/core/totem/default.nix
index 7d1d4e90abf0..0178c04b53ca 100644
--- a/pkgs/desktops/gnome/core/totem/default.nix
+++ b/pkgs/desktops/gnome/core/totem/default.nix
@@ -30,11 +30,11 @@
stdenv.mkDerivation rec {
pname = "totem";
- version = "3.38.1";
+ version = "3.38.2";
src = fetchurl {
url = "mirror://gnome/sources/totem/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "j/rPfA6inO3qBndzCGHUh2qPesTaTGI0u3X3/TcFoQg=";
+ sha256 = "/OVi4rJsvPwMZ4U43MgfncFc5g1aie5DWJB79jQwTEA=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/yelp-xsl/default.nix b/pkgs/desktops/gnome/core/yelp-xsl/default.nix
index 32f3fbd61538..8b091e000bad 100644
--- a/pkgs/desktops/gnome/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome/core/yelp-xsl/default.nix
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "yelp-xsl";
- version = "40.2";
+ version = "41.0";
src = fetchurl {
url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-kZxVL4RqrsdB/lHVr0FrRpvNslx37/w7WhWktLf/gU4=";
+ sha256 = "sha256-yM1kwJO72MXV5H/TiGTpCDG1+c90A1MIcCBvqWY2pKU=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/yelp/default.nix b/pkgs/desktops/gnome/core/yelp/default.nix
index 746866fc9c20..b1e094292bf1 100644
--- a/pkgs/desktops/gnome/core/yelp/default.nix
+++ b/pkgs/desktops/gnome/core/yelp/default.nix
@@ -1,23 +1,47 @@
-{ lib, stdenv, gettext, fetchurl, webkitgtk, pkg-config, gtk3, glib
-, gnome, sqlite
-, itstool, libxml2, libxslt, gst_all_1
-, wrapGAppsHook }:
+{ lib
+, stdenv
+, gettext
+, fetchurl
+, webkitgtk_4_1
+, pkg-config
+, gtk3
+, glib
+, gnome
+, sqlite
+, itstool
+, libxml2
+, libxslt
+, gst_all_1
+, wrapGAppsHook
+}:
stdenv.mkDerivation rec {
pname = "yelp";
- version = "40.3";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-oXOEeFHyYYm+eOy7EAFdU52Mzv/Hwj6GNUkrw62l7iM=";
+ sha256 = "sha256-RWpkFWR7zusBWbkLNVP/MocozymmCPzggCQjJQTMuHQ=";
};
- nativeBuildInputs = [ pkg-config gettext itstool wrapGAppsHook ];
+ nativeBuildInputs = [
+ pkg-config
+ gettext
+ itstool
+ wrapGAppsHook
+ ];
+
buildInputs = [
- gtk3 glib webkitgtk sqlite
- libxml2 libxslt gnome.yelp-xsl
+ gtk3
+ glib
+ webkitgtk_4_1
+ sqlite
+ libxml2
+ libxslt
+ gnome.yelp-xsl
gnome.adwaita-icon-theme
- gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
];
passthru = {
diff --git a/pkgs/desktops/gnome/core/zenity/default.nix b/pkgs/desktops/gnome/core/zenity/default.nix
index 51ad81a77a46..ef8259e9e82e 100644
--- a/pkgs/desktops/gnome/core/zenity/default.nix
+++ b/pkgs/desktops/gnome/core/zenity/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv
+{ stdenv
+, lib
, fetchurl
+, meson
+, ninja
, pkg-config
, libxml2
, gnome
, gtk3
-, yelp-tools
, gettext
, libX11
, itstool
@@ -13,17 +15,18 @@
stdenv.mkDerivation rec {
pname = "zenity";
- version = "3.32.0";
+ version = "3.41.0";
src = fetchurl {
url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7";
+ sha256 = "GbZ2w1EOIrrfzDIEBi1DK6U3QC9eCuJhKMDZDJVAN+E=";
};
nativeBuildInputs = [
+ meson
+ ninja
pkg-config
gettext
- yelp-tools
itstool
libxml2
wrapGAppsHook
diff --git a/pkgs/desktops/gnome/devtools/devhelp/default.nix b/pkgs/desktops/gnome/devtools/devhelp/default.nix
index 6be6c77f7c27..2ad3c3ff39ad 100644
--- a/pkgs/desktops/gnome/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome/devtools/devhelp/default.nix
@@ -7,10 +7,10 @@
, gtk3
, wrapGAppsHook
, glib
-, amtk
, appstream-glib
, gobject-introspection
, python3
+, gi-docgen
, webkitgtk
, gettext
, itstool
@@ -20,11 +20,13 @@
stdenv.mkDerivation rec {
pname = "devhelp";
- version = "40.1";
+ version = "41.2";
+
+ outputs = [ "out" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/devhelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "PorZPoSEtEgjyuR0ov2dziLtbs0lZVWSzq17G2gya7s=";
+ sha256 = "7KqQsPTaqPsgMPbcaQv1M/+Zp3NDf+Dhis/oLZl/YNI=";
};
nativeBuildInputs = [
@@ -37,22 +39,27 @@ stdenv.mkDerivation rec {
appstream-glib
gobject-introspection
python3
+ gi-docgen
];
buildInputs = [
glib
gtk3
webkitgtk
- amtk
gnome.adwaita-icon-theme
gsettings-desktop-schemas
];
+ mesonFlags = [
+ "-Dgtk_doc=true"
+ ];
+
doCheck = true;
postPatch = ''
- chmod +x meson_post_install.py # patchShebangs requires executable file
- patchShebangs meson_post_install.py
+ # patchShebangs requires executable file
+ chmod +x build-aux/meson/meson_post_install.py
+ patchShebangs build-aux/meson/meson_post_install.py
'';
preFixup = ''
@@ -63,6 +70,11 @@ stdenv.mkDerivation rec {
)
'';
+ postFixup = ''
+ # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
+ moveToOutput share/doc/devhelp-3 "$devdoc"
+ '';
+
passthru = {
updateScript = gnome.updateScript {
packageName = "devhelp";
diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index f08fc7ec0df6..29a60e5513af 100644
--- a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
+++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
@@ -2,14 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-EasyScreenCast";
- version = "unstable-2020-11-25";
+ version = "1.4.0";
src = fetchFromGitHub {
- # To make it work with gnome 3.38, using effectively: https://github.com/EasyScreenCast/EasyScreenCast/pull/276
- owner = "Ian2020";
+ owner = "EasyScreenCast";
repo = "EasyScreenCast";
- rev = "b1ab4a999bc7110ecbf68b5fe42c37fa67d7cb0d";
- sha256 = "s9b0ITKUzgG6XOd1bK7i3mGxfc+T+UHrTZhBp0Ff8zQ=";
+ rev = version;
+ sha256 = "sha256-+lh/hqYC9+DUvLE016KuAY4Ybw8KrqEEG7WG4pUbg2k=";
};
patches = [
diff --git a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
index 3be7f5c8789a..d661c853bbc1 100644
--- a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
+++ b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
@@ -36,9 +36,12 @@ let
echo "${metadata}" | base64 --decode > $out/metadata.json
'';
};
- buildCommand = ''
+ dontBuild = true;
+ installPhase = ''
+ runHook preInstall
mkdir -p $out/share/gnome-shell/extensions/
- cp -r -T $src $out/share/gnome-shell/extensions/${uuid}
+ cp -r -T . $out/share/gnome-shell/extensions/${uuid}
+ runHook postInstall
'';
meta = {
description = builtins.head (lib.splitString "\n" description);
diff --git a/pkgs/desktops/gnome/extensions/collisions.json b/pkgs/desktops/gnome/extensions/collisions.json
index 7e4953abe4a8..4cb43d178b53 100644
--- a/pkgs/desktops/gnome/extensions/collisions.json
+++ b/pkgs/desktops/gnome/extensions/collisions.json
@@ -54,6 +54,10 @@
"lockkeys@vaina.lt",
"lockkeys@fawtytoo"
],
+ "system-monitor": [
+ "system-monitor@paradoxxx.zero.gmail.com",
+ "System_Monitor@bghome.gmail.com"
+ ],
"hide-activities-button": [
"Hide_Activities@shay.shayel.org",
"hide-activities-button@nmingori.gnome-shell-extensions.org"
@@ -67,9 +71,39 @@
"noannoyance@sindex.com",
"noannoyance@daase.net"
],
+ "panel-date-format": [
+ "panel-date-format@keiii.github.com",
+ "panel-date-format@atareao.es"
+ ],
+ "disable-unredirect-fullscreen-windows": [
+ "unredirect@vaina.lt",
+ "unredirect@aunetx"
+ ],
+ "floating-dock": [
+ "floatingDock@sun.wxg@gmail.com",
+ "floating-dock@nandoferreira_prof@hotmail.com"
+ ],
"extension-list": [
"extension-list@tu.berry",
"screen-lock@garciabaameiro.com"
+ ],
+ "wireguard-indicator": [
+ "wireguard-indicator@gregos.me",
+ "wireguard-indicator@atareao.es"
+ ]
+ },
+ "41": {
+ "applications-menu": [
+ "apps-menu@gnome-shell-extensions.gcampax.github.com",
+ "Applications_Menu@rmy.pobox.com"
+ ],
+ "workspace-indicator": [
+ "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
+ "horizontal-workspace-indicator@tty2.io"
+ ],
+ "floating-dock": [
+ "floatingDock@sun.wxg@gmail.com",
+ "floating-dock@nandoferreira_prof@hotmail.com"
]
}
}
diff --git a/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix b/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
deleted file mode 100644
index 6efefd1fb032..000000000000
--- a/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, glib
-, gettext
-, sassc
-}:
-
-stdenv.mkDerivation rec {
- pname = "gnome-shell-extension-dash-to-dock";
- version = "unstable-2021-07-07";
-
- # temporarily switched to https://github.com/micheleg/dash-to-dock/pull/1402 because upstream doesn't work with GNOME 40 yet.
- src = fetchFromGitHub {
- owner = "ewlsh";
- repo = "dash-to-dock";
- rev = "e4beec847181e4163b0a99ceaef4c4582cc8ae4c";
- hash = "sha256-7UVnLXH7COnIbqxbt3CCscuu1YyPH6ax5DlKdaHCT/0=";
- };
-
- nativeBuildInputs = [
- glib
- gettext
- sassc
- ];
-
- makeFlags = [
- "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
- ];
-
- passthru = {
- extensionUuid = "dash-to-dock@micxgx.gmail.com";
- extensionPortalSlug = "dash-to-dock";
- };
-
- meta = with lib; {
- description = "A dock for the Gnome Shell";
- homepage = "https://micheleg.github.io/dash-to-dock/";
- license = licenses.gpl2;
- maintainers = with maintainers; [ eperuffo jtojnar ];
- };
-}
diff --git a/pkgs/desktops/gnome/extensions/default.nix b/pkgs/desktops/gnome/extensions/default.nix
index f98e2fb4e67a..f4f6fba89c2f 100644
--- a/pkgs/desktops/gnome/extensions/default.nix
+++ b/pkgs/desktops/gnome/extensions/default.nix
@@ -59,18 +59,26 @@ in rec {
gnome38Extensions = mapUuidNames (produceExtensionsList "38");
gnome40Extensions = mapUuidNames (produceExtensionsList "40");
+ gnome41Extensions = mapUuidNames (produceExtensionsList "41");
- gnomeExtensions = lib.recurseIntoAttrs (
- (mapReadableNames
- (lib.attrValues (gnome40Extensions // (callPackages ./manuallyPackaged.nix {})))
- )
- // lib.optionalAttrs (config.allowAliases or true) {
+ gnomeExtensions = lib.trivial.pipe (gnome40Extensions // gnome41Extensions) [
+ # Apply some custom patches for automatically packaged extensions
+ (callPackage ./extensionOverrides.nix {})
+ # Add all manually packaged extensions
+ (extensions: extensions // (callPackages ./manuallyPackaged.nix {}))
+ # Map the extension UUIDs to readable names
+ (lib.attrValues)
+ (mapReadableNames)
+ # Add some aliases
+ (extensions: extensions // lib.optionalAttrs (config.allowAliases or true) {
unite-shell = gnomeExtensions.unite; # added 2021-01-19
arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
remove-dropdown-arrows = throw "gnomeExtensions.remove-dropdown-arrows removed since 2021-05-25: The extensions has not seen an update sine GNOME 3.34. Furthermore, the functionality it provides is obsolete as of GNOME 40.";
- }
- );
+ })
+ # Make the set "public"
+ lib.recurseIntoAttrs
+ ];
}
diff --git a/pkgs/desktops/gnome/extensions/emoji-selector/default.nix b/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
index 6f249bcb635d..9b24c1241e13 100644
--- a/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
+++ b/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-emoji-selector";
- version = "19";
+ version = "20";
src = fetchFromGitHub {
owner = "maoschanz";
repo = "emoji-selector-for-gnome";
rev = version;
- sha256 = "0x60pg5nl5d73av494dg29hyfml7fbf2d03wm053vx1q8a3pxbyb";
+ sha256 = "sha256-I5aEHDC5GaGkAoH+1l4eyhBmJ+lmyZZoDw2Fq2SSlmo=";
};
passthru = {
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
new file mode 100644
index 000000000000..058f0c54ad29
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -0,0 +1,42 @@
+{ lib
+, ddcutil
+, gjs
+, xprop
+}:
+# A set of overrides for automatically packaged extensions that require some small fixes.
+# The input must be an attribute set with the extensions' UUIDs as keys and the extension
+# derivations as values. Output is the same, but with patches applied.
+#
+# Note that all source patches refer to the built extension as published on extensions.gnome.org, and not
+# the upstream repository's sources.
+super: super // {
+
+ "dash-to-dock@micxgx.gmail.com" = super."dash-to-dock@micxgx.gmail.com".overrideAttrs (old: {
+ meta.maintainers = with lib.maintainers; [ eperuffo jtojnar rhoriguchi ];
+ });
+
+ "display-brightness-ddcutil@themightydeity.github.com" = super."display-brightness-ddcutil@themightydeity.github.com".overrideAttrs (old: {
+ # Has a hard-coded path to a run-time dependency
+ # https://github.com/NixOS/nixpkgs/issues/136111
+ postPatch = ''
+ substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
+ '';
+ });
+
+ "gnome-shell-screenshot@ttll.de" = super."gnome-shell-screenshot@ttll.de".overrideAttrs (old: {
+ # Requires gjs
+ # https://github.com/NixOS/nixpkgs/issues/136112
+ postPatch = ''
+ for file in *.js; do
+ substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
+ done
+ '';
+ });
+
+ "unite@hardpixel.eu" = super."unite@hardpixel.eu".overrideAttrs (old: {
+ buildInputs = [ xprop ];
+
+ meta.maintainers = with lib.maintainers; [ rhoriguchi ];
+ });
+
+}
diff --git a/pkgs/desktops/gnome/extensions/extensionRenames.nix b/pkgs/desktops/gnome/extensions/extensionRenames.nix
index fe1fcf9985cf..6d2909480646 100644
--- a/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -3,13 +3,24 @@
# - Every item from ./collisions.json (for the respective Shell version) should have an entry in here
# - Set the value to `null` for filtering (duplicate or unmaintained extensions)
# - Sort the entries in order of appearance in the collisions.json
+# - Make a separate section for each GNOME version. Collisions will come back eventually
+# as the extensions are updated.
{
"apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
"Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
+ "floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
+ "floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
+
"workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
"horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
+ # ############################################################################
+ # These are conflicts for older extensions (i.e. they don't support the latest GNOME version).
+ # Make sure to move them up once they are updated
+
+ # ####### GNOME 40 #######
+
"lockkeys@vaina.lt" = "lock-keys";
"lockkeys@fawtytoo" = "lock-keys-2";
@@ -29,24 +40,23 @@
"noannoyance@sindex.com" = "noannoyance";
"noannoyance@daase.net" = "noannoyance-2";
+ "panel-date-format@keiii.github.com" = "panel-date-format";
+ "panel-date-format@atareao.es" = "panel-date-format-2";
+
+ "wireguard-indicator@gregos.me" = "wireguard-indicator-2";
+ "wireguard-indicator@atareao.es" = "wireguard-indicator";
+
"extension-list@tu.berry" = "extension-list";
"screen-lock@garciabaameiro.com" = "screen-lock"; # Don't know why they got 'extension-list' as slug
-
- # ############################################################################
- # These are conflicts for 3.38 extensions. They will very probably come back
- # once more of them support 40.
+ # ####### GNOME 3.38 #######
# See https://github.com/pbxqdown/gnome-shell-extension-transparent-window/issues/12#issuecomment-800765381
- #"transparent-window@pbxqdown.github.com" = "transparent-window";
- #"transparentwindows.mdirshad07" = null;
-
- #"floatingDock@sun.wxg@gmail.com" = "floating-dock";
- #"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock-2";
+ "transparent-window@pbxqdown.github.com" = "transparent-window";
+ "transparentwindows.mdirshad07" = null;
# That extension is broken because of https://github.com/NixOS/nixpkgs/issues/118612
- #"flypie@schneegans.github.com" = null;
-
+ "flypie@schneegans.github.com" = null;
# ############################################################################
# Overrides for extensions that were manually packaged in the past but are gradually
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index d528b9dfffa3..8268db6d07b3 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -1,62 +1,66 @@
-[ {"uuid": "Move_Clock@rmy.pobox.com", "name": "Frippery Move Clock", "pname": "move-clock", "description": "Move clock to left of status menu button", "link": "https://extensions.gnome.org/extension/2/move-clock/", "shell_version_map": {"38": {"version": "22", "sha256": "085ardkmrxz6rzh48frpb5z8mjlilqk037gjr84dr39gj9dkb81z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "24", "sha256": "0181cfrs06qplig4yy5aaghxq2w5x88wvc0166c9z31fsgshqh5z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIk1vdmVfQ2xvY2tAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"}}}
-, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "53", "sha256": "1xvlki8wdsc9s8kjz7yid486kdr0jcb0n7ik0bc1c7ma5vi5jfyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJCb3R0b21fUGFuZWxAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA1Mwp9"}}}
-, {"uuid": "Panel_Favorites@rmy.pobox.com", "name": "Frippery Panel Favorites", "pname": "panel-favorites", "description": "Add launchers for Favorites to the panel", "link": "https://extensions.gnome.org/extension/4/panel-favorites/", "shell_version_map": {"38": {"version": "39", "sha256": "0jqysp82rhckdlgn1jhf1n6sqqphv97m9dri5pjiqjggvm4ls80j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "41", "sha256": "1iv39jz3yzfiphd2xfnjzf8i9lmwxnhxlv6yhw6cwlyrf7pz68vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiUGFuZWxfRmF2b3JpdGVzQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}}}
-, {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Applications Menu", "pname": "applications-menu", "description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/6/applications-menu/", "shell_version_map": {"38": {"version": "46", "sha256": "1l5fliypxq3s3b6crv7rc6nl741m7hw48dwl0g7vi3yxyw0vyc0x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}, "40": {"version": "48", "sha256": "0whi4ir3hvz6gby57331hv0a80ssz1b746pj79v43cm15djlsbhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}}}
-, {"uuid": "drive-menu@gnome-shell-extensions.gcampax.github.com", "name": "Removable Drive Menu", "pname": "removable-drive-menu", "description": "A status menu for accessing and unmounting removable devices.", "link": "https://extensions.gnome.org/extension/7/removable-drive-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "1f5a9md2gxbl65shbdm498y5dwhhqdpj96gvf2m81ad7gsgxzliv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkcml2ZS1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "0sa694y58jx4yhjb16i25d6h1z5d8vzamwpqlrfs35g0bq93ri5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZHJpdmUtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
-, {"uuid": "places-menu@gnome-shell-extensions.gcampax.github.com", "name": "Places Status Indicator", "pname": "places-status-indicator", "description": "Add a menu for quickly navigating places in the system.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/8/places-status-indicator/", "shell_version_map": {"38": {"version": "48", "sha256": "05m8nkg2km72iwnmadx6f4br8qnzqagp78mlhz8r2z6hp19nqsh5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "40": {"version": "51", "sha256": "159356lnwhxb2d52na679m0wdrsxw89x7m4zkq0kglf01cf8my65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAicGxhY2VzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTEKfQ=="}}}
-, {"uuid": "windowsNavigator@gnome-shell-extensions.gcampax.github.com", "name": "windowNavigator", "pname": "windownavigator", "description": "Allow keyboard selection of windows and workspaces in overlay mode. number selects a workspace, and number selects a window.", "link": "https://extensions.gnome.org/extension/10/windownavigator/", "shell_version_map": {"38": {"version": "49", "sha256": "1rzfnssk0iw1ysaya79ksghikkr1rpm41h2w39cz142fby6kip2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93c05hdmlnYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "40": {"version": "54", "sha256": "0y41w3lxbnhb709n7ynq21nhhc9p4j6fvyjzfw0aw8ysjc8f54iv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvd3NOYXZpZ2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}}}
-, {"uuid": "Applications_Menu@rmy.pobox.com", "name": "Frippery Applications Menu", "pname": "applications-menu", "description": "Replace Activities button with an Applications menu", "link": "https://extensions.gnome.org/extension/13/applications-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "0kg9dq1ssa11xizb31kcq3p724qzm1cmf30wriqffj043n5nd125", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "47", "sha256": "1y5qd46zbr7qrhglbb1ylb4hl40dfalkjgpvrq3m1kjry6kdvkv1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkFwcGxpY2F0aW9uc19NZW51QHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
-, {"uuid": "auto-move-windows@gnome-shell-extensions.gcampax.github.com", "name": "Auto Move Windows", "pname": "auto-move-windows", "description": "Move applications to specific workspaces when they create windows.", "link": "https://extensions.gnome.org/extension/16/auto-move-windows/", "shell_version_map": {"38": {"version": "44", "sha256": "05lmpmyzaawxh3kn030a8sanq7p6g87zfh7nzxfvgi8nbpygd59q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "40": {"version": "46", "sha256": "1hr0z7r0mg1xg9b41d71lqbyra813yrl8i80kin0dmwrcx8xqs8m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhdXRvLW1vdmUtd2luZG93c0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Ngp9"}}}
-, {"uuid": "native-window-placement@gnome-shell-extensions.gcampax.github.com", "name": "Native Window Placement", "pname": "native-window-placement", "description": "Arrange windows in overview in a more compact way.", "link": "https://extensions.gnome.org/extension/18/native-window-placement/", "shell_version_map": {"38": {"version": "45", "sha256": "15vhdcfrfbsinp0m1jfygjl4djccafhvgwc1rsi321jvykqhajmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "1v424l1svrmw5yikxgbi1j14xx307dg9zy21f34rv2il8bf72vk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJuYXRpdmUtd2luZG93LXBsYWNlbWVudEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
-, {"uuid": "user-theme@gnome-shell-extensions.gcampax.github.com", "name": "User Themes", "pname": "user-themes", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/19/user-themes/", "shell_version_map": {"38": {"version": "42", "sha256": "0jykwcd8pmvr03dm2vala6nzzhi9i83c11svgx8wymfvxr5qrya8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInVzZXItdGhlbWVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "46", "sha256": "07gbzvbnxah5bws5vc6sivw43j0rgm23n6vsp4a64z7s8s2ay7sm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}}}
-, {"uuid": "workspace-indicator@gnome-shell-extensions.gcampax.github.com", "name": "Workspace Indicator", "pname": "workspace-indicator", "description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one.", "link": "https://extensions.gnome.org/extension/21/workspace-indicator/", "shell_version_map": {"38": {"version": "45", "sha256": "16y7zhlsj0qjwwj78fvcr81m7081i2y30gwjm35qahr3j0gfrk16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid29ya3NwYWNlLWluZGljYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "49", "sha256": "0483k1scq0lwfpg3i3yww7kfzv0qwlp6aqyikkacivh0nkq6v2iy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDkKfQ=="}}}
-, {"uuid": "gTile@vibou", "name": "gTile", "pname": "gtile", "description": "Tile windows on a grid.", "link": "https://extensions.gnome.org/extension/28/gtile/", "shell_version_map": {"38": {"version": "45", "sha256": "1fm4ljkw0l4w8z1qd9i30nd7khvzjvc0kykv659xkqj7lghyk02k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dUaWxlIiwKICAidXVpZCI6ICJnVGlsZUB2aWJvdSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "45", "sha256": "1fm4ljkw0l4w8z1qd9i30nd7khvzjvc0kykv659xkqj7lghyk02k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dUaWxlIiwKICAidXVpZCI6ICJnVGlsZUB2aWJvdSIsCiAgInZlcnNpb24iOiA0NQp9"}}}
-, {"uuid": "lockkeys@vaina.lt", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock & Capslock status on the panel", "link": "https://extensions.gnome.org/extension/36/lock-keys/", "shell_version_map": {"38": {"version": "43", "sha256": "0acal805w1kifb07hk9v90f779x5fxzfphrm20hphvgyk2dwyaq3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDQzCn0="}, "40": {"version": "43", "sha256": "0acal805w1kifb07hk9v90f779x5fxzfphrm20hphvgyk2dwyaq3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDQzCn0="}}}
+[ {"uuid": "Move_Clock@rmy.pobox.com", "name": "Frippery Move Clock", "pname": "move-clock", "description": "Move clock to left of status menu button", "link": "https://extensions.gnome.org/extension/2/move-clock/", "shell_version_map": {"38": {"version": "22", "sha256": "085ardkmrxz6rzh48frpb5z8mjlilqk037gjr84dr39gj9dkb81z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "25", "sha256": "06bjswh450dwgns6kycgrzq3c4cf4ja57mraw8f7rlgzqrwlj3ci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJNb3ZlX0Nsb2NrQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "25", "sha256": "06bjswh450dwgns6kycgrzq3c4cf4ja57mraw8f7rlgzqrwlj3ci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJNb3ZlX0Nsb2NrQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
+, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "55", "sha256": "1hchr32jmwbys96l99ghkwq5d93qawlqkyq2hclz4gan5jzpv4s0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="}, "41": {"version": "55", "sha256": "1hchr32jmwbys96l99ghkwq5d93qawlqkyq2hclz4gan5jzpv4s0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="}}}
+, {"uuid": "Panel_Favorites@rmy.pobox.com", "name": "Frippery Panel Favorites", "pname": "panel-favorites", "description": "Add launchers for Favorites to the panel", "link": "https://extensions.gnome.org/extension/4/panel-favorites/", "shell_version_map": {"38": {"version": "39", "sha256": "0jqysp82rhckdlgn1jhf1n6sqqphv97m9dri5pjiqjggvm4ls80j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "41": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}}}
+, {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Applications Menu", "pname": "applications-menu", "description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/6/applications-menu/", "shell_version_map": {"38": {"version": "46", "sha256": "1l5fliypxq3s3b6crv7rc6nl741m7hw48dwl0g7vi3yxyw0vyc0x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}, "40": {"version": "48", "sha256": "0whi4ir3hvz6gby57331hv0a80ssz1b746pj79v43cm15djlsbhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "41": {"version": "49", "sha256": "0dix7711nblly2v0yl2qhrgm1dk529i5mdbyb0jpnp1k346yahds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
+, {"uuid": "drive-menu@gnome-shell-extensions.gcampax.github.com", "name": "Removable Drive Menu", "pname": "removable-drive-menu", "description": "A status menu for accessing and unmounting removable devices.", "link": "https://extensions.gnome.org/extension/7/removable-drive-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "1f5a9md2gxbl65shbdm498y5dwhhqdpj96gvf2m81ad7gsgxzliv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkcml2ZS1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "0sa694y58jx4yhjb16i25d6h1z5d8vzamwpqlrfs35g0bq93ri5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZHJpdmUtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "49", "sha256": "0v7kfll490dlzq09b922mgbarmpjkijq1ixvk2i1r6n07bkm3li0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDkKfQ=="}}}
+, {"uuid": "places-menu@gnome-shell-extensions.gcampax.github.com", "name": "Places Status Indicator", "pname": "places-status-indicator", "description": "Add a menu for quickly navigating places in the system.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/8/places-status-indicator/", "shell_version_map": {"38": {"version": "48", "sha256": "05m8nkg2km72iwnmadx6f4br8qnzqagp78mlhz8r2z6hp19nqsh5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "40": {"version": "51", "sha256": "159356lnwhxb2d52na679m0wdrsxw89x7m4zkq0kglf01cf8my65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAicGxhY2VzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "52", "sha256": "0nz8a1cih3hcx3jwjvz7cqr561d1aqap2as5p6i45l2p0bkms37m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"}}}
+, {"uuid": "windowsNavigator@gnome-shell-extensions.gcampax.github.com", "name": "windowNavigator", "pname": "windownavigator", "description": "Allow keyboard selection of windows and workspaces in overlay mode. number selects a workspace, and number selects a window.", "link": "https://extensions.gnome.org/extension/10/windownavigator/", "shell_version_map": {"38": {"version": "49", "sha256": "1rzfnssk0iw1ysaya79ksghikkr1rpm41h2w39cz142fby6kip2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93c05hdmlnYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "40": {"version": "54", "sha256": "0y41w3lxbnhb709n7ynq21nhhc9p4j6fvyjzfw0aw8ysjc8f54iv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvd3NOYXZpZ2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}, "41": {"version": "55", "sha256": "0qwr877z08yl6r3s0d6pj8dqqi3cfyknd7bpnfv1dvhf454a2kcv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU1Cn0="}}}
+, {"uuid": "Applications_Menu@rmy.pobox.com", "name": "Frippery Applications Menu", "pname": "applications-menu", "description": "Replace Activities button with an Applications menu", "link": "https://extensions.gnome.org/extension/13/applications-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "0kg9dq1ssa11xizb31kcq3p724qzm1cmf30wriqffj043n5nd125", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "48", "sha256": "1dpgifdf5jk5mz67q8plxrd3952p0a3jzfg3yxxdhb00mdp26azr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJBcHBsaWNhdGlvbnNfTWVudUBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "41": {"version": "48", "sha256": "1dpgifdf5jk5mz67q8plxrd3952p0a3jzfg3yxxdhb00mdp26azr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJBcHBsaWNhdGlvbnNfTWVudUBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}}}
+, {"uuid": "auto-move-windows@gnome-shell-extensions.gcampax.github.com", "name": "Auto Move Windows", "pname": "auto-move-windows", "description": "Move applications to specific workspaces when they create windows.", "link": "https://extensions.gnome.org/extension/16/auto-move-windows/", "shell_version_map": {"38": {"version": "44", "sha256": "05lmpmyzaawxh3kn030a8sanq7p6g87zfh7nzxfvgi8nbpygd59q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "40": {"version": "46", "sha256": "1hr0z7r0mg1xg9b41d71lqbyra813yrl8i80kin0dmwrcx8xqs8m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhdXRvLW1vdmUtd2luZG93c0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Ngp9"}, "41": {"version": "47", "sha256": "18n43xshw6clrjxc5az0gplc4f2aqrpkz07wfjncyk0gdz0y3mpb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ3Cn0="}}}
+, {"uuid": "native-window-placement@gnome-shell-extensions.gcampax.github.com", "name": "Native Window Placement", "pname": "native-window-placement", "description": "Arrange windows in overview in a more compact way.", "link": "https://extensions.gnome.org/extension/18/native-window-placement/", "shell_version_map": {"38": {"version": "45", "sha256": "15vhdcfrfbsinp0m1jfygjl4djccafhvgwc1rsi321jvykqhajmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "1v424l1svrmw5yikxgbi1j14xx307dg9zy21f34rv2il8bf72vk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJuYXRpdmUtd2luZG93LXBsYWNlbWVudEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "48", "sha256": "0sx92rarp10znjn8xvh4gw511mixfpr8h37mawqa2sc6361lxlgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}}}
+, {"uuid": "user-theme@gnome-shell-extensions.gcampax.github.com", "name": "User Themes", "pname": "user-themes", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/19/user-themes/", "shell_version_map": {"38": {"version": "42", "sha256": "0jykwcd8pmvr03dm2vala6nzzhi9i83c11svgx8wymfvxr5qrya8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInVzZXItdGhlbWVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "46", "sha256": "07gbzvbnxah5bws5vc6sivw43j0rgm23n6vsp4a64z7s8s2ay7sm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "41": {"version": "47", "sha256": "1sv7sff7f57hz3yqk9qy915bbnglm3iym78kqysp0kg2ypb18i71", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
+, {"uuid": "workspace-indicator@gnome-shell-extensions.gcampax.github.com", "name": "Workspace Indicator", "pname": "workspace-indicator", "description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one.", "link": "https://extensions.gnome.org/extension/21/workspace-indicator/", "shell_version_map": {"38": {"version": "45", "sha256": "16y7zhlsj0qjwwj78fvcr81m7081i2y30gwjm35qahr3j0gfrk16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid29ya3NwYWNlLWluZGljYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "49", "sha256": "0483k1scq0lwfpg3i3yww7kfzv0qwlp6aqyikkacivh0nkq6v2iy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDkKfQ=="}, "41": {"version": "50", "sha256": "0v2d0hhn6k7cjdkm4i5phglhq6rshp1hpndjjrqynb1018gkgh0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="}}}
+, {"uuid": "gTile@vibou", "name": "gTile", "pname": "gtile", "description": "Tile windows on a grid.", "link": "https://extensions.gnome.org/extension/28/gtile/", "shell_version_map": {"38": {"version": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "41": {"version": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
+, {"uuid": "lockkeys@vaina.lt", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock & Capslock status on the panel", "link": "https://extensions.gnome.org/extension/36/lock-keys/", "shell_version_map": {"38": {"version": "45", "sha256": "0cqkhi8k8lywjsy9g6nbl5kbv8bvz4nql16k1ciajar4443gbz7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "45", "sha256": "0cqkhi8k8lywjsy9g6nbl5kbv8bvz4nql16k1ciajar4443gbz7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0NQp9"}, "41": {"version": "45", "sha256": "0cqkhi8k8lywjsy9g6nbl5kbv8bvz4nql16k1ciajar4443gbz7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0NQp9"}}}
, {"uuid": "putWindow@clemens.lab21.org", "name": "Put Windows", "pname": "put-windows", "description": "Fully customizable replacement for the old compiz put plugin. \n * Move windows to left/right side, bottom/top, center or corner \n * Move window to other screen \n * Select focused window using the keyboard \n * Application based window placement \n\n Please check github if your gnome-shell version is not supported", "link": "https://extensions.gnome.org/extension/39/put-windows/", "shell_version_map": {"38": {"version": "32", "sha256": "1n4hk2sqdbcn25lxk02vljc9xxbidragimvc4b6dj2m72625lx67", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IGN1c3RvbWl6YWJsZSByZXBsYWNlbWVudCBmb3IgdGhlIG9sZCBjb21waXogcHV0IHBsdWdpbi4gXG4gKiBNb3ZlIHdpbmRvd3MgdG8gbGVmdC9yaWdodCBzaWRlLCBib3R0b20vdG9wLCBjZW50ZXIgb3IgY29ybmVyIFxuICogTW92ZSB3aW5kb3cgdG8gb3RoZXIgc2NyZWVuIFxuICogU2VsZWN0IGZvY3VzZWQgd2luZG93IHVzaW5nIHRoZSBrZXlib2FyZCBcbiAqIEFwcGxpY2F0aW9uIGJhc2VkIHdpbmRvdyBwbGFjZW1lbnQgXG5cbiBQbGVhc2UgY2hlY2sgZ2l0aHViIGlmIHlvdXIgZ25vbWUtc2hlbGwgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHV0V2luZG93IiwKICAibmFtZSI6ICJQdXQgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmctbGFiMjEtcHV0d2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVnZXN0aS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLW5lZ2VzdGkiLAogICJ1dWlkIjogInB1dFdpbmRvd0BjbGVtZW5zLmxhYjIxLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "permanent-notifications@bonzini.gnu.org", "name": "Permanent notifications", "pname": "permanent-notifications", "description": "Keep notifications on the message tray until clicked", "link": "https://extensions.gnome.org/extension/41/permanent-notifications/", "shell_version_map": {"40": {"version": "5", "sha256": "1dwqag1sp9gs030qjngzw3ifs1gwamq7c18zh61jzc18xv3f8j0z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "gnome-shell-trash-extension", "name": "Trash", "pname": "trash", "description": "A Trash button for the GNOME shell panel", "link": "https://extensions.gnome.org/extension/48/trash/", "shell_version_map": {"38": {"version": "18", "sha256": "1cysvxrgi7lnig7d8blhqqbxz0phd4fvn7nww6zpihjnw32rvm4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iZXJ0b2xkaWEvZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
-, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {"40": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {"40": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
, {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {"40": {"version": "13", "sha256": "1zlc6m3mai884mkgyg4mwvb7dc3wwpgysbkpfqw35cxpxf7chfk2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
-, {"uuid": "CoverflowAltTab@palatis.blogspot.com", "name": "Coverflow Alt-Tab", "pname": "coverflow-alt-tab", "description": "Replacement of Alt-Tab, iterates through windows in a cover-flow manner.", "link": "https://extensions.gnome.org/extension/97/coverflow-alt-tab/", "shell_version_map": {"38": {"version": "44", "sha256": "18qpriqi0h6la45bl584hglnni0ka2d5q4qv61wdcan28a7kywq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "46", "sha256": "1w8qcwbh6g9gh7gl8ka25sbcv5ggfc6rv6ghw17j54qavkkmppn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}}}
-, {"uuid": "netspeed@hedayaty.gmail.com", "name": "NetSpeed", "pname": "netspeed", "description": "Displays Internet Speed", "link": "https://extensions.gnome.org/extension/104/netspeed/", "shell_version_map": {"40": {"version": "33", "sha256": "1l4bxk7b7q1xc8hrvhcgabk88b74f49g0yq4ja4ycp4zhih52mrv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVkYXlhdHkvTmV0U3BlZWQiLAogICJ1dWlkIjogIm5ldHNwZWVkQGhlZGF5YXR5LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMwp9"}}}
-, {"uuid": "favorites@cvine.org", "name": "Favorites Menu", "pname": "favorites-menu", "description": "Provide panel menu for favorites", "link": "https://extensions.gnome.org/extension/115/favorites-menu/", "shell_version_map": {"40": {"version": "15", "sha256": "02s0p33dcr6wrxivjd47rwb42whqc6qswr3qdvd7p6jym4zddbi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuY3ZpbmUucGx1cy5jb20vZmF2b3JpdGVzL2luZGV4Lmh0bWwiLAogICJ1dWlkIjogImZhdm9yaXRlc0BjdmluZS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "CoverflowAltTab@palatis.blogspot.com", "name": "Coverflow Alt-Tab", "pname": "coverflow-alt-tab", "description": "Replacement of Alt-Tab, iterates through windows in a cover-flow manner.", "link": "https://extensions.gnome.org/extension/97/coverflow-alt-tab/", "shell_version_map": {"38": {"version": "44", "sha256": "18qpriqi0h6la45bl584hglnni0ka2d5q4qv61wdcan28a7kywq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "47", "sha256": "1kwswfipc7v4r980bzywsy3inmkdfkn10ck1wbz1m4w1rbda06g1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
+, {"uuid": "netspeed@hedayaty.gmail.com", "name": "NetSpeed", "pname": "netspeed", "description": "Displays Internet Speed", "link": "https://extensions.gnome.org/extension/104/netspeed/", "shell_version_map": {"40": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "41": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
+, {"uuid": "favorites@cvine.org", "name": "Favorites Menu", "pname": "favorites-menu", "description": "Provide panel menu for favorites", "link": "https://extensions.gnome.org/extension/115/favorites-menu/", "shell_version_map": {"40": {"version": "15", "sha256": "02s0p33dcr6wrxivjd47rwb42whqc6qswr3qdvd7p6jym4zddbi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuY3ZpbmUucGx1cy5jb20vZmF2b3JpdGVzL2luZGV4Lmh0bWwiLAogICJ1dWlkIjogImZhdm9yaXRlc0BjdmluZS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "17", "sha256": "1xbm8d4669j727fw3cm5lmdkfq46xwavsiivr7s9l0nnmnafjzbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuY3ZpbmUucGx1cy5jb20vZmF2b3JpdGVzL2luZGV4Lmh0bWwiLAogICJ1dWlkIjogImZhdm9yaXRlc0BjdmluZS5vcmciLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"uuid": "system-monitor@paradoxxx.zero.gmail.com", "name": "system-monitor", "pname": "system-monitor", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…", "link": "https://extensions.gnome.org/extension/120/system-monitor/", "shell_version_map": {"40": {"version": "40", "sha256": "05xmpbwwjzax5y7p7a492k6mmv9rjiyinnrfkzrzm16yncn3mbvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvckBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
, {"uuid": "Fuzzy_Clock@dallagi", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "A human-readable clock for the gnome-shell panel", "link": "https://extensions.gnome.org/extension/202/fuzzy-clock/", "shell_version_map": {"38": {"version": "9", "sha256": "1cga3192balji63zmbbyixb4r53j48zhil4hnv57l3b25k4rmk0i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgY2xvY2sgZm9yIHRoZSBnbm9tZS1zaGVsbCBwYW5lbCIsCiAgIm5hbWUiOiAiRnV6enkgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYWxsYWdpL2dub21lLXNoZWxsLWZ1enp5LWNsb2NrIiwKICAidXVpZCI6ICJGdXp6eV9DbG9ja0BkYWxsYWdpIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "PersianCalendar@oxygenws.com", "name": "Persian (Iranian/Jalali) Calendar", "pname": "persian-calendar", "description": "Shows Persian date in the top panel.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is a holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri\n5- Events:\n5-1- Official solar events.\n5-2- Official lunar events.\n5-3- Official international events.\n5-4- Traditional Persian events.\n5-5- Persian personages.\n\nPlease \"rate\" here and \"star\" the project in GitHub.\nPlease open an issue in GitHub if you've found something or have an idea!", "link": "https://extensions.gnome.org/extension/240/persian-calendar/", "shell_version_map": {"38": {"version": "73", "sha256": "0z7rx09d7l9fjwga4i1hqjbrhqyls4h5cgkf9vhfi710caydmq1c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gKElyYW5pYW4vSmFsYWxpKSBDYWxlbmRhciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiT21pZCBNb3R0YWdoaSBSYWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vbWlkL1BlcnNpYW4tQ2FsZW5kYXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJQZXJzaWFuQ2FsZW5kYXJAb3h5Z2Vud3MuY29tIiwKICAidmVyc2lvbiI6IDczCn0="}, "40": {"version": "88", "sha256": "10vv9absphf7g0jdhmy5j880dk1h6fn63ijv0hslr86mmf1wsbkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gKElyYW5pYW4vSmFsYWxpKSBDYWxlbmRhciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiT21pZCBNb3R0YWdoaSBSYWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA4OAp9"}}}
-, {"uuid": "kimpanel@kde.org", "name": "Input Method Panel", "pname": "kimpanel", "description": "Input Method Panel using KDE's kimpanel protocol for Gnome-Shell", "link": "https://extensions.gnome.org/extension/261/kimpanel/", "shell_version_map": {"38": {"version": "59", "sha256": "0rh2in9cm9khvmhhzyyw98z6bwvv95v59zcapkjpd7kbs38hqdw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDU5Cn0="}, "40": {"version": "62", "sha256": "18nl9m74849vgdljjcickwsa4anrwl1b1p58l7pqw9pv4m08myn7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLmJldGEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDYyCn0="}}}
-, {"uuid": "impatience@gfxmonk.net", "name": "Impatience", "pname": "impatience", "description": "Speed up the gnome-shell animation speed", "link": "https://extensions.gnome.org/extension/277/impatience/", "shell_version_map": {"40": {"version": "16", "sha256": "1h4x1a6i7b33xa7hlr5pd8llbnq0pin83c957y6r75sri0xwxr6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2Z4bW9uay5uZXQvZGlzdC8waW5zdGFsbC9nbm9tZS1zaGVsbC1pbXBhdGllbmNlLnhtbCIsCiAgInV1aWQiOiAiaW1wYXRpZW5jZUBnZnhtb25rLm5ldCIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "PersianCalendar@oxygenws.com", "name": "Persian Calendar", "pname": "persian-calendar", "description": "Shows Persian date in the top panel.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is a holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri\n5- Events:\n5-1- Official solar events.\n5-2- Official lunar events.\n5-3- Official international events.\n5-4- Traditional Persian events.\n5-5- Persian personages.\n\nPlease \"rate\" here and \"star\" the project in GitHub.\nPlease open an issue in GitHub if you've found something or have an idea!", "link": "https://extensions.gnome.org/extension/240/persian-calendar/", "shell_version_map": {"38": {"version": "73", "sha256": "14p27d2h58jam7h97y06safsc2c8rwmjy74nak5w9cv7s0wx4kar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA3Mwp9"}, "40": {"version": "89", "sha256": "1szb28inm12glf7q79rxhm0qbpysdjq9vn0z329z9c7qv3qhndn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vbWlkL1BlcnNpYW4tQ2FsZW5kYXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJQZXJzaWFuQ2FsZW5kYXJAb3h5Z2Vud3MuY29tIiwKICAidmVyc2lvbiI6IDg5Cn0="}, "41": {"version": "89", "sha256": "1szb28inm12glf7q79rxhm0qbpysdjq9vn0z329z9c7qv3qhndn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vbWlkL1BlcnNpYW4tQ2FsZW5kYXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJQZXJzaWFuQ2FsZW5kYXJAb3h5Z2Vud3MuY29tIiwKICAidmVyc2lvbiI6IDg5Cn0="}}}
+, {"uuid": "kimpanel@kde.org", "name": "Input Method Panel", "pname": "kimpanel", "description": "Input Method Panel using KDE's kimpanel protocol for Gnome-Shell", "link": "https://extensions.gnome.org/extension/261/kimpanel/", "shell_version_map": {"38": {"version": "59", "sha256": "0rh2in9cm9khvmhhzyyw98z6bwvv95v59zcapkjpd7kbs38hqdw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDU5Cn0="}, "40": {"version": "67", "sha256": "0w6dirqr2apg95c8912a7qx5msfsqjrma2f6aq1k3a3dqzkavzm0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNjcKfQ=="}, "41": {"version": "67", "sha256": "0w6dirqr2apg95c8912a7qx5msfsqjrma2f6aq1k3a3dqzkavzm0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNjcKfQ=="}}}
+, {"uuid": "impatience@gfxmonk.net", "name": "Impatience", "pname": "impatience", "description": "Speed up the gnome-shell animation speed", "link": "https://extensions.gnome.org/extension/277/impatience/", "shell_version_map": {"40": {"version": "17", "sha256": "10zjxf8swp3n34q3mdid4ni109r1274c2iyd8nmwzyzsi11a14dj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "10zjxf8swp3n34q3mdid4ni109r1274c2iyd8nmwzyzsi11a14dj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
, {"uuid": "windowoverlay-icons@sustmidown.centrum.cz", "name": "WindowOverlay Icons", "pname": "windowoverlay-icons", "description": "Add application icons to window overview", "link": "https://extensions.gnome.org/extension/302/windowoverlay-icons/", "shell_version_map": {"38": {"version": "37", "sha256": "108a5i5v62a9i61av5pib3b0hcpmb6pw3np7c29jfngs25n14wd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhcHBsaWNhdGlvbiBpY29ucyB0byB3aW5kb3cgb3ZlcnZpZXciLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aW5kb3dvdmVybGF5LWljb25zIiwKICAibmFtZSI6ICJXaW5kb3dPdmVybGF5IEljb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd292ZXJsYXktaWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdXN0bWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd292ZXJsYXktaWNvbnMiLAogICJ1dWlkIjogIndpbmRvd292ZXJsYXktaWNvbnNAc3VzdG1pZG93bi5jZW50cnVtLmN6IiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
-, {"uuid": "dash-to-dock@micxgx.gmail.com", "name": "Dash to Dock", "pname": "dash-to-dock", "description": "A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.", "link": "https://extensions.gnome.org/extension/307/dash-to-dock/", "shell_version_map": {"38": {"version": "69", "sha256": "1nmqg875lxbxn8plwgmsrkhq126hcv56yl6iyq5wc4ljp98niaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbWljaGVsZWcuZ2l0aHViLmlvL2Rhc2gtdG8tZG9jay8iLAogICJ1dWlkIjogImRhc2gtdG8tZG9ja0BtaWN4Z3guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDY5Cn0="}}}
+, {"uuid": "dash-to-dock@micxgx.gmail.com", "name": "Dash to Dock", "pname": "dash-to-dock", "description": "A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.", "link": "https://extensions.gnome.org/extension/307/dash-to-dock/", "shell_version_map": {"38": {"version": "69", "sha256": "1nmqg875lxbxn8plwgmsrkhq126hcv56yl6iyq5wc4ljp98niaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbWljaGVsZWcuZ2l0aHViLmlvL2Rhc2gtdG8tZG9jay8iLAogICJ1dWlkIjogImRhc2gtdG8tZG9ja0BtaWN4Z3guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDY5Cn0="}, "40": {"version": "71", "sha256": "071zxnbkh946x1fm16ddwlknaig15cm0dl7kvw97vhx6cw6668c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNzEKfQ=="}, "41": {"version": "71", "sha256": "071zxnbkh946x1fm16ddwlknaig15cm0dl7kvw97vhx6cw6668c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNzEKfQ=="}}}
, {"uuid": "mythtv-fnx@fnxweb.com", "name": "MythTV", "pname": "mythtv", "description": "Displays MythTV status (free space and upcoming recordings)", "link": "https://extensions.gnome.org/extension/321/mythtv/", "shell_version_map": {"38": {"version": "10", "sha256": "070h11gk5zpxn5xbc71skdz174hbb72l0isia2vp7d9wy4ackl0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtbXl0aHR2IiwKICAidXVpZCI6ICJteXRodHYtZm54QGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"uuid": "middleclickclose@paolo.tranquilli.gmail.com", "name": "Quick Close in Overview", "pname": "middle-click-to-close-in-overview", "description": "Close windows with a button click (the middle one by default) when in overview mode", "link": "https://extensions.gnome.org/extension/352/middle-click-to-close-in-overview/", "shell_version_map": {"38": {"version": "17", "sha256": "1nv6cjyiz1i7fddh21h0zmrvzfi3y70y1f0xsv2zd0rfg6rf0r77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJRdWljayBDbG9zZSBpbiBPdmVydmlldyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiUGFvbG8gVHJhbnF1aWxsaSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3A5MXBhdWwvbWlkZGxlY2xpY2tjbG9zZSIsCiAgInV1aWQiOiAibWlkZGxlY2xpY2tjbG9zZUBwYW9sby50cmFucXVpbGxpLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "20", "sha256": "1nylf06jr8lllq1m92g5qhwvdc9vgagc4iszd6p38jmb27sbfgw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJRdWljayBDbG9zZSBpbiBPdmVydmlldyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiUGFvbG8gVHJhbnF1aWxsaSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wOTFwYXVsL21pZGRsZWNsaWNrY2xvc2UiLAogICJ1dWlkIjogIm1pZGRsZWNsaWNrY2xvc2VAcGFvbG8udHJhbnF1aWxsaS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
, {"uuid": "status-area-horizontal-spacing@mathematical.coffee.gmail.com", "name": "Status Area Horizontal Spacing", "pname": "status-area-horizontal-spacing", "description": "Reduce the horizontal spacing between icons in the top-right status area", "link": "https://extensions.gnome.org/extension/355/status-area-horizontal-spacing/", "shell_version_map": {"38": {"version": "16", "sha256": "05hhj10hlcpbgd9sbvq89vxzqj6ndf21syas8zidy6yfy613b6l3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9zdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmdAbWF0aGVtYXRpY2FsLmNvZmZlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "18", "sha256": "0r501b8frnrrxfl8l2j6xcjgw1w99h753n47zr8mwpbx5wpcbw5w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3A5MXBhdWwvc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nQG1hdGhlbWF0aWNhbC5jb2ZmZWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
, {"uuid": "activities-config@nls1729", "name": "Activities Configurator", "pname": "activities-configurator", "description": "Activities Configurator, activities-config@nls1729 - Effective March 29, 2021 the extension is NOT MAINTAINED. I give my permission to anyone who may want to become the maintainer. I do not have the free time or energy necessary to maintain the extension.\n\nConfigure the Activities Button and Top Panel. Select an icon. Change the text. Disable Hot Corner or set the Hot Corner Threshold. Set Panel Background color and transparency plus much more to enhance your desktop. Click the icon or text with the secondary mouse button to launch the GS Extension Prefs.", "link": "https://extensions.gnome.org/extension/358/activities-configurator/", "shell_version_map": {"38": {"version": "89", "sha256": "1z00smimg5fj6ri35g80bvfzzy5xxxrgwy4idsakphszdwryi8ny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2aXRpZXMgQ29uZmlndXJhdG9yLCBhY3Rpdml0aWVzLWNvbmZpZ0BubHMxNzI5IC0gIEVmZmVjdGl2ZSBNYXJjaCAyOSwgMjAyMSB0aGUgZXh0ZW5zaW9uIGlzIE5PVCBNQUlOVEFJTkVELiAgSSBnaXZlIG15IHBlcm1pc3Npb24gdG8gYW55b25lIHdobyBtYXkgd2FudCB0byBiZWNvbWUgdGhlIG1haW50YWluZXIuICBJIGRvIG5vdCBoYXZlIHRoZSBmcmVlIHRpbWUgb3IgZW5lcmd5IG5lY2Vzc2FyeSB0byBtYWludGFpbiB0aGUgZXh0ZW5zaW9uLlxuXG5Db25maWd1cmUgdGhlIEFjdGl2aXRpZXMgQnV0dG9uIGFuZCBUb3AgUGFuZWwuIFNlbGVjdCBhbiBpY29uLiBDaGFuZ2UgdGhlIHRleHQuIERpc2FibGUgSG90IENvcm5lciBvciBzZXQgdGhlIEhvdCBDb3JuZXIgVGhyZXNob2xkLiBTZXQgUGFuZWwgQmFja2dyb3VuZCBjb2xvciBhbmQgdHJhbnNwYXJlbmN5IHBsdXMgbXVjaCBtb3JlIHRvIGVuaGFuY2UgeW91ciBkZXNrdG9wLiAgQ2xpY2sgdGhlIGljb24gb3IgdGV4dCB3aXRoIHRoZSBzZWNvbmRhcnkgbW91c2UgYnV0dG9uIHRvIGxhdW5jaCB0aGUgR1MgRXh0ZW5zaW9uIFByZWZzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhY3Rpdml0aWVzLWNvbmZpZyIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXRpZXMtY29uZmlnLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBDb25maWd1cmF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWN0aXZpdGllcy1jb25maWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmxzMTcyOS5naXRodWIuaW8vYWN0aXZpdGllc19jb25maWcuaHRtbCIsCiAgInV1aWQiOiAiYWN0aXZpdGllcy1jb25maWdAbmxzMTcyOSIsCiAgInZlcnNpb24iOiA4OQp9"}}}
, {"uuid": "remmina-search-provider@alexmurray.github.com", "name": "Remmina Search Provider", "pname": "remmina-search-provider", "description": "Search for Remmina Remote Desktop Connections\n\nEasily search for and launch connections to remote machines by name and protocol.", "link": "https://extensions.gnome.org/extension/473/remmina-search-provider/", "shell_version_map": {"40": {"version": "13", "sha256": "04wxydmbx0nm5ss2i10y4alxsr6fkia2is85ln23k25bqn8b4csi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {"38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "39", "sha256": "0ij27rby6c167yqbql022d8vxix27bacqgw0mm4cxn71jqfzm64n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzOQp9"}}}
+, {"uuid": "uptime-indicator@gniourfgniourf.gmail.com", "name": "Uptime Indicator", "pname": "uptime-indicator", "description": "Indicates uptime in status area. When clicked, a popup menu indicates the date when the system was started.", "link": "https://extensions.gnome.org/extension/508/uptime-indicator/", "shell_version_map": {"38": {"version": "18", "sha256": "1pzcbkc8a1f886wn7avpdw81vqch9zcyjr0pr961rfw3nykd073c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "18", "sha256": "1pzcbkc8a1f886wn7avpdw81vqch9zcyjr0pr961rfw3nykd073c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
+, {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {"38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "40", "sha256": "1rza4ppzcimh6qmg14srawv16vas4lbcw4njxjigl29d9qf43sdr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lb25wYXRhcG9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jYWZmZWluZSIsCiAgInV1aWQiOiAiY2FmZmVpbmVAcGF0YXBvbi5pbmZvIiwKICAidmVyc2lvbiI6IDQwCn0="}, "41": {"version": "40", "sha256": "1rza4ppzcimh6qmg14srawv16vas4lbcw4njxjigl29d9qf43sdr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lb25wYXRhcG9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jYWZmZWluZSIsCiAgInV1aWQiOiAiY2FmZmVpbmVAcGF0YXBvbi5pbmZvIiwKICAidmVyc2lvbiI6IDQwCn0="}}}
, {"uuid": "backslide@codeisland.org", "name": "BackSlide", "pname": "backslide", "description": "Automatic background-image (wallpaper) slideshow for Gnome Shell", "link": "https://extensions.gnome.org/extension/543/backslide/", "shell_version_map": {"38": {"version": "18", "sha256": "1vm4w61cksj9ya5z4xcy7h96bk0wwi5njp0lyhnqa8j2fgsq5iin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL0x1a2FzS251dGgvYmFja3NsaWRlIiwKICAidXVpZCI6ICJiYWNrc2xpZGVAY29kZWlzbGFuZC5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "21", "sha256": "1qakl3wiwhx68yfqafd5241hfmin0v1x779ljs5bqj2hqld3dzz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYml0YnVja2V0Lm9yZy9MdWthc0tudXRoL2JhY2tzbGlkZSIsCiAgInV1aWQiOiAiYmFja3NsaWRlQGNvZGVpc2xhbmQub3JnIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
, {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "HistoryManager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. RunCommand, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {"40": {"version": "14", "sha256": "1n6gac80xrk6lhlj29zb03h62ia0a66va0i9pmjgqbg3bs74yds0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW5Db21tYW5kLCBMb29raW5nIEdsYXNzKSBhY2NvcmRpbmcgdG8gcHJlZml4IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgIm5hbWUiOiAiSGlzdG9yeU1hbmFnZXIgUHJlZml4IFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy43LjMiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAxNAp9"}}}
-, {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {"38": {"version": "93", "sha256": "0x3l0l5bv6zsdkvk6gw35f43zhkwdgpliakr3jf92lbil0fngwhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbHV0ZnkvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDkzCn0="}, "40": {"version": "93", "sha256": "0x3l0l5bv6zsdkvk6gw35f43zhkwdgpliakr3jf92lbil0fngwhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbHV0ZnkvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDkzCn0="}}}
+, {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {"38": {"version": "99", "sha256": "0zdw99g9r3vgx8qy68815md4v4h9pndy6c5pg5x05959ayxr5rzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiA5OQp9"}, "40": {"version": "99", "sha256": "0zdw99g9r3vgx8qy68815md4v4h9pndy6c5pg5x05959ayxr5rzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiA5OQp9"}, "41": {"version": "99", "sha256": "0zdw99g9r3vgx8qy68815md4v4h9pndy6c5pg5x05959ayxr5rzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiA5OQp9"}}}
, {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {"40": {"version": "16", "sha256": "127w08jkiy5dyxhavn735ywr7q9d7cd4bpcv8iyrh0dmxbd1rh1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
-, {"uuid": "todo.txt@bart.libert.gmail.com", "name": "Todo.txt", "pname": "todotxt", "description": "A Gnome shell interface for todo.txt. \n\nTodo.txt is a future-proof syntax for tasks (not made by me), for more info: http://todotxt.com/\n\nSome examples:\nTask: Basic task\n(A) Task: High priority task\nTask @project +context: Task is part of project and has a certain context\nx 2013-08-22 Task: Task was completed on the 22nd of August\n\nFor more info about the syntax: https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format\n\nQuick start:\nWhen you first enable the extension, chances are high you'll see a [X] in your top panel. If you click the [X], you will be able to choose between creating the necessary files automatically or selecting your own existing files to be used with the extension.\n\nPlease use the issue tracker on the homepage to report bugs and/or file feature requests, this makes tracking easier for me. Thanks!\n\nSee the included CHANGELOG.md for info about changes between different versions, or see it online: https://gitlab.com/bartl/todo-txt-gnome-shell-extension/raw/master/CHANGELOG.md", "link": "https://extensions.gnome.org/extension/570/todotxt/", "shell_version_map": {"38": {"version": "33", "sha256": "1spq0i8w9xw8zgq3niqzs2dslg01l0gsbcys26p8lpydz0dsy7xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMzCn0="}, "40": {"version": "34", "sha256": "0blwddf362fdq160kagfzk2r6vvyabmyjisfpahnl88jj57b4l47", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
+, {"uuid": "todo.txt@bart.libert.gmail.com", "name": "Todo.txt", "pname": "todotxt", "description": "A Gnome shell interface for todo.txt. \n\nTodo.txt is a future-proof syntax for tasks (not made by me), for more info: http://todotxt.com/\n\nSome examples:\nTask: Basic task\n(A) Task: High priority task\nTask @project +context: Task is part of project and has a certain context\nx 2013-08-22 Task: Task was completed on the 22nd of August\n\nFor more info about the syntax: https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format\n\nQuick start:\nWhen you first enable the extension, chances are high you'll see a [X] in your top panel. If you click the [X], you will be able to choose between creating the necessary files automatically or selecting your own existing files to be used with the extension.\n\nPlease use the issue tracker on the homepage to report bugs and/or file feature requests, this makes tracking easier for me. Thanks!\n\nSee the included CHANGELOG.md for info about changes between different versions, or see it online: https://gitlab.com/bartl/todo-txt-gnome-shell-extension/raw/master/CHANGELOG.md", "link": "https://extensions.gnome.org/extension/570/todotxt/", "shell_version_map": {"38": {"version": "33", "sha256": "1spq0i8w9xw8zgq3niqzs2dslg01l0gsbcys26p8lpydz0dsy7xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMzCn0="}, "40": {"version": "35", "sha256": "18vc11nls6giskq94kw48kbcx399706rglaqsmla4yvix0jkd8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iYXJ0bC90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNQp9"}}}
, {"uuid": "text_translator@awamper.gmail.com", "name": "Text Translator", "pname": "text-translator", "description": "** Needs the package translate-shell **\nTranslation of the text by different translators (currently Google.Translate, Yandex.Translate).\nShortcuts:\nSuper+T - open translator dialog.\nSuper+Shift+T - open translator dialog and translate text from clipboard.\nSuper+Alt+T - open translator dialog and translate from primary selection.\nCtrl+Enter+ - Translate text.\nCtrl+Shift+C - copy translated text to clipboard.\nCtrl+S - swap languages.\nCtrl+D - reset languages to default\nTab+ - toggle transliteration of result text.", "link": "https://extensions.gnome.org/extension/593/text-translator/", "shell_version_map": {"38": {"version": "36", "sha256": "1idzgg4vb791k5dryjvznr6mfwfx59vlgabw2n3spysbwvjv2a48", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqIE5lZWRzIHRoZSBwYWNrYWdlIHRyYW5zbGF0ZS1zaGVsbCAqKlxuVHJhbnNsYXRpb24gb2YgdGhlIHRleHQgYnkgZGlmZmVyZW50IHRyYW5zbGF0b3JzIChjdXJyZW50bHkgR29vZ2xlLlRyYW5zbGF0ZSwgWWFuZGV4LlRyYW5zbGF0ZSkuXG5TaG9ydGN1dHM6XG5TdXBlcitUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZy5cblN1cGVyK1NoaWZ0K1QgLSBvcGVuIHRyYW5zbGF0b3IgZGlhbG9nIGFuZCB0cmFuc2xhdGUgdGV4dCBmcm9tIGNsaXBib2FyZC5cblN1cGVyK0FsdCtUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZyBhbmQgdHJhbnNsYXRlIGZyb20gcHJpbWFyeSBzZWxlY3Rpb24uXG5DdHJsK0VudGVyKyAtIFRyYW5zbGF0ZSB0ZXh0LlxuQ3RybCtTaGlmdCtDIC0gY29weSB0cmFuc2xhdGVkIHRleHQgdG8gY2xpcGJvYXJkLlxuQ3RybCtTIC0gc3dhcCBsYW5ndWFnZXMuXG5DdHJsK0QgLSByZXNldCBsYW5ndWFnZXMgdG8gZGVmYXVsdFxuVGFiKyAtIHRvZ2dsZSB0cmFuc2xpdGVyYXRpb24gb2YgcmVzdWx0IHRleHQuIiwKICAibmFtZSI6ICJUZXh0IFRyYW5zbGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGV4dC10cmFuc2xhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3Vmb2UvdGV4dC10cmFuc2xhdG9yIiwKICAidXVpZCI6ICJ0ZXh0X3RyYW5zbGF0b3JAYXdhbXBlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
-, {"uuid": "autohide-battery@sitnik.ru", "name": "Autohide Battery", "pname": "autohide-battery", "description": "Hide battery icon in top panel, if battery is fully charged and AC is connected", "link": "https://extensions.gnome.org/extension/595/autohide-battery/", "shell_version_map": {"40": {"version": "20", "sha256": "0qzjkn97xqf2crc51fq9rkbhhcj5bhn6ba6z2z63bgm3wh2r6s5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FpL2F1dG9oaWRlLWJhdHRlcnkiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnlAc2l0bmlrLnJ1IiwKICAidmVyc2lvbiI6IDIwCn0="}}}
-, {"uuid": "launch-new-instance@gnome-shell-extensions.gcampax.github.com", "name": "Launch new instance", "pname": "launch-new-instance", "description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/600/launch-new-instance/", "shell_version_map": {"38": {"version": "29", "sha256": "0qb1ajjwm076zxsd314n7f5vl72ih7j4h9y84bqwb9cxa53mp4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsYXVuY2gtbmV3LWluc3RhbmNlQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}, "40": {"version": "31", "sha256": "0c667wdrpfd8bh2wygglzk1bp63z6xvknhj2rhw8v3vlmhpn8994", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAibGF1bmNoLW5ldy1pbnN0YW5jZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzMQp9"}}}
-, {"uuid": "window-list@gnome-shell-extensions.gcampax.github.com", "name": "Window List", "pname": "window-list", "description": "Display a window list at the bottom of the screen.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/602/window-list/", "shell_version_map": {"38": {"version": "34", "sha256": "06jww5sv3a32plbvnl1xch10y19q807dx6zn6z5gwpvq8n0nvnx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "38", "sha256": "0r4mqs88vnz8qrd2qcfg5gs184rnqbb9sgnpl3vrdmj608k1mx1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvdy1saXN0QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}}}
+, {"uuid": "autohide-battery@sitnik.ru", "name": "Autohide Battery", "pname": "autohide-battery", "description": "Hide battery icon in top panel, if battery is fully charged and AC is connected", "link": "https://extensions.gnome.org/extension/595/autohide-battery/", "shell_version_map": {"40": {"version": "23", "sha256": "1kxcb301ql1q3vyswnwgq8rmdyxj6zrngah2rwrbiy1wjz726xg0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "1kxcb301ql1q3vyswnwgq8rmdyxj6zrngah2rwrbiy1wjz726xg0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "launch-new-instance@gnome-shell-extensions.gcampax.github.com", "name": "Launch new instance", "pname": "launch-new-instance", "description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/600/launch-new-instance/", "shell_version_map": {"38": {"version": "29", "sha256": "0qb1ajjwm076zxsd314n7f5vl72ih7j4h9y84bqwb9cxa53mp4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsYXVuY2gtbmV3LWluc3RhbmNlQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}, "40": {"version": "31", "sha256": "0c667wdrpfd8bh2wygglzk1bp63z6xvknhj2rhw8v3vlmhpn8994", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAibGF1bmNoLW5ldy1pbnN0YW5jZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzMQp9"}, "41": {"version": "32", "sha256": "1zrplwrbyp5madd6vc1jraj6ddbvyfim4f0i3sipq8lyih5cn70n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
+, {"uuid": "window-list@gnome-shell-extensions.gcampax.github.com", "name": "Window List", "pname": "window-list", "description": "Display a window list at the bottom of the screen.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/602/window-list/", "shell_version_map": {"38": {"version": "34", "sha256": "06jww5sv3a32plbvnl1xch10y19q807dx6zn6z5gwpvq8n0nvnx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "38", "sha256": "0r4mqs88vnz8qrd2qcfg5gs184rnqbb9sgnpl3vrdmj608k1mx1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvdy1saXN0QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}, "41": {"version": "39", "sha256": "1d859rgmdxwgchaf10xlr7y36v8nxbznqny66bv2wdx8d7i1xk5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}}}
, {"uuid": "MultiClock@mibus.org", "name": "MultiClock", "pname": "multiclock", "description": "A clock for showing a second timezone in the panel.", "link": "https://extensions.gnome.org/extension/605/multiclock/", "shell_version_map": {"40": {"version": "8", "sha256": "1pp1cnmpix668mrywpv6mkyb45lw7f6cwibjl6bc7cgb01hkzd53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY2xvY2sgZm9yIHNob3dpbmcgYSBzZWNvbmQgdGltZXpvbmUgaW4gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiTXVsdGlDbG9jayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5taWJ1c011bHRpQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWJ1cy9NdWx0aUNsb2NrIiwKICAidXVpZCI6ICJNdWx0aUNsb2NrQG1pYnVzLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"uuid": "appindicatorsupport@rgcjonas.gmail.com", "name": "AppIndicator and KStatusNotifierItem Support", "pname": "appindicator-support", "description": "Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell", "link": "https://extensions.gnome.org/extension/615/appindicator-support/", "shell_version_map": {"38": {"version": "40", "sha256": "0pfp1x9fblgr4r37qlg9f33n7qznh0xs7n1cfbrzs07i7cxwp97g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VidW50dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhcHBpbmRpY2F0b3JzdXBwb3J0QHJnY2pvbmFzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MAp9"}, "40": {"version": "40", "sha256": "0pfp1x9fblgr4r37qlg9f33n7qznh0xs7n1cfbrzs07i7cxwp97g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VidW50dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhcHBpbmRpY2F0b3JzdXBwb3J0QHJnY2pvbmFzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MAp9"}}}
+, {"uuid": "appindicatorsupport@rgcjonas.gmail.com", "name": "AppIndicator and KStatusNotifierItem Support", "pname": "appindicator-support", "description": "Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell", "link": "https://extensions.gnome.org/extension/615/appindicator-support/", "shell_version_map": {"38": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "40": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "41": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}}}
, {"uuid": "bitcoin-markets@ottoallmendinger.github.com", "name": "Bitcoin Markets", "pname": "bitcoin-markets", "description": "Display info on various crypto-currency exchanges.", "link": "https://extensions.gnome.org/extension/648/bitcoin-markets/", "shell_version_map": {"38": {"version": "57", "sha256": "1dbrkr49gi93nps610afvw2q68d1ialkhxsxd0waa8xgwjxwzyxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3R0b0FsbG1lbmRpbmdlci9nbm9tZS1zaGVsbC1iaXRjb2luLW1hcmtldHMvIiwKICAidXVpZCI6ICJiaXRjb2luLW1hcmtldHNAb3R0b2FsbG1lbmRpbmdlci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}, "40": {"version": "58", "sha256": "1alsbyykqy2147ssx016ixqyj3phk3pmviw41dr0vakxfwr5f7g1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OAp9"}}}
, {"uuid": "ShellTile@emasab.it", "name": "ShellTile", "pname": "shelltile", "description": "A tiling window extension for GNOME Shell. Just move a window to the edges of the screen to create a tiling, otherwise move a window over another one, holding down the Control key. Grouped windows minimize, resize, raise and change workspace together. Move or maximize a window to remove it from the group.", "link": "https://extensions.gnome.org/extension/657/shelltile/", "shell_version_map": {"38": {"version": "65", "sha256": "0kb7crng8lmkcjjxzd7ma2x0x43rg4j5ygvvpiq5z2j15rx8bcg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbWFzYWIvc2hlbGx0aWxlIiwKICAidXVpZCI6ICJTaGVsbFRpbGVAZW1hc2FiLml0IiwKICAidmVyc2lvbiI6IDY1Cn0="}}}
-, {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: typelib-1_0-LunarDate-3_0 / gir1.2-lunar-date-2.0", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {"38": {"version": "25", "sha256": "1pj439wdsqpxim6p4d0y09v40kdjga908hagxfyvq0fzjykc51rn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0f5yiazgaylv9h2s53blw2jvs99wqnypdhf5j2p7i2wdyaq1hbip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: typelib-1_0-LunarDate-3_0 / gir1.2-lunar-date-2.0", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {"38": {"version": "25", "sha256": "1pj439wdsqpxim6p4d0y09v40kdjga908hagxfyvq0fzjykc51rn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "27", "sha256": "159iiyw0sblq8jwkm1qfcakgdy3rvk07vzz8q6yj2davp64wpg5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "159iiyw0sblq8jwkm1qfcakgdy3rvk07vzz8q6yj2davp64wpg5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
+, {"uuid": "EasyScreenCast@iacopodeenosee.gmail.com", "name": "EasyScreenCast", "pname": "easyscreencast", "description": "This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.\n\nSOURCE CODE -> https://github.com/EasyScreenCast/EasyScreenCast\n\nVIDEO -> https://youtu.be/81E9AruraKU\n\n**NOTICE**\nif an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.", "link": "https://extensions.gnome.org/extension/690/easyscreencast/", "shell_version_map": {"38": {"version": "41", "sha256": "0irmbbj7jd628agq80f4ms8skawjvsi9a7izair11knydhkab944", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "40": {"version": "41", "sha256": "0irmbbj7jd628agq80f4ms8skawjvsi9a7izair11knydhkab944", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "0irmbbj7jd628agq80f4ms8skawjvsi9a7izair11knydhkab944", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}}}
, {"uuid": "scroll-workspaces@gfxmonk.net", "name": "Top Panel Workspace Scroll", "pname": "top-panel-workspace-scroll", "description": "Change workspaces by scrolling over the top panel", "link": "https://extensions.gnome.org/extension/701/top-panel-workspace-scroll/", "shell_version_map": {"40": {"version": "24", "sha256": "1i7l26x22wzqplq42z2317ynq4s4vwwzb3ql9lhpkyn8d7g7xa4x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dmeG1vbmsvZ25vbWUtc2hlbGwtc2Nyb2xsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInNjcm9sbC13b3Jrc3BhY2VzQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
, {"uuid": "all-windows@ezix.org", "name": "All Windows", "pname": "all-windows", "description": "List open windows of all workspaces", "link": "https://extensions.gnome.org/extension/704/all-windows/", "shell_version_map": {"40": {"version": "11", "sha256": "12d083bakv6l4dg6hmkh9c4q0cybfjq9y0dl3w85slsc7v60gj2w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzIiwKICAibmFtZSI6ICJBbGwgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seW9uZWwvYWxsLXdpbmRvd3MiLAogICJ1dWlkIjogImFsbC13aW5kb3dzQGV6aXgub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "panel-osd@berend.de.schouwer.gmail.com", "name": "Panel OSD", "pname": "panel-osd", "description": "Configuring where on the (main) screen notifications will appear, instead of just above the message tray", "link": "https://extensions.gnome.org/extension/708/panel-osd/", "shell_version_map": {"38": {"version": "39", "sha256": "109qlcckx5z8fwndpr86r2bfggyh4akmi6lqi0ki7gr9bfigdqnv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyaW5nIHdoZXJlIG9uIHRoZSAobWFpbikgc2NyZWVuIG5vdGlmaWNhdGlvbnMgd2lsbCBhcHBlYXIsIGluc3RlYWQgb2YganVzdCBhYm92ZSB0aGUgbWVzc2FnZSB0cmF5IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJQYW5lbCBPU0QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWwtb3NkIiwKICAidXVpZCI6ICJwYW5lbC1vc2RAYmVyZW5kLmRlLnNjaG91d2VyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "40", "sha256": "0hskvmdnqjihixaxhb7a7apsx0203zmymm5j6ncb2al928p795yx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyaW5nIHdoZXJlIG9uIHRoZSAobWFpbikgc2NyZWVuIG5vdGlmaWNhdGlvbnMgd2lsbCBhcHBlYXIsIGluc3RlYWQgb2YganVzdCBhYm92ZSB0aGUgbWVzc2FnZSB0cmF5IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJQYW5lbCBPU0QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vamVuc2xvZHkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBhbmVsLW9zZCIsCiAgInV1aWQiOiAicGFuZWwtb3NkQGJlcmVuZC5kZS5zY2hvdXdlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
, {"uuid": "pixel-saver@deadalnix.me", "name": "Pixel Saver", "pname": "pixel-saver", "description": "Pixel Saver is designed to save pixel by fusing activity bar and title bar in a natural way", "link": "https://extensions.gnome.org/extension/723/pixel-saver/", "shell_version_map": {"38": {"version": "24", "sha256": "1y511ixqwz97mx3ykrlzafjskxri94sf9hlhjwnha9p3bys155bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjQKfQ=="}, "40": {"version": "24", "sha256": "1y511ixqwz97mx3ykrlzafjskxri94sf9hlhjwnha9p3bys155bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
, {"uuid": "breakreminder@danielfalk22.gmail.com", "name": "Break Reminder", "pname": "break-reminder", "description": "Get a reminder to take a break", "link": "https://extensions.gnome.org/extension/734/break-reminder/", "shell_version_map": {"38": {"version": "6", "sha256": "0k21wj98ldx52m7s8sgndqziqnn7n0g2j45lsi31kfjydhyj3dmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHJlbWluZGVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiQnJlYWsgUmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxmYWxrL2dub21lM2JyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogImJyZWFrcmVtaW5kZXJAZGFuaWVsZmFsazIyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "Hide_Activities@shay.shayel.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hides the Activities button from the status bar (the hot corner and keyboard shortcut keeps working). To disable top left hot corner use 'No Topleft Hot Corner' extension — https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ .", "link": "https://extensions.gnome.org/extension/744/hide-activities-button/", "shell_version_map": {"38": {"version": "11", "sha256": "0h04xkaad04nmh0hgcjaq8i7929j9cl79l5k4azrsrmbbz7181hb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "0h04xkaad04nmh0hgcjaq8i7929j9cl79l5k4azrsrmbbz7181hb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"uuid": "Hide_Activities@shay.shayel.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hides the Activities button from the status bar (the hot corner and keyboard shortcut keeps working). To disable top left hot corner use 'No Topleft Hot Corner' extension — https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ .", "link": "https://extensions.gnome.org/extension/744/hide-activities-button/", "shell_version_map": {"38": {"version": "12", "sha256": "0z7p6xl6axckl6f0gyqaya3l5i4d9mnzkqdylpfhywswb5idabra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9BY3Rpdml0aWVzQHNoYXkuc2hheWVsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "0z7p6xl6axckl6f0gyqaya3l5i4d9mnzkqdylpfhywswb5idabra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9BY3Rpdml0aWVzQHNoYXkuc2hheWVsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "0z7p6xl6axckl6f0gyqaya3l5i4d9mnzkqdylpfhywswb5idabra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9BY3Rpdml0aWVzQHNoYXkuc2hheWVsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
, {"uuid": "openweather-extension@jenslody.de", "name": "OpenWeather", "pname": "openweather", "description": "Weather extension to display weather information from https://openweathermap.org/ or https://darksky.net for almost all locations in the world.\nFor openweathermap.org, you can either use the extensions default-key or register at https://openweathermap.org/appid and set the appropriate switch in the preferences dialog to \"off\".\nFor Dark Sky you have to register at https://darksky.net/dev/register and get a personal API-key.\n\nSince version 29 this extensions uses coordinates to store the locations and makes the names editable to support multiple weather-providers!\nIf you update from versions prior to 29 to 29 or greater (with darksky.net - support) you have to recreate your locations.", "link": "https://extensions.gnome.org/extension/750/openweather/", "shell_version_map": {"38": {"version": "105", "sha256": "0xqz924fxy201b0d9l8xn4ykwbsvgazrbc85mbjcqk4laizyn82a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2plbnNsb2R5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDEwNQp9"}, "40": {"version": "106", "sha256": "0xs7xd7rfy6lb4izmgsn9lwijbm93l3cpm6avy5jh19jlpq18nkv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMDYKfQ=="}}}
, {"uuid": "audio-output-switcher@anduchs", "name": "Audio Output Switcher", "pname": "audio-output-switcher", "description": "Adds a switch for choosing audio output to the system menu.", "link": "https://extensions.gnome.org/extension/751/audio-output-switcher/", "shell_version_map": {"38": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
, {"uuid": "hibernate-status@dromi", "name": "Hibernate Status Button", "pname": "hibernate-status-button", "description": "Adds a Hibernate button in Status menu. Using Alt modifier, you can also select Hybrid Sleep instead.", "link": "https://extensions.gnome.org/extension/755/hibernate-status-button/", "shell_version_map": {"38": {"version": "27", "sha256": "0yqzg2nz040vsv0ilwkjkza03qxns18gq4055gq0c3k051jy6d4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "30", "sha256": "0jxg8cbhfkw7pblpdg7kv5058c8f9xzdav0w9hgl7xlq1hacmacv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDMwCn0="}}}
, {"uuid": "minimizeall@scharlessantos.org", "name": "Minimize All", "pname": "minimize-all", "description": "Minimize all windows in current workspace", "link": "https://extensions.gnome.org/extension/760/minimize-all/", "shell_version_map": {"38": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}}}
, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button which launches xkill.\nOn accidental click, right click to undo or click on the panel.\nCustomize position by tweaking line 47 of extension.js", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "1yww4xhww0lvfnxik8k5yfs9mhbsdd22g9sk26rf4qvqwyl7gjl4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lZ2hwcmtoL2ZvcmNlLXF1aXQvIiwKICAidXVpZCI6ICJmcUBtZWdoIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "19", "sha256": "1dmk4ilad5l22y6cnd6iwzc7zc6xr9yql3zj21cc7c0p4h1xrgca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lZ2hwcmtoL2ZvcmNlLXF1aXQvIiwKICAidXVpZCI6ICJmcUBtZWdoIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
-, {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"40": {"version": "14", "sha256": "1m0mj5p41fbbgwkyhc2csbk4hh8yhq6q4cm90ad74w4hb4fnm847", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"40": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
, {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "40": {"version": "38", "sha256": "1dw7x4x2assyqgzz9hcclkrpxpd1xkpvf31ll76573rg98n7h5kl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9UdWRtb3R1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGlwYm9hcmQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJjbGlwYm9hcmQtaW5kaWNhdG9yQHR1ZG1vdHUuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}}}
, {"uuid": "pidgin@muffinmad", "name": "Pidgin IM integration", "pname": "pidgin-im-integration", "description": "Integrate Pidgin IMs in the Gnome Shell message tray", "link": "https://extensions.gnome.org/extension/782/pidgin-im-integration/", "shell_version_map": {"40": {"version": "40", "sha256": "1cac3ys8j6hfn8rlkia32x8d5fq6hwc4g0s61h4agpnaiarmfsh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211ZmZpbm1hZC9waWRnaW4taW0tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaWRnaW5AbXVmZmlubWFkIiwKICAidmVyc2lvbiI6IDQwCn0="}}}
, {"uuid": "ShutdownTimer@neumann", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Shutdown/suspend your device after a specific time.\n\nMaximum timer value und default slider position can be modified in the settings.", "link": "https://extensions.gnome.org/extension/792/shutdowntimer/", "shell_version_map": {"38": {"version": "30", "sha256": "0y2qb5c89khs6zcknh8w4f4zfpkwc99iwsb9hj5634waf57ybi6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgeW91ciBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lLlxuXG5NYXhpbXVtIHRpbWVyIHZhbHVlIHVuZCBkZWZhdWx0IHNsaWRlciBwb3NpdGlvbiBjYW4gYmUgbW9kaWZpZWQgaW4gdGhlIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIlNodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1uZXVtYW5uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "40": {"version": "30", "sha256": "0y2qb5c89khs6zcknh8w4f4zfpkwc99iwsb9hj5634waf57ybi6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgeW91ciBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lLlxuXG5NYXhpbXVtIHRpbWVyIHZhbHVlIHVuZCBkZWZhdWx0IHNsaWRlciBwb3NpdGlvbiBjYW4gYmUgbW9kaWZpZWQgaW4gdGhlIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIlNodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1uZXVtYW5uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
@@ -64,14 +68,16 @@
, {"uuid": "hide-workspace@xenatt.github.com", "name": "Hide Workspace Thumbnails", "pname": "hide-workspace-thumbnails", "description": "Hide workspace thumbnails from the overview. But don't worry they are still present and one can switch between them like usual with e.g. shortcuts..", "link": "https://extensions.gnome.org/extension/808/hide-workspace-thumbnails/", "shell_version_map": {"40": {"version": "16", "sha256": "0443zyqr2hwq5fj3h8zch8iav83xzj4bqn1k6qd5f2z46kvzj611", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgd29ya3NwYWNlIHRodW1ibmFpbHMgZnJvbSB0aGUgb3ZlcnZpZXcuIEJ1dCBkb24ndCB3b3JyeSB0aGV5IGFyZSBzdGlsbCBwcmVzZW50IGFuZCBvbmUgY2FuIHN3aXRjaCBiZXR3ZWVuIHRoZW0gbGlrZSB1c3VhbCB3aXRoIGUuZy4gc2hvcnRjdXRzLi4iLAogICJuYW1lIjogIkhpZGUgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWRlbmhvZmVyL01pbmltYWxpc20tR25vbWUtU2hlbGwiLAogICJ1dWlkIjogImhpZGUtd29ya3NwYWNlQHhlbmF0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
, {"uuid": "keyman@dpoetzsch.github.com", "name": "KeyMan", "pname": "keyman", "description": "Access passwords from the gnome keyring in a convenient way:\nSimply search for your password and copy it to clipboad by clicking it. After a certain amount of time it will be removed automatically (default is 5 seconds). As this only works if the keyrings are unlocked, this extension also provides easy access to lock/unlock keyrings.", "link": "https://extensions.gnome.org/extension/819/keyman/", "shell_version_map": {"40": {"version": "20", "sha256": "1wd76bdnzs7mxwwyvffw0fm8r8chsblz3dinpwiyc5d5kmlnyv5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBwYXNzd29yZHMgZnJvbSB0aGUgZ25vbWUga2V5cmluZyBpbiBhIGNvbnZlbmllbnQgd2F5OlxuU2ltcGx5IHNlYXJjaCBmb3IgeW91ciBwYXNzd29yZCBhbmQgY29weSBpdCB0byBjbGlwYm9hZCBieSBjbGlja2luZyBpdC4gQWZ0ZXIgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGl0IHdpbGwgYmUgcmVtb3ZlZCBhdXRvbWF0aWNhbGx5IChkZWZhdWx0IGlzIDUgc2Vjb25kcykuIEFzIHRoaXMgb25seSB3b3JrcyBpZiB0aGUga2V5cmluZ3MgYXJlIHVubG9ja2VkLCB0aGlzIGV4dGVuc2lvbiBhbHNvIHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRvIGxvY2svdW5sb2NrIGtleXJpbmdzLiIsCiAgIm5hbWUiOiAiS2V5TWFuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrZXltYW5AcG9laGUuZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtleW1hbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcG9ldHpzY2gva2V5bWFuIiwKICAidXVpZCI6ICJrZXltYW5AZHBvZXR6c2NoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
, {"uuid": "time_tracker_jsnjack@gmail.com", "name": "Time Tracker", "pname": "time-tracker", "description": "Helps track time", "link": "https://extensions.gnome.org/extension/823/time-tracker/", "shell_version_map": {"40": {"version": "22", "sha256": "07fp4zal4s91j0z6lr07xypr7yzmc7lnnh5pplxjnyvqa5aplagy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanNuamFjay90aW1lLXRyYWNrZXIvIiwKICAidXVpZCI6ICJ0aW1lX3RyYWNrZXJfanNuamFja0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
-, {"uuid": "pwcalc@thilomaurer.de", "name": "Password Calculator", "pname": "password-calculator", "description": "This extension calculates strong passwords for each alias from your single secret. No need to remember dozens of passwords any longer. No need for a password manager any longer. Full freedom in choosing aliases and secret, e.g. alias: \"username@google.com#2014\", secret: \"saFe⚿in漢字\". Recent aliases are kept in a easily accessible drop-down. You may choose between HMAC_SHA1 and SHA1. The formula is as simple as \"[secret][alias]\" → SHA1 → BASE64 ", "link": "https://extensions.gnome.org/extension/825/password-calculator/", "shell_version_map": {"40": {"version": "22", "sha256": "1xx6jcirqhzm37nm4hjiyihnp7ry300b37xa448k9n87szv7pxv8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoaWxvbWF1cmVyL3B3Y2FsYyIsCiAgInV1aWQiOiAicHdjYWxjQHRoaWxvbWF1cmVyLmRlIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
+, {"uuid": "pwcalc@thilomaurer.de", "name": "Password Calculator", "pname": "password-calculator", "description": "This extension calculates strong passwords for each alias from your single secret. No need to remember dozens of passwords any longer. No need for a password manager any longer. Full freedom in choosing aliases and secret, e.g. alias: \"username@google.com#2014\", secret: \"saFe⚿in漢字\". Recent aliases are kept in a easily accessible drop-down. You may choose between HMAC_SHA1 and SHA1. The formula is as simple as \"[secret][alias]\" → SHA1 → BASE64 ", "link": "https://extensions.gnome.org/extension/825/password-calculator/", "shell_version_map": {"40": {"version": "24", "sha256": "1kcapf1hm7zibjjpfq1qas76xvgvf77snyxm0wy8f35h8g42wc20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoaWxvbWF1cmVyL3B3Y2FsYyIsCiAgInV1aWQiOiAicHdjYWxjQHRoaWxvbWF1cmVyLmRlIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
, {"uuid": "SwitchFocusType@romano.rgtti.com", "name": "Switch Focus Type", "pname": "switch-focus-type", "description": "Toggle between focus-follow-mouse and click-to-focus mode", "link": "https://extensions.gnome.org/extension/827/switch-focus-type/", "shell_version_map": {"38": {"version": "5", "sha256": "08vdwz4vdjdngaxizygkkgs693hnihy3wwnzw49pkdn6m006yr72", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JtYW5vL2dzZS1zd2l0Y2gtZm9jdXMtbW9kZSIsCiAgInV1aWQiOiAiU3dpdGNoRm9jdXNUeXBlQHJvbWFuby5yZ3R0aS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "radio@hslbck.gmail.com", "name": "Internet Radio", "pname": "internet-radio", "description": "Listen to an Internet Radio Stream", "link": "https://extensions.gnome.org/extension/836/internet-radio/", "shell_version_map": {"38": {"version": "14", "sha256": "013wbf3npz7f438i39cd41s6whs4lgaigv4i1zais994n9ybw5y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "15", "sha256": "0l5wi3f78shh2p23mjpjazygbw8wxnmzmwmjs0ng317ya2hnzkh4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oc2xiY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJhZGlvIiwKICAidXVpZCI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
-, {"uuid": "freon@UshakovVasilii_Github.yahoo.com", "name": "Freon", "pname": "freon", "description": "Shows CPU temperature, disk temperature, video card temperature (NVIDIA/Catalyst/Bumblebee&NVIDIA), voltage and fan RPM (forked from xtranophilist/gnome-shell-extension-sensors)", "link": "https://extensions.gnome.org/extension/841/freon/", "shell_version_map": {"38": {"version": "43", "sha256": "06jj01flj6iyx93aqz8ipzijnrammp6xqpgqwxfh0pf2clr6nwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}, "40": {"version": "44", "sha256": "0w8knrx85wd9yfjrki6vvsjwljkdcnl5677aj05f7nhg26ipsqqz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0NAp9"}}}
-, {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {"38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="}, "40": {"version": "40", "sha256": "1s4jzq1iy006k3m0r28qiayb46135y71qqv583k1sn9sppda5b4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0MAp9"}}}
-, {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "0pdf76kf6z7m9wvqsy36v1r02zfk8pgkpf21im2cq9x4qwh9gkf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInNjcmVlbnNob3Qtd2luZG93LXNpemVyQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}}}
+, {"uuid": "freon@UshakovVasilii_Github.yahoo.com", "name": "Freon", "pname": "freon", "description": "Shows CPU temperature, disk temperature, video card temperature (NVIDIA/Catalyst/Bumblebee&NVIDIA), voltage and fan RPM (forked from xtranophilist/gnome-shell-extension-sensors)", "link": "https://extensions.gnome.org/extension/841/freon/", "shell_version_map": {"38": {"version": "43", "sha256": "06jj01flj6iyx93aqz8ipzijnrammp6xqpgqwxfh0pf2clr6nwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}, "40": {"version": "45", "sha256": "129gpr57qj8c8180hzzszvkvylgg1i6ql4hwf45v49s3q17lrilh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "41": {"version": "45", "sha256": "129gpr57qj8c8180hzzszvkvylgg1i6ql4hwf45v49s3q17lrilh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {"38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="}, "40": {"version": "40", "sha256": "1s4jzq1iy006k3m0r28qiayb46135y71qqv583k1sn9sppda5b4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0MAp9"}, "41": {"version": "44", "sha256": "0pbw1w3y9clq1pmxkblsp85kw5h8znhjf223bplqhjb74g89v80z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0NAp9"}}}
+, {"uuid": "FRC@jcdubacq.dubacq.fr", "name": "French Republican Calendar", "pname": "french-republican-calendar", "description": "Displays the French Republican Calendar in the top panel", "link": "https://extensions.gnome.org/extension/874/french-republican-calendar/", "shell_version_map": {"38": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "0pdf76kf6z7m9wvqsy36v1r02zfk8pgkpf21im2cq9x4qwh9gkf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInNjcmVlbnNob3Qtd2luZG93LXNpemVyQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "41": {"version": "26", "sha256": "1n9i5x49vgafk9bxppr8hrjv86klg5yxklba0xf92xdhyx8j6sfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
, {"uuid": "mailnag@pulb.github.com", "name": "Mailnag", "pname": "mailnag", "description": "Mail indicator (GMail, IMAP, POP) for GNOME.\n\nPlease note that this extension requires the mailnag daemon.\nInstall it from your distros package repositories or get it here:\nhttps://github.com/pulb/mailnag\n\nPlease also note that this version of the extension does not support avatars (as shown in the screenshot).\nIf you like to have avatar support install this extension from your distros package repositories or get a package from here:\nhttps://github.com/pulb/mailnag-gnome-shell\n\nIMPORTANT:\nI do not get notifications for user comments. Please always report bugs here:\nhttps://github.com/pulb/mailnag-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/886/mailnag/", "shell_version_map": {"38": {"version": "20", "sha256": "15n816y34qlc7va72q75ngzw1my3n5j7xhg9a6dc0g8q4dd0g2r9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWFpbG5hZ0BwdWxiLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "21", "sha256": "060lmc6jacjv1p4a6n7c3l0kmfskq012pgrf2gar0kf49lqrp665", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm1haWxuYWdAcHVsYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
, {"uuid": "mmod-panel@mmogp.com", "name": "MMOD Panel", "pname": "mmod-panel", "description": "Upgrades the Topbar in Gnome3, creating a customizable panel and providing options for fine-tuning your Desktop Experience.\n\nFeatures include:\n▸ Set comfort levels to provide theme support and fine-tune the overall look and feel of the panel.\n▸ Set the location/position of the panel (bottom by default).\n▸ Add a button to the panel in place of the activities link, using an icon of your preference.\n▸ Auto-hide the panel when not active/in-focus (makes use of pressure/gesture for showing the panel).\n▸ Display and manage your favorites/running apps directly on the panel.\n▸ Move the date menu to the aggregate/tray area.\n▸ Access and manage your extension preferences directly from the aggregate menu.\n▸ Customize behavior of the overview and panel(hot-corners/animations/effects) to suit your preferences.\n▸ More to come soon!\n\nThis project is loosely based on the Panel Settings extension:\nhttps://github.com/eddiefullmetal/gnome-shell-extensions/tree/master/panelSettings%40eddiefullmetal.gr\n\nSadly, Panel Settings has not seen any maintenance in years, though this is why I decided to create MMOD Panel.\n\nI also took inspiration from the following Gnome extensions: System-Monitor, Taskbar, and DashToDock.\n\nFor those of you who are wondering, the theme used in the screen shot is the Zukitwo-Dark-Shell Shell Theme; \neverything else is default Gnome on Debian Buster. However, the author of the aforementioned shell theme has \nchanged the name for various reasons to Ciliora-Prima-Shell - which can be found here:\n\n http://gnome-look.org/content/show.php?content=165096\n\nVersion 10 (1.2.1-10) for Gnome-Shell: 3.10, 3.12, 3.12.2, 3.14, 3.14.4, 3.16, 3.16.2, 3.18, 3.20, 3.22, 3.24, 3.26, 3.26.2, 3.28, 3.30, 3.32, 3.34, 3.35, 3.35.91, 3.36, 3.36.3, 3.36.4, 3.36.6, 3.38, 3.38.2\nRik \n\nGerman Translation(s) for MMOD-Panel courtesy of Jonius Zeidler \n\nSource Repository: https://gitlab.com/mmod/mmod-panel/\n", "link": "https://extensions.gnome.org/extension/898/mmod-panel/", "shell_version_map": {"38": {"version": "10", "sha256": "00c52ddg039hd0r6qkq8hmhcl6x6s8lbndn7g53cscjwd0yqxk7j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cblZlcnNpb24gMTAgKDEuMi4xLTEwKSBmb3IgR25vbWUtU2hlbGw6IDMuMTAsIDMuMTIsIDMuMTIuMiwgMy4xNCwgMy4xNC40LCAzLjE2LCAzLjE2LjIsIDMuMTgsIDMuMjAsIDMuMjIsIDMuMjQsIDMuMjYsIDMuMjYuMiwgMy4yOCwgMy4zMCwgMy4zMiwgMy4zNCwgMy4zNSwgMy4zNS45MSwgMy4zNiwgMy4zNi4zLCAzLjM2LjQsIDMuMzYuNiwgMy4zOCwgMy4zOC4yXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xMi4yIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE0LjQiLAogICAgIjMuMTYuMiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4yNi4yIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuMzYuMyIsCiAgICAiMy4zNi40IiwKICAgICIzLjM1LjkxIiwKICAgICIzLjM2LjYiLAogICAgIjMuMzguMiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21tb2QvbW1vZC1wYW5lbC8iLAogICJ1dWlkIjogIm1tb2QtcGFuZWxAbW1vZ3AuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "modern-calc@kaer", "name": "Modern Calc", "pname": "modern-calc", "description": "A full featured calculator for gnome-shell.", "link": "https://extensions.gnome.org/extension/900/modern-calc/", "shell_version_map": {"38": {"version": "11", "sha256": "0f0fmldcr8ywghp8w61wvi2qb29yc82xmgkqb7khj14zgv4l6apw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBjYWxjdWxhdG9yIGZvciBnbm9tZS1zaGVsbC4iLAogICJuYW1lIjogIk1vZGVybiBDYWxjIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkthZXIgKHRoZS50aGluLmtpbmcud2F5KzIwMTRAZ21haWwuY29tKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb2Rlcm4tY2FsYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1vZGVybi1jYWxjIiwKICAidXVpZCI6ICJtb2Rlcm4tY2FsY0BrYWVyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "disconnect-wifi@kgshank.net", "name": "Disconnect Wifi", "pname": "disconnect-wifi", "description": "Adds a Disconnect option for Wifi in status menu, when a network is connected. Shows a Reconnect option, after network is disconnected.", "link": "https://extensions.gnome.org/extension/904/disconnect-wifi/", "shell_version_map": {"38": {"version": "28", "sha256": "0j5f3ckx43zqdhr5iby36rhllgd9pvl8sshpzwfwdwff220yablr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtZGlzY29ubmVjdC13aWZpIiwKICAidXVpZCI6ICJkaXNjb25uZWN0LXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "0j5f3ckx43zqdhr5iby36rhllgd9pvl8sshpzwfwdwff220yablr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtZGlzY29ubmVjdC13aWZpIiwKICAidXVpZCI6ICJkaXNjb25uZWN0LXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
, {"uuid": "refresh-wifi@kgshank.net", "name": "Refresh Wifi Connections", "pname": "refresh-wifi-connections", "description": "This extension adds a refresh button to the Wi-Fi connection selection dialog to manually request for a network scan.\n\nNOTE: In GNOME Shell 3.32 and above, the available network list is automatically updated every 15 seconds, so most people probably don't need this extension anymore.", "link": "https://extensions.gnome.org/extension/905/refresh-wifi-connections/", "shell_version_map": {"38": {"version": "14", "sha256": "18jszbk9sszyjvjdh28s1ynj8s5f8y5xqh4mqy1msnbg68m228bc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtcmVmcmVzaC13aWZpIiwKICAidXVpZCI6ICJyZWZyZXNoLXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
, {"uuid": "sound-output-device-chooser@kgshank.net", "name": "Sound Input & Output Device Chooser", "pname": "sound-output-device-chooser", "description": "Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI , Speakers etc. of the same device are also displayed for selection. V20+ needs python as dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English", "link": "https://extensions.gnome.org/extension/906/sound-output-device-chooser/", "shell_version_map": {"38": {"version": "38", "sha256": "1dxn1cag03y9kak9pipniwazqai3mxizmhjm5gp86ifgaaaps5sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAzOAp9"}, "40": {"version": "38", "sha256": "1dxn1cag03y9kak9pipniwazqai3mxizmhjm5gp86ifgaaaps5sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAzOAp9"}}}
@@ -79,14 +85,14 @@
, {"uuid": "ping_indicator@trifonovkv.gmail.com", "name": "Ping Indicator", "pname": "ping-indicator", "description": "Display ping time", "link": "https://extensions.gnome.org/extension/923/ping-indicator/", "shell_version_map": {"38": {"version": "24", "sha256": "0arxcaxpybc1as2d9dqmmswjnjj7p11rvss4s84x6kz8i4xbhjy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcGluZyB0aW1lIiwKICAibmFtZSI6ICJQaW5nIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9waW5nX2luZGljYXRvciIsCiAgInV1aWQiOiAicGluZ19pbmRpY2F0b3JAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
, {"uuid": "transcode-appsearch@k.kubusha@gmail.com", "name": "Transcode App Search", "pname": "transcodeappsearch", "description": "Searching apps both direct and transcoded name (English, Russian, Ukrainian langs)", "link": "https://extensions.gnome.org/extension/928/transcodeappsearch/", "shell_version_map": {"38": {"version": "8", "sha256": "1v6yzp4s0a0i5l9f4la1l9yr83pcpwmrpb5970x48i75mlmlnmjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0YXR5YW4vZ25vbWUtZXh0ZW5zaW9uLXRyYW5zY29kZS1zZWFyY2hhcHAiLAogICJ1dWlkIjogInRyYW5zY29kZS1hcHBzZWFyY2hAay5rdWJ1c2hhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "1v6yzp4s0a0i5l9f4la1l9yr83pcpwmrpb5970x48i75mlmlnmjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0YXR5YW4vZ25vbWUtZXh0ZW5zaW9uLXRyYW5zY29kZS1zZWFyY2hhcHAiLAogICJ1dWlkIjogInRyYW5zY29kZS1hcHBzZWFyY2hAay5rdWJ1c2hhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"uuid": "synaptic-button@fthx", "name": "Synaptic Button", "pname": "synaptic-button", "description": "Button that directly starts Synaptic package manager.\n\n For snap management without Snap Store, consider Snap Manager extension.", "link": "https://extensions.gnome.org/extension/938/synaptic-button/", "shell_version_map": {"38": {"version": "4", "sha256": "0wdi35qz5rxs4fvcxlrvlyslrspsgfkryvh0na9vakbvhpmv7skv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBTeW5hcHRpYyBwYWNrYWdlIG1hbmFnZXIuXG5cbiBGb3Igc25hcCBtYW5hZ2VtZW50IHdpdGhvdXQgU25hcCBTdG9yZSwgY29uc2lkZXIgU25hcCBNYW5hZ2VyIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlN5bmFwdGljIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3luYXB0aWMtYnV0dG9uIiwKICAidXVpZCI6ICJzeW5hcHRpYy1idXR0b25AZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage Intel_pstate CPU Frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "23", "sha256": "1iv23vr8zkarclll41h0h8hx7dhh3q84lsmpn8igib7x7d65mslx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBJbnRlbF9wc3RhdGUgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW4zMTgyMS9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
-, {"uuid": "world_clock_lite@ailin.nemui", "name": "Panel World Clock (Lite)", "pname": "panel-world-clock-lite", "description": "A world clock for the panel\n\nInstall gnome-clocks to get started!\nHint: Eiðar has the same time as UTC\n\nGnome ≤3.14? https://extensions.gnome.org/extension/697/panel-world-clock/", "link": "https://extensions.gnome.org/extension/946/panel-world-clock-lite/", "shell_version_map": {"38": {"version": "11", "sha256": "0sg76mlvyy0m6yqv6qrmyizhjd54qp8knra3z0sna1xxg0i51d42", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "13", "sha256": "1v0p6ia7x8gs2ld0mz78lhavwa32gx8r81j14kng626f91c965j3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid29ybGRfY2xvY2tfbGl0ZUBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage your CPU's frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "23", "sha256": "0qb4ldqpcsd7kangy6gf63pfzsq0g4p92d5gci2d6hhn7iywgskb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW4zMTgyMS9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "world_clock_lite@ailin.nemui", "name": "Panel World Clock (Lite)", "pname": "panel-world-clock-lite", "description": "A world clock for the panel\n\nInstall gnome-clocks (native, NO Flatpak, NO Snap) to get started!\nHint: Eiðar has the same time as UTC\n\nGnome ≤3.14? https://extensions.gnome.org/extension/697/panel-world-clock/", "link": "https://extensions.gnome.org/extension/946/panel-world-clock-lite/", "shell_version_map": {"38": {"version": "11", "sha256": "1l2z6ri0ga526p1zcy9wjidcfj4hs92nv9r0arsmq4xr8581pfpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "14", "sha256": "1vlfl934m8l54psnfa4rk5n9k0va3224ksn9l0fdvdcg7daiq5gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vlfl934m8l54psnfa4rk5n9k0va3224ksn9l0fdvdcg7daiq5gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
, {"uuid": "dim-on-battery@nailfarmer.nailfarmer.com", "name": "Dim On Battery Power", "pname": "dim-on-battery-power", "description": "Automatically dims the screen when the machine is running on battery power.", "link": "https://extensions.gnome.org/extension/947/dim-on-battery-power/", "shell_version_map": {"38": {"version": "25", "sha256": "0aqcw2lbcya5x9xx2y8srfjjar9jww9hzsxqx44h65jdw1zdl1vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbmFpbGZhcm1lci9nbm9tZS1zaGVsbC1kaW0tb24tYmF0dGVyeS1leHRlbnNpb24iLAogICJ1dWlkIjogImRpbS1vbi1iYXR0ZXJ5QG5haWxmYXJtZXIubmFpbGZhcm1lci5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "25", "sha256": "0aqcw2lbcya5x9xx2y8srfjjar9jww9hzsxqx44h65jdw1zdl1vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbmFpbGZhcm1lci9nbm9tZS1zaGVsbC1kaW0tb24tYmF0dGVyeS1leHRlbnNpb24iLAogICJ1dWlkIjogImRpbS1vbi1iYXR0ZXJ5QG5haWxmYXJtZXIubmFpbGZhcm1lci5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
, {"uuid": "bottompanel@tmoer93", "name": "BottomPanel", "pname": "bottompanel", "description": "Moves the GNOME panel to the bottom of the screen\n\nSource here: https://github.com/Thoma5/gnome-shell-extension-bottompanel", "link": "https://extensions.gnome.org/extension/949/bottompanel/", "shell_version_map": {"38": {"version": "11", "sha256": "0r4z1pww6w8q0f7gzsmc363hd2178r40ifsppyigj67mwwik3mkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBHTk9NRSBwYW5lbCB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW5cblxuU291cmNlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UaG9tYTUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJvdHRvbXBhbmVsIiwKICAibmFtZSI6ICJCb3R0b21QYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJib3R0b21wYW5lbEB0bW9lcjkzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "dejadup-backup@fthx", "name": "Déjà Dup Backup Button", "pname": "deja-dup-backup-button", "description": "Button that directly starts Déjà Dup backup, following Déjà Dup backup settings.\n\n It simply runs 'deja-dup --backup' and shows Déjà Dup window during backup.", "link": "https://extensions.gnome.org/extension/955/deja-dup-backup-button/", "shell_version_map": {"38": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "switcher@landau.fi", "name": "Switcher", "pname": "switcher", "description": "Switch windows or launch applications quickly by typing\n\nUse the configured global hotkey (Super+w by default) to open a list of current windows. Type a part of the name or title of the application window you want to activate and hit enter or click on the item you wish to activate. You can use the arrow keys to navigate among the filtered selection and type several space separated search terms to filter further. If your search matches launchable apps, those are shown in the list too. Use Esc or click anywhere outside the switcher to cancel.\n\nYou can customize the look and feel and functionality in the preferences.", "link": "https://extensions.gnome.org/extension/973/switcher/", "shell_version_map": {"38": {"version": "32", "sha256": "188bfj4b0kslja757fc70xhjqj5blk2jcdjfd2pvm6g2cxslfjg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "33", "sha256": "1dk91bvmjqr4hrsldb6ikvrd6ihk5flbg8wfhfnmq4c18kynsv9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDMzCn0="}}}
-, {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows the keyboard modifiers status. It's much useful when accessibility feature - sticky keys is active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {"38": {"version": "10", "sha256": "18xaalz41miyyqb0mp4lzdz48441xj5rwc8myvnk1n8jmmm7l1k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBrZXlib2FyZCBtb2RpZmllcnMgc3RhdHVzLiBJdCdzIG11Y2ggdXNlZnVsIHdoZW4gYWNjZXNzaWJpbGl0eSBmZWF0dXJlIC0gc3RpY2t5IGtleXMgaXMgYWN0aXZlLiIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgTW9kaWZpZXJzIFN0YXR1cyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJzbmVldHNoZXJAbG9jYWxob3N0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
-, {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change led size", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "switcher@landau.fi", "name": "Switcher", "pname": "switcher", "description": "Switch windows or launch applications quickly by typing\n\nUse the configured global hotkey (Super+w by default) to open a list of current windows. Type a part of the name or title of the application window you want to activate and hit enter or click on the item you wish to activate. You can use the arrow keys to navigate among the filtered selection and type several space separated search terms to filter further. If your search matches launchable apps, those are shown in the list too. Use Esc or click anywhere outside the switcher to cancel.\n\nYou can customize the look and feel and functionality in the preferences.", "link": "https://extensions.gnome.org/extension/973/switcher/", "shell_version_map": {"38": {"version": "32", "sha256": "188bfj4b0kslja757fc70xhjqj5blk2jcdjfd2pvm6g2cxslfjg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "33", "sha256": "1dk91bvmjqr4hrsldb6ikvrd6ihk5flbg8wfhfnmq4c18kynsv9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "34", "sha256": "1bgj8w7qlz4kv70k6rjmm5f5rygn2n5fp0rd29jj1wfm50hfvzg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
+, {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows keyboard modifiers status. It's useful when sticky keys are active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {"38": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}, "41": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change led size", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
, {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "29", "sha256": "06c9mjvld326cwjqja3gb7nmi010xf3sglgnbkf48l7av96mfd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pheXN0cmljdG9yL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmciLAogICJ1dWlkIjogInN5bmN0aGluZ2ljb25AamF5LnN0cmljdEBwb3N0ZW8uZGUiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
, {"uuid": "window-search-provider@quelltexter.org", "name": "Window Search Provider", "pname": "window-search-provider", "description": "Provide active windows as search results in overview", "link": "https://extensions.gnome.org/extension/1001/window-search-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "030s38akm3fw7nq9v4wfgzhw716b51l2z3szns0gcwc0gx5zpfjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYWN0aXZlIHdpbmRvd3MgYXMgc2VhcmNoIHJlc3VsdHMgaW4gb3ZlcnZpZXciLAogICJuYW1lIjogIldpbmRvdyBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rbG9yZW56L2dub21lLXNoZWxsLXdpbmRvdy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogIndpbmRvdy1zZWFyY2gtcHJvdmlkZXJAcXVlbGx0ZXh0ZXIub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "windowIsReady_Remover@nunofarruca@gmail.com", "name": "Window Is Ready - Notification Remover", "pname": "window-is-ready-notification-remover", "description": "Removes window is ready Notification", "link": "https://extensions.gnome.org/extension/1007/window-is-ready-notification-remover/", "shell_version_map": {"38": {"version": "12", "sha256": "1xxaqhj1xv23k5d4r4kxybnf2jj23nwbva9nk1nrs5abdl05dpc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "1xxaqhj1xv23k5d4r4kxybnf2jj23nwbva9nk1nrs5abdl05dpc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
@@ -94,7 +100,7 @@
, {"uuid": "dynamic-panel-transparency@rockon999.github.io", "name": "Dynamic Panel Transparency", "pname": "dynamic-panel-transparency", "description": "Miss dynamic panel transparency in 3.32 and up? Try the original dynamic panel with much more customization! This extension will fade your top panel to nothingness when there are no maximized windows present! Never again will the panel be abruptly darkened.\n\nMay be incompatible with some extensions that make extensive changes to the panel.\n\nIf your theme isn't working correctly with this extension enable 'Remove Excessive Panel Styling' in the Background section of preferences. This particularly impacts the default *Ubuntu* theme!", "link": "https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/", "shell_version_map": {"38": {"version": "34", "sha256": "10w5kvmspy4rp4jnwx0rj2crbdyi1lxv81vhi8zx490fhwgmlkvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V3bHNoL2R5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5LyIsCiAgInV1aWQiOiAiZHluYW1pYy1wYW5lbC10cmFuc3BhcmVuY3lAcm9ja29uOTk5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzNAp9"}, "40": {"version": "35", "sha256": "1znc564xd7n4k2klfc0kkip6hmadqdsa50p0sq0717h407m9p0vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ld2xzaC9keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeS8iLAogICJ1dWlkIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5QHJvY2tvbjk5OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
, {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "10", "sha256": "09835gdpq5ssx14dar2m0hgi97a2k0hias9ffb3vpwyqw2d5jm30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "09835gdpq5ssx14dar2m0hgi97a2k0hias9ffb3vpwyqw2d5jm30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"uuid": "taskwhisperer-extension@infinicode.de", "name": "TaskWhisperer", "pname": "taskwhisperer", "description": "Taskwhisperer is a extension for TaskWarrior Application https://taskwarrior.org. It is to display upcoming tasks and task details as well as to create and modify them.\n", "link": "https://extensions.gnome.org/extension/1039/taskwhisperer/", "shell_version_map": {"38": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n - Unsplash (https://unsplash.com/)\n - Wallhaven (https://alpha.wallhaven.cc/)\n - Reddit (https://reddit.com)\n - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "0gwcqd5wzjnp3r4mpcbacbqk9j9v4pxh2wlcl5ssinj8z4pxm5qj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "25", "sha256": "1nqa901ilmdr9wxxs11mbcb96qwzwz6ckaimx8y0vpnrdzackmx4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNS4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n - Unsplash (https://unsplash.com/)\n - Wallhaven (https://alpha.wallhaven.cc/)\n - Reddit (https://reddit.com)\n - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "0gwcqd5wzjnp3r4mpcbacbqk9j9v4pxh2wlcl5ssinj8z4pxm5qj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "26", "sha256": "0izjsa7h1x3yn67dxw1a1mp6qmn7xpp39ay3iha5i2pisznfgrni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNi4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
, {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "16", "sha256": "1ag94vhwx67cpdc4ry307lxrj60nkkwwd9kv49k5mfwy9hbxpbf3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "1ag94vhwx67cpdc4ry307lxrj60nkkwwd9kv49k5mfwy9hbxpbf3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
, {"uuid": "timezone@jwendell", "name": "Timezone", "pname": "timezone", "description": "See people with their timezones from the Shell", "link": "https://extensions.gnome.org/extension/1060/timezone/", "shell_version_map": {"40": {"version": "18", "sha256": "1ksb8pm2y4lxjcwn2l0yj6piz5cqgmzx6k4rygx1mbh5y76mwdji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
, {"uuid": "On_Screen_Keyboard_Button@bradan.eu", "name": "On Screen Keyboard Button", "pname": "on-screen-keyboard-button", "description": "Shows or hides the OSK via top bar button. It works with X, not with wayland. Wayland has it's own technique: swipe the keyboard up from the bottom display edge.\n\nSource code: https://github.com/Bradan/Gnome-On-Screen-Keyboard-Button", "link": "https://extensions.gnome.org/extension/1061/on-screen-keyboard-button/", "shell_version_map": {"38": {"version": "5", "sha256": "0z3jcv5gzv1pwfla9ghp5kjljc5n80fcab0d2c2i2pw7y7kvpabr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG9yIGhpZGVzIHRoZSBPU0sgdmlhIHRvcCBiYXIgYnV0dG9uLiBJdCB3b3JrcyB3aXRoIFgsIG5vdCB3aXRoIHdheWxhbmQuIFdheWxhbmQgaGFzIGl0J3Mgb3duIHRlY2huaXF1ZTogc3dpcGUgdGhlIGtleWJvYXJkIHVwIGZyb20gdGhlIGJvdHRvbSBkaXNwbGF5IGVkZ2UuXG5cblNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vQnJhZGFuL0dub21lLU9uLVNjcmVlbi1LZXlib2FyZC1CdXR0b24iLAogICJuYW1lIjogIk9uIFNjcmVlbiBLZXlib2FyZCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiT25fU2NyZWVuX0tleWJvYXJkX0J1dHRvbkBicmFkYW4uZXUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
@@ -103,7 +109,7 @@
, {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "12", "sha256": "0m0wsgpx390qkx6csicsfdp5v9pa15xpyk57ym7hbr8947h77494", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFwaGFlbFJvY2hldC9hcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgInV1aWQiOiAiYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXBAUmFwaGFlbFJvY2hldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
, {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "35", "sha256": "0arb73gv1y5krlqwpqwzynpd2ki8wlv47xx0zpjlal066pyyjgfw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VraS90d2l0Y2hsaXZlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiVHdpdGNoTGl2ZV9QYW5lbEBleHRlbnNpb25zLm1hd2VraS5kZSIsCiAgInZlcnNpb24iOiAzNQp9"}}}
, {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "50", "sha256": "0s4hgdh4yg5dachns0zf3m7xyc7ycc6jjapg3b3352i0rgw8cfdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IvY3B1ZnJlcSIsCiAgInV1aWQiOiAiY3B1ZnJlcUBrb25rb3IiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}, "40": {"version": "50", "sha256": "0s4hgdh4yg5dachns0zf3m7xyc7ycc6jjapg3b3352i0rgw8cfdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IvY3B1ZnJlcSIsCiAgInV1aWQiOiAiY3B1ZnJlcUBrb25rb3IiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}}}
-, {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}}}
, {"uuid": "gnome-shell-go-to-last-workspace@github.com", "name": "Go To Last Workspace", "pname": "go-to-last-workspace", "description": "Quickly toggle between two workspaces with one key", "link": "https://extensions.gnome.org/extension/1089/go-to-last-workspace/", "shell_version_map": {"38": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"uuid": "KeepAwake@jepfa.de", "name": "Keep awake!", "pname": "keep-awake", "description": "Keep your computer awake! Forbid your computer to activate sceensaver, turn off the screen or suspend when it is idle for a while. Click the indicator icon (in the taskbar) once to keep your computer awake for the session. Click again to enable persistance of this setting between restarts (indicated by a small lock icon on the indicator). Switch off by clicking again.", "link": "https://extensions.gnome.org/extension/1097/keep-awake/", "shell_version_map": {"38": {"version": "6", "sha256": "1lmwq4ng14jvpzd3fnwc8bilvyigya46d8il8m16g1596p3hikdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgRm9yYmlkIHlvdXIgY29tcHV0ZXIgdG8gYWN0aXZhdGUgc2NlZW5zYXZlciwgdHVybiBvZmYgdGhlIHNjcmVlbiBvciBzdXNwZW5kIHdoZW4gaXQgaXMgaWRsZSBmb3IgYSB3aGlsZS4gQ2xpY2sgdGhlIGluZGljYXRvciBpY29uIChpbiB0aGUgdGFza2Jhcikgb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBzZXNzaW9uLiBDbGljayBhZ2FpbiB0byBlbmFibGUgcGVyc2lzdGFuY2Ugb2YgdGhpcyBzZXR0aW5nIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gU3dpdGNoIG9mZiBieSBjbGlja2luZyBhZ2Fpbi4iLAogICJuYW1lIjogIktlZXAgYXdha2UhIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {"38": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
@@ -117,40 +123,40 @@
, {"uuid": "desk-changer@eric.gach.gmail.com", "name": "Desk Changer", "pname": "desk-changer", "description": "Simple wallpaper changer with multiple profile support. Integrates into the shell by providing it's own panel icon. The daemon is written using gjs and runs independently of the extension as a background process.", "link": "https://extensions.gnome.org/extension/1131/desk-changer/", "shell_version_map": {"38": {"version": "22", "sha256": "1da77qa05lcmn22kq055dh3k5qqav9lqh75ylkqsxvkpg5k5w8hg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0JpZ0UvZGVzay1jaGFuZ2VyLyIsCiAgInV1aWQiOiAiZGVzay1jaGFuZ2VyQGVyaWMuZ2FjaC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "22", "sha256": "1da77qa05lcmn22kq055dh3k5qqav9lqh75ylkqsxvkpg5k5w8hg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0JpZ0UvZGVzay1jaGFuZ2VyLyIsCiAgInV1aWQiOiAiZGVzay1jaGFuZ2VyQGVyaWMuZ2FjaC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
, {"uuid": "Shortcuts@kyle.aims.ac.za", "name": "Shortcuts", "pname": "shortcuts", "description": "This shows a pop-up of useful keyboard shortcuts when Super + S is pressed", "link": "https://extensions.gnome.org/extension/1144/shortcuts/", "shell_version_map": {"38": {"version": "6", "sha256": "1ma022dlhhk0ia7j8b1lm52arq9zz7in4x02hdvs0k29jcl4f9dd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIFN1cGVyICsgUyBpcyBwcmVzc2VkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2hvcnRjdXRzIiwKICAibmFtZSI6ICJTaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "sensory-perception@HarlemSquirrel.github.io", "name": "Sensory Perception", "pname": "sensory-perception", "description": "Requires lm-sensors (or lm_sensors). Shows CPU temperature, disk temperature, video card temperature, voltage and fan RPM.", "link": "https://extensions.gnome.org/extension/1145/sensory-perception/", "shell_version_map": {"38": {"version": "13", "sha256": "16wc49khyk5arsis8kzpjgl6nl8gccc2y5sspq8rwnab22jnzwjh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFybGVtU3F1aXJyZWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlbnNvcnktcGVyY2VwdGlvbiIsCiAgInV1aWQiOiAic2Vuc29yeS1wZXJjZXB0aW9uQEhhcmxlbVNxdWlycmVsLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "14", "sha256": "1g3yvzpvvrpg90vhgqabp028mgxpsfy2xzqpbg5d4zriam94ply8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcmxlbVNxdWlycmVsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3J5LXBlcmNlcHRpb24iLAogICJ1dWlkIjogInNlbnNvcnktcGVyY2VwdGlvbkBIYXJsZW1TcXVpcnJlbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"uuid": "activityAppLauncher@rastersoft.com", "name": "Activity App Launcher", "pname": "activity-app-launcher", "description": "Integrates a category-based application launcher in the activities window. IMPORTANT: it needs the 'gnome-menus' and 'libgnome-menu-3-dev'; they must be installed in the system before installing this extension.", "link": "https://extensions.gnome.org/extension/1149/activity-app-launcher/", "shell_version_map": {"38": {"version": "31", "sha256": "18jqnk4psdvdx1hydfss1870v0gnpxkmsm5yasnb0m5m484in0qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}, "40": {"version": "32", "sha256": "0h1pnv64jcyi0h7m8bk1rr0pfiz7pn6s08v10b2x3jmpdzahxxcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
+, {"uuid": "activityAppLauncher@rastersoft.com", "name": "Activity App Launcher", "pname": "activity-app-launcher", "description": "Integrates a category-based application launcher in the activities window. IMPORTANT: it needs the 'gnome-menus' and 'libgnome-menu-3-dev'; they must be installed in the system before installing this extension.", "link": "https://extensions.gnome.org/extension/1149/activity-app-launcher/", "shell_version_map": {"38": {"version": "31", "sha256": "18jqnk4psdvdx1hydfss1870v0gnpxkmsm5yasnb0m5m484in0qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}, "40": {"version": "32", "sha256": "0h1pnv64jcyi0h7m8bk1rr0pfiz7pn6s08v10b2x3jmpdzahxxcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "41": {"version": "32", "sha256": "0h1pnv64jcyi0h7m8bk1rr0pfiz7pn6s08v10b2x3jmpdzahxxcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
, {"uuid": "shutdown-timer-gnome-shell-extension", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Allows to shutdown, restart and suspend computer after selected amount of time or in selected time.", "link": "https://extensions.gnome.org/extension/1152/shutdowntimer/", "shell_version_map": {"40": {"version": "9", "sha256": "1y69lv3mq66xxfxabngnbb104d26i05cyhmx3dqf4kyf1kd6jqvx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzaHV0ZG93biwgcmVzdGFydCBhbmQgc3VzcGVuZCBjb21wdXRlciBhZnRlciBzZWxlY3RlZCBhbW91bnQgb2YgdGltZSBvciBpbiBzZWxlY3RlZCB0aW1lLiIsCiAgImdldHRleHQtZG9tYWluIjogIkF1dG9tYXRpY1NodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b21hdGljLXNodXRkb3duLXRpbWVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21rcmFqbmFrL3NodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiA5Cn0="}}}
, {"uuid": "dash-to-panel@jderose9.github.com", "name": "Dash to Panel", "pname": "dash-to-panel", "description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.", "link": "https://extensions.gnome.org/extension/1160/dash-to-panel/", "shell_version_map": {"38": {"version": "42", "sha256": "18qgq3v50l6md7g6q1jsd7v1irbphxwk5p9qxm1wcpyhad34dd7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyAmZ3Q7IFRpdGxlYmFyIEJ1dHRvbnMgJmd0OyBNaW5pbWl6ZSAmYW1wOyBNYXhpbWl6ZS5cblxuRm9yIHRoZSBiZXN0IHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyBvbiBHaXRodWIuIERhc2gtdG8tcGFuZWwgaXMgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGJ5IEBqZGVyb3NlOSBhbmQgQGNoYXJsZXNnOTkuIiwKICAiZXh0ZW5zaW9uLWlkIjogImRhc2gtdG8tcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXNoLXRvLXBhbmVsIiwKICAibmFtZSI6ICJEYXNoIHRvIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}, "40": {"version": "43", "sha256": "1h44cfb7zcpw9vsl85ry9g232vfqg7hgnrxd19w5i2wxhrw7712j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyAmZ3Q7IFRpdGxlYmFyIEJ1dHRvbnMgJmd0OyBNaW5pbWl6ZSAmYW1wOyBNYXhpbWl6ZS5cblxuRm9yIHRoZSBiZXN0IHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyBvbiBHaXRodWIuIERhc2gtdG8tcGFuZWwgaXMgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGJ5IEBqZGVyb3NlOSBhbmQgQGNoYXJsZXNnOTkuIiwKICAiZXh0ZW5zaW9uLWlkIjogImRhc2gtdG8tcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXNoLXRvLXBhbmVsIiwKICAibmFtZSI6ICJEYXNoIHRvIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pkZXJvc2U5L2Rhc2gtdG8tcGFuZWwiLAogICJ1dWlkIjogImRhc2gtdG8tcGFuZWxAamRlcm9zZTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}}}
, {"uuid": "emoji-selector@maestroschan.fr", "name": "Emoji Selector", "pname": "emoji-selector", "description": "This extension provides a parametrable popup menu displaying most emojis, clicking on an emoji copies it to the clipboard. An appropriate font like 'Twitter Color Emoji' or 'JoyPixels Color' should be installed on your system for a better visual result.", "link": "https://extensions.gnome.org/extension/1162/emoji-selector/", "shell_version_map": {"38": {"version": "20", "sha256": "1i6py149m46xig5a0ry7y5v887nlzw644mw72gcr2hkfsn8b0gnd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHByb3ZpZGVzIGEgcGFyYW1ldHJhYmxlIHBvcHVwIG1lbnUgZGlzcGxheWluZyBtb3N0IGVtb2ppcywgY2xpY2tpbmcgb24gYW4gZW1vamkgY29waWVzIGl0IHRvIHRoZSBjbGlwYm9hcmQuIEFuIGFwcHJvcHJpYXRlIGZvbnQgbGlrZSAnVHdpdHRlciBDb2xvciBFbW9qaScgb3IgJ0pveVBpeGVscyBDb2xvcicgc2hvdWxkIGJlIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSBmb3IgYSBiZXR0ZXIgdmlzdWFsIHJlc3VsdC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1zZWxlY3RvciIsCiAgIm5hbWUiOiAiRW1vamkgU2VsZWN0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZW1vamktc2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovZW1vamktc2VsZWN0b3ItZm9yLWdub21lIiwKICAidXVpZCI6ICJlbW9qaS1zZWxlY3RvckBtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
, {"uuid": "gnome-kinit@bonzini.gnu.org", "name": "Kerberos login", "pname": "kerberos-login", "description": "Provide a system menu item to renew Kerberos tickets", "link": "https://extensions.gnome.org/extension/1165/kerberos-login/", "shell_version_map": {"40": {"version": "3", "sha256": "0b9yr3ixrlr1ngc8f68spddpk94nz367cvrklf02598jj48sgxbl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImdub21lLWtpbml0QGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "calculator-button@amivaleo", "name": "Calculator Button", "pname": "calculator-button", "description": "A button to easily open gnome-calculator.\n Credits to extensions.gnome.org/extension/939/display-button/\n\nv10:\n1 - added support for gnome 3.38\n2 - added support for flatpak version of gnome-calculator", "link": "https://extensions.gnome.org/extension/1168/calculator-button/", "shell_version_map": {"38": {"version": "10", "sha256": "1c6b53im6xj4yaf4skvchvgipxfjs2yh3i5r75cw9avnw7imnwk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIHRvIGVhc2lseSBvcGVuIGdub21lLWNhbGN1bGF0b3IuXG4gQ3JlZGl0cyB0byBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vOTM5L2Rpc3BsYXktYnV0dG9uL1xuXG52MTA6XG4xIC0gYWRkZWQgc3VwcG9ydCBmb3IgZ25vbWUgMy4zOFxuMiAtIGFkZGVkIHN1cHBvcnQgZm9yIGZsYXRwYWsgdmVyc2lvbiBvZiBnbm9tZS1jYWxjdWxhdG9yIiwKICAibmFtZSI6ICJDYWxjdWxhdG9yIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL0NhbGN1bGF0b3ItQnV0dG9uIiwKICAidXVpZCI6ICJjYWxjdWxhdG9yLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
, {"uuid": "screenshotlocations.timur@linux.com", "name": "Screenshot Locations", "pname": "screenshot-locations", "description": "Change the default GNOME screenshot directory", "link": "https://extensions.gnome.org/extension/1179/screenshot-locations/", "shell_version_map": {"38": {"version": "7", "sha256": "0ymb4m8fgxgi964fdfdqwgjw95qbcm906zgqmyqxgd4ggip3mn47", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMuZGF0YS5ncmVzb3VyY2UiLAogICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2UgdGhlIGRlZmF1bHQgR05PTUUgc2NyZWVuc2hvdCBkaXJlY3RvcnkiLAogICJuYW1lIjogIlNjcmVlbnNob3QgTG9jYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLXNjcmVlbnNob3Rsb2NhdGlvbnMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzY3JlZW5zaG90bG9jYXRpb25zLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "8", "sha256": "0cxsq1zzmgn6q32wbdfw9hai62li92dwvwnzq2pdbskp9qm6v7nd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgZGVmYXVsdCBHTk9NRSBzY3JlZW5zaG90IGRpcmVjdG9yeSIsCiAgImdldHRleHQtZG9tYWluIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IExvY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW5zaG90bG9jYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdGxvY2F0aW9ucy1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "utcclock@injcristianrojas.github.com", "name": "UTCClock", "pname": "utcclock", "description": "UTC clock for the top bar. Supports GNOME 3.32 and up (even GNOME 40).\n\nAny issues?, please send them to https://github.com/injcristianrojas/UTCClock/issues", "link": "https://extensions.gnome.org/extension/1183/utcclock/", "shell_version_map": {"38": {"version": "24", "sha256": "1i286vqll6wqm42w3kha5db2vw9d9gqmkwwlb3l4lsy5n4wzc1jx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIFN1cHBvcnRzIEdOT01FIDMuMzIgYW5kIHVwIChldmVuIEdOT01FIDQwKS5cblxuQW55IGlzc3Vlcz8sIHBsZWFzZSBzZW5kIHRoZW0gdG8gaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2svaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVVRDQ2xvY2siLAogICJuYW1lIjogIlVUQ0Nsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnV0Y2Nsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy9VVENDbG9jayIsCiAgInV1aWQiOiAidXRjY2xvY2tAaW5qY3Jpc3RpYW5yb2phcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "1i286vqll6wqm42w3kha5db2vw9d9gqmkwwlb3l4lsy5n4wzc1jx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIFN1cHBvcnRzIEdOT01FIDMuMzIgYW5kIHVwIChldmVuIEdOT01FIDQwKS5cblxuQW55IGlzc3Vlcz8sIHBsZWFzZSBzZW5kIHRoZW0gdG8gaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2svaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVVRDQ2xvY2siLAogICJuYW1lIjogIlVUQ0Nsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnV0Y2Nsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy9VVENDbG9jayIsCiAgInV1aWQiOiAidXRjY2xvY2tAaW5qY3Jpc3RpYW5yb2phcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
-, {"uuid": "show-desktop-button@amivaleo", "name": "Show Desktop Button", "pname": "show-desktop-button", "description": "Minimize/unminimize all open windows in a single click.", "link": "https://extensions.gnome.org/extension/1194/show-desktop-button/", "shell_version_map": {"38": {"version": "17", "sha256": "010zh65pxwx16pnvqblnyh3cfmpnpxmmz7hd2r07rbw8mcyhd62h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyBpbiBhIHNpbmdsZSBjbGljay4iLAogICJleHRlbnNpb24taWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImdldHRleHQtZG9tYWluIjogInNob3ctZGVza3RvcC1idXR0b24iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNob3cgRGVza3RvcCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL1Nob3ctRGVza3RvcC1CdXR0b24iLAogICJ1dWlkIjogInNob3ctZGVza3RvcC1idXR0b25AYW1pdmFsZW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "18", "sha256": "0ncqnggvz2nkymm3bf0f7fs7gmnw61asa60kwrvda3ch71sqkcvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyBpbiBhIHNpbmdsZSBjbGljay4iLAogICJleHRlbnNpb24taWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImdldHRleHQtZG9tYWluIjogInNob3ctZGVza3RvcC1idXR0b24iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNob3cgRGVza3RvcCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
-, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "23", "sha256": "1qv78dfb3ybfqfn2j3wff33j3hyrp7s1lhca4khqxnk43wb19qvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hc2EtYXBvZCIsCiAgInV1aWQiOiAibmFzYV9hcG9kQGVsaW52ZW50aW9uLm92aCIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "utcclock@injcristianrojas.github.com", "name": "UTCClock", "pname": "utcclock", "description": "UTC clock for the top bar. For GNOME 40+", "link": "https://extensions.gnome.org/extension/1183/utcclock/", "shell_version_map": {"38": {"version": "24", "sha256": "1gmj8479a7yvxb3yh76yjs9n7bav3qp4fkr9hg7197qch0rirhlr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIEZvciBHTk9NRSA0MCsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL1VUQ0Nsb2NrIiwKICAidXVpZCI6ICJ1dGNjbG9ja0BpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}, "40": {"version": "27", "sha256": "0jgrbsn2aqq5zxm553v16ydyzmbwa4ymqfr93mgz1br52clnjj2k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIEZvciBHTk9NRSA0MCsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2siLAogICJ1dWlkIjogInV0Y2Nsb2NrQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "0jgrbsn2aqq5zxm553v16ydyzmbwa4ymqfr93mgz1br52clnjj2k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIEZvciBHTk9NRSA0MCsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2siLAogICJ1dWlkIjogInV0Y2Nsb2NrQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
+, {"uuid": "show-desktop-button@amivaleo", "name": "Show Desktop Button", "pname": "show-desktop-button", "description": "Minimize/unminimize all open windows with a single click.", "link": "https://extensions.gnome.org/extension/1194/show-desktop-button/", "shell_version_map": {"38": {"version": "17", "sha256": "15cym2gka8g10bvprnxf6s0jbwchscw81fh9pvjybqmb9kc8ivvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "19", "sha256": "0ykv6qvrhsmlmjd47cklnrqj9bqydi04v9m735lg211wwgz0rgc5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "0ykv6qvrhsmlmjd47cklnrqj9bqydi04v9m735lg211wwgz0rgc5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
+, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "30", "sha256": "09q2gh12skxgvlkkzg9cdw4y7a9fzq6l52z3dslr57dj5mzp5bms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "41": {"version": "30", "sha256": "09q2gh12skxgvlkkzg9cdw4y7a9fzq6l52z3dslr57dj5mzp5bms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
, {"uuid": "SystemMenu@jonnius.github.com", "name": "System Menu", "pname": "system-menu", "description": "System menu with usefull shortcuts", "link": "https://extensions.gnome.org/extension/1204/system-menu/", "shell_version_map": {"38": {"version": "5", "sha256": "10zfr3fhqvq0fxqjzqmnxmhmdw5xcw9m5k3jm1apcjqnm38r896w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtZW51IHdpdGggdXNlZnVsbCBzaG9ydGN1dHMiLAogICJuYW1lIjogIlN5c3RlbSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlN5c3RlbU1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2pvbm5pdXMvZ25vbWUtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogIlN5c3RlbU1lbnVAam9ubml1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"uuid": "rcd@criztovyl.space", "name": "Right Click Down", "pname": "right-click-down", "description": "Moves windows one workspace down by right-clicking them in the overview.", "link": "https://extensions.gnome.org/extension/1210/right-click-down/", "shell_version_map": {"38": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "printers@linux-man.org", "name": "Printers", "pname": "printers", "description": "Manage Jobs and Printers", "link": "https://extensions.gnome.org/extension/1218/printers/", "shell_version_map": {"38": {"version": "12", "sha256": "0b5vfw13qdvy13crikp72h1m3ypjzhpxihzlfp0rk530cp031cmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC1tYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50ZXJzIiwKICAidXVpZCI6ICJwcmludGVyc0BsaW51eC1tYW4ub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "13", "sha256": "016mqy0pifaxz37g43pag2w62b3dyf8n0fxhf43m0p9wphxa5zwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtbWFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wcmludGVycyIsCiAgInV1aWQiOiAicHJpbnRlcnNAbGludXgtbWFuLm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
, {"uuid": "move-osd-windows@maestroschan.fr", "name": "Move OSD Windows", "pname": "move-osd-windows", "description": "Change the position of OSD windows (sound & luminosity popups).", "link": "https://extensions.gnome.org/extension/1220/move-osd-windows/", "shell_version_map": {"38": {"version": "3", "sha256": "1nmvbx7qbr9a9al5wirnsfwn4qb1qbql2w9f7fpajipasill9hkd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgcG9zaXRpb24gb2YgT1NEIHdpbmRvd3MgKHNvdW5kICYgbHVtaW5vc2l0eSBwb3B1cHMpLiIsCiAgImdldHRleHQtZG9tYWluIjogIm1vdmUtb3NkLXdpbmRvd3MiLAogICJuYW1lIjogIk1vdmUgT1NEIFdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYWVzdHJvc2NoYW4vTW92ZS1PU0QtV2luZG93cy1HTk9NRS1FeHRlbnNpb24iLAogICJ1dWlkIjogIm1vdmUtb3NkLXdpbmRvd3NAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "arc-menu@linxgem33.com", "name": "Arc Menu", "pname": "arc-menu", "description": "## UNMAINTAINED ##\n\nThe original version of Arc Menu and all attached repositories apart from the disaster recovery branch will no longer receive updates or further development.\n\nKind Regards - LinxGem33 (Andy C)", "link": "https://extensions.gnome.org/extension/1228/arc-menu/", "shell_version_map": {"38": {"version": "49", "sha256": "0x1kr339qarkviinf13s6ih01ssdh321nw8ncnnrq7ihqpzysf8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIFVOTUFJTlRBSU5FRCAjI1xuXG5UaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiBBcmMgTWVudSBhbmQgYWxsIGF0dGFjaGVkIHJlcG9zaXRvcmllcyBhcGFydCBmcm9tIHRoZSBkaXNhc3RlciByZWNvdmVyeSBicmFuY2ggd2lsbCBubyBsb25nZXIgcmVjZWl2ZSB1cGRhdGVzIG9yIGZ1cnRoZXIgZGV2ZWxvcG1lbnQuXG5cbktpbmQgUmVnYXJkcyAtIExpbnhHZW0zMyAoQW5keSBDKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyYy1tZW51IiwKICAibmFtZSI6ICJBcmMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9BcmMtTWVudSIsCiAgInV1aWQiOiAiYXJjLW1lbnVAbGlueGdlbTMzLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
, {"uuid": "GmailMessageTray@shuming0207.gmail.com", "name": "Gnome Email Notifications", "pname": "gmail-message-tray", "description": "Shows Gmail and Outlook notifications in Gnome Message Tray using Gnome Online Accounts\n", "link": "https://extensions.gnome.org/extension/1230/gmail-message-tray/", "shell_version_map": {"40": {"version": "22", "sha256": "1hsjqhm0gb7iisg3drwyav166w8zvbfbsdwr47v997xf4mfaycbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEdtYWlsIGFuZCBPdXRsb29rIG5vdGlmaWNhdGlvbnMgaW4gR25vbWUgTWVzc2FnZSBUcmF5IHVzaW5nIEdub21lIE9ubGluZSBBY2NvdW50c1xuIiwKICAibmFtZSI6ICJHbm9tZSBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NodW1pbmdjaC9nbm9tZS1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJHbWFpbE1lc3NhZ2VUcmF5QHNodW1pbmcwMjA3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}}}
-, {"uuid": "switchWorkSpace@sun.wxg@gmail.com", "name": "Switch Workspace", "pname": "switch-workspace", "description": "Switch workspace like using ALT+TAB key to switch windows \n\n Default shortcut key to switch workspace is Ctrl+Above_Tab .", "link": "https://extensions.gnome.org/extension/1231/switch-workspace/", "shell_version_map": {"38": {"version": "30", "sha256": "1z6dafy981y2kjbnk9dncnkkpgqk45njbh3k08s3jg385qvfryvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zd2l0Y2h3b3Jrc3BhY2UiLAogICJ1dWlkIjogInN3aXRjaFdvcmtTcGFjZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "40": {"version": "31", "sha256": "0gq3q0sh8088gp0mjp9xn8n5ff8yxbhrp3ik3dbavs12wm26qlbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3dpdGNod29ya3NwYWNlIiwKICAidXVpZCI6ICJzd2l0Y2hXb3JrU3BhY2VAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
+, {"uuid": "switchWorkSpace@sun.wxg@gmail.com", "name": "Switch Workspace", "pname": "switch-workspace", "description": "Switch workspace like using ALT+TAB key to switch windows \n\n Default shortcut key to switch workspace is Ctrl+Above_Tab .", "link": "https://extensions.gnome.org/extension/1231/switch-workspace/", "shell_version_map": {"38": {"version": "30", "sha256": "1z6dafy981y2kjbnk9dncnkkpgqk45njbh3k08s3jg385qvfryvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zd2l0Y2h3b3Jrc3BhY2UiLAogICJ1dWlkIjogInN3aXRjaFdvcmtTcGFjZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "40": {"version": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
, {"uuid": "noannoyance@sindex.com", "name": "NoAnnoyance", "pname": "noannoyance", "description": "Disable the “Window is ready” notification.", "link": "https://extensions.gnome.org/extension/1236/noannoyance/", "shell_version_map": {"38": {"version": "5", "sha256": "0x7p3i9qws8pgj3y2raw2vfgjwqm6rprrn3s7lck5bjx9ydri5b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIFx1MjAxY1dpbmRvdyBpcyByZWFkeVx1MjAxZCBub3RpZmljYXRpb24uIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kZXgvbm8tYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBzaW5kZXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0x7p3i9qws8pgj3y2raw2vfgjwqm6rprrn3s7lck5bjx9ydri5b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIFx1MjAxY1dpbmRvdyBpcyByZWFkeVx1MjAxZCBub3RpZmljYXRpb24uIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kZXgvbm8tYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBzaW5kZXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"uuid": "SomaFm-Radio@alireza6677.gmail.com", "name": "SomaFM internet radio", "pname": "somafm-internet-radio", "description": "Listen to SomaFm free internet radio in your GNOME desktop\n\n* Featues:\n- 32+ Channels\n- Volume slider\n- Favorites menu\n- Good sound quality\n- Supports most gnome-shell versions\n- Channel logos\n\n* Requirements:\n- Gstreamer and plugins:\nYou need to install 'gstreamer' and multimedia codecs/plugins for your distro.", "link": "https://extensions.gnome.org/extension/1237/somafm-internet-radio/", "shell_version_map": {"38": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "40": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}}}
, {"uuid": "timepp@zagortenay333", "name": "Time ++", "pname": "time", "description": "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarm clock", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {"38": {"version": "155", "sha256": "1v71hlwrw9kbxfvka5w8cfqmvcjw3k9xjdwhwlk4i4q5k6kgjih3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRyYW5zbGF0aW9uc191cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZS90cmVlL21hc3Rlci9kYXRhL3BvX2ZpbGVzIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUiLAogICJ1dWlkIjogInRpbWVwcEB6YWdvcnRlbmF5MzMzIiwKICAidmVyc2lvbiI6IDE1NQp9"}, "40": {"version": "158", "sha256": "0cyydpidzrz4avc1i8gb5rp28pfyn5m3m1c20i11s5lb873diig7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ0cmFuc2xhdGlvbnNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvdHJlZS9tYXN0ZXIvZGF0YS9wb19maWxlcyIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lIiwKICAidXVpZCI6ICJ0aW1lcHBAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiAxNTgKfQ=="}}}
, {"uuid": "obmin@konkor", "name": "Obmin", "pname": "obmin", "description": "One-Click File Sharing for your network.\nObmin is lightweight HTTP(S) File Server for GNU/Linux systems.\n\nFeatures:\n⚫ Easy installation.\n⚫ Easy setup just choose file(s) locations and tune Obmin on.\n⚫ Doesn't require ROOT privileges.\n⚫ Doesn't require any special client side installation.\n⚫ HTTP transfer protocol available everywhere Linux, OSX, Windows, Android, iOS so.\n⚫ More ...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1254/obmin/", "shell_version_map": {"38": {"version": "22", "sha256": "1r7q5p600lqlkagz9gdxj5wi77i5066sgiwxfsj4w1ixd1g44cz5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZS1DbGljayBGaWxlIFNoYXJpbmcgZm9yIHlvdXIgbmV0d29yay5cbk9ibWluIGlzIGxpZ2h0d2VpZ2h0IEhUVFAoUykgRmlsZSBTZXJ2ZXIgZm9yIEdOVS9MaW51eCBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblx1MjZhYiBFYXN5IGluc3RhbGxhdGlvbi5cblx1MjZhYiBFYXN5IHNldHVwIGp1c3QgY2hvb3NlIGZpbGUocykgbG9jYXRpb25zIGFuZCB0dW5lIE9ibWluIG9uLlxuXHUyNmFiIERvZXNuJ3QgcmVxdWlyZSBST09UIHByaXZpbGVnZXMuXG5cdTI2YWIgRG9lc24ndCByZXF1aXJlIGFueSBzcGVjaWFsIGNsaWVudCBzaWRlIGluc3RhbGxhdGlvbi5cblx1MjZhYiBIVFRQIHRyYW5zZmVyIHByb3RvY29sIGF2YWlsYWJsZSBldmVyeXdoZXJlIExpbnV4LCBPU1gsIFdpbmRvd3MsIEFuZHJvaWQsIGlPUyBzby5cblx1MjZhYiBNb3JlIC4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLW9ibWluIiwKICAibmFtZSI6ICJPYm1pbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vYm1pbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vb2JtaW4uZ2l0aHViLmlvIiwKICAidXVpZCI6ICJvYm1pbkBrb25rb3IiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "22", "sha256": "1r7q5p600lqlkagz9gdxj5wi77i5066sgiwxfsj4w1ixd1g44cz5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZS1DbGljayBGaWxlIFNoYXJpbmcgZm9yIHlvdXIgbmV0d29yay5cbk9ibWluIGlzIGxpZ2h0d2VpZ2h0IEhUVFAoUykgRmlsZSBTZXJ2ZXIgZm9yIEdOVS9MaW51eCBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblx1MjZhYiBFYXN5IGluc3RhbGxhdGlvbi5cblx1MjZhYiBFYXN5IHNldHVwIGp1c3QgY2hvb3NlIGZpbGUocykgbG9jYXRpb25zIGFuZCB0dW5lIE9ibWluIG9uLlxuXHUyNmFiIERvZXNuJ3QgcmVxdWlyZSBST09UIHByaXZpbGVnZXMuXG5cdTI2YWIgRG9lc24ndCByZXF1aXJlIGFueSBzcGVjaWFsIGNsaWVudCBzaWRlIGluc3RhbGxhdGlvbi5cblx1MjZhYiBIVFRQIHRyYW5zZmVyIHByb3RvY29sIGF2YWlsYWJsZSBldmVyeXdoZXJlIExpbnV4LCBPU1gsIFdpbmRvd3MsIEFuZHJvaWQsIGlPUyBzby5cblx1MjZhYiBNb3JlIC4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLW9ibWluIiwKICAibmFtZSI6ICJPYm1pbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vYm1pbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vb2JtaW4uZ2l0aHViLmlvIiwKICAidXVpZCI6ICJvYm1pbkBrb25rb3IiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
-, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n *NEW: random mode\n *NEW: select wallpaper from previously downloaded images\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "34", "sha256": "0vj4phjs29fn6yrpmgp0d6qcz7zpmvxc2z8l8n2vyafh4lpf1ds9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vYmluZy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJCaW5nV2FsbHBhcGVyQGluZWZmYWJsZS1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "34", "sha256": "0vj4phjs29fn6yrpmgp0d6qcz7zpmvxc2z8l8n2vyafh4lpf1ds9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vYmluZy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJCaW5nV2FsbHBhcGVyQGluZWZmYWJsZS1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
+, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n *NEW: random mode\n *NEW: select wallpaper from previously downloaded images\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "40": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "41": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
, {"uuid": "gnomesome@chwick.github.com", "name": "Gnomesome", "pname": "gnomesome", "description": "Tiling window manager with awesome keybindings", "link": "https://extensions.gnome.org/extension/1268/gnomesome/", "shell_version_map": {"38": {"version": "15", "sha256": "1dn67is3qk80xxfkc2pd43jrsyylmsprd7v3axvl677wdjgaq83z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGF3ZXNvbWUga2V5YmluZGluZ3MiLAogICJuYW1lIjogIkdub21lc29tZSIsCiAgInNldHRpbmdzLWtleWJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lc29tZS5rZXliaW5kaW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nod2ljay9nbm9tZXNvbWUiLAogICJ1dWlkIjogImdub21lc29tZUBjaHdpY2suZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
, {"uuid": "night-light-slider.timur@linux.com", "name": "Night Light Slider", "pname": "night-light-slider", "description": "A GNOME extension to manage the built-in night light temperature", "link": "https://extensions.gnome.org/extension/1276/night-light-slider/", "shell_version_map": {"38": {"version": "19", "sha256": "01vp7p3qwr51n4xqar55ak61a84wypbrla6kkmw0wdb6a0d119mc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRvIG1hbmFnZSB0aGUgYnVpbHQtaW4gbmlnaHQgbGlnaHQgdGVtcGVyYXR1cmUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodC1saWdodC1zbGlkZXIudGltdXJAbGludXguY29tIiwKICAiZ3Jlc291cmNlLWRhdGEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlci5kYXRhLmdyZXNvdXJjZSIsCiAgIm5hbWUiOiAiTmlnaHQgTGlnaHQgU2xpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0bGlnaHRzbGlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLW5pZ2h0LWxpZ2h0LXNsaWRlci1leHRlbnNpb24iLAogICJ1dWlkIjogIm5pZ2h0LWxpZ2h0LXNsaWRlci50aW11ckBsaW51eC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "23", "sha256": "1yqawlnpv2hql90xgkz947930bb4xdk94mrnf5rib2qyp9a83111", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRvIG1hbmFnZSB0aGUgYnVpbHQtaW4gbmlnaHQgbGlnaHQgdGVtcGVyYXR1cmUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodC1saWdodC1zbGlkZXIudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJOaWdodCBMaWdodCBTbGlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtbmlnaHQtbGlnaHQtc2xpZGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibmlnaHQtbGlnaHQtc2xpZGVyLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
, {"uuid": "fuzzy-clock@keepawayfromfire.co.uk", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "Make the top bar clock fuzzy", "link": "https://extensions.gnome.org/extension/1281/fuzzy-clock/", "shell_version_map": {"38": {"version": "3", "sha256": "0mgih6aq16z0q4dlbrvnlp8bamk6pmxydjnq6019agc5cjmqpr2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "0mgih6aq16z0q4dlbrvnlp8bamk6pmxydjnq6019agc5cjmqpr2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "ds4battery@slie.ru", "name": "Dual Shock 4 battery percentage", "pname": "dual-shock-4-battery-percentage", "description": "Show DS4/DS3 battery remaining power percentage at the top panel", "link": "https://extensions.gnome.org/extension/1283/dual-shock-4-battery-percentage/", "shell_version_map": {"38": {"version": "7", "sha256": "0yb1j3hlza96zbd82gjc7wyjqkj5vjzcaj8l5n8xhfrdi7icxf6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgRFM0L0RTMyBiYXR0ZXJ5IHJlbWFpbmluZyBwb3dlciBwZXJjZW50YWdlIGF0IHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIkR1YWwgU2hvY2sgNCBiYXR0ZXJ5IHBlcmNlbnRhZ2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQHNsaWUucnUiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhhbmtqdXJhL2RzNGJhdHRlcnkiLAogICJ1dWlkIjogImRzNGJhdHRlcnlAc2xpZS5ydSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0yb1j3hlza96zbd82gjc7wyjqkj5vjzcaj8l5n8xhfrdi7icxf6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgRFM0L0RTMyBiYXR0ZXJ5IHJlbWFpbmluZyBwb3dlciBwZXJjZW50YWdlIGF0IHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIkR1YWwgU2hvY2sgNCBiYXR0ZXJ5IHBlcmNlbnRhZ2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQHNsaWUucnUiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhhbmtqdXJhL2RzNGJhdHRlcnkiLAogICJ1dWlkIjogImRzNGJhdHRlcnlAc2xpZS5ydSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "hotel-manager@hardpixel.eu", "name": "Hotel Manager", "pname": "hotel-manager", "description": "Hotel Manager allows to start and stop the Hotel daemon and your development servers via a menu in the status area.", "link": "https://extensions.gnome.org/extension/1285/hotel-manager/", "shell_version_map": {"38": {"version": "13", "sha256": "0fl59kg2kc054c5lzim2wvb6d0cw4hcpgq9h8lf2p40q8smyrfmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2hvdGVsLW1hbmFnZXIiLAogICJ1dWlkIjogImhvdGVsLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "0fl59kg2kc054c5lzim2wvb6d0cw4hcpgq9h8lf2p40q8smyrfmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2hvdGVsLW1hbmFnZXIiLAogICJ1dWlkIjogImhvdGVsLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}}}
-, {"uuid": "unite@hardpixel.eu", "name": "Unite", "pname": "unite", "description": "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.\n\n- Adds window buttons to the top panel for maximized windows.\n- Shows current window title in the app menu for maximized windows.\n- Removes titlebars on maximized windows.\n- Hides window controls on maximized windows with headerbars.\n- Moves the date to the right, reduces panel spacing and removes dropdown arrows.\n- Moves legacy tray icons to the top panel.\n- Moves notifications to the right.\n- Hides activities button.\n- Adds desktop name to the top panel.\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable or customize the available tweaks.\n* Since version 2 applications on wayland with client side decorations are supported using CSS.", "link": "https://extensions.gnome.org/extension/1287/unite/", "shell_version_map": {"38": {"version": "54", "sha256": "1346v89d9bc3pgx7lnm0kafj7gnf92ay1zhrxjnhidi5i30b4vl6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1NAp9"}, "40": {"version": "54", "sha256": "1346v89d9bc3pgx7lnm0kafj7gnf92ay1zhrxjnhidi5i30b4vl6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1NAp9"}}}
-, {"uuid": "GoogleEarthWallpaper@neffo.github.com", "name": "Google Earth Wallpaper", "pname": "google-earth-wallpaper", "description": "Lightweight GNOME shell extension to set your wallpaper to a random photo from the curated Google Earth collection (1500 photos).\n\n*Disclaimer*: this extension is unofficial and not affiliated with Google in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nSee also my other extension, Bing Wallpaper Changer (https://github.com/neffo/bing-wallpaper-gnome-extension) which was itself based on the NASA APOD extension by Elinvention (https://github.com/Elinvention).\n\nFeatures:\n* Fetches a random Google Earth wallpaper and sets as both lock screen and desktop wallpaper\n* User selectable refresh intervals (default is once per day)\n* Optional: keep images or clean up after (later is default)\n* View location on Google Maps, Bing Maps, Gnome Maps, OpenStreetMaps\n* In-extension map view\n* German, Dutch and Chinese translations\n\nPlease report any bugs or suggestions to extension GitHub page below.", "link": "https://extensions.gnome.org/extension/1295/google-earth-wallpaper/", "shell_version_map": {"38": {"version": "12", "sha256": "0h2fdx7n2wzmcxlj96lyyvmsa3mz72dxlqy5d7zw1p2zhiyn9zjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMTUwMCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pIHdoaWNoIHdhcyBpdHNlbGYgYmFzZWQgb24gdGhlIE5BU0EgQVBPRCBleHRlbnNpb24gYnkgRWxpbnZlbnRpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbikuXG5cbkZlYXR1cmVzOlxuKiBGZXRjaGVzIGEgcmFuZG9tIEdvb2dsZSBFYXJ0aCB3YWxscGFwZXIgYW5kIHNldHMgYXMgYm90aCBsb2NrIHNjcmVlbiBhbmQgZGVza3RvcCB3YWxscGFwZXJcbiogVXNlciBzZWxlY3RhYmxlIHJlZnJlc2ggaW50ZXJ2YWxzIChkZWZhdWx0IGlzIG9uY2UgcGVyIGRheSlcbiogT3B0aW9uYWw6IGtlZXAgaW1hZ2VzIG9yIGNsZWFuIHVwIGFmdGVyIChsYXRlciBpcyBkZWZhdWx0KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qIEluLWV4dGVuc2lvbiBtYXAgdmlld1xuKiAgR2VybWFuLCBEdXRjaCBhbmQgQ2hpbmVzZSB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAibmFtZSI6ICJHb29nbGUgRWFydGggV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vZWFydGgtdmlldy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlckBuZWZmby5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0h2fdx7n2wzmcxlj96lyyvmsa3mz72dxlqy5d7zw1p2zhiyn9zjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMTUwMCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pIHdoaWNoIHdhcyBpdHNlbGYgYmFzZWQgb24gdGhlIE5BU0EgQVBPRCBleHRlbnNpb24gYnkgRWxpbnZlbnRpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbikuXG5cbkZlYXR1cmVzOlxuKiBGZXRjaGVzIGEgcmFuZG9tIEdvb2dsZSBFYXJ0aCB3YWxscGFwZXIgYW5kIHNldHMgYXMgYm90aCBsb2NrIHNjcmVlbiBhbmQgZGVza3RvcCB3YWxscGFwZXJcbiogVXNlciBzZWxlY3RhYmxlIHJlZnJlc2ggaW50ZXJ2YWxzIChkZWZhdWx0IGlzIG9uY2UgcGVyIGRheSlcbiogT3B0aW9uYWw6IGtlZXAgaW1hZ2VzIG9yIGNsZWFuIHVwIGFmdGVyIChsYXRlciBpcyBkZWZhdWx0KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qIEluLWV4dGVuc2lvbiBtYXAgdmlld1xuKiAgR2VybWFuLCBEdXRjaCBhbmQgQ2hpbmVzZSB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAibmFtZSI6ICJHb29nbGUgRWFydGggV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vZWFydGgtdmlldy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlckBuZWZmby5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
-, {"uuid": "gsconnect@andyholmes.github.io", "name": "GSConnect", "pname": "gsconnect", "description": "GSConnect is a complete implementation of KDE Connect especially for GNOME Shell with Nautilus, Chrome and Firefox integration. It does not rely on the KDE Connect desktop application and will not work with it installed.\n\nKDE Connect allows devices to securely share content like notifications or files and other features like SMS messaging and remote control. The KDE Connect team has applications for Linux, BSD, Android, Sailfish and Windows.\n\nPlease report issues on Github!", "link": "https://extensions.gnome.org/extension/1319/gsconnect/", "shell_version_map": {"38": {"version": "45", "sha256": "11hpgh2bhizdrgl4xc5iszsi6jxb9j80lph74226rnw6pi2nc19f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmR5aG9sbWVzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nc2Nvbm5lY3Qvd2lraSIsCiAgInV1aWQiOiAiZ3Njb25uZWN0QGFuZHlob2xtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "0s6a762n4r0fcvsi2a27qaxs0b4z12grqrq7sqj4vb498xyx14qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZ3Njb25uZWN0L3dpa2kiLAogICJ1dWlkIjogImdzY29ubmVjdEBhbmR5aG9sbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
+, {"uuid": "hotel-manager@hardpixel.eu", "name": "Hotel Manager", "pname": "hotel-manager", "description": "Hotel Manager allows to start and stop the Hotel daemon and your development servers via a menu in the status area.", "link": "https://extensions.gnome.org/extension/1285/hotel-manager/", "shell_version_map": {"38": {"version": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}, "41": {"version": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "unite@hardpixel.eu", "name": "Unite", "pname": "unite", "description": "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.\n\n- Adds window buttons to the top panel for maximized windows.\n- Shows current window title in the app menu for maximized windows.\n- Removes titlebars on maximized windows.\n- Hides window controls on maximized windows with headerbars.\n- Moves the date to the right, reduces panel spacing and removes dropdown arrows.\n- Moves legacy tray icons to the top panel.\n- Moves notifications to the right.\n- Hides activities button.\n- Adds desktop name to the top panel.\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable or customize the available tweaks.\n* Since version 2 applications on wayland with client side decorations are supported using CSS.", "link": "https://extensions.gnome.org/extension/1287/unite/", "shell_version_map": {"38": {"version": "58", "sha256": "1w87mq3s4bpfg0k3s279yjl27nq7rl669a4k6kcdwbi9ii49iw93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "40": {"version": "58", "sha256": "1w87mq3s4bpfg0k3s279yjl27nq7rl669a4k6kcdwbi9ii49iw93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "58", "sha256": "1w87mq3s4bpfg0k3s279yjl27nq7rl669a4k6kcdwbi9ii49iw93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
+, {"uuid": "GoogleEarthWallpaper@neffo.github.com", "name": "Google Earth View wallpaper", "pname": "google-earth-wallpaper", "description": "Lightweight GNOME shell extension to set your wallpaper to a random photo from the curated Google Earth View collection (2600+ photos).\n\n*Disclaimer*: this extension is unofficial and not affiliated with Google in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nSee also my other extension, Bing Wallpaper Changer (https://github.com/neffo/bing-wallpaper-gnome-extension).\n\nFeatures:\n* Fetches a random Google Earth wallpaper and sets as both lock screen and desktop wallpaper\n* User selectable refresh intervals (default is once per day)\n* View location on Google Maps, Bing Maps, Gnome Maps, OpenStreetMaps\n* German, Dutch and Chinese translations\n\nPlease report any bugs or suggestions to extension GitHub page below.", "link": "https://extensions.gnome.org/extension/1295/google-earth-wallpaper/", "shell_version_map": {"38": {"version": "13", "sha256": "0s8xf16fxzizvpwg3lky0gkvsh732rh84wayj9nq3vq71ph2g4jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggVmlldyBjb2xsZWN0aW9uICgyNjAwKyBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2ggYW5kIENoaW5lc2UgdHJhbnNsYXRpb25zXG5cblBsZWFzZSByZXBvcnQgYW55IGJ1Z3Mgb3Igc3VnZ2VzdGlvbnMgdG8gZXh0ZW5zaW9uIEdpdEh1YiBwYWdlIGJlbG93LiIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFZpZXcgd2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "0s8xf16fxzizvpwg3lky0gkvsh732rh84wayj9nq3vq71ph2g4jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggVmlldyBjb2xsZWN0aW9uICgyNjAwKyBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2ggYW5kIENoaW5lc2UgdHJhbnNsYXRpb25zXG5cblBsZWFzZSByZXBvcnQgYW55IGJ1Z3Mgb3Igc3VnZ2VzdGlvbnMgdG8gZXh0ZW5zaW9uIEdpdEh1YiBwYWdlIGJlbG93LiIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFZpZXcgd2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "0s8xf16fxzizvpwg3lky0gkvsh732rh84wayj9nq3vq71ph2g4jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggVmlldyBjb2xsZWN0aW9uICgyNjAwKyBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2ggYW5kIENoaW5lc2UgdHJhbnNsYXRpb25zXG5cblBsZWFzZSByZXBvcnQgYW55IGJ1Z3Mgb3Igc3VnZ2VzdGlvbnMgdG8gZXh0ZW5zaW9uIEdpdEh1YiBwYWdlIGJlbG93LiIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFZpZXcgd2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
+, {"uuid": "gsconnect@andyholmes.github.io", "name": "GSConnect", "pname": "gsconnect", "description": "GSConnect is a complete implementation of KDE Connect especially for GNOME Shell with Nautilus, Chrome and Firefox integration. It does not rely on the KDE Connect desktop application and will not work with it installed.\n\nKDE Connect allows devices to securely share content like notifications or files and other features like SMS messaging and remote control. The KDE Connect team has applications for Linux, BSD, Android, Sailfish and Windows.\n\nPlease report issues on Github!", "link": "https://extensions.gnome.org/extension/1319/gsconnect/", "shell_version_map": {"38": {"version": "45", "sha256": "11hpgh2bhizdrgl4xc5iszsi6jxb9j80lph74226rnw6pi2nc19f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmR5aG9sbWVzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nc2Nvbm5lY3Qvd2lraSIsCiAgInV1aWQiOiAiZ3Njb25uZWN0QGFuZHlob2xtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "0s6a762n4r0fcvsi2a27qaxs0b4z12grqrq7sqj4vb498xyx14qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZ3Njb25uZWN0L3dpa2kiLAogICJ1dWlkIjogImdzY29ubmVjdEBhbmR5aG9sbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "48", "sha256": "1mgwmnzkqlmlccw7z1f7bvn7ixp22kln52l2qy55553m59yxsswj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZ3Njb25uZWN0L3dpa2kiLAogICJ1dWlkIjogImdzY29ubmVjdEBhbmR5aG9sbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0OAp9"}}}
, {"uuid": "nvidiautil@ethanwharris", "name": "NVIDIA GPU Stats Tool", "pname": "nvidia-gpu-stats-tool", "description": "Shows NVIDIA GPU stats in the toolbar. Requires nvidia-settings or nvidia-smi. Includes Bumblebee support.", "link": "https://extensions.gnome.org/extension/1320/nvidia-gpu-stats-tool/", "shell_version_map": {"38": {"version": "8", "sha256": "12yi2kcq2rm1ddb8djjlffvk6dhpfd996wjhwdf4jch1r85r8a30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "lwsm@johannes.super-productivity.com", "name": "Window Session Manager", "pname": "window-session-manager", "description": "An indicator that let's you save and restore your open apps and the window positions and arrangements over multiple real and virtual displays. Requires lwsm and nodejs to be installed (`npm install -g linux-window-session-manager`).", "link": "https://extensions.gnome.org/extension/1323/window-session-manager/", "shell_version_map": {"38": {"version": "8", "sha256": "04vy6pyz7in248bx2micg7w0jimcqnrnkis6skacbdz9fm5nd699", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGluZGljYXRvciB0aGF0IGxldCdzIHlvdSBzYXZlIGFuZCByZXN0b3JlIHlvdXIgb3BlbiBhcHBzIGFuZCB0aGUgd2luZG93IHBvc2l0aW9ucyBhbmQgYXJyYW5nZW1lbnRzIG92ZXIgbXVsdGlwbGUgcmVhbCBhbmQgdmlydHVhbCBkaXNwbGF5cy4gUmVxdWlyZXMgbHdzbSBhbmQgbm9kZWpzIHRvIGJlIGluc3RhbGxlZCAoYG5wbSBpbnN0YWxsIC1nIGxpbnV4LXdpbmRvdy1zZXNzaW9uLW1hbmFnZXJgKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsd3NtIiwKICAibmFtZSI6ICJXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmx3c20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb2hhbm5lc2pvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyIiwKICAidXVpZCI6ICJsd3NtQGpvaGFubmVzLnN1cGVyLXByb2R1Y3Rpdml0eS5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "lwsm@johannes.super-productivity.com", "name": "Window Session Manager", "pname": "window-session-manager", "description": "An indicator that let's you save and restore your open apps and the window positions and arrangements over multiple real and virtual displays. Requires lwsm and nodejs to be installed (`npm install -g linux-window-session-manager`).", "link": "https://extensions.gnome.org/extension/1323/window-session-manager/", "shell_version_map": {"38": {"version": "9", "sha256": "0xjhhwml3g91bx73snb7brq2jln6sxgwqd77p0b5m68ffjvxblcc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGluZGljYXRvciB0aGF0IGxldCdzIHlvdSBzYXZlIGFuZCByZXN0b3JlIHlvdXIgb3BlbiBhcHBzIGFuZCB0aGUgd2luZG93IHBvc2l0aW9ucyBhbmQgYXJyYW5nZW1lbnRzIG92ZXIgbXVsdGlwbGUgcmVhbCBhbmQgdmlydHVhbCBkaXNwbGF5cy4gUmVxdWlyZXMgbHdzbSBhbmQgbm9kZWpzIHRvIGJlIGluc3RhbGxlZCAoYG5wbSBpbnN0YWxsIC1nIGxpbnV4LXdpbmRvdy1zZXNzaW9uLW1hbmFnZXJgKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsd3NtIiwKICAibmFtZSI6ICJXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmx3c20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvaGFubmVzam8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImx3c21Aam9oYW5uZXMuc3VwZXItcHJvZHVjdGl2aXR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "0xjhhwml3g91bx73snb7brq2jln6sxgwqd77p0b5m68ffjvxblcc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGluZGljYXRvciB0aGF0IGxldCdzIHlvdSBzYXZlIGFuZCByZXN0b3JlIHlvdXIgb3BlbiBhcHBzIGFuZCB0aGUgd2luZG93IHBvc2l0aW9ucyBhbmQgYXJyYW5nZW1lbnRzIG92ZXIgbXVsdGlwbGUgcmVhbCBhbmQgdmlydHVhbCBkaXNwbGF5cy4gUmVxdWlyZXMgbHdzbSBhbmQgbm9kZWpzIHRvIGJlIGluc3RhbGxlZCAoYG5wbSBpbnN0YWxsIC1nIGxpbnV4LXdpbmRvdy1zZXNzaW9uLW1hbmFnZXJgKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsd3NtIiwKICAibmFtZSI6ICJXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmx3c20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvaGFubmVzam8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImx3c21Aam9oYW5uZXMuc3VwZXItcHJvZHVjdGl2aXR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "0xjhhwml3g91bx73snb7brq2jln6sxgwqd77p0b5m68ffjvxblcc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGluZGljYXRvciB0aGF0IGxldCdzIHlvdSBzYXZlIGFuZCByZXN0b3JlIHlvdXIgb3BlbiBhcHBzIGFuZCB0aGUgd2luZG93IHBvc2l0aW9ucyBhbmQgYXJyYW5nZW1lbnRzIG92ZXIgbXVsdGlwbGUgcmVhbCBhbmQgdmlydHVhbCBkaXNwbGF5cy4gUmVxdWlyZXMgbHdzbSBhbmQgbm9kZWpzIHRvIGJlIGluc3RhbGxlZCAoYG5wbSBpbnN0YWxsIC1nIGxpbnV4LXdpbmRvdy1zZXNzaW9uLW1hbmFnZXJgKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsd3NtIiwKICAibmFtZSI6ICJXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmx3c20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvaGFubmVzam8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImx3c21Aam9oYW5uZXMuc3VwZXItcHJvZHVjdGl2aXR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
, {"uuid": "pause-night-light@tijnschuurmans.nl", "name": "Pause Night Light", "pname": "pause-night-light", "description": "Disable Night Light for 10 seconds. This short interruption allows you to scan a colour code (e.g. Crontosign) from your screen.", "link": "https://extensions.gnome.org/extension/1327/pause-night-light/", "shell_version_map": {"40": {"version": "8", "sha256": "1j4yywvmwplbyjjwp79rxmfgsf7kv67v0d9rhbg6bnqw04bq91ki", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgTmlnaHQgTGlnaHQgZm9yIDEwIHNlY29uZHMuIFRoaXMgc2hvcnQgaW50ZXJydXB0aW9uIGFsbG93cyB5b3UgdG8gc2NhbiBhIGNvbG91ciBjb2RlIChlLmcuIENyb250b3NpZ24pIGZyb20geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJQYXVzZSBOaWdodCBMaWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Rpam4vcGF1c2UtbmlnaHQtbGlnaHQiLAogICJ1dWlkIjogInBhdXNlLW5pZ2h0LWxpZ2h0QHRpam5zY2h1dXJtYW5zLm5sIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "disableworkspaceanim@owilliams.mixxx.org", "name": "Disable Workspace Switch Animation", "pname": "disable-workspace-switch-animation", "description": "Makes switching between workspaces instant without disabling other animations.\n\n(Fixed for GNOME 3.38 and above, thanks for your patience)", "link": "https://extensions.gnome.org/extension/1328/disable-workspace-switch-animation/", "shell_version_map": {"38": {"version": "4", "sha256": "0bby20crlp7jhcw90hfysc5jsl1rdfrq6byv2xb6vq8qh1hylzpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zLlxuXG4oRml4ZWQgZm9yIEdOT01FIDMuMzggYW5kIGFib3ZlLCB0aGFua3MgZm9yIHlvdXIgcGF0aWVuY2UpIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRpc2FibGV3b3Jrc3BhY2VhbmltQG93aWxsaWFtcy5taXh4eC5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "disableworkspaceanim@owilliams.mixxx.org", "name": "Disable Workspace Switch Animation", "pname": "disable-workspace-switch-animation", "description": "Makes switching between workspaces instant without disabling other animations", "link": "https://extensions.gnome.org/extension/1328/disable-workspace-switch-animation/", "shell_version_map": {"38": {"version": "4", "sha256": "0yy5yddzaswfl5yv19layls3g2nwfj47x5zg131f43y7abgp7z4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRpc2FibGV3b3Jrc3BhY2VhbmltQG93aWxsaWFtcy5taXh4eC5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "1w7gxcgz5729vwfw3ih2ha4y3r07cgqh1kykqfnrhraqrjd4zvfc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZXdvcmtzcGFjZWFuaW1Ab3dpbGxpYW1zLm1peHh4Lm9yZyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1w7gxcgz5729vwfw3ih2ha4y3r07cgqh1kykqfnrhraqrjd4zvfc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZXdvcmtzcGFjZWFuaW1Ab3dpbGxpYW1zLm1peHh4Lm9yZyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "app-switcher_current_workspace_first@fawtytoo", "name": "App-Switcher Current Workspace First", "pname": "app-switcher-current-workspace-first", "description": "App-Switcher modification that sorts applications by current workspace first. It separates apps into 2 separate icons if the app also has windows on other workspaces.", "link": "https://extensions.gnome.org/extension/1329/app-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "10", "sha256": "1anzb098a42anrgxgfnqmgbn7f3v4kflkh62lq95fgga2xqz3l09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwLXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1anzb098a42anrgxgfnqmgbn7f3v4kflkh62lq95fgga2xqz3l09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwLXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
, {"uuid": "window-switcher_current_workspace_first@fawtytoo", "name": "Window-Switcher Current Workspace First", "pname": "window-switcher-current-workspace-first", "description": "Window-Switcher modification that sorts windows by current workspace first. The other windows are added according to their workspace.", "link": "https://extensions.gnome.org/extension/1330/window-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "12", "sha256": "1yvnfq52xygbsk6gz6d993p9sd44yqmw5dn582rlnfv6qmyr0r79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "1yvnfq52xygbsk6gz6d993p9sd44yqmw5dn582rlnfv6qmyr0r79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
, {"uuid": "run-or-raise@edvard.cz", "name": "Run or raise", "pname": "run-or-raise", "description": "Launch or focus the window or define custom shortcuts in a text file", "link": "https://extensions.gnome.org/extension/1336/run-or-raise/", "shell_version_map": {"38": {"version": "12", "sha256": "07pn5ak471n9jqf8c8nflimmyb90d3brma3nd1958hpx5rz9rx46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DWi1OSUMvcnVuLW9yLXJhaXNlIiwKICAidXVpZCI6ICJydW4tb3ItcmFpc2VAZWR2YXJkLmN6IiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "07pn5ak471n9jqf8c8nflimmyb90d3brma3nd1958hpx5rz9rx46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DWi1OSUMvcnVuLW9yLXJhaXNlIiwKICAidXVpZCI6ICJydW4tb3ItcmFpc2VAZWR2YXJkLmN6IiwKICAidmVyc2lvbiI6IDEyCn0="}}}
@@ -159,47 +165,50 @@
, {"uuid": "notes@maestroschan.fr", "name": "Notes", "pname": "notes", "description": "Sticky notes for the GNOME Shell desktop.", "link": "https://extensions.gnome.org/extension/1357/notes/", "shell_version_map": {"38": {"version": "20", "sha256": "0arpk1rnjvc38xy8q3nsaxr0x691gznbqdd4mx3jzdd300j17q24", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
, {"uuid": "slinger@gfxmonk.net", "name": "slinger", "pname": "slinger", "description": "Sling windows around efficiently", "link": "https://extensions.gnome.org/extension/1372/slinger/", "shell_version_map": {"40": {"version": "7", "sha256": "1hpzcslqln0yz4kv216z8qqq9639sh1awp6q8c33d7jp11ydwhlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaW5nIHdpbmRvd3MgYXJvdW5kIGVmZmljaWVudGx5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2xpbmdlciIsCiAgIm5hbWUiOiAic2xpbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW1iZXJ0c29uL3NsaW5nZXIiLAogICJ1dWlkIjogInNsaW5nZXJAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}}}
, {"uuid": "unix-timestamp-clock@se1exin.github.com", "name": "Unix Timestamp Clock", "pname": "unix-timestamp-clock", "description": "Show the current unix timestamp as a clock in the top bar.\n\nCopy-paste currently shown timestamp (left mouse button) or current timestamp (any other mouse button) to clipboard", "link": "https://extensions.gnome.org/extension/1375/unix-timestamp-clock/", "shell_version_map": {"38": {"version": "5", "sha256": "11awssml3n1kza1inny4j89bkmgpldzcglwa26pyr432i4la0jh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGN1cnJlbnQgdW5peCB0aW1lc3RhbXAgYXMgYSBjbG9jayBpbiB0aGUgdG9wIGJhci5cblxuQ29weS1wYXN0ZSBjdXJyZW50bHkgc2hvd24gdGltZXN0YW1wIChsZWZ0IG1vdXNlIGJ1dHRvbikgb3IgY3VycmVudCB0aW1lc3RhbXAgKGFueSBvdGhlciBtb3VzZSBidXR0b24pIHRvIGNsaXBib2FyZCIsCiAgIm5hbWUiOiAiVW5peCBUaW1lc3RhbXAgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZTFleGluL3VuaXgtdGltZXN0YW1wLWNsb2NrIiwKICAidXVpZCI6ICJ1bml4LXRpbWVzdGFtcC1jbG9ja0BzZTFleGluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "11awssml3n1kza1inny4j89bkmgpldzcglwa26pyr432i4la0jh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGN1cnJlbnQgdW5peCB0aW1lc3RhbXAgYXMgYSBjbG9jayBpbiB0aGUgdG9wIGJhci5cblxuQ29weS1wYXN0ZSBjdXJyZW50bHkgc2hvd24gdGltZXN0YW1wIChsZWZ0IG1vdXNlIGJ1dHRvbikgb3IgY3VycmVudCB0aW1lc3RhbXAgKGFueSBvdGhlciBtb3VzZSBidXR0b24pIHRvIGNsaXBib2FyZCIsCiAgIm5hbWUiOiAiVW5peCBUaW1lc3RhbXAgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZTFleGluL3VuaXgtdGltZXN0YW1wLWNsb2NrIiwKICAidXVpZCI6ICJ1bml4LXRpbWVzdGFtcC1jbG9ja0BzZTFleGluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "mprisindicatorbutton@JasonLG1979.github.io", "name": "Mpris Indicator Button", "pname": "mpris-indicator-button", "description": "A full featured MPRIS indicator.", "link": "https://extensions.gnome.org/extension/1379/mpris-indicator-button/", "shell_version_map": {"38": {"version": "18", "sha256": "0fnibrxsy4as3w46vnj0jk6h0ymgn8k06j3m9jq7ygp5kf45fgsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9KYXNvbkxHMTk3OS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXByaXMtaW5kaWNhdG9yLWJ1dHRvbi8iLAogICJ1dWlkIjogIm1wcmlzaW5kaWNhdG9yYnV0dG9uQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOAp9"}, "40": {"version": "18", "sha256": "0fnibrxsy4as3w46vnj0jk6h0ymgn8k06j3m9jq7ygp5kf45fgsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9KYXNvbkxHMTk3OS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXByaXMtaW5kaWNhdG9yLWJ1dHRvbi8iLAogICJ1dWlkIjogIm1wcmlzaW5kaWNhdG9yYnV0dG9uQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOAp9"}}}
+, {"uuid": "mprisindicatorbutton@JasonLG1979.github.io", "name": "Mpris Indicator Button", "pname": "mpris-indicator-button", "description": "A full featured MPRIS indicator.", "link": "https://extensions.gnome.org/extension/1379/mpris-indicator-button/", "shell_version_map": {"38": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
, {"uuid": "weatherintheclock@JasonLG1979.github.io", "name": "Weather In The Clock", "pname": "weather-in-the-clock", "description": "Display the current Weather in the Clock. GNOME Weather is required for this extension to function.", "link": "https://extensions.gnome.org/extension/1380/weather-in-the-clock/", "shell_version_map": {"38": {"version": "7", "sha256": "02aszdk2iswlqwkwi83gi69qzw0jwhill66qacrc7gg59mpfpq3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgV2VhdGhlciBpbiB0aGUgQ2xvY2suIEdOT01FIFdlYXRoZXIgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiV2VhdGhlciBJbiBUaGUgQ2xvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiSmFzb25MRzE5NzlAZ2l0aHViLmlvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0phc29uTEcxOTc5L2dub21lLXNoZWxsLWV4dGVuc2lvbi13ZWF0aGVyLWluLXRoZS1jbG9jay8iLAogICJ1dWlkIjogIndlYXRoZXJpbnRoZWNsb2NrQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "02aszdk2iswlqwkwi83gi69qzw0jwhill66qacrc7gg59mpfpq3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgV2VhdGhlciBpbiB0aGUgQ2xvY2suIEdOT01FIFdlYXRoZXIgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiV2VhdGhlciBJbiBUaGUgQ2xvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiSmFzb25MRzE5NzlAZ2l0aHViLmlvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0phc29uTEcxOTc5L2dub21lLXNoZWxsLWV4dGVuc2lvbi13ZWF0aGVyLWluLXRoZS1jbG9jay8iLAogICJ1dWlkIjogIndlYXRoZXJpbnRoZWNsb2NrQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"uuid": "LyricsFinder@alireza6677.gmail.com", "name": "Lyrics Finder", "pname": "lyrics-finder", "description": "Finding lyrics has never been easier\nJust play some music!\n\nIf you want to report a bug please don't forget to mention:\n- Gnome shell version\n- Your Linux distro\n- Extension version\n- Error messages (If you see any)\n", "link": "https://extensions.gnome.org/extension/1383/lyrics-finder/", "shell_version_map": {"40": {"version": "14", "sha256": "1x9d3npil0wgf44p276dslw5adw4gziij03r0jlw174yy87mn2lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbmRpbmcgbHlyaWNzIGhhcyBuZXZlciBiZWVuIGVhc2llclxuSnVzdCBwbGF5IHNvbWUgbXVzaWMhXG5cbklmIHlvdSB3YW50IHRvIHJlcG9ydCBhIGJ1ZyBwbGVhc2UgZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb246XG4tIEdub21lIHNoZWxsIHZlcnNpb25cbi0gWW91ciBMaW51eCBkaXN0cm9cbi0gRXh0ZW5zaW9uIHZlcnNpb25cbi0gRXJyb3IgbWVzc2FnZXMgKElmIHlvdSBzZWUgYW55KVxuIiwKICAibmFtZSI6ICJMeXJpY3MgRmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmx5cmljcy1maW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL1RoZVdlaXJkRGV2L2x5cmljcy1maW5kZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJMeXJpY3NGaW5kZXJAYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
, {"uuid": "NotificationCounter@coolllsk", "name": "Notification Counter", "pname": "notification-counter", "description": "Shows number of notifications in queue.", "link": "https://extensions.gnome.org/extension/1386/notification-counter/", "shell_version_map": {"40": {"version": "4", "sha256": "0lld50jlnqgrm66030s6djy1gs5wd29l5l2is6mwqzxm8kypxpx7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "you2ber@konkor", "name": "you2ber", "pname": "you2ber", "description": "Gnome Youtube Downloader\n\n Simple helper for youtube-dl project. It allows you to save locally desired media content without any browser extensions. Just copy URL address of a media content to the clipboard and select desired quality profile or custom format for the item in the extension menu to store it.\n * Required the installation of ffmpeg (youtube-dl dependency for media manipulation)\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1392/you2ber/", "shell_version_map": {"40": {"version": "10", "sha256": "0dx5x22imwagx2j07xnayvd7zgsk7cyby7gh4jl935ndxmdp05fc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFlvdXR1YmUgRG93bmxvYWRlclxuXG4gU2ltcGxlIGhlbHBlciBmb3IgeW91dHViZS1kbCBwcm9qZWN0LiBJdCBhbGxvd3MgeW91IHRvIHNhdmUgbG9jYWxseSBkZXNpcmVkIG1lZGlhIGNvbnRlbnQgd2l0aG91dCBhbnkgYnJvd3NlciBleHRlbnNpb25zLiBKdXN0IGNvcHkgVVJMIGFkZHJlc3Mgb2YgYSBtZWRpYSBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQgYW5kIHNlbGVjdCBkZXNpcmVkIHF1YWxpdHkgcHJvZmlsZSBvciBjdXN0b20gZm9ybWF0IGZvciB0aGUgaXRlbSBpbiB0aGUgZXh0ZW5zaW9uIG1lbnUgdG8gc3RvcmUgaXQuXG4gKiBSZXF1aXJlZCB0aGUgaW5zdGFsbGF0aW9uIG9mIGZmbXBlZyAoeW91dHViZS1kbCBkZXBlbmRlbmN5IGZvciBtZWRpYSBtYW5pcHVsYXRpb24pXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBob3ctdG8gc2VlIFJFQURNRS5tZCIsCiAgIm5hbWUiOiAieW91MmJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcua29ua29yLnlvdTJiZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL3lvdTJiZXIiLAogICJ1dWlkIjogInlvdTJiZXJAa29ua29yIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
, {"uuid": "files-view@argonauta.framagit.org", "name": "Files View", "pname": "files-view", "description": "", "link": "https://extensions.gnome.org/extension/1395/files-view/", "shell_version_map": {"38": {"version": "11", "sha256": "0367kzrpzbx1b2l1m68n2pmazlsy4207a1anvyr2n1a4xpq3vwb0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgImdldHRleHQtZG9tYWluIjogImZpbGVzLXZpZXciLAogICJuYW1lIjogIkZpbGVzIFZpZXciLAogICJyZWNlbnRseS1vcGVuLXBlcnNpc3RlbnQtZmlsZW5hbWUiOiAicmVjZW50bHktb3Blbi1mb2xkZXJzLWZpbGVzLXZpZXctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLmpzb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmlsZXMtdmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJmaWxlcy12aWV3QGFyZ29uYXV0YS5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
-, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth quick connect", "pname": "bluetooth-quick-connect", "description": "Allow to connect to paired devices from gnome control panel.\n", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {"38": {"version": "16", "sha256": "0068kd11bbdqq79hh50dri7qj3x6sgyf46dfml8kmgzw8w7s5h61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "22", "sha256": "0rq8pc2ps1rwg5l8yms3l5bk5daav1szw6g4fnp73vyfr9dzhydx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
-, {"uuid": "syspeek-gs@gs.eros2.info", "name": "SysPeek-GS", "pname": "syspeek-gs", "description": "Simple CPU load monitor widget inspired by SysPeek indicator", "link": "https://extensions.gnome.org/extension/1409/syspeek-gs/", "shell_version_map": {"38": {"version": "7", "sha256": "04hj4mfrnviwiwsgrhnnh3sc0x9i1bvkgwnijqgwkwapy8mg3km4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "04hj4mfrnviwiwsgrhnnh3sc0x9i1bvkgwnijqgwkwapy8mg3km4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth quick connect", "pname": "bluetooth-quick-connect", "description": "Allow to connect to paired devices from gnome control panel.\n", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {"38": {"version": "16", "sha256": "0068kd11bbdqq79hh50dri7qj3x6sgyf46dfml8kmgzw8w7s5h61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "26", "sha256": "0llq5axwy0n0c4ab5xy1nbjx2gxpmi1k3zzq5d2fa74cvdy10yfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0llq5axwy0n0c4ab5xy1nbjx2gxpmi1k3zzq5d2fa74cvdy10yfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "syspeek-gs@gs.eros2.info", "name": "SysPeek-GS", "pname": "syspeek-gs", "description": "Minimalistic CPU load monitor widget inspired by SysPeek indicator", "link": "https://extensions.gnome.org/extension/1409/syspeek-gs/", "shell_version_map": {"38": {"version": "7", "sha256": "1q212xi45mznnmagcifiaapnac3zacgq9q832ac634wil8yv6m6x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1q212xi45mznnmagcifiaapnac3zacgq9q832ac634wil8yv6m6x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "discrete-brightness@gs.eros2.info", "name": "Discrete brightness", "pname": "discrete-brightness", "description": "Discrete brightness indicator change brightness in discrete steps, unlike default smooth brightness bar in Gnome Shell (for laptops/tablets only)", "link": "https://extensions.gnome.org/extension/1410/discrete-brightness/", "shell_version_map": {"38": {"version": "5", "sha256": "0qiv41b4hh4n2hzhmajq6rlc9yvj095z49ngvhsqp6vfa0xzaiw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwgKGZvciBsYXB0b3BzL3RhYmxldHMgb25seSkiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0qiv41b4hh4n2hzhmajq6rlc9yvj095z49ngvhsqp6vfa0xzaiw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwgKGZvciBsYXB0b3BzL3RhYmxldHMgb25seSkiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "quake-mode@repsac-by.github.com", "name": "quake-mode", "pname": "quake-mode", "description": "Drop-down mode for any application", "link": "https://extensions.gnome.org/extension/1411/quake-mode/", "shell_version_map": {"38": {"version": "3", "sha256": "17498v2jw85fhrsldvgnj3x01h00wqarsp9zqp6ym4h7syzbjxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "4", "sha256": "0s1338hv9vhip4cpv2b7srp5c9fsv1rbxk95lrj6m5jzs2qb7mym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmVwc2FjLWJ5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1xdWFrZS1tb2RlIiwKICAidXVpZCI6ICJxdWFrZS1tb2RlQHJlcHNhYy1ieS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "unblank@sun.wxg@gmail.com", "name": "Unblank lock screen", "pname": "unblank", "description": "Unblank lock screen. \n\n After you install this extension, the extension will be enabled by default. If you want to disable this extension, you need to delete this extension or go to this extension settings to turn off switch.", "link": "https://extensions.gnome.org/extension/1414/unblank/", "shell_version_map": {"38": {"version": "20", "sha256": "017sq5m7rlalajrc5yp0v7n528bssfaql7hry3p4rv8hk2ypfxnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5ibGFuayIsCiAgInV1aWQiOiAidW5ibGFua0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "22", "sha256": "1jpp0ndnsw9cf4z26snaip6jdsdj4a6qivyn2k35vavqmg403ksw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuYmxhbmsiLAogICJ1dWlkIjogInVuYmxhbmtAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
+, {"uuid": "unblank@sun.wxg@gmail.com", "name": "Unblank lock screen", "pname": "unblank", "description": "Unblank lock screen. \n\n After you install this extension, the extension will be enabled by default. If you want to disable this extension, you need to delete this extension or go to this extension settings to turn off switch.", "link": "https://extensions.gnome.org/extension/1414/unblank/", "shell_version_map": {"38": {"version": "20", "sha256": "017sq5m7rlalajrc5yp0v7n528bssfaql7hry3p4rv8hk2ypfxnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5ibGFuayIsCiAgInV1aWQiOiAidW5ibGFua0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "22", "sha256": "1jpp0ndnsw9cf4z26snaip6jdsdj4a6qivyn2k35vavqmg403ksw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuYmxhbmsiLAogICJ1dWlkIjogInVuYmxhbmtAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "41": {"version": "25", "sha256": "02rfv75mg8xrs6k9xh2p0k85qx8f63q09kqjzlk7as31v1swbamb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuYmxhbmsiLAogICJ1dWlkIjogInVuYmxhbmtAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
, {"uuid": "vbox-applet@gs.eros2.info", "name": "VirtualBox applet", "pname": "virtualbox-applet", "description": "Provide menu to run VirtualBox machines and switch between running VMs", "link": "https://extensions.gnome.org/extension/1415/virtualbox-applet/", "shell_version_map": {"38": {"version": "7", "sha256": "0vpsnysdb4wqjd6hb9vprz141293ra3pb8q0cnysnbyh9sh0mhjc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0vpsnysdb4wqjd6hb9vprz141293ra3pb8q0cnysnbyh9sh0mhjc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"uuid": "stocks@infinicode.de", "name": "Stocks Extension", "pname": "stocks-extension", "description": "Stocks Extension brings stock quotes to your GNOME Shell Panel", "link": "https://extensions.gnome.org/extension/1422/stocks-extension/", "shell_version_map": {"38": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
, {"uuid": "showtime@xenlism.github.io", "name": "Showtime - Desktop Widget", "pname": "showtime", "description": "Date &amp;amp;amp;amp;amp; Clock Desktop Widget\n\nMove Widget by Press Super + Drag Widget\nhttps://github.com/xenlism/showtime", "link": "https://extensions.gnome.org/extension/1429/showtime/", "shell_version_map": {"38": {"version": "4", "sha256": "12k6spjhg2ykgh5x3mily0dps450pyj9vyv1bay5w919y9swplaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWVAeGVubGlzbS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "0p10as2k6lkh3vj5860hvmj98by18ih8r2k7y36iqrxqpl3s8fd4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInNob3d0aW1lQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "7", "sha256": "085166k6cyc249h03nmkv3dx5i7hcrpvbapimym6z1mg3ygij6z7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbW1haS9DdXJyZW50X3NjcmVlbl9vbmx5X29uX3dpbmRvd19zd2l0Y2hlciIsCiAgInV1aWQiOiAiQ3VycmVudF9zY3JlZW5fb25seV9mb3JfQWx0ZXJuYXRlX1RhYkBib3VyY2VyZWF1LmZyIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "11", "sha256": "0ag9cq2cgxv9h8ic8dgdxm9n93ls47q9n1kzkh8k0g8brsi9nbk0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Z2Ym9nZGFub3Y4Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3ViZWNvbmZpZyIsCiAgInV1aWQiOiAia3ViZV9jb25maWdAdnZib2dkYW5vdjg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
, {"uuid": "transparent-window-moving@noobsai.github.com", "name": "Transparent Window Moving", "pname": "transparent-window-moving", "description": "Makes the window semi-transparent when moving or resizing", "link": "https://extensions.gnome.org/extension/1446/transparent-window-moving/", "shell_version_map": {"38": {"version": "6", "sha256": "0vllnrscjaqx77wb44803q6n3wk590dxacjfsw7ympbgqhikzc0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "8", "sha256": "11f1663is2hamja5xg6sgrn2rpb3s96mqwq6alvn2swbqafn0cbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvdHJhbnNwYXJlbnQtd2luZG93LW1vdmluZyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93LW1vdmluZ0Bub29ic2FpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
, {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "7", "sha256": "09nhn8f7d8c1kp8hgw49y0d9165ckvgn6my339k0pzga02d277a6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
, {"uuid": "miniview@thesecretaryofwar.com", "name": "Miniview", "pname": "miniview", "description": "Show window previews\n- Left-mouse drag: move preview window\n- Right-mouse drag (or ctrl + left mouse drag): resize preview window\n- Scroll wheel (or shift + left/right click): change target window\n- Double click: raise target window\n- Shift + F12: toggle preview window (this can be changed or disabled in preferences)\n- Ctrl + scroll wheel: adjust opacity", "link": "https://extensions.gnome.org/extension/1459/miniview/", "shell_version_map": {"40": {"version": "9", "sha256": "1287ps5da2sy7sr7n9kh56jnrfz7iilv6lq6cwfzyc2jjsx35f04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgd2luZG93IHByZXZpZXdzXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbCAob3Igc2hpZnQgKyBsZWZ0L3JpZ2h0IGNsaWNrKTogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWFtbGVtZWMvbWluaXZpZXciLAogICJ1dWlkIjogIm1pbml2aWV3QHRoZXNlY3JldGFyeW9md2FyLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
-, {"uuid": "Vitals@CoreCoding.com", "name": "Vitals", "pname": "vitals", "description": "A glimpse into your computer's temperature, voltage, fan speed, memory usage, processor load, system resources, network speed and storage stats. This is a one stop shop to monitor all of your vital sensors. Uses asynchronous polling to provide a smooth user experience. Feature requests or bugs? Please use GitHub.", "link": "https://extensions.gnome.org/extension/1460/vitals/", "shell_version_map": {"38": {"version": "43", "sha256": "1d5fdmgkg1xbfan8d4k1lm5a2pkplzfyy2j2wxkhmdxa1z9y3a29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvcmVjb2RpbmcvVml0YWxzIiwKICAidXVpZCI6ICJWaXRhbHNAQ29yZUNvZGluZy5jb20iLAogICJ2ZXJzaW9uIjogNDMKfQ=="}, "40": {"version": "43", "sha256": "1d5fdmgkg1xbfan8d4k1lm5a2pkplzfyy2j2wxkhmdxa1z9y3a29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvcmVjb2RpbmcvVml0YWxzIiwKICAidXVpZCI6ICJWaXRhbHNAQ29yZUNvZGluZy5jb20iLAogICJ2ZXJzaW9uIjogNDMKfQ=="}}}
+, {"uuid": "Vitals@CoreCoding.com", "name": "Vitals", "pname": "vitals", "description": "A glimpse into your computer's temperature, voltage, fan speed, memory usage, processor load, system resources, network speed and storage stats. This is a one stop shop to monitor all of your vital sensors. Uses asynchronous polling to provide a smooth user experience. Feature requests or bugs? Please use GitHub.", "link": "https://extensions.gnome.org/extension/1460/vitals/", "shell_version_map": {"38": {"version": "45", "sha256": "16rq3dsjkj93lyx7zsim86k6zaa735604di3dcacvbzpaxf5rj96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "45", "sha256": "16rq3dsjkj93lyx7zsim86k6zaa735604di3dcacvbzpaxf5rj96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "41": {"version": "45", "sha256": "16rq3dsjkj93lyx7zsim86k6zaa735604di3dcacvbzpaxf5rj96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "panel-date-format@keiii.github.com", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.\nNOTE: No GUI. Just use dconf to change format follow up: https://github.com/KEIII/gnome-shell-panel-date-format#changing-format", "link": "https://extensions.gnome.org/extension/1462/panel-date-format/", "shell_version_map": {"40": {"version": "3", "sha256": "0yi67ia4imyq758d3kmhxhsxyd9966vkzds4a648qsxid8ww96gb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC5cbk5PVEU6IE5vIEdVSS4gSnVzdCB1c2UgZGNvbmYgdG8gY2hhbmdlIGZvcm1hdCBmb2xsb3cgdXA6IGh0dHBzOi8vZ2l0aHViLmNvbS9LRUlJSS9nbm9tZS1zaGVsbC1wYW5lbC1kYXRlLWZvcm1hdCNjaGFuZ2luZy1mb3JtYXQiLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0tFSUlJL2dub21lLXNoZWxsLXBhbmVsLWRhdGUtZm9ybWF0IiwKICAidXVpZCI6ICJwYW5lbC1kYXRlLWZvcm1hdEBrZWlpaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "desktop-icons@csoriano", "name": "Desktop Icons", "pname": "desktop-icons", "description": "Add icons to the desktop", "link": "https://extensions.gnome.org/extension/1465/desktop-icons/", "shell_version_map": {"38": {"version": "19", "sha256": "01qdh1kigl3ck1mzgha1a9218lpam5b54ai72mpvr64gkaax2mcv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBpY29ucyB0byB0aGUgZGVza3RvcCIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvV29ybGQvU2hlbGxFeHRlbnNpb25zL2Rlc2t0b3AtaWNvbnMiLAogICJ1dWlkIjogImRlc2t0b3AtaWNvbnNAY3Nvcmlhbm8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
, {"uuid": "fullbattery@categulario.tk", "name": "Full Battery indicator", "pname": "full-battery-indicator", "description": "Notifies when battery is full", "link": "https://extensions.gnome.org/extension/1466/full-battery-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "167d84phf68fi5bg9fvm4l7l8jq7k86a80adm0l56ngqygxqsyy8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWVzIHdoZW4gYmF0dGVyeSBpcyBmdWxsIiwKICAibmFtZSI6ICJGdWxsIEJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjMiLAogICAgIjMuMzQuNCIsCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2F0ZWd1bGFyaW8vZnVsbC1iYXR0ZXJ5LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZnVsbGJhdHRlcnlAY2F0ZWd1bGFyaW8udGsiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "167d84phf68fi5bg9fvm4l7l8jq7k86a80adm0l56ngqygxqsyy8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWVzIHdoZW4gYmF0dGVyeSBpcyBmdWxsIiwKICAibmFtZSI6ICJGdWxsIEJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjMiLAogICAgIjMuMzQuNCIsCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2F0ZWd1bGFyaW8vZnVsbC1iYXR0ZXJ5LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZnVsbGJhdHRlcnlAY2F0ZWd1bGFyaW8udGsiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "rdesktop-menu@bastien.git.geekwu.org", "name": "Rdesktop launcher", "pname": "rdesktop-launcher", "description": "Add a servers status menu for quickly running rdesktop", "link": "https://extensions.gnome.org/extension/1467/rdesktop-launcher/", "shell_version_map": {"38": {"version": "11", "sha256": "16dj3yyma4nwn9vvf85i9ws4w9s7z2bz0gapgm1xb3g4q74vckjw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "16dj3yyma4nwn9vvf85i9ws4w9s7z2bz0gapgm1xb3g4q74vckjw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}}}
-, {"uuid": "batime@martin.zurowietz.de", "name": "Battery Time", "pname": "battery-time", "description": "Show the remaining time until fully charged/discharged instead of the battery charge in percent in the panel.", "link": "https://extensions.gnome.org/extension/1475/battery-time/", "shell_version_map": {"40": {"version": "7", "sha256": "0fnfilxj76xmxjhrv309195pqw9c400llmkvvr5vlk08yjky6ib1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBpbnN0ZWFkIG9mIHRoZSBiYXR0ZXJ5IGNoYXJnZSBpbiBwZXJjZW50IGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXRpbWUiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXRpbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1iYXRpbWUiLAogICJ1dWlkIjogImJhdGltZUBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
-, {"uuid": "unlockDialogBackground@sun.wxg@gmail.com", "name": "Lock screen background", "pname": "unlock-dialog-background", "description": "Change lock screen background.\nIf you use Ubuntu, install package gir1.2-clutter-1.0 first.", "link": "https://extensions.gnome.org/extension/1476/unlock-dialog-background/", "shell_version_map": {"38": {"version": "18", "sha256": "1j9m4qkd0i6l4nxwpxjwvp3nh0zifpzvp0xwp4cqqlr2flb6lwps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiMy4zNi40IiwKICAgICIzLjM2LjUiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zNi43IiwKICAgICIzLjM2LjgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "20", "sha256": "1gin7mpafmx8h177alhhlrjqpq5354napc0jqaj4l4f7ynzn4843", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
-, {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {"38": {"version": "27", "sha256": "0b76x0li5a8x42l67ykbw34k4cfmbxqvz36zighhfw4qmxsc36cr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
-, {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Sync all extensions and their configurations across all gnome instances", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "0yb0brjnqvvlqpdyh841qwh3q2d02vi1an0s93gb2b6kagy1g7zd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "14", "sha256": "0805li10x12jasjhpngp3p24xvxmbcvskvhxc11m5nv286s4gpx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxNAp9"}}}
-, {"uuid": "containers@royg", "name": "Containers", "pname": "containers", "description": "Manage podman containers through a gnome-shell menu", "link": "https://extensions.gnome.org/extension/1500/containers/", "shell_version_map": {"40": {"version": "13", "sha256": "1hbjr5s5mx9dqdj3a12hmbz5fzcpm65pvifa86hwy2m852zj2nc5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZ29sYW5naC9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29udGFpbmVycyIsCiAgInV1aWQiOiAiY29udGFpbmVyc0Byb3lnIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "tint-all@amarovita.github.com", "name": "Tint All", "pname": "tint-all", "description": "Colorize the entire gnome workspace. Amber, green, cyan, sepia and grayscale - just keep clicking extension icon. Scroll over extension icon to change fx level.", "link": "https://extensions.gnome.org/extension/1471/tint-all/", "shell_version_map": {"38": {"version": "7", "sha256": "1lflpza6kbdh4ql338vidij9c2gh2r116gfgih7lk4inkj1hqmmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yaXplIHRoZSBlbnRpcmUgZ25vbWUgd29ya3NwYWNlLiBBbWJlciwgZ3JlZW4sIGN5YW4sIHNlcGlhIGFuZCBncmF5c2NhbGUgLSBqdXN0IGtlZXAgY2xpY2tpbmcgZXh0ZW5zaW9uIGljb24uIFNjcm9sbCBvdmVyIGV4dGVuc2lvbiBpY29uIHRvIGNoYW5nZSBmeCBsZXZlbC4iLAogICJuYW1lIjogIlRpbnQgQWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGludC1hbGxAYW1hcm92aXRhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1lflpza6kbdh4ql338vidij9c2gh2r116gfgih7lk4inkj1hqmmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yaXplIHRoZSBlbnRpcmUgZ25vbWUgd29ya3NwYWNlLiBBbWJlciwgZ3JlZW4sIGN5YW4sIHNlcGlhIGFuZCBncmF5c2NhbGUgLSBqdXN0IGtlZXAgY2xpY2tpbmcgZXh0ZW5zaW9uIGljb24uIFNjcm9sbCBvdmVyIGV4dGVuc2lvbiBpY29uIHRvIGNoYW5nZSBmeCBsZXZlbC4iLAogICJuYW1lIjogIlRpbnQgQWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGludC1hbGxAYW1hcm92aXRhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1lflpza6kbdh4ql338vidij9c2gh2r116gfgih7lk4inkj1hqmmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yaXplIHRoZSBlbnRpcmUgZ25vbWUgd29ya3NwYWNlLiBBbWJlciwgZ3JlZW4sIGN5YW4sIHNlcGlhIGFuZCBncmF5c2NhbGUgLSBqdXN0IGtlZXAgY2xpY2tpbmcgZXh0ZW5zaW9uIGljb24uIFNjcm9sbCBvdmVyIGV4dGVuc2lvbiBpY29uIHRvIGNoYW5nZSBmeCBsZXZlbC4iLAogICJuYW1lIjogIlRpbnQgQWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGludC1hbGxAYW1hcm92aXRhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "batime@martin.zurowietz.de", "name": "Battery Time", "pname": "battery-time", "description": "Show the remaining time until fully charged/discharged instead of the battery charge in percent in the panel.", "link": "https://extensions.gnome.org/extension/1475/battery-time/", "shell_version_map": {"40": {"version": "9", "sha256": "1xhh65f8h4k41f3vc90k4wwkjg9bgrihbzi0asjjaf10hvwzmfn4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBpbnN0ZWFkIG9mIHRoZSBiYXR0ZXJ5IGNoYXJnZSBpbiBwZXJjZW50IGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXRpbWUiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXRpbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtYmF0aW1lIiwKICAidXVpZCI6ICJiYXRpbWVAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1xhh65f8h4k41f3vc90k4wwkjg9bgrihbzi0asjjaf10hvwzmfn4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBpbnN0ZWFkIG9mIHRoZSBiYXR0ZXJ5IGNoYXJnZSBpbiBwZXJjZW50IGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXRpbWUiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXRpbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtYmF0aW1lIiwKICAidXVpZCI6ICJiYXRpbWVAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "unlockDialogBackground@sun.wxg@gmail.com", "name": "Lock screen background", "pname": "unlock-dialog-background", "description": "Change lock screen background.\nIf you use Ubuntu, install package gir1.2-clutter-1.0 first.", "link": "https://extensions.gnome.org/extension/1476/unlock-dialog-background/", "shell_version_map": {"38": {"version": "18", "sha256": "1j9m4qkd0i6l4nxwpxjwvp3nh0zifpzvp0xwp4cqqlr2flb6lwps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiMy4zNi40IiwKICAgICIzLjM2LjUiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zNi43IiwKICAgICIzLjM2LjgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "20", "sha256": "1gin7mpafmx8h177alhhlrjqpq5354napc0jqaj4l4f7ynzn4843", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "23", "sha256": "0j4mhrdmkwwsf52lcqbl0ln7rl3s64nb24862gahs26y4kpbaiv3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
+, {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {"38": {"version": "27", "sha256": "0b76x0li5a8x42l67ykbw34k4cfmbxqvz36zighhfw4qmxsc36cr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "30", "sha256": "0i2mkln8nvvjr870fi0vspry0y7zsyvxakb3i8x5c90r6gc6mr25", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "41": {"version": "30", "sha256": "0i2mkln8nvvjr870fi0vspry0y7zsyvxakb3i8x5c90r6gc6mr25", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
+, {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "170hljy4ygb3fw429fkmfalwlyb6p0fb4p48yvn99wbbfqgz4jsb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "15", "sha256": "0dhmifmxrhvfrpw2vyn014k572k9xbw3f81li4xq5xmbn9a4w8yf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "0dhmifmxrhvfrpw2vyn014k572k9xbw3f81li4xq5xmbn9a4w8yf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "containers@royg", "name": "Containers", "pname": "containers", "description": "Manage podman containers through a gnome-shell menu", "link": "https://extensions.gnome.org/extension/1500/containers/", "shell_version_map": {"40": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
, {"uuid": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "When you launch an application in fullscreen mode move it to a separate workspace.", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {"38": {"version": "2", "sha256": "0flpi1rwbzacibhf8j74v6vc5wa99d5149ydmwdfcij3r5qxh5br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsc2NyZWVuIG1vZGUgbW92ZSBpdCB0byBhIHNlcGFyYXRlIHdvcmtzcGFjZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmdWxsc2NyZWVud29ya3NwYWNlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE9uIE5ldyBXb3Jrc3BhY2UiLAogICJzY2hlbWEtaWQiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4iLAogICJ1dWlkIjogImZ1bGxzY3JlZW53b3Jrc3BhY2VAc2F0cmFuLmluIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0flpi1rwbzacibhf8j74v6vc5wa99d5149ydmwdfcij3r5qxh5br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsc2NyZWVuIG1vZGUgbW92ZSBpdCB0byBhIHNlcGFyYXRlIHdvcmtzcGFjZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmdWxsc2NyZWVud29ya3NwYWNlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE9uIE5ldyBXb3Jrc3BhY2UiLAogICJzY2hlbWEtaWQiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4iLAogICJ1dWlkIjogImZ1bGxzY3JlZW53b3Jrc3BhY2VAc2F0cmFuLmluIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "tray-icons@zhangkaizhao.com", "name": "Tray Icons", "pname": "tray-icons", "description": "Tray icons", "link": "https://extensions.gnome.org/extension/1503/tray-icons/", "shell_version_map": {"38": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}, "40": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
, {"uuid": "drop-down-terminal-x@bigbn.pro", "name": "Drop Down Terminal X", "pname": "drop-down-terminal-x", "description": "THIS EXTENSION IS NO LONGER SUPPORTED.\n\nIf you are looking for an alternative please look at that https://extensions.gnome.org/extension/3780/ddterm \nawesome extension.\n\nA GNOME Shell drop down terminal with extra feautures.\n \nSpecial thanks to:\n- Osman Alperen Elhan (https://github.com/oae)\n- Balder Claassen (https://github.com/balderclaassen)\n- Adrien Pyke (https://github.com/kufii)\n- Alan J Carvajal (https://github.com/ajcarvajal)\n- Massimo Mund (https://github.com/masmu)\n- Jakub Żywiec (https://github.com/jakubzet)\n- Mattias Eriksson (https://github.com/snaggen)\n- Henry78 (https://github.com/Henry78)\n- Maxim Toropov (https://github.com/MaxMaxoff)\nfor active contribution.\n\nBased on original extension \"gs-extensions-drop-down-terminal\" from Stéphane Démurget (https://github.com/zzrough)", "link": "https://extensions.gnome.org/extension/1509/drop-down-terminal-x/", "shell_version_map": {"38": {"version": "17", "sha256": "1k90g6bndw1xr56k7lwlxyw89aqbl47spkfmj1lq224z83w6hzdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRISVMgRVhURU5TSU9OIElTIE5PIExPTkdFUiBTVVBQT1JURUQuXG5cbklmIHlvdSBhcmUgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRpdmUgcGxlYXNlIGxvb2sgYXQgdGhhdCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zNzgwL2RkdGVybSBcbmF3ZXNvbWUgZXh0ZW5zaW9uLlxuXG5BIEdOT01FIFNoZWxsIGRyb3AgZG93biB0ZXJtaW5hbCB3aXRoIGV4dHJhIGZlYXV0dXJlcy5cbiBcblNwZWNpYWwgdGhhbmtzIHRvOlxuLSBPc21hbiBBbHBlcmVuIEVsaGFuIChodHRwczovL2dpdGh1Yi5jb20vb2FlKVxuLSBCYWxkZXIgQ2xhYXNzZW4gKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWxkZXJjbGFhc3Nlbilcbi0gQWRyaWVuIFB5a2UgKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWZpaSlcbi0gQWxhbiBKIENhcnZhamFsIChodHRwczovL2dpdGh1Yi5jb20vYWpjYXJ2YWphbClcbi0gTWFzc2ltbyBNdW5kIChodHRwczovL2dpdGh1Yi5jb20vbWFzbXUpXG4tIEpha3ViIFx1MDE3Ynl3aWVjIChodHRwczovL2dpdGh1Yi5jb20vamFrdWJ6ZXQpXG4tIE1hdHRpYXMgRXJpa3Nzb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmFnZ2VuKVxuLSBIZW5yeTc4IChodHRwczovL2dpdGh1Yi5jb20vSGVucnk3OClcbi0gTWF4aW0gVG9yb3BvdiAoaHR0cHM6Ly9naXRodWIuY29tL01heE1heG9mZilcbmZvciBhY3RpdmUgY29udHJpYnV0aW9uLlxuXG5CYXNlZCBvbiBvcmlnaW5hbCBleHRlbnNpb24gXCJncy1leHRlbnNpb25zLWRyb3AtZG93bi10ZXJtaW5hbFwiIGZyb20gU3RcdTAwZTlwaGFuZSBEXHUwMGU5bXVyZ2V0IChodHRwczovL2dpdGh1Yi5jb20venpyb3VnaCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcm9wLWRvd24tdGVybWluYWwteCIsCiAgImlkIjogImRyb3AtZG93bi10ZXJtaW5hbC14IiwKICAibmFtZSI6ICJEcm9wIERvd24gVGVybWluYWwgWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4wIiwKICAgICIzLjI4LjEiLAogICAgIjMuMjguMiIsCiAgICAiMy4zMC4wIiwKICAgICIzLjMwLjEiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zMi4wIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNC4wIiwKICAgICIzLjM0LjQiLAogICAgIjMuMzYuMCIsCiAgICAiMy4zNi4xIiwKICAgICIzLjM2LjIiLAogICAgIjMuMzguMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpZ2JuL2dzLWV4dGVuc2lvbnMtZHJvcC1kb3duLXRlcm1pbmFsIiwKICAidXVpZCI6ICJkcm9wLWRvd24tdGVybWluYWwteEBiaWdibi5wcm8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
-, {"uuid": "Rounded_Corners@lennart-k", "name": "Rounded Corners", "pname": "rounded-corners", "description": "Creates rounded corners for every monitor", "link": "https://extensions.gnome.org/extension/1514/rounded-corners/", "shell_version_map": {"38": {"version": "4", "sha256": "0pvbnv97g2mjbklszxvp6df50iw9kyr1ssfza8ia9779x5zq9bk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sZW5uYXJ0LWsvZ25vbWUtcm91bmRlZC1jb3JuZXJzIiwKICAidXVpZCI6ICJSb3VuZGVkX0Nvcm5lcnNAbGVubmFydC1rIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "Rounded_Corners@lennart-k", "name": "Rounded Corners", "pname": "rounded-corners", "description": "Creates rounded corners for every monitor", "link": "https://extensions.gnome.org/extension/1514/rounded-corners/", "shell_version_map": {"38": {"version": "5", "sha256": "1lli47bjlrr5g3548jjvvvbbml6g0sg5mm6py9j7kjcgg84sscnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVubmFydC1rL2dub21lLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAiUm91bmRlZF9Db3JuZXJzQGxlbm5hcnQtayIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1lli47bjlrr5g3548jjvvvbbml6g0sg5mm6py9j7kjcgg84sscnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVubmFydC1rL2dub21lLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAiUm91bmRlZF9Db3JuZXJzQGxlbm5hcnQtayIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "scrovol@andyholmes.github.io", "name": "Scrovol", "pname": "scrovol", "description": "Change the volume by scrolling anywhere on the System Tray.\n\nWith this extension, you can scroll over Night Light, WiFi, Volume, Battery or any other icon in the system status tray to change the volume, instead of just the Volume icon.", "link": "https://extensions.gnome.org/extension/1519/scrovol/", "shell_version_map": {"40": {"version": "4", "sha256": "1md52ygz481nvhq00bkq2ymby7f647cfvw4wx1wqkwp7b796d59c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgdm9sdW1lIGJ5IHNjcm9sbGluZyBhbnl3aGVyZSBvbiB0aGUgU3lzdGVtIFRyYXkuXG5cbldpdGggdGhpcyBleHRlbnNpb24sIHlvdSBjYW4gc2Nyb2xsIG92ZXIgTmlnaHQgTGlnaHQsIFdpRmksIFZvbHVtZSwgQmF0dGVyeSBvciBhbnkgb3RoZXIgaWNvbiBpbiB0aGUgc3lzdGVtIHN0YXR1cyB0cmF5IHRvIGNoYW5nZSB0aGUgdm9sdW1lLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIFZvbHVtZSBpY29uLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3Jvdm9sIiwKICAibmFtZSI6ICJTY3Jvdm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Nyb3ZvbC8iLAogICJ1dWlkIjogInNjcm92b2xAYW5keWhvbG1lcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "notification-center@Selenium-H", "name": "Notification Center", "pname": "notification-centerselenium-h", "description": "Detach notification center to top panel and customizations.Please reset the extension after updating.\nThe Extension will stop when upgraded to an incompatible version.\nIn that case an Update tab is created to easily reset the extension.\nA Reset button is also always present in Preferences option in the Top Right Application menu of the extension preferences window.", "link": "https://extensions.gnome.org/extension/1526/notification-centerselenium-h/", "shell_version_map": {"38": {"version": "24", "sha256": "1449kl7fss2fyj1ks8ra3qy60jvn5fcl1iyv813s8vdkkp5dv8a2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucy4iLAogICJkZXNjcmlwdGlvbiI6ICJEZXRhY2ggbm90aWZpY2F0aW9uIGNlbnRlciB0byB0b3AgcGFuZWwgYW5kIGN1c3RvbWl6YXRpb25zLlBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLlxuVGhlIEV4dGVuc2lvbiB3aWxsIHN0b3Agd2hlbiB1cGdyYWRlZCB0byBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbi5cbkluIHRoYXQgY2FzZSBhbiBVcGRhdGUgdGFiIGlzIGNyZWF0ZWQgdG8gZWFzaWx5IHJlc2V0IHRoZSBleHRlbnNpb24uXG5BIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIFByZWZlcmVuY2VzIG9wdGlvbiBpbiB0aGUgVG9wIFJpZ2h0IEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "1449kl7fss2fyj1ks8ra3qy60jvn5fcl1iyv813s8vdkkp5dv8a2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucy4iLAogICJkZXNjcmlwdGlvbiI6ICJEZXRhY2ggbm90aWZpY2F0aW9uIGNlbnRlciB0byB0b3AgcGFuZWwgYW5kIGN1c3RvbWl6YXRpb25zLlBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLlxuVGhlIEV4dGVuc2lvbiB3aWxsIHN0b3Agd2hlbiB1cGdyYWRlZCB0byBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbi5cbkluIHRoYXQgY2FzZSBhbiBVcGRhdGUgdGFiIGlzIGNyZWF0ZWQgdG8gZWFzaWx5IHJlc2V0IHRoZSBleHRlbnNpb24uXG5BIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIFByZWZlcmVuY2VzIG9wdGlvbiBpbiB0aGUgVG9wIFJpZ2h0IEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
, {"uuid": "lockkeys@fawtytoo", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock and Capslock status on the panel. Icons are auto hidden. Simplified with no menus, notifications or settings.\n\nWayland is supported for Gnome Shell 3.38 or newer.", "link": "https://extensions.gnome.org/extension/1532/lock-keys/", "shell_version_map": {"38": {"version": "12", "sha256": "0cnd71926fyxcq6gv0j6xiy8w9fw0lvsby4rmzamywg1rbb5i1jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIHN1cHBvcnRlZCBmb3IgR25vbWUgU2hlbGwgMy4zOCBvciBuZXdlci4iLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiU3RldmUgQ2xhcmssIEthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0cnd71926fyxcq6gv0j6xiy8w9fw0lvsby4rmzamywg1rbb5i1jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIHN1cHBvcnRlZCBmb3IgR25vbWUgU2hlbGwgMy4zOCBvciBuZXdlci4iLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiU3RldmUgQ2xhcmssIEthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
-, {"uuid": "fullscreen-hot-corner@sorrow.about.alice.pm.me", "name": "Fullscreen Hot Corner", "pname": "fullscreen-hot-corner", "description": "Enables hot corner in fullscreen mode", "link": "https://extensions.gnome.org/extension/1562/fullscreen-hot-corner/", "shell_version_map": {"38": {"version": "6", "sha256": "1lcpw06aqja4q7qqfvds5nv2zvzrjh56lymj1al4kiql92gbwzp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "8", "sha256": "07ly7kgjz15462d2xx53l4rmgydw72jm4f21vsil8fyynifv5smv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "fullscreen-hot-corner@sorrow.about.alice.pm.me", "name": "Fullscreen Hot Corner", "pname": "fullscreen-hot-corner", "description": "Enables hot corner in fullscreen mode", "link": "https://extensions.gnome.org/extension/1562/fullscreen-hot-corner/", "shell_version_map": {"38": {"version": "6", "sha256": "1lcpw06aqja4q7qqfvds5nv2zvzrjh56lymj1al4kiql92gbwzp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}}}
, {"uuid": "worksets@blipk.xyz", "name": "Customised Workspaces", "pname": "worksets", "description": "Customised Workspaces enables creating isolated and customised workspaces.\n\n* Customise the dash to be unique for each workspace, each with their own favourites\n* Only show running applications on the dash in their respective workspace\n* Choose a custom background image for each workspace\n* Minor UI tweaks to the overview workspaces\n* Save each customisation, set them to autoload on specific workspaces\n* Hide the extension once you've configured your preferences to enjoy seamlessly upgraded workspaces in gnome shell\n\nCompatible for use with any of these extensions to complete your workspace upgrade:\n\n* Dash to Panel - https://extensions.gnome.org/extension/1160/dash-to-panel/\n* Dash to Dock - https://extensions.gnome.org/extension/307/dash-to-dock/\n* Auto Move Windows - https://extensions.gnome.org/extension/16/auto-move-windows/\n* Vertical Overview - https://github.com/RensAlthuis/vertical-overview", "link": "https://extensions.gnome.org/extension/1583/worksets/", "shell_version_map": {"38": {"version": "30", "sha256": "0mjah9nx66caqmfbz8wrvg6iyhxp7jmbgwx1gnp8k2a2z536n1iw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDMwCn0="}, "40": {"version": "30", "sha256": "0mjah9nx66caqmfbz8wrvg6iyhxp7jmbgwx1gnp8k2a2z536n1iw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDMwCn0="}}}
, {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {"38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "16", "sha256": "1l2790w6r8ay150k57nh7imrg5fc6198rqzrp903bww59wwllz9v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbGV4UG9pbHJvdWdlL05vcmRWUE4tY29ubmVjdCIsCiAgInV1aWQiOiAiTm9yZFZQTl9Db25uZWN0QHBvaWxyb3VnZS5mciIsCiAgInZlcnNpb24iOiAxNgp9"}}}
-, {"uuid": "arrangeWindows@sun.wxg@gmail.com", "name": "Arrange Windows", "pname": "arrange-windows", "description": "Arrange windows on the monitors\n\nHotkeys:\n Ctrl+Alt+1 Cascade windows\n Ctrl+Alt+2 Tiling windows\n Ctrl+Alt+3 Side by side windows\n Ctrl+Alt+4 Stack windows", "link": "https://extensions.gnome.org/extension/1604/arrange-windows/", "shell_version_map": {"38": {"version": "20", "sha256": "1akrix6iji78bhwpvsbwf9lxyjgsv2496rdfadns4f8wpgs4d1n4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXJyYW5nZVdpbmRvd3MiLAogICJ1dWlkIjogImFycmFuZ2VXaW5kb3dzQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}, "40": {"version": "20", "sha256": "1akrix6iji78bhwpvsbwf9lxyjgsv2496rdfadns4f8wpgs4d1n4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXJyYW5nZVdpbmRvd3MiLAogICJ1dWlkIjogImFycmFuZ2VXaW5kb3dzQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
-, {"uuid": "fullscreen-notifications@sorrow.about.alice.pm.me", "name": "Fullscreen Notifications", "pname": "fullscreen-notifications", "description": "Enables all notifications in fullscreen mode", "link": "https://extensions.gnome.org/extension/1610/fullscreen-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "1g1dgrhbif7qcxga7302bhhdjrr2v3vkp6dfavyclzsdkkrr2wwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZ1bGxzY3JlZW4tbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1ub3RpZmljYXRpb25zQHNvcnJvdy5hYm91dC5hbGljZS5wbS5tZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "4", "sha256": "107lii2hxfs6wa6a94yhfjmk1szpyia3rbhb7lf8nwj1gdra54zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zb2FsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mdWxsc2NyZWVuLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4tbm90aWZpY2F0aW9uc0Bzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "panelScroll@sun.wxg@gmail.com", "name": "panel scroll", "pname": "panel-scroll", "description": "Switch windows or workspace by mouse scroll on the panel.\nPointer on left of panel, switch windows.\nPointer on right of panel, switch workspaces.", "link": "https://extensions.gnome.org/extension/1616/panel-scroll/", "shell_version_map": {"38": {"version": "10", "sha256": "1llw16wszrkrrzrlyd1ppw8kn1cqp2z4irzi9q7v2nr47hrk14kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWxTY3JvbGwiLAogICJ1dWlkIjogInBhbmVsU2Nyb2xsQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "14", "sha256": "09bwi84nxnzil4mc7b55p6ldb1pcfl3ajvzm561bjv50zxhkjjc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBhbmVsU2Nyb2xsIiwKICAidXVpZCI6ICJwYW5lbFNjcm9sbEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "arrangeWindows@sun.wxg@gmail.com", "name": "Arrange Windows", "pname": "arrange-windows", "description": "Arrange windows on the monitors\n\nHotkeys:\n Ctrl+Alt+1 Cascade windows\n Ctrl+Alt+2 Tiling windows\n Ctrl+Alt+3 Side by side windows\n Ctrl+Alt+4 Stack windows", "link": "https://extensions.gnome.org/extension/1604/arrange-windows/", "shell_version_map": {"38": {"version": "21", "sha256": "0dhcawzc2ljxjc31jnk7ihbvngw9sbbcgk7qvhz5syjvsbwzc8c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFycmFuZ2VXaW5kb3dzIiwKICAidXVpZCI6ICJhcnJhbmdlV2luZG93c0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"version": "21", "sha256": "0dhcawzc2ljxjc31jnk7ihbvngw9sbbcgk7qvhz5syjvsbwzc8c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFycmFuZ2VXaW5kb3dzIiwKICAidXVpZCI6ICJhcnJhbmdlV2luZG93c0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "41": {"version": "21", "sha256": "0dhcawzc2ljxjc31jnk7ihbvngw9sbbcgk7qvhz5syjvsbwzc8c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFycmFuZ2VXaW5kb3dzIiwKICAidXVpZCI6ICJhcnJhbmdlV2luZG93c0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
+, {"uuid": "fullscreen-notifications@sorrow.about.alice.pm.me", "name": "Fullscreen Notifications", "pname": "fullscreen-notifications", "description": "Enables all notifications in fullscreen mode", "link": "https://extensions.gnome.org/extension/1610/fullscreen-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "1g1dgrhbif7qcxga7302bhhdjrr2v3vkp6dfavyclzsdkkrr2wwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZ1bGxzY3JlZW4tbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1ub3RpZmljYXRpb25zQHNvcnJvdy5hYm91dC5hbGljZS5wbS5tZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "5", "sha256": "1cxpgvkpm1r8d14wvl8pic7p6wd4im8cj3dklnzb7ni2ks2h0cps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZ1bGxzY3JlZW4tbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1ub3RpZmljYXRpb25zQHNvcnJvdy5hYm91dC5hbGljZS5wbS5tZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1cxpgvkpm1r8d14wvl8pic7p6wd4im8cj3dklnzb7ni2ks2h0cps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZ1bGxzY3JlZW4tbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1ub3RpZmljYXRpb25zQHNvcnJvdy5hYm91dC5hbGljZS5wbS5tZSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "panelScroll@sun.wxg@gmail.com", "name": "panel scroll", "pname": "panel-scroll", "description": "Switch windows or workspace by mouse scroll on the panel.\nPointer on left of panel, switch windows.\nPointer on right of panel, switch workspaces.", "link": "https://extensions.gnome.org/extension/1616/panel-scroll/", "shell_version_map": {"38": {"version": "10", "sha256": "1llw16wszrkrrzrlyd1ppw8kn1cqp2z4irzi9q7v2nr47hrk14kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWxTY3JvbGwiLAogICJ1dWlkIjogInBhbmVsU2Nyb2xsQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "15", "sha256": "0q4yvmkri1wzhav1va25ffcpw8c4882dgifkwnzmg9fgv0i3vgh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wYW5lbFNjcm9sbCIsCiAgInV1aWQiOiAicGFuZWxTY3JvbGxAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "0q4yvmkri1wzhav1va25ffcpw8c4882dgifkwnzmg9fgv0i3vgh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wYW5lbFNjcm9sbCIsCiAgInV1aWQiOiAicGFuZWxTY3JvbGxAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
, {"uuid": "soft-brightness@fifi.org", "name": "Soft brightness", "pname": "soft-brightness", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.", "link": "https://extensions.gnome.org/extension/1625/soft-brightness/", "shell_version_map": {"38": {"version": "27", "sha256": "0caz4ff1wa9qq9f0zvl2sa2c8d2ff5icvcqyfv9n9aqrknkpn3pa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3NvZnQtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzQGZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYyNy0wLWcyN2M0OTc4IiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "27", "sha256": "0caz4ff1wa9qq9f0zvl2sa2c8d2ff5icvcqyfv9n9aqrknkpn3pa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3NvZnQtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzQGZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYyNy0wLWcyN2M0OTc4IiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
, {"uuid": "Resource_Monitor@Ory0n", "name": "Resource Monitor", "pname": "resource-monitor", "description": "Monitor the use of system resources like cpu, ram, disk, network and display them in gnome shell top bar.", "link": "https://extensions.gnome.org/extension/1634/resource-monitor/", "shell_version_map": {"38": {"version": "14", "sha256": "0mg6b54cinplc4i3kzn6p397a8flyivcyzg30pnfq7phhgpcnxwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "15", "sha256": "1q6scg003qyp84q7yd1f49kks0rr5k0wwlsq7m3ccnjk5dakqisa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
, {"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org", "name": "Tweaks & Extensions in System Menu", "pname": "tweaks-in-system-menu", "description": "Put Gnome Tweaks and Extensions (on Shell 40 and later) in the System menu.", "link": "https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/", "shell_version_map": {"38": {"version": "15", "sha256": "0i6bj4kd59wg1sm29a1yr9s1is2rkxnabn04hlj66y5n6lv6gxgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNS0wLWdlM2IwNGM3IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "15", "sha256": "0i6bj4kd59wg1sm29a1yr9s1is2rkxnabn04hlj66y5n6lv6gxgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNS0wLWdlM2IwNGM3IiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
@@ -208,272 +217,281 @@
, {"uuid": "drawOnYourScreen@abakkk.framagit.org", "name": "Draw On You Screen", "pname": "draw-on-you-screen", "description": "", "link": "https://extensions.gnome.org/extension/1683/draw-on-you-screen/", "shell_version_map": {"38": {"version": "11", "sha256": "0kbgngcb2n234snnavbm8giwi6zhvr48bs0qy4f511d52l2wyawy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXdPbllvdXJTY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcmF3LW9uLXlvdXItc2NyZWVuIiwKICAibmFtZSI6ICJEcmF3IE9uIFlvdSBTY3JlZW4iLAogICJwZXJzaXN0ZW50LWZpbGUtbmFtZSI6ICJwZXJzaXN0ZW50IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyYXctb24teW91ci1zY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAic3ZnLWZpbGUtbmFtZSI6ICJEcmF3T25Zb3VyU2NyZWVuIiwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZHJhd09uWW91clNjcmVlbkBhYmFra2suZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Show titles of all thumbnails in the Gnome 3 overview.", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "134xr99qsrz0z56nrgp5frjmzk3jk38sh6hix394a7mm8y5wx304", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "9", "sha256": "0jan9fzfjkclm9m6ckngzp7j203vwbcn3m7njyl498zsqr81ar8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3IiwKICAidXVpZCI6ICJBbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {"38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "15", "sha256": "03ah1cx6kjw7698b9wwhz7ag8pag15g8zkxzfrsrcmving9syynd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
-, {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "12", "sha256": "0ir6apfpjihwdbxlpa30jgvqn47f14xs9aplz4rrya9h51zf55jl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
, {"uuid": "ssh-search-provider@extensions.gnome-shell.fifi.org", "name": "SSH Search Provider Reborn", "pname": "ssh-search-provider-reborn", "description": "Provide SSH search results in overview.\n\nThis is a fork of the original \"SSH Search Provider\", updated to work with newer Gnome-Shells.", "link": "https://extensions.gnome.org/extension/1714/ssh-search-provider-reborn/", "shell_version_map": {"38": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
, {"uuid": "weeks-start-on-monday@extensions.gnome-shell.fifi.org", "name": "Weeks Start on Monday Again...", "pname": "weeks-start-on-monday-again", "description": "... or maybe not, and that's why the start day is configurable in the preferences.\n\nThis is an updated version of the \"Weeks Start on Monday\" extension for newer Gnome Shells.", "link": "https://extensions.gnome.org/extension/1720/weeks-start-on-monday-again/", "shell_version_map": {"38": {"version": "8", "sha256": "0d84v6rn0k1rpkin0fnj5halfhk0z7mh36s8n3g7y653r0fn76vv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2OC0wLWc4M2RlNGE0IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0d84v6rn0k1rpkin0fnj5halfhk0z7mh36s8n3g7y653r0fn76vv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2OC0wLWc4M2RlNGE0IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "wintile@nowsci.com", "name": "WinTile: Windows 10 window tiling for GNOME", "pname": "wintile-windows-10-window-tiling-for-gnome", "description": "[NOTE] When upgrading to V7, you may get an ERROR. Log out and back in and V7 will begin to work.\n\nWinTile is a hotkey driven window tiling system for GNOME that imitates the standard Win-Arrow keys of Windows 10, allowing you to maximize, maximize to sides, or 1/4 sized to corner across a single or multiple monitors using just Super+Arrow.\n\nAs of v3, WinTile also supports:\n- 2, 3, or 4 columns for standard or ultrawide monitors\n- Top/bottom half support\n- Mouse preview and snapping for placing windows\n- Toggling of 'maximize' mode, which adds/removes GNOME animations\n\nAs of v6, supports installs in GNOME 3.38+\n\nAs of v7, supports installs in GNOME 40+", "link": "https://extensions.gnome.org/extension/1723/wintile-windows-10-window-tiling-for-gnome/", "shell_version_map": {"38": {"version": "7", "sha256": "1nx0psgaj33ipfsnxinvz2vjmdhhvms0bqdflhmkbh1003m6103x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIltOT1RFXSBXaGVuIHVwZ3JhZGluZyB0byBWNywgeW91IG1heSBnZXQgYW4gRVJST1IuIExvZyBvdXQgYW5kIGJhY2sgaW4gYW5kIFY3IHdpbGwgYmVnaW4gdG8gd29yay5cblxuV2luVGlsZSBpcyBhIGhvdGtleSBkcml2ZW4gd2luZG93IHRpbGluZyBzeXN0ZW0gZm9yIEdOT01FIHRoYXQgaW1pdGF0ZXMgdGhlIHN0YW5kYXJkIFdpbi1BcnJvdyBrZXlzIG9mIFdpbmRvd3MgMTAsIGFsbG93aW5nIHlvdSB0byBtYXhpbWl6ZSwgbWF4aW1pemUgdG8gc2lkZXMsIG9yIDEvNCBzaXplZCB0byBjb3JuZXIgYWNyb3NzIGEgc2luZ2xlIG9yIG11bHRpcGxlIG1vbml0b3JzIHVzaW5nIGp1c3QgU3VwZXIrQXJyb3cuXG5cbkFzIG9mIHYzLCBXaW5UaWxlIGFsc28gc3VwcG9ydHM6XG4tIDIsIDMsIG9yIDQgY29sdW1ucyBmb3Igc3RhbmRhcmQgb3IgdWx0cmF3aWRlIG1vbml0b3JzXG4tIFRvcC9ib3R0b20gaGFsZiBzdXBwb3J0XG4tIE1vdXNlIHByZXZpZXcgYW5kIHNuYXBwaW5nIGZvciBwbGFjaW5nIHdpbmRvd3Ncbi0gVG9nZ2xpbmcgb2YgJ21heGltaXplJyBtb2RlLCB3aGljaCBhZGRzL3JlbW92ZXMgR05PTUUgYW5pbWF0aW9uc1xuXG5BcyBvZiB2Niwgc3VwcG9ydHMgaW5zdGFsbHMgaW4gR05PTUUgMy4zOCtcblxuQXMgb2YgdjcsIHN1cHBvcnRzIGluc3RhbGxzIGluIEdOT01FIDQwKyIsCiAgIm5hbWUiOiAiV2luVGlsZTogV2luZG93cyAxMCB3aW5kb3cgdGlsaW5nIGZvciBHTk9NRSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Ztc3RyYXQvd2ludGlsZSIsCiAgInV1aWQiOiAid2ludGlsZUBub3dzY2kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1nx0psgaj33ipfsnxinvz2vjmdhhvms0bqdflhmkbh1003m6103x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIltOT1RFXSBXaGVuIHVwZ3JhZGluZyB0byBWNywgeW91IG1heSBnZXQgYW4gRVJST1IuIExvZyBvdXQgYW5kIGJhY2sgaW4gYW5kIFY3IHdpbGwgYmVnaW4gdG8gd29yay5cblxuV2luVGlsZSBpcyBhIGhvdGtleSBkcml2ZW4gd2luZG93IHRpbGluZyBzeXN0ZW0gZm9yIEdOT01FIHRoYXQgaW1pdGF0ZXMgdGhlIHN0YW5kYXJkIFdpbi1BcnJvdyBrZXlzIG9mIFdpbmRvd3MgMTAsIGFsbG93aW5nIHlvdSB0byBtYXhpbWl6ZSwgbWF4aW1pemUgdG8gc2lkZXMsIG9yIDEvNCBzaXplZCB0byBjb3JuZXIgYWNyb3NzIGEgc2luZ2xlIG9yIG11bHRpcGxlIG1vbml0b3JzIHVzaW5nIGp1c3QgU3VwZXIrQXJyb3cuXG5cbkFzIG9mIHYzLCBXaW5UaWxlIGFsc28gc3VwcG9ydHM6XG4tIDIsIDMsIG9yIDQgY29sdW1ucyBmb3Igc3RhbmRhcmQgb3IgdWx0cmF3aWRlIG1vbml0b3JzXG4tIFRvcC9ib3R0b20gaGFsZiBzdXBwb3J0XG4tIE1vdXNlIHByZXZpZXcgYW5kIHNuYXBwaW5nIGZvciBwbGFjaW5nIHdpbmRvd3Ncbi0gVG9nZ2xpbmcgb2YgJ21heGltaXplJyBtb2RlLCB3aGljaCBhZGRzL3JlbW92ZXMgR05PTUUgYW5pbWF0aW9uc1xuXG5BcyBvZiB2Niwgc3VwcG9ydHMgaW5zdGFsbHMgaW4gR05PTUUgMy4zOCtcblxuQXMgb2YgdjcsIHN1cHBvcnRzIGluc3RhbGxzIGluIEdOT01FIDQwKyIsCiAgIm5hbWUiOiAiV2luVGlsZTogV2luZG93cyAxMCB3aW5kb3cgdGlsaW5nIGZvciBHTk9NRSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Ztc3RyYXQvd2ludGlsZSIsCiAgInV1aWQiOiAid2ludGlsZUBub3dzY2kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "focusli@armonge.info", "name": "Focusli", "pname": "focusli", "description": "Improve focus and increase your productive by listening to different sounds", "link": "https://extensions.gnome.org/extension/1726/focusli/", "shell_version_map": {"40": {"version": "7", "sha256": "0061krhxrp5wrqi4dflmd8anw3szqq335y2z2ka48pf662vkp7km", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgZm9jdXMgYW5kIGluY3JlYXNlIHlvdXIgcHJvZHVjdGl2ZSBieSBsaXN0ZW5pbmcgdG8gZGlmZmVyZW50IHNvdW5kcyIsCiAgIm5hbWUiOiAiRm9jdXNsaSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm1vbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1c2xpIiwKICAidXVpZCI6ICJmb2N1c2xpQGFybW9uZ2UuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "gtktitlebar@velitasali.github.io", "name": "GTK Title Bar", "pname": "gtk-title-bar", "description": "Remove title bars for non-GTK apps with minimal interference with the default workflow", "link": "https://extensions.gnome.org/extension/1732/gtk-title-bar/", "shell_version_map": {"40": {"version": "8", "sha256": "1lynrwjc6ps8s84y2zjf7rfc0shq84c7dz17p83h4yzd3hl9cqri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aXRsZSBiYXJzIGZvciBub24tR1RLIGFwcHMgd2l0aCBtaW5pbWFsIGludGVyZmVyZW5jZSB3aXRoIHRoZSBkZWZhdWx0IHdvcmtmbG93IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrdGl0bGViYXIiLAogICJuYW1lIjogIkdUSyBUaXRsZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrdGl0bGViYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmVsaXRhc2FsaS9ndGt0aXRsZWJhciIsCiAgInV1aWQiOiAiZ3RrdGl0bGViYXJAdmVsaXRhc2FsaS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "gtktitlebar@velitasali.github.io", "name": "GTK Title Bar", "pname": "gtk-title-bar", "description": "Remove title bars for non-GTK apps with minimal interference with the default workflow", "link": "https://extensions.gnome.org/extension/1732/gtk-title-bar/", "shell_version_map": {"40": {"version": "9", "sha256": "0yv290i2jyxdzp96lmv06n52pb09lgpaaqfcrdlg89zj2wqmkhjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aXRsZSBiYXJzIGZvciBub24tR1RLIGFwcHMgd2l0aCBtaW5pbWFsIGludGVyZmVyZW5jZSB3aXRoIHRoZSBkZWZhdWx0IHdvcmtmbG93IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrdGl0bGViYXIiLAogICJuYW1lIjogIkdUSyBUaXRsZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrdGl0bGViYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZlbGl0YXNhbGkvZ3RrdGl0bGViYXIiLAogICJ1dWlkIjogImd0a3RpdGxlYmFyQHZlbGl0YXNhbGkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "0yv290i2jyxdzp96lmv06n52pb09lgpaaqfcrdlg89zj2wqmkhjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aXRsZSBiYXJzIGZvciBub24tR1RLIGFwcHMgd2l0aCBtaW5pbWFsIGludGVyZmVyZW5jZSB3aXRoIHRoZSBkZWZhdWx0IHdvcmtmbG93IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrdGl0bGViYXIiLAogICJuYW1lIjogIkdUSyBUaXRsZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrdGl0bGViYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZlbGl0YXNhbGkvZ3RrdGl0bGViYXIiLAogICJ1dWlkIjogImd0a3RpdGxlYmFyQHZlbGl0YXNhbGkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"uuid": "quicklists@maestroschan.fr", "name": "Quicklists", "pname": "quicklists", "description": "Add dynamic quicklists to app icons, such as file manager bookmarks and recent files.", "link": "https://extensions.gnome.org/extension/1747/quicklists/", "shell_version_map": {"38": {"version": "7", "sha256": "1cck1k1kf116z85m5fby0hhaa7fplhryv0nv1pdc3h8200i39580", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBkeW5hbWljIHF1aWNrbGlzdHMgdG8gYXBwIGljb25zLCBzdWNoIGFzIGZpbGUgbWFuYWdlciBib29rbWFya3MgYW5kIHJlY2VudCBmaWxlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWlja2xpc3RzIiwKICAibmFtZSI6ICJRdWlja2xpc3RzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrbGlzdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovcXVpY2tsaXN0cy1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInF1aWNrbGlzdHNAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "lan-ip-address@mrhuber.com", "name": "LAN IP Address", "pname": "lan-ip-address", "description": "Simple extension to show your LAN IP address on the GNOME panel. This is the address that other computers on your LAN would use to connect to your computer. \n\nDoes not show loopback addresses (127.0.0.0/8) or Docker bridge networks.\n\nDoes not show your Internet (public) IP address unless you are directly connected to the Internet with no intermediate NAT router (uncommon, except for devices with built-in LTE data connections).\n\nThis extension also respects your privacy and bandwidth, as it makes absolutely zero requests to the Internet and sends zero packets to the Internet. The plugin gets its information from your local routing table (output of `ip route`) and only displays the result in the GNOME panel, and this information never leaves your computer.", "link": "https://extensions.gnome.org/extension/1762/lan-ip-address/", "shell_version_map": {"38": {"version": "7", "sha256": "0yfh5xzh9msdhpx1cxxryzjb07p9rvgfvcnyf41mq5p73b2j4m22", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gc2hvdyB5b3VyIExBTiBJUCBhZGRyZXNzIG9uIHRoZSBHTk9NRSBwYW5lbC4gIFRoaXMgaXMgdGhlIGFkZHJlc3MgdGhhdCBvdGhlciBjb21wdXRlcnMgb24geW91ciBMQU4gd291bGQgdXNlIHRvIGNvbm5lY3QgdG8geW91ciBjb21wdXRlci4gXG5cbkRvZXMgbm90IHNob3cgbG9vcGJhY2sgYWRkcmVzc2VzICgxMjcuMC4wLjAvOCkgb3IgRG9ja2VyIGJyaWRnZSBuZXR3b3Jrcy5cblxuRG9lcyBub3Qgc2hvdyB5b3VyIEludGVybmV0IChwdWJsaWMpIElQIGFkZHJlc3MgdW5sZXNzIHlvdSBhcmUgZGlyZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBJbnRlcm5ldCB3aXRoIG5vIGludGVybWVkaWF0ZSBOQVQgcm91dGVyICh1bmNvbW1vbiwgZXhjZXB0IGZvciBkZXZpY2VzIHdpdGggYnVpbHQtaW4gTFRFIGRhdGEgY29ubmVjdGlvbnMpLlxuXG5UaGlzIGV4dGVuc2lvbiBhbHNvIHJlc3BlY3RzIHlvdXIgcHJpdmFjeSBhbmQgYmFuZHdpZHRoLCBhcyBpdCBtYWtlcyBhYnNvbHV0ZWx5IHplcm8gcmVxdWVzdHMgdG8gdGhlIEludGVybmV0IGFuZCBzZW5kcyB6ZXJvIHBhY2tldHMgdG8gdGhlIEludGVybmV0LiAgVGhlIHBsdWdpbiBnZXRzIGl0cyBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgbG9jYWwgcm91dGluZyB0YWJsZSAob3V0cHV0IG9mIGBpcCByb3V0ZWApIGFuZCBvbmx5IGRpc3BsYXlzIHRoZSByZXN1bHQgaW4gdGhlIEdOT01FIHBhbmVsLCBhbmQgdGhpcyBpbmZvcm1hdGlvbiBuZXZlciBsZWF2ZXMgeW91ciBjb21wdXRlci4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2hvbGl0aC9nbm9tZS1leHRlbnNpb24tbGFuLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogImxhbi1pcC1hZGRyZXNzQG1yaHViZXIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0yfh5xzh9msdhpx1cxxryzjb07p9rvgfvcnyf41mq5p73b2j4m22", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gc2hvdyB5b3VyIExBTiBJUCBhZGRyZXNzIG9uIHRoZSBHTk9NRSBwYW5lbC4gIFRoaXMgaXMgdGhlIGFkZHJlc3MgdGhhdCBvdGhlciBjb21wdXRlcnMgb24geW91ciBMQU4gd291bGQgdXNlIHRvIGNvbm5lY3QgdG8geW91ciBjb21wdXRlci4gXG5cbkRvZXMgbm90IHNob3cgbG9vcGJhY2sgYWRkcmVzc2VzICgxMjcuMC4wLjAvOCkgb3IgRG9ja2VyIGJyaWRnZSBuZXR3b3Jrcy5cblxuRG9lcyBub3Qgc2hvdyB5b3VyIEludGVybmV0IChwdWJsaWMpIElQIGFkZHJlc3MgdW5sZXNzIHlvdSBhcmUgZGlyZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBJbnRlcm5ldCB3aXRoIG5vIGludGVybWVkaWF0ZSBOQVQgcm91dGVyICh1bmNvbW1vbiwgZXhjZXB0IGZvciBkZXZpY2VzIHdpdGggYnVpbHQtaW4gTFRFIGRhdGEgY29ubmVjdGlvbnMpLlxuXG5UaGlzIGV4dGVuc2lvbiBhbHNvIHJlc3BlY3RzIHlvdXIgcHJpdmFjeSBhbmQgYmFuZHdpZHRoLCBhcyBpdCBtYWtlcyBhYnNvbHV0ZWx5IHplcm8gcmVxdWVzdHMgdG8gdGhlIEludGVybmV0IGFuZCBzZW5kcyB6ZXJvIHBhY2tldHMgdG8gdGhlIEludGVybmV0LiAgVGhlIHBsdWdpbiBnZXRzIGl0cyBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgbG9jYWwgcm91dGluZyB0YWJsZSAob3V0cHV0IG9mIGBpcCByb3V0ZWApIGFuZCBvbmx5IGRpc3BsYXlzIHRoZSByZXN1bHQgaW4gdGhlIEdOT01FIHBhbmVsLCBhbmQgdGhpcyBpbmZvcm1hdGlvbiBuZXZlciBsZWF2ZXMgeW91ciBjb21wdXRlci4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2hvbGl0aC9nbm9tZS1leHRlbnNpb24tbGFuLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogImxhbi1pcC1hZGRyZXNzQG1yaHViZXIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "colortint@matt.serverus.co.uk", "name": "ColorTint", "pname": "colortint", "description": "Tint your desktop with a color of your choice to help with dyslexia, visual stress, scopic sensitivity, and related conditions.", "link": "https://extensions.gnome.org/extension/1789/colortint/", "shell_version_map": {"40": {"version": "7", "sha256": "1ggf4xlnyfxhl3fsl8ljdj0izipx2v8kxpnhhqz7w397a0r9q121", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHZpc3VhbCBzdHJlc3MsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXR0QnlOYW1lL2NvbG9yLXRpbnQiLAogICJ1dWlkIjogImNvbG9ydGludEBtYXR0LnNlcnZlcnVzLmNvLnVrIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "sermon@rovellipaolo-gmail.com", "name": "SerMon: Service Monitor", "pname": "sermon", "description": "SerMon: an extension for monitoring and managing systemd services, cron jobs, docker and podman containers", "link": "https://extensions.gnome.org/extension/1804/sermon/", "shell_version_map": {"38": {"version": "15", "sha256": "0g2m7gfdgbd1fcnxk6jldw50n4962wgcmwvmgqxdd7xna5a73mrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "0g2m7gfdgbd1fcnxk6jldw50n4962wgcmwvmgqxdd7xna5a73mrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
-, {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {"38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "37", "sha256": "1b97yx0a6j43sl7s3mi7kacv71g0zhvyd5dl2h9vm8g3gf375880", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaWN0IiwKICAidXVpZCI6ICJkaWN0QHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
+, {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {"38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}, "41": {"version": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}}}
, {"uuid": "gamemode@christian.kellner.me", "name": "GameMode", "pname": "gamemode", "description": "Status indicator for GameMode", "link": "https://extensions.gnome.org/extension/1852/gamemode/", "shell_version_map": {"38": {"version": "5", "sha256": "1nj4k7h872zmx4q44z9qzg8rxx1sqqbj8rd4am5xkn1zc8y65kg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpY21vL2dhbWVtb2RlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ2FtZW1vZGVAY2hyaXN0aWFuLmtlbGxuZXIubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1nj4k7h872zmx4q44z9qzg8rxx1sqqbj8rd4am5xkn1zc8y65kg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpY21vL2dhbWVtb2RlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ2FtZW1vZGVAY2hyaXN0aWFuLmtlbGxuZXIubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to workaround https://bugzilla.redhat.com/show_bug.cgi?id=767397 and https://bugzilla.gnome.org/show_bug.cgi?id=738719", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "3", "sha256": "1xy3rdby56645028khwjp3ir6pkj1sany8sqysm94pb0pha7q3rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGlzYWJsZS11bnJlZGlyZWN0IiwKICAidXVpZCI6ICJ1bnJlZGlyZWN0QHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "1xy3rdby56645028khwjp3ir6pkj1sany8sqysm94pb0pha7q3rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGlzYWJsZS11bnJlZGlyZWN0IiwKICAidXVpZCI6ICJ1bnJlZGlyZWN0QHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "7", "sha256": "0018xdahl3900j9dqjs2gqnrrknrdx78vp8rkmd3v4276ampx9cb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "9", "sha256": "08r7w1mq573hy6vqllydvsrmc91bqmy9ih8li689v225drd95wk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "08r7w1mq573hy6vqllydvsrmc91bqmy9ih8li689v225drd95wk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
, {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {"38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"uuid": "no-title-bar@jonaspoehler.de", "name": "No Title Bar - Forked", "pname": "no-title-bar-forked", "description": "No Title Bar removes the title bar from non-GTK applications and moves the window title and buttons to the top panel.\n\nTitlebars are also hidden for Wayland-native clients that don't use CSD. Some of the options may be incompatible with this. For issues on Wayland please visit github!\n\nThis is a fork of https://extensions.gnome.org/extension/1267/no-title-bar/ with added compatibility for Gnome 3.32+.\n\nThis extension depends on some Xorg utilities. To install them:\n\n⚫ Debian/Ubuntu: apt install x11-utils\n⚫ Fedora/RHEL: dnf install xorg-x11-utils\n⚫ Arch: pacman -S xorg-xprop", "link": "https://extensions.gnome.org/extension/2015/no-title-bar-forked/", "shell_version_map": {"38": {"version": "5", "sha256": "0kch8yra13813gg3wa90lm57skqshmj3j1147lrqwhl9va9rk4q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb2VobGVyai9uby10aXRsZS1iYXIiLAogICJ1dWlkIjogIm5vLXRpdGxlLWJhckBqb25hc3BvZWhsZXIuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "6", "sha256": "1plnj999qynsfvab6s01rfrdvw6m0s19b4zirhmlqrpax9vjl3zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9laGxlcmovbm8tdGl0bGUtYmFyIiwKICAidXVpZCI6ICJuby10aXRsZS1iYXJAam9uYXNwb2VobGVyLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the overview if it's showing.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "16", "sha256": "11l8p1f62kf73jwq1idhqanjhmml6cwkffy1brqihczvg88pdzdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "11l8p1f62kf73jwq1idhqanjhmml6cwkffy1brqihczvg88pdzdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the overview if it's showing.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "18", "sha256": "1vz3d8gif8a7nimcn98cwv6lh4khn888c3mvn7pnn06pfpisl6g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOAp9"}, "40": {"version": "18", "sha256": "1vz3d8gif8a7nimcn98cwv6lh4khn888c3mvn7pnn06pfpisl6g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOAp9"}}}
, {"uuid": "activities_icon_menu@fawtytoo", "name": "Activities Icon Menu", "pname": "activities-menu-for-apps-and-windows", "description": "This extension turns the Activities button into a popup menu with icons for selecting either Applications or Workspaces in the Overview. Selecting the same view again will hide the overview.\n\nThis is particularly useful for tablet users that find the Activities button difficult to click on, whereas a menu can be more easily invoked.", "link": "https://extensions.gnome.org/extension/2048/activities-menu-for-apps-and-windows/", "shell_version_map": {"38": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "21", "sha256": "10554hlfv3nlf49av54wwckg2ld4p8pc7vk8s14085shdplwi95n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2dvbGRwcmljZW1vbml0b3IiLAogICJ1dWlkIjogIkdvbGRfUHJpY2VfTW9uaXRvckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
-, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "28", "sha256": "1kdgdlgf41hqqg6kwyn2yrqs4cn1d0bhbdgc43yhkpf93lpr69n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "1kdgdlgf41hqqg6kwyn2yrqs4cn1d0bhbdgc43yhkpf93lpr69n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
+, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "41": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {"38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "horizontal-workspaces@gnome-shell-extensions.gcampax.github.com", "name": "Horizontal workspaces", "pname": "horizontal-workspaces", "description": "Use a horizontal workspace layout", "link": "https://extensions.gnome.org/extension/2141/horizontal-workspaces/", "shell_version_map": {"38": {"version": "5", "sha256": "0kbqcrs96v72yk0rf8jghy1a31651fyvgpi97yp46n4wmvc41vk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIGhvcml6b250YWwgd29ya3NwYWNlIGxheW91dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJIb3Jpem9udGFsIHdvcmtzcGFjZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2VzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"uuid": "threefingerwindowmove@do.sch.dev.gmail.com", "name": "Three Finger Window Move", "pname": "three-finger-window-move", "description": "Allows moving windows around with a three finger trackpad gesture (Wayland only)", "link": "https://extensions.gnome.org/extension/2164/three-finger-window-move/", "shell_version_map": {"38": {"version": "7", "sha256": "1m7vwr6s6w297b0x0bmnj8fs2hl73pbys6m93lnb9inh5pmgiv1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBtb3Zpbmcgd2luZG93cyBhcm91bmQgd2l0aCBhIHRocmVlIGZpbmdlciB0cmFja3BhZCBnZXN0dXJlIChXYXlsYW5kIG9ubHkpIiwKICAibmFtZSI6ICJUaHJlZSBGaW5nZXIgV2luZG93IE1vdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kby1zY2gvZ25vbWUtc2hlbGwtdG91Y2hwYWQtd2luZG93LW1vdmUiLAogICJ1dWlkIjogInRocmVlZmluZ2Vyd2luZG93bW92ZUBkby5zY2guZGV2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "9", "sha256": "15nmnf2i3icfk0lc8yb20jxj0irivgw73sh9d94p09v5jv0p9hvm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL3Nwb3RpZnktYWQtYmxvY2tlciIsCiAgInV1aWQiOiAic3BvdGlmeS1hZC1ibG9ja0BkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "15nmnf2i3icfk0lc8yb20jxj0irivgw73sh9d94p09v5jv0p9hvm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL3Nwb3RpZnktYWQtYmxvY2tlciIsCiAgInV1aWQiOiAic3BvdGlmeS1hZC1ibG9ja0BkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "10", "sha256": "1ij5307mcm3shhs23lpl8l968xgzc1qr0wvzkb419ihdk4kjmf9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cam9lcm5EYWFzZS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2VAZGFhc2UubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1ij5307mcm3shhs23lpl8l968xgzc1qr0wvzkb419ihdk4kjmf9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cam9lcm5EYWFzZS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2VAZGFhc2UubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="}}}
-, {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "9", "sha256": "0bzwl271j3j41nrx6fzcp2ahypl23ivfhp5zrg2xvh3r69hg61br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0bzwl271j3j41nrx6fzcp2ahypl23ivfhp5zrg2xvh3r69hg61br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Night mode for GNOME! Automatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch.\n\nIt works out of the box with numerous themes (see the list on the repository), and you can manually choose the variants you want.\n", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "016lb0wcr43nf8mj6qnwgzpam2whrcvf4s5dwbdljqqvpvbx68yq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5pZ2h0IG1vZGUgZm9yIEdOT01FISBBdXRvbWF0aWNhbGx5IHRvZ2dsZSB5b3VyIGxpZ2h0IGFuZCBkYXJrIEdUSywgR05PTUUgU2hlbGwsIGljb24gYW5kIGN1cnNvciB0aGVtZXMgdmFyaWFudHMsIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblN1cHBvcnRzIE5pZ2h0IExpZ2h0LCBMb2NhdGlvbiBTZXJ2aWNlcywgbWFudWFsIHNjaGVkdWxlIGFuZCBvbi1kZW1hbmQgc3dpdGNoLlxuXG5JdCB3b3JrcyBvdXQgb2YgdGhlIGJveCB3aXRoIG51bWVyb3VzIHRoZW1lcyAoc2VlIHRoZSBsaXN0IG9uIHRoZSByZXBvc2l0b3J5KSwgYW5kIHlvdSBjYW4gbWFudWFsbHkgY2hvb3NlIHRoZSB2YXJpYW50cyB5b3Ugd2FudC5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3JtbnZnci9uaWdodHRoZW1lc3dpdGNoZXItZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLyIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "50", "sha256": "0klgk18sn5m8a4w2jk64far27v7xpmdhyic6yk471xk096w6hdn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5pZ2h0IG1vZGUgZm9yIEdOT01FISBBdXRvbWF0aWNhbGx5IHRvZ2dsZSB5b3VyIGxpZ2h0IGFuZCBkYXJrIEdUSywgR05PTUUgU2hlbGwsIGljb24gYW5kIGN1cnNvciB0aGVtZXMgdmFyaWFudHMsIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblN1cHBvcnRzIE5pZ2h0IExpZ2h0LCBMb2NhdGlvbiBTZXJ2aWNlcywgbWFudWFsIHNjaGVkdWxlIGFuZCBvbi1kZW1hbmQgc3dpdGNoLlxuXG5JdCB3b3JrcyBvdXQgb2YgdGhlIGJveCB3aXRoIG51bWVyb3VzIHRoZW1lcyAoc2VlIHRoZSBsaXN0IG9uIHRoZSByZXBvc2l0b3J5KSwgYW5kIHlvdSBjYW4gbWFudWFsbHkgY2hvb3NlIHRoZSB2YXJpYW50cyB5b3Ugd2FudC5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9ybW52Z3IvbmlnaHR0aGVtZXN3aXRjaGVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}}}
-, {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"38": {"version": "5", "sha256": "0j0zbpldb4rk4kpjy6q585p18gc09079ddh1mlk6g6v1fl886j0m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmFuY2hhL2dub21lU2hlbGxCaW5hcnlDbG9jay8iLAogICJ1dWlkIjogImJpbmFyeWNsb2NrQHZhbmNoYS5tYXJjaCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.\n\nAnd from version 4 left clicking on the icon show a menu with new features like Restart Gnome Shell (Restart is not available on Wayland), Reload Theme, Open Extension Folder and Open Theme Folder (the last two require that xdg-open is installed).\n\nVersion 4 also drop the compatibility with Gnome Shell 3.30.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "4", "sha256": "1bahy5lwymv0ymlwd3dkv0sywm7d23gkq3lkj4jh0ld2d203a3h1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChSZXN0YXJ0IGlzIG5vdCBhdmFpbGFibGUgb24gV2F5bGFuZCksIFJlbG9hZCBUaGVtZSwgT3BlbiBFeHRlbnNpb24gRm9sZGVyIGFuZCBPcGVuIFRoZW1lIEZvbGRlciAodGhlIGxhc3QgdHdvIHJlcXVpcmUgdGhhdCB4ZGctb3BlbiBpcyBpbnN0YWxsZWQpLlxuXG5WZXJzaW9uIDQgYWxzbyBkcm9wIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggR25vbWUgU2hlbGwgMy4zMC4iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "11", "sha256": "1bffsbzq4114f4l83sknzsmig4sm7p8qsgyfmxvqg0xdl7hmsd6y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "1bffsbzq4114f4l83sknzsmig4sm7p8qsgyfmxvqg0xdl7hmsd6y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.\n", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "1lw7gdcba82hhfcpihbfkcbigggna3r8kk20zd32ladr5djybcjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9uaWdodHRoZW1lc3dpdGNoZXIucm9tYWludmlnaWVyLmZyIiwKICAidXVpZCI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "40": {"version": "51", "sha256": "0j3h8zajsqgy6df5hbdiijs8zwg4lmi7vcas4gfp2jsqhjmrnfb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA1MQp9"}, "41": {"version": "53", "sha256": "0s500hxcqkv34v34zlwp2kmbjgwc8bskxzs6qngirb7jl4480bnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA1Mwp9"}}}
+, {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"38": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "tp_wattmeter@gistart", "name": "tp_wattmeter", "pname": "tp_wattmeter", "description": "Shows battery power consumption of ThinkPad laptops", "link": "https://extensions.gnome.org/extension/2308/tp_wattmeter/", "shell_version_map": {"40": {"version": "4", "sha256": "1v8rw7msfy2d8nwnppdpci62sl6iw8973z5gsl8024awl27ni38z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGJhdHRlcnkgcG93ZXIgY29uc3VtcHRpb24gb2YgVGhpbmtQYWQgbGFwdG9wcyIsCiAgIm5hbWUiOiAidHBfd2F0dG1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naXN0YXJ0L3RwX3dhdHRtZXRlciIsCiAgInV1aWQiOiAidHBfd2F0dG1ldGVyQGdpc3RhcnQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "Denon_AVR_controler@sylter.fr", "name": "Denon AVR controler", "pname": "denon-avr-controler", "description": "Control a Denon audio video receiver through the network.\n- on/off switch\n- volume adjustment", "link": "https://extensions.gnome.org/extension/2371/denon-avr-controler/", "shell_version_map": {"38": {"version": "4", "sha256": "0c8ky3v70arnblix717jz9fsksr42673as9nmzfyh2p2h1zm03wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYSBEZW5vbiBhdWRpbyB2aWRlbyByZWNlaXZlciB0aHJvdWdoIHRoZSBuZXR3b3JrLlxuLSBvbi9vZmYgc3dpdGNoXG4tIHZvbHVtZSBhZGp1c3RtZW50IiwKICAibmFtZSI6ICJEZW5vbiBBVlIgY29udHJvbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyYW1hZ2l0Lm9yZy9zeWx0ZXIvZGVub24tYXZyLWNvbnRyb2xlciIsCiAgInV1aWQiOiAiRGVub25fQVZSX2NvbnRyb2xlckBzeWx0ZXIuZnIiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "hide-universal-access@akiirui.github.io", "name": "Hide Universal Access", "pname": "hide-universal-access", "description": "Hide Universal Access icon from the status bar", "link": "https://extensions.gnome.org/extension/2398/hide-universal-access/", "shell_version_map": {"38": {"version": "9", "sha256": "049hj5s2nxa4044z4hcrlz1cmyq9y07ck7lg6brhvjagqncgg152", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ha2lpcnVpL2hpZGUtdW5pdmVyc2FsLWFjY2VzcyIsCiAgInV1aWQiOiAiaGlkZS11bml2ZXJzYWwtYWNjZXNzQGFraWlydWkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "049hj5s2nxa4044z4hcrlz1cmyq9y07ck7lg6brhvjagqncgg152", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ha2lpcnVpL2hpZGUtdW5pdmVyc2FsLWFjY2VzcyIsCiAgInV1aWQiOiAiaGlkZS11bml2ZXJzYWwtYWNjZXNzQGFraWlydWkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"uuid": "hide-universal-access@akiirui.github.io", "name": "Hide Universal Access", "pname": "hide-universal-access", "description": "Hide Universal Access icon from the status bar", "link": "https://extensions.gnome.org/extension/2398/hide-universal-access/", "shell_version_map": {"38": {"version": "10", "sha256": "08sjlxfw19905lbxc8jkb3z8m5kqq7gfxcd57w64wb5xhpwrf379", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWtpaXJ1aS9oaWRlLXVuaXZlcnNhbC1hY2Nlc3MiLAogICJ1dWlkIjogImhpZGUtdW5pdmVyc2FsLWFjY2Vzc0Bha2lpcnVpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "08sjlxfw19905lbxc8jkb3z8m5kqq7gfxcd57w64wb5xhpwrf379", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWtpaXJ1aS9oaWRlLXVuaXZlcnNhbC1hY2Nlc3MiLAogICJ1dWlkIjogImhpZGUtdW5pdmVyc2FsLWFjY2Vzc0Bha2lpcnVpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "08sjlxfw19905lbxc8jkb3z8m5kqq7gfxcd57w64wb5xhpwrf379", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWtpaXJ1aS9oaWRlLXVuaXZlcnNhbC1hY2Nlc3MiLAogICJ1dWlkIjogImhpZGUtdW5pdmVyc2FsLWFjY2Vzc0Bha2lpcnVpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
, {"uuid": "roundrobintaborder@scottworley.com", "name": "Round Robin Tab Order", "pname": "round-robin-tab-order", "description": "Window switch order becomes round-robin instead of most-recently-used", "link": "https://extensions.gnome.org/extension/2446/round-robin-tab-order/", "shell_version_map": {"40": {"version": "3", "sha256": "0p2qfv6i43pi0hjsyz8xzxkxijr06b0d20q618y8gfj4ar82glv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdyBzd2l0Y2ggb3JkZXIgYmVjb21lcyByb3VuZC1yb2JpbiBpbnN0ZWFkIG9mIG1vc3QtcmVjZW50bHktdXNlZCIsCiAgIm5hbWUiOiAiUm91bmQgUm9iaW4gVGFiIE9yZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2NodWNrL3JvdW5kLXJvYmluLXRhYi1vcmRlciIsCiAgInV1aWQiOiAicm91bmRyb2JpbnRhYm9yZGVyQHNjb3R0d29ybGV5LmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "bubblemail@razer.framagit.org", "name": "Bubblemail", "pname": "bubblemail", "description": "New and unread mail indicator (Local, Imap, Pop3, Gmail, Yahoo mail...)\nIndicator for new mails from local mail boxes (MBOX, MAILDIR), POP3 or IMAP server.\n\nBE AWARE THAT THIS EXTENSION REQUIRES BUBBLEMAIL SERVICE INSTALLATION\nCheck your distribution packaging system for availability. Besides, packages for distributions and source tarballs can be found here :\nhttp://bubblemail.free.fr\n\nBubblemail is a complete rewrite of the mailnag project, with a lot of new features including :\n* Gnome online accounts are automaticaly synced\n* Avatars provided by the server, with default colorized icons for senders without specific avatar\n* Reports for connection errors.\n\n Please report any issue on the gitlab pages of the project :\nhttps://framagit.org/razer/bubblemail/issues\nhttps://framagit.org/razer/bubblemail-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/2458/bubblemail/", "shell_version_map": {"38": {"version": "14", "sha256": "12w53h0bglk1zyr6r9sxgrd223r628jaibbh7m5qyvc50i7m57f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbiBQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZSBvbiB0aGUgZ2l0bGFiIHBhZ2VzIG9mIHRoZSBwcm9qZWN0IDpcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwvaXNzdWVzXG5odHRwczovL2ZyYW1hZ2l0Lm9yZy9yYXplci9idWJibGVtYWlsLWdub21lLXNoZWxsL2lzc3VlcyIsCiAgImdldHRleHQtZG9tYWluIjogImJ1YmJsZW1haWwtZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIkJ1YmJsZW1haWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInJhemVycmF6QGZyZWUuZnIiLAogICAgInp1bHU5OUBnbXgubmV0IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idWJibGVtYWlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "12w53h0bglk1zyr6r9sxgrd223r628jaibbh7m5qyvc50i7m57f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbiBQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZSBvbiB0aGUgZ2l0bGFiIHBhZ2VzIG9mIHRoZSBwcm9qZWN0IDpcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwvaXNzdWVzXG5odHRwczovL2ZyYW1hZ2l0Lm9yZy9yYXplci9idWJibGVtYWlsLWdub21lLXNoZWxsL2lzc3VlcyIsCiAgImdldHRleHQtZG9tYWluIjogImJ1YmJsZW1haWwtZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIkJ1YmJsZW1haWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInJhemVycmF6QGZyZWUuZnIiLAogICAgInp1bHU5OUBnbXgubmV0IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idWJibGVtYWlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
, {"uuid": "keypadTiling@abakkk.framagit.org", "name": "Keypad Tiling", "pname": "keypad-tiling", "description": "", "link": "https://extensions.gnome.org/extension/2473/keypad-tiling/", "shell_version_map": {"38": {"version": "4", "sha256": "1v0hxg96l482wngrszh0xabgj95q7rmyimd2rxnbkddd2gascnya", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgImdldHRleHQtZG9tYWluIjogImtleXBhZC10aWxpbmciLAogICJuYW1lIjogIktleXBhZCBUaWxpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2V5cGFkLXRpbGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJrZXlwYWRUaWxpbmdAYWJha2trLmZyYW1hZ2l0Lm9yZyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "reminder_alarm_clock@trifonovkv.gmail.com", "name": "Reminder Alarm Clock", "pname": "reminder-alarm-clock", "description": "The reminder alarm clock will remind you of an important event at the appointed time.", "link": "https://extensions.gnome.org/extension/2482/reminder-alarm-clock/", "shell_version_map": {"38": {"version": "40", "sha256": "0yljdig44gly3fky4ls42shbpvf2387kgnn1dfla9zmxxzjdkryq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
-, {"uuid": "TaskBar@c0ldplasma", "name": "TaskBar 2020", "pname": "taskbar-updated", "description": "!!! Development stopped !!!!\n\nTaskBar 2020 displays icons of running applications and favorites on the top panel or alternatively on a new bottom panel. Activate, minimize or close tasks with a simple click. \n\nTaskBar 2020 is a dock-like windows list on the top/bottom bar. \n\nFork of zpydr/gnome-shell-extension-taskbar to support newer versions of GNOME", "link": "https://extensions.gnome.org/extension/2506/taskbar-updated/", "shell_version_map": {"38": {"version": "5", "sha256": "1wn3040z6znmk2nwh9n0l6q09sp7y3rx0nnm0274n1xsiw7pbwy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISFcblxuVGFza0JhciAyMDIwIGRpc3BsYXlzIGljb25zIG9mIHJ1bm5pbmcgYXBwbGljYXRpb25zIGFuZCBmYXZvcml0ZXMgb24gdGhlIHRvcCBwYW5lbCBvciBhbHRlcm5hdGl2ZWx5IG9uIGEgbmV3IGJvdHRvbSBwYW5lbC4gQWN0aXZhdGUsIG1pbmltaXplIG9yIGNsb3NlIHRhc2tzIHdpdGggYSBzaW1wbGUgY2xpY2suIFxuXG5UYXNrQmFyIDIwMjAgaXMgYSBkb2NrLWxpa2Ugd2luZG93cyBsaXN0IG9uIHRoZSB0b3AvYm90dG9tIGJhci4gXG5cbkZvcmsgb2YgenB5ZHIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIgdG8gc3VwcG9ydCBuZXdlciB2ZXJzaW9ucyBvZiBHTk9NRSIsCiAgIm5hbWUiOiAiVGFza0JhciAyMDIwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYzBsZHBsYXNtYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFza2JhciIsCiAgInV1aWQiOiAiVGFza0JhckBjMGxkcGxhc21hIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "8", "sha256": "0czby48izk0yjpkgjh6bl6b922qg0ycc53gq7n733dgchnn76g2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISFcblxuVGFza0JhciAyMDIwIGRpc3BsYXlzIGljb25zIG9mIHJ1bm5pbmcgYXBwbGljYXRpb25zIGFuZCBmYXZvcml0ZXMgb24gdGhlIHRvcCBwYW5lbCBvciBhbHRlcm5hdGl2ZWx5IG9uIGEgbmV3IGJvdHRvbSBwYW5lbC4gQWN0aXZhdGUsIG1pbmltaXplIG9yIGNsb3NlIHRhc2tzIHdpdGggYSBzaW1wbGUgY2xpY2suIFxuXG5UYXNrQmFyIDIwMjAgaXMgYSBkb2NrLWxpa2Ugd2luZG93cyBsaXN0IG9uIHRoZSB0b3AvYm90dG9tIGJhci4gXG5cbkZvcmsgb2YgenB5ZHIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIgdG8gc3VwcG9ydCBuZXdlciB2ZXJzaW9ucyBvZiBHTk9NRSIsCiAgIm5hbWUiOiAiVGFza0JhciAyMDIwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2MwbGRwbGFzbWEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIiLAogICJ1dWlkIjogIlRhc2tCYXJAYzBsZHBsYXNtYSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"uuid": "kernel-indicator@elboulangero.gitlab.com", "name": "Kernel Indicator", "pname": "kernel-indicator", "description": "Display the kernel version in the top bar", "link": "https://extensions.gnome.org/extension/2512/kernel-indicator/", "shell_version_map": {"40": {"version": "3", "sha256": "1ysfagpfysrvhvx16212828sw85sv0zkp28qb0wj7v3qzchjj5dm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2VsYm91bGFuZ2Vyby9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2VybmVsLWluZGljYXRvciIsCiAgInV1aWQiOiAia2VybmVsLWluZGljYXRvckBlbGJvdWxhbmdlcm8uZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "TaskBar@c0ldplasma", "name": "TaskBar 2020", "pname": "taskbar-updated", "description": "!!! Development stopped !!!! Look at Dash to Panel as an alternative: https://extensions.gnome.org/extension/1160/dash-to-panel/\n\n----------------------------------------------------------------------\n\nTaskBar 2020 displays icons of running applications and favorites on the top panel or alternatively on a new bottom panel. Activate, minimize or close tasks with a simple click. \n\nTaskBar 2020 is a dock-like windows list on the top/bottom bar. \n\nFork of zpydr/gnome-shell-extension-taskbar to support newer versions of GNOME", "link": "https://extensions.gnome.org/extension/2506/taskbar-updated/", "shell_version_map": {"38": {"version": "5", "sha256": "09yn1p0vmq70ll7vi3jdjvj479cm38r4am0mw08nca8hl4zdiamj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2MwbGRwbGFzbWEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIiLAogICJ1dWlkIjogIlRhc2tCYXJAYzBsZHBsYXNtYSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "8", "sha256": "0a2fwmm1n5n2ifryb6yfzh4nj4h11qkphpxvp876fyll03y9p2m5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jMGxkcGxhc21hL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIiwKICAidXVpZCI6ICJUYXNrQmFyQGMwbGRwbGFzbWEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "kernel-indicator@elboulangero.gitlab.com", "name": "Kernel Indicator", "pname": "kernel-indicator", "description": "Display the kernel version in the top bar", "link": "https://extensions.gnome.org/extension/2512/kernel-indicator/", "shell_version_map": {"40": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "23", "sha256": "0ag8pq9sgk885912mqiyhsacfmgkn9n4jvyp0rk4nw0fghd1mgd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
, {"uuid": "maxi@darkretailer.github.com", "name": "Maxi", "pname": "maxi", "description": "Maximize your windows vertical and/or horizontal (based on https://github.com/aXe1/gnome-shell-extension-maximized-by-default)", "link": "https://extensions.gnome.org/extension/2554/maxi/", "shell_version_map": {"40": {"version": "5", "sha256": "121nd6ggr9id3yfsrkiza7rjq19638p156ym83i3j57ikz6r3ky5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHlvdXIgd2luZG93cyB2ZXJ0aWNhbCBhbmQvb3IgaG9yaXpvbnRhbCAoYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2FYZTEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplZC1ieS1kZWZhdWx0KSIsCiAgImV4dGVuc2lvbi1pZCI6ICJtYXhpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWF4aSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhcmtyZXRhaWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25fbWF4aSIsCiAgInV1aWQiOiAibWF4aUBkYXJrcmV0YWlsZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "A Gnome extension that shows the NordVPN status in the top bar and provides the ability to confiure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {"38": {"version": "6", "sha256": "1w5nz2688iyjf7cnaxa45h9m6l97ssf51c3szfabnbpa4d8vbqb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maXVyZSBjZXJ0YWluIGFzcGVjdHMgb2YgdGhlIGNvbm5lY3Rpb24uIiwKICAibmFtZSI6ICJnTm9yZFZQTi1Mb2NhbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "fully-transparent-top-bar@aunetx", "name": "Smart transparent topbar", "pname": "fully-transparent-top-bar", "description": "Permits to change topbar's look and feel when free-floating.\n\nIf you have issues or recommandations, you can tell me on github so I can see them!", "link": "https://extensions.gnome.org/extension/2588/fully-transparent-top-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "1mksqaxw7jzzdghzii1bhhkbsccxb23qa69f3x6hg32ig9qi762x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcm1pdHMgdG8gY2hhbmdlIHRvcGJhcidzIGxvb2sgYW5kIGZlZWwgd2hlbiBmcmVlLWZsb2F0aW5nLlxuXG5JZiB5b3UgaGF2ZSBpc3N1ZXMgb3IgcmVjb21tYW5kYXRpb25zLCB5b3UgY2FuIHRlbGwgbWUgb24gZ2l0aHViIHNvIEkgY2FuIHNlZSB0aGVtISIsCiAgIm5hbWUiOiAiU21hcnQgdHJhbnNwYXJlbnQgdG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJmdWxseS10cmFuc3BhcmVudC10b3AtYmFyQGF1bmV0eCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
-, {"uuid": "always-indicator@martin.zurowietz.de", "name": "Always Indicator", "pname": "always-indicator", "description": "Always show the new messages indicator on new messages. Features: 1) New message indicator is always shown if there are notifications. 2) The color of the indicator can be customized. 3) If 'do not disturb' is active, the icon is displayed in the custom color if there are notifications.", "link": "https://extensions.gnome.org/extension/2594/always-indicator/", "shell_version_map": {"40": {"version": "6", "sha256": "0gbfqi121yzyyzvanbq8hcczd783afknpq5nwcxmwlf9xyi0m5hl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtYWx3YXlzLWluZGljYXRvciIsCiAgInV1aWQiOiAiYWx3YXlzLWluZGljYXRvckBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime profile switcher for the Eruption Linux input and LED driver for keyboards, mice and other devices", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {"38": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "always-indicator@martin.zurowietz.de", "name": "Always Indicator", "pname": "always-indicator", "description": "Always show the new messages indicator on new messages. Features: 1) New message indicator is always shown if there are notifications. 2) The color of the indicator can be customized. 3) If 'do not disturb' is active, the icon is displayed in the custom color if there are notifications.", "link": "https://extensions.gnome.org/extension/2594/always-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime profile switcher for the Eruption Linux input and LED driver for keyboards, mice and other devices", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {"38": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "18", "sha256": "1qggdpx2aphvamvxpc2xz2c2d8r76z97slz7r5sclfwwjx6pm2f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9YM24wbTBycGg1OS9lcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJlcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyQHgzbjBtMHJwaDU5Lm9yZyIsCiAgInZlcnNpb24iOiAxOAp9"}}}
, {"uuid": "user-id-in-top-panel@fthx", "name": "User id in top panel", "pname": "user-id-in-top-panel", "description": "Add ( user name :: user id @ host ) in top panel.", "link": "https://extensions.gnome.org/extension/2633/user-id-in-top-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "1qymbxd49jq1xqz3lril9dv5g5a94xs658shml7c75iqplq794f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidXNlci1pZC1pbi10b3AtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1qymbxd49jq1xqz3lril9dv5g5a94xs658shml7c75iqplq794f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidXNlci1pZC1pbi10b3AtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "hide-minimized@danigm.net", "name": "Hide minimized", "pname": "hide-minimized", "description": "Hide minimized in overview", "link": "https://extensions.gnome.org/extension/2639/hide-minimized/", "shell_version_map": {"38": {"version": "2", "sha256": "1bgy13a6fzvbaa3sxwhmb671ar1m6l0bmk04p76i1laldvyxvy45", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9oaWRlLW1pbmltaXplZCIsCiAgInV1aWQiOiAiaGlkZS1taW5pbWl6ZWRAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "hide-minimized@danigm.net", "name": "Hide minimized", "pname": "hide-minimized", "description": "Hide minimized in overview", "link": "https://extensions.gnome.org/extension/2639/hide-minimized/", "shell_version_map": {"38": {"version": "3", "sha256": "1sk8qpzyd52bgx0kzwpj9ps8bprsxiwxsm2miv3hf2snpqwppsjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vaGlkZS1taW5pbWl6ZWQiLAogICJ1dWlkIjogImhpZGUtbWluaW1pemVkQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1sk8qpzyd52bgx0kzwpj9ps8bprsxiwxsm2miv3hf2snpqwppsjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vaGlkZS1taW5pbWl6ZWQiLAogICJ1dWlkIjogImhpZGUtbWluaW1pemVkQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "display-brightness-ddcutil@themightydeity.github.com", "name": "Brightness control using ddcutil", "pname": "brightness-control-using-ddcutil", "description": "Brightness slider for all the monitors detected by ddcutil\nThis tool uses ddcutil as backend for communication with your display.\n\nMake sure that your user can use following shell commands without root.\n\t`ddcutil getvcp 10` to check the brightness of a display and\n\t`ddcutil setvcp 10 100` to set the brightness to 100\n\nMore info: https://github.com/daitj/gnome-display-brightness-ddcutil/blob/master/README.md", "link": "https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/", "shell_version_map": {"38": {"version": "10", "sha256": "08rwqdcaqcx84a5bjalcvryxvhfr15a1bcyldnzw8z9aysdx1jls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAibmFtZSI6ICJCcmlnaHRuZXNzIGNvbnRyb2wgdXNpbmcgZGRjdXRpbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZW1pZ2h0eWRlaXR5L2dub21lLWRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAidXVpZCI6ICJkaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbEB0aGVtaWdodHlkZWl0eS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "15", "sha256": "155vv6zjd2nrb11qr4nbk05vfxg34wviyk969qz9awhv20y3a6p0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZW1pZ2h0eWRlaXR5L2dub21lLWRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAidXVpZCI6ICJkaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbEB0aGVtaWdodHlkZWl0eS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
-, {"uuid": "mounter@heartmire", "name": "Mounter", "pname": "mounter", "description": "Mount and umount fstab entries with 'noauto,user' options.\n\n/etc/fstab example that will be picked up and listed by the extension:\n192.168.1.1:/mnt/data/users/martin /mnt/server-martin nfs noauto,user,noatime,rw 0 0\n\nToggle the menu with the shortcut: CTRL + ALT + m", "link": "https://extensions.gnome.org/extension/2666/mounter/", "shell_version_map": {"38": {"version": "4", "sha256": "0cv423fq7rilm6g0c27lnqa85s0j5f6xx9bd6mav17ghmr346cmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3VudGVyIiwKICAidXVpZCI6ICJtb3VudGVyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0cv423fq7rilm6g0c27lnqa85s0j5f6xx9bd6mav17ghmr346cmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3VudGVyIiwKICAidXVpZCI6ICJtb3VudGVyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "transparent-panel@fthx", "name": "Ubuntu-like Panel", "pname": "transparent-panel", "description": "Panel: transparent, straight, reduced height, non-bold fonts. Nothing more.\n\nLooks roughly like Ubuntu session's panel (Yaru). You can easily modify the transparency level through the CSS stylesheet in the extensions's folder.", "link": "https://extensions.gnome.org/extension/2660/transparent-panel/", "shell_version_map": {"40": {"version": "3", "sha256": "042cbxdvh4nxv72dd6ikm37brgb2wc1yaxsznyavjwr53awjbbzm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsOiB0cmFuc3BhcmVudCwgc3RyYWlnaHQsIHJlZHVjZWQgaGVpZ2h0LCBub24tYm9sZCBmb250cy4gTm90aGluZyBtb3JlLlxuXG5Mb29rcyByb3VnaGx5IGxpa2UgVWJ1bnR1IHNlc3Npb24ncyBwYW5lbCAoWWFydSkuIFlvdSBjYW4gZWFzaWx5IG1vZGlmeSB0aGUgdHJhbnNwYXJlbmN5IGxldmVsIHRocm91Z2ggdGhlIENTUyBzdHlsZXNoZWV0IGluIHRoZSBleHRlbnNpb25zJ3MgZm9sZGVyLiIsCiAgIm5hbWUiOiAiVWJ1bnR1LWxpa2UgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "042cbxdvh4nxv72dd6ikm37brgb2wc1yaxsznyavjwr53awjbbzm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsOiB0cmFuc3BhcmVudCwgc3RyYWlnaHQsIHJlZHVjZWQgaGVpZ2h0LCBub24tYm9sZCBmb250cy4gTm90aGluZyBtb3JlLlxuXG5Mb29rcyByb3VnaGx5IGxpa2UgVWJ1bnR1IHNlc3Npb24ncyBwYW5lbCAoWWFydSkuIFlvdSBjYW4gZWFzaWx5IG1vZGlmeSB0aGUgdHJhbnNwYXJlbmN5IGxldmVsIHRocm91Z2ggdGhlIENTUyBzdHlsZXNoZWV0IGluIHRoZSBleHRlbnNpb25zJ3MgZm9sZGVyLiIsCiAgIm5hbWUiOiAiVWJ1bnR1LWxpa2UgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "mounter@heartmire", "name": "Mounter", "pname": "mounter", "description": "Mount and umount fstab entries with 'noauto,user' options.\n\n/etc/fstab example that will be picked up and listed by the extension:\n192.168.1.1:/mnt/data/users/martin /mnt/server-martin nfs noauto,user,noatime,rw 0 0\n\nToggle the menu with the shortcut: CTRL + ALT + m", "link": "https://extensions.gnome.org/extension/2666/mounter/", "shell_version_map": {"38": {"version": "5", "sha256": "13nxnpiv8f9bzxqgv3iinb92ib9zk3jmmx273acs25lcjcw8v6l0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbW91bnRlciIsCiAgInV1aWQiOiAibW91bnRlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "13nxnpiv8f9bzxqgv3iinb92ib9zk3jmmx273acs25lcjcw8v6l0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbW91bnRlciIsCiAgInV1aWQiOiAibW91bnRlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "13nxnpiv8f9bzxqgv3iinb92ib9zk3jmmx273acs25lcjcw8v6l0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbW91bnRlciIsCiAgInV1aWQiOiAibW91bnRlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "simple-task-bar@fthx", "name": "Simple Task Bar", "pname": "simple-task-bar", "description": "*** Superseeded by https://extensions.gnome.org/extension/4000/babar. ***\n\nTask bar in the top panel, tasks on all workspaces.\n\n Basic actions, nothing more : activate, minimize, switch, per-desktop overview. Some settings through GNOME Extensions manager, thanks @leleat.\n\n This extension can hide the Activities button and makes the Places Menu extension's label become a folder icon.\n\n This extension is *light* and should *not interfere* with GNOME Shell behaviour+logic. If you want more, please consider installing Dash to Panel.", "link": "https://extensions.gnome.org/extension/2672/simple-task-bar/", "shell_version_map": {"38": {"version": "33", "sha256": "0rsvfymmnljqikarihmgs2fdi14pclfdhwrsz06zxzxd6nvmj4x1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqKiBTdXBlcnNlZWRlZCBieSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MDAwL2JhYmFyLiAqKipcblxuVGFzayBiYXIgaW4gdGhlIHRvcCBwYW5lbCwgdGFza3Mgb24gYWxsIHdvcmtzcGFjZXMuXG5cbiBCYXNpYyBhY3Rpb25zLCBub3RoaW5nIG1vcmUgOiBhY3RpdmF0ZSwgbWluaW1pemUsIHN3aXRjaCwgcGVyLWRlc2t0b3Agb3ZlcnZpZXcuIFNvbWUgc2V0dGluZ3MgdGhyb3VnaCBHTk9NRSBFeHRlbnNpb25zIG1hbmFnZXIsIHRoYW5rcyBAbGVsZWF0LlxuXG4gVGhpcyBleHRlbnNpb24gY2FuIGhpZGUgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIGFuZCBtYWtlcyB0aGUgUGxhY2VzIE1lbnUgZXh0ZW5zaW9uJ3MgbGFiZWwgYmVjb21lIGEgZm9sZGVyIGljb24uXG5cbiBUaGlzIGV4dGVuc2lvbiBpcyAqbGlnaHQqIGFuZCBzaG91bGQgKm5vdCBpbnRlcmZlcmUqIHdpdGggR05PTUUgU2hlbGwgYmVoYXZpb3VyK2xvZ2ljLiBJZiB5b3Ugd2FudCBtb3JlLCBwbGVhc2UgY29uc2lkZXIgaW5zdGFsbGluZyBEYXNoIHRvIFBhbmVsLiIsCiAgIm5hbWUiOiAiU2ltcGxlIFRhc2sgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9zaW1wbGUtdGFzay1iYXIiLAogICJ1dWlkIjogInNpbXBsZS10YXNrLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDMzCn0="}}}
, {"uuid": "minimize-shelf@etenil", "name": "Minimize Shelf", "pname": "minimize-shelf", "description": "Minimize shelf in the top panel, with minimized windows of the current workspace.\n\n No settings but you can easily play around with CSS file. This extension is light and should not interfere with GNOME Shell behaviour+logic.", "link": "https://extensions.gnome.org/extension/2735/minimize-shelf/", "shell_version_map": {"40": {"version": "3", "sha256": "0cnfpjpsvbi3149bg9s75wdmrpcr7pa4m2n7npdkdgr1rbs0pcfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0V0ZW5pbC9taW5pbWl6ZS1zaGVsZiIsCiAgInV1aWQiOiAibWluaW1pemUtc2hlbGZAZXRlbmlsIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "remove-alt-tab-delay@daase.net", "name": "Remove Alt+Tab Delay v2", "pname": "remove-alttab-delay-v2", "description": "Another extension that removes the 0.15 second popup delay in switcher pop-ups. This extension is actively maintained. It fixes at least this known issue: https://gitlab.gnome.org/GNOME/mutter/issues/888.", "link": "https://extensions.gnome.org/extension/2741/remove-alttab-delay-v2/", "shell_version_map": {"38": {"version": "5", "sha256": "0ajxj1x6mbn1clk5hb9lri3c0ckvy2781i7w26y1yhfw6jbyl0np", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2UvcmVtb3ZlLWFsdC10YWItZGVsYXkiLAogICJ1dWlkIjogInJlbW92ZS1hbHQtdGFiLWRlbGF5QGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0ajxj1x6mbn1clk5hb9lri3c0ckvy2781i7w26y1yhfw6jbyl0np", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2UvcmVtb3ZlLWFsdC10YWItZGVsYXkiLAogICJ1dWlkIjogInJlbW92ZS1hbHQtdGFiLWRlbGF5QGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "corona-tracker@lachhebo.github.io", "name": "corona-tracker", "pname": "corona-tracker", "description": "A GNOME Shell extension (GNOME Panel applet) to notify you every day with information about the COVID-19 virus spread.", "link": "https://extensions.gnome.org/extension/2767/corona-tracker/", "shell_version_map": {"38": {"version": "12", "sha256": "0qazb5s6hm4lzj0hfridpmviznx8spnps76kv6fa8s9yca7si6ab", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIG5vdGlmeSB5b3UgZXZlcnkgZGF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIENPVklELTE5IHZpcnVzIHNwcmVhZC4iLAogICJuYW1lIjogImNvcm9uYS10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFjaGhlYm8vY29yb25hLXRyYWNrZXIiLAogICJ1dWlkIjogImNvcm9uYS10cmFja2VyQGxhY2hoZWJvLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "remove-alt-tab-delay@daase.net", "name": "Remove Alt+Tab Delay v2", "pname": "remove-alttab-delay-v2", "description": "Another extension that removes the 0.15 second popup delay in switcher pop-ups. This extension is actively maintained. It fixes at least this known issue: https://gitlab.gnome.org/GNOME/mutter/issues/888.", "link": "https://extensions.gnome.org/extension/2741/remove-alttab-delay-v2/", "shell_version_map": {"38": {"version": "6", "sha256": "02s82kndphmhx5vxldh08ig04jzhyg4dw73fi2j7vxs1hg9drv9a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL3JlbW92ZS1hbHQtdGFiLWRlbGF5IiwKICAidXVpZCI6ICJyZW1vdmUtYWx0LXRhYi1kZWxheUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "02s82kndphmhx5vxldh08ig04jzhyg4dw73fi2j7vxs1hg9drv9a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL3JlbW92ZS1hbHQtdGFiLWRlbGF5IiwKICAidXVpZCI6ICJyZW1vdmUtYWx0LXRhYi1kZWxheUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "02s82kndphmhx5vxldh08ig04jzhyg4dw73fi2j7vxs1hg9drv9a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL3JlbW92ZS1hbHQtdGFiLWRlbGF5IiwKICAidXVpZCI6ICJyZW1vdmUtYWx0LXRhYi1kZWxheUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "corona-tracker@lachhebo.github.io", "name": "corona-tracker", "pname": "corona-tracker", "description": "A GNOME Shell extension (GNOME Panel applet) to notify you every day with information about the COVID-19 virus spread.", "link": "https://extensions.gnome.org/extension/2767/corona-tracker/", "shell_version_map": {"38": {"version": "14", "sha256": "12mnlkh2l23wdx6m28x332lhqd0yq16zhfnmdhk6bzma7wq73sxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIG5vdGlmeSB5b3UgZXZlcnkgZGF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIENPVklELTE5IHZpcnVzIHNwcmVhZC4iLAogICJuYW1lIjogImNvcm9uYS10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhY2hoZWJvL2Nvcm9uYS10cmFja2VyIiwKICAidXVpZCI6ICJjb3JvbmEtdHJhY2tlckBsYWNoaGViby5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "12mnlkh2l23wdx6m28x332lhqd0yq16zhfnmdhk6bzma7wq73sxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIG5vdGlmeSB5b3UgZXZlcnkgZGF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIENPVklELTE5IHZpcnVzIHNwcmVhZC4iLAogICJuYW1lIjogImNvcm9uYS10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhY2hoZWJvL2Nvcm9uYS10cmFja2VyIiwKICAidXVpZCI6ICJjb3JvbmEtdHJhY2tlckBsYWNoaGViby5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
, {"uuid": "gnome-trash@gnome-trash.b00f.gitlab.com", "name": "Gnome Trash - UNMAINTAINED", "pname": "gnome-trash", "description": "MOVED HERE:\n\nhttps://github.com/b00f/gnome-trash", "link": "https://extensions.gnome.org/extension/2773/gnome-trash/", "shell_version_map": {"38": {"version": "13", "sha256": "1z7da74nvl4wvy6ckv55xkl3sc5qzcv6lz5k6bdfa0xcshifhl6h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1PVkVEIEhFUkU6XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtdHJhc2giLAogICJuYW1lIjogIkdub21lIFRyYXNoIC0gVU5NQUlOVEFJTkVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYjAwZi9nbm9tZS10cmFzaCIsCiAgInV1aWQiOiAiZ25vbWUtdHJhc2hAZ25vbWUtdHJhc2guYjAwZi5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
, {"uuid": "customgestures@raushankumar27.github.com", "name": "Custom 3 Finger Gestures", "pname": "custom-3-finger-gestures", "description": "3 Finger touchpad gestures into gnome-shell", "link": "https://extensions.gnome.org/extension/2781/custom-3-finger-gestures/", "shell_version_map": {"38": {"version": "7", "sha256": "1a51rlf5fjlzlm2y3cv1ncf4glqa48rkpi0z1b8hd5m1fzgdx6m9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgRmluZ2VyIHRvdWNocGFkIGdlc3R1cmVzIGludG8gZ25vbWUtc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b21nZXN0dXJlcyIsCiAgIm5hbWUiOiAiQ3VzdG9tIDMgRmluZ2VyIEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbWdlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmF1c2hhbmt1bWFyMjcvY3VzdG9tZ2VzdHVyZSIsCiAgInV1aWQiOiAiY3VzdG9tZ2VzdHVyZXNAcmF1c2hhbmt1bWFyMjcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"uuid": "overview-improved@human.experience", "name": "Overview Improved", "pname": "overview-improved", "description": "Improved, more Unity like overview\n\n* Dash-To-Dock or Ubuntu Dock integration creates Unity-like experience showing windows of specific type\n* Windows search in overview\nConfigurable keybinding (Super+w) to trigger current window overlay\n* Clicking empty space in overview closes\n* Do not show overview when showing application on multiple monitors\n* Multi Monitors Add-On Overview integration\n\nCaveat: may clash with other extensions that modify overview experience", "link": "https://extensions.gnome.org/extension/2802/overview-improved/", "shell_version_map": {"38": {"version": "8", "sha256": "0pzk6kzhbm15rmd540gv2sc0yqbiv31lil4ra3k5k7cpnr9ipsy6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVkLCBtb3JlIFVuaXR5IGxpa2Ugb3ZlcnZpZXdcblxuKiBEYXNoLVRvLURvY2sgb3IgVWJ1bnR1IERvY2sgaW50ZWdyYXRpb24gY3JlYXRlcyBVbml0eS1saWtlIGV4cGVyaWVuY2Ugc2hvd2luZyB3aW5kb3dzIG9mIHNwZWNpZmljIHR5cGVcbiogV2luZG93cyBzZWFyY2ggaW4gb3ZlcnZpZXdcbkNvbmZpZ3VyYWJsZSBrZXliaW5kaW5nIChTdXBlcit3KSB0byB0cmlnZ2VyIGN1cnJlbnQgd2luZG93IG92ZXJsYXlcbiogQ2xpY2tpbmcgZW1wdHkgc3BhY2UgaW4gb3ZlcnZpZXcgY2xvc2VzXG4qIERvIG5vdCBzaG93IG92ZXJ2aWV3IHdoZW4gc2hvd2luZyBhcHBsaWNhdGlvbiBvbiBtdWx0aXBsZSBtb25pdG9yc1xuKiBNdWx0aSBNb25pdG9ycyBBZGQtT24gT3ZlcnZpZXcgaW50ZWdyYXRpb25cblxuQ2F2ZWF0OiBtYXkgY2xhc2ggd2l0aCBvdGhlciBleHRlbnNpb25zIHRoYXQgbW9kaWZ5IG92ZXJ2aWV3IGV4cGVyaWVuY2UiLAogICJuYW1lIjogIk92ZXJ2aWV3IEltcHJvdmVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LWltcHJvdmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9odW1hbi5leHBlcmllbmNlL2dub21lLXNoZWxsLW92ZXJ2aWV3LWltcHJvdmVkIiwKICAidXVpZCI6ICJvdmVydmlldy1pbXByb3ZlZEBodW1hbi5leHBlcmllbmNlIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "brightnesspanelmenuindicator@do.sch.dev.gmail.com", "name": "Brightness Panel Menu Indicator", "pname": "brightness-panel-menu-indicator", "description": "If a backlight device is available, this extension shows a brightness indicator on panel menu, that allows changing brightness through scrolling on it. Useful, when using ddcci-driver-linux on a desktop PC without native keyboard buttons to change brightness.", "link": "https://extensions.gnome.org/extension/2808/brightness-panel-menu-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "0nbxk6k42iglj51injq3drabfg9iv2288is36m263dwddyf9mk6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG8tc2NoL2dub21lLXNoZWxsLWJyaWdodG5lc3MtcGFuZWwtbWVudS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJyaWdodG5lc3NwYW5lbG1lbnVpbmRpY2F0b3JAZG8uc2NoLmRldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0nbxk6k42iglj51injq3drabfg9iv2288is36m263dwddyf9mk6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG8tc2NoL2dub21lLXNoZWxsLWJyaWdodG5lc3MtcGFuZWwtbWVudS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJyaWdodG5lc3NwYW5lbG1lbnVpbmRpY2F0b3JAZG8uc2NoLmRldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font and ascii mode auto-switch\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {"38": {"version": "28", "sha256": "0dqf56hcgfsrlshbjzf3x19yhzz2v4dj1rlm4kj834vadn5816k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBhc2NpaSBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImlidXMtdHdlYWtlciIsCiAgIm5hbWUiOiAiSUJ1cyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlidXMtdHdlYWtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="}, "40": {"version": "34", "sha256": "0s1z0p4bm6kpn5qj7hyynv8xknzly9jq1zk4rh8if0qqrg48n9g1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBhc2NpaSBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImlidXMtdHdlYWtlciIsCiAgIm5hbWUiOiAiSUJ1cyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlidXMtdHdlYWtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"}}}
-, {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1gpkqw18r0vm4v7kjhd6d4iw94aqmrni0g8qxqfc21l4cw90y4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "crypto@alipirpiran.github", "name": "Crypto Price Tracker", "pname": "crypto-price-tracker", "description": "Simple extension to track price of Crypto Currencies\n\nadd coins by Binance symbols, for example: \"BTCUSDT\"\ncomplete list on binance: https://www.binance.com/indexSpa.html", "link": "https://extensions.gnome.org/extension/2817/crypto-price-tracker/", "shell_version_map": {"40": {"version": "13", "sha256": "1kiq0h3vyw9nvc6al0w892khmc99bmaafb21rm6zin6qpm22dz7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcblxuYWRkIGNvaW5zIGJ5IEJpbmFuY2Ugc3ltYm9scywgZm9yIGV4YW1wbGU6IFwiQlRDVVNEVFwiXG5jb21wbGV0ZSBsaXN0IG9uIGJpbmFuY2U6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWwiLAogICJuYW1lIjogIkNyeXB0byBQcmljZSBUcmFja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNyeXB0by10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font and input mode auto-switch\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {"38": {"version": "28", "sha256": "1fdjgn8h0ab143fkvc3bjqwkvabd200zbfzhws5kwj1qnbj746jl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBpbnB1dCBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImlidXMtdHdlYWtlciIsCiAgIm5hbWUiOiAiSUJ1cyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlidXMtdHdlYWtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="}, "40": {"version": "34", "sha256": "1j37wv8kgmpkf9scyz2wzazch7kyxy4yz789rv0p2x2xg0ryampd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBpbnB1dCBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImlidXMtdHdlYWtlciIsCiAgIm5hbWUiOiAiSUJ1cyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlidXMtdHdlYWtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"}, "41": {"version": "35", "sha256": "1h8jhncnc2ffjcpjdz4as8l89vvc60r9m0cqk0shhbals0r6bh84", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBpbnB1dCBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9pYnVzLXR3ZWFrZXIiLAogICJ1dWlkIjogImlidXMtdHdlYWtlckB0dWJlcnJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
+, {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "0j0mlhcpv0s2dwmkjcczxvczkpmy9cijbacmi2k106v8bfydqib6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vaW5kZWZlcm8uc291dGFkZS5mci9wL2dlbmVyaWNtb25pdG9yIiwKICAidXVpZCI6ICJnZW5lcmljLW1vbml0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0j0mlhcpv0s2dwmkjcczxvczkpmy9cijbacmi2k106v8bfydqib6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vaW5kZWZlcm8uc291dGFkZS5mci9wL2dlbmVyaWNtb25pdG9yIiwKICAidXVpZCI6ICJnZW5lcmljLW1vbml0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "hide-keyboard-layout@sitnik.ru", "name": "Hide Keyboard Layout", "pname": "hide-keyboard-layout", "description": "Hide keyboard layout indicator in status bar", "link": "https://extensions.gnome.org/extension/2848/hide-keyboard-layout/", "shell_version_map": {"38": {"version": "2", "sha256": "1nylkw0v97w4x610bd2gkz0h1xprhkrnx03qzhm4vhqjw1j2bdg2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9oaWRlLWtleWJvYXJkLWxheW91dCIsCiAgInV1aWQiOiAiaGlkZS1rZXlib2FyZC1sYXlvdXRAc2l0bmlrLnJ1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1nylkw0v97w4x610bd2gkz0h1xprhkrnx03qzhm4vhqjw1j2bdg2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9oaWRlLWtleWJvYXJkLWxheW91dCIsCiAgInV1aWQiOiAiaGlkZS1rZXlib2FyZC1sYXlvdXRAc2l0bmlrLnJ1IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "poweroff-button-on-topbar@darknico.com", "name": "Poweroff Button on Topbar", "pname": "poweroff-button-on-topbar", "description": "Add poweroff button on topbar", "link": "https://extensions.gnome.org/extension/2851/poweroff-button-on-topbar/", "shell_version_map": {"38": {"version": "4", "sha256": "1x3d68pflicccxiqlwiflxrw5xnnw4096bdh7hypi40jdw3b5njz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwb3dlcm9mZiBidXR0b24gb24gdG9wYmFyIiwKICAibmFtZSI6ICJQb3dlcm9mZiBCdXR0b24gb24gVG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RhcmtuaWNvL0dOT01FLVNoZWxsLUV4dGVuc2lvbnMiLAogICJ1dWlkIjogInBvd2Vyb2ZmLWJ1dHRvbi1vbi10b3BiYXJAZGFya25pY28uY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1x3d68pflicccxiqlwiflxrw5xnnw4096bdh7hypi40jdw3b5njz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwb3dlcm9mZiBidXR0b24gb24gdG9wYmFyIiwKICAibmFtZSI6ICJQb3dlcm9mZiBCdXR0b24gb24gVG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RhcmtuaWNvL0dOT01FLVNoZWxsLUV4dGVuc2lvbnMiLAogICJ1dWlkIjogInBvd2Vyb2ZmLWJ1dHRvbi1vbi10b3BiYXJAZGFya25pY28uY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "maximize-to-workspace@raonetwo.github.com", "name": "Maximize To Workspace With History", "pname": "maximize-to-workspace-with-history", "description": "Like MacOS, puts window in a new workspace when its maximized or full-screened and brings you back to original workspace when its unmaximized or unfull-screened or closed. \n\nRecommended to use with touchegg/fusuma/libinput multi finger swipe gestures.", "link": "https://extensions.gnome.org/extension/2857/maximize-to-workspace-with-history/", "shell_version_map": {"38": {"version": "21", "sha256": "1m1vhscnflmlhscinj4nipybhkps213sh2s9qpp4bxm9h9waihww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpa2UgTWFjT1MsIHB1dHMgd2luZG93IGluIGEgbmV3IHdvcmtzcGFjZSB3aGVuIGl0cyBtYXhpbWl6ZWQgb3IgZnVsbC1zY3JlZW5lZCBhbmQgYnJpbmdzIHlvdSBiYWNrIHRvIG9yaWdpbmFsIHdvcmtzcGFjZSB3aGVuIGl0cyB1bm1heGltaXplZCBvciB1bmZ1bGwtc2NyZWVuZWQgb3IgY2xvc2VkLiBcblxuUmVjb21tZW5kZWQgdG8gdXNlIHdpdGggdG91Y2hlZ2cvZnVzdW1hL2xpYmlucHV0IG11bHRpIGZpbmdlciBzd2lwZSBnZXN0dXJlcy4iLAogICJuYW1lIjogIk1heGltaXplIFRvIFdvcmtzcGFjZSBXaXRoIEhpc3RvcnkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYW9uZXR3by9NYXhpbWl6ZVRvV29ya3NwYWNlIiwKICAidXVpZCI6ICJtYXhpbWl6ZS10by13b3Jrc3BhY2VAcmFvbmV0d28uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"version": "21", "sha256": "1m1vhscnflmlhscinj4nipybhkps213sh2s9qpp4bxm9h9waihww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpa2UgTWFjT1MsIHB1dHMgd2luZG93IGluIGEgbmV3IHdvcmtzcGFjZSB3aGVuIGl0cyBtYXhpbWl6ZWQgb3IgZnVsbC1zY3JlZW5lZCBhbmQgYnJpbmdzIHlvdSBiYWNrIHRvIG9yaWdpbmFsIHdvcmtzcGFjZSB3aGVuIGl0cyB1bm1heGltaXplZCBvciB1bmZ1bGwtc2NyZWVuZWQgb3IgY2xvc2VkLiBcblxuUmVjb21tZW5kZWQgdG8gdXNlIHdpdGggdG91Y2hlZ2cvZnVzdW1hL2xpYmlucHV0IG11bHRpIGZpbmdlciBzd2lwZSBnZXN0dXJlcy4iLAogICJuYW1lIjogIk1heGltaXplIFRvIFdvcmtzcGFjZSBXaXRoIEhpc3RvcnkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYW9uZXR3by9NYXhpbWl6ZVRvV29ya3NwYWNlIiwKICAidXVpZCI6ICJtYXhpbWl6ZS10by13b3Jrc3BhY2VAcmFvbmV0d28uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
, {"uuid": "activities_icons@fawtytoo", "name": "Activities Icons", "pname": "activities-icons", "description": "The Activities button becomes 2 icons for selecting either Applications or Workspaces in the overview. Selecting the same view again will hide the overview.\nScrolling on the icons allows switching windows on a workspace or cycling through the Workspaces.", "link": "https://extensions.gnome.org/extension/2872/activities-icons/", "shell_version_map": {"38": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "transparent_panel@fawtytoo", "name": "Transparent Top Panel", "pname": "transparent-top-panel", "description": "Totally transparent top panel in the Overview.\nAlso adds drop shadows to text and icons for those using GS 3.38.", "link": "https://extensions.gnome.org/extension/2878/transparent-top-panel/", "shell_version_map": {"38": {"version": "9", "sha256": "0samdl8ig95hin9xjc41pzh648s97cqs6sb6qmjzkhnd35cx0k9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50X3BhbmVsQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0samdl8ig95hin9xjc41pzh648s97cqs6sb6qmjzkhnd35cx0k9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50X3BhbmVsQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"uuid": "overview_full_bright@fawtytoo", "name": "Overview Full Bright", "pname": "overview-full-bright", "description": "Shows the Overview in full brightness and without the vignette.\n\nNOTE: This will not be developed beyond GS 3.38.", "link": "https://extensions.gnome.org/extension/2884/overview-full-bright/", "shell_version_map": {"38": {"version": "4", "sha256": "1dm5h1kl40lsly9a80ch4mfi67ppwd7dgg4idx8vrcx5iksnzxil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBPdmVydmlldyBpbiBmdWxsIGJyaWdodG5lc3MgYW5kIHdpdGhvdXQgdGhlIHZpZ25ldHRlLlxuXG5OT1RFOiBUaGlzIHdpbGwgbm90IGJlIGRldmVsb3BlZCBiZXlvbmQgR1MgMy4zOC4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZ1bGwgQnJpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2Z1bGxfYnJpZ2h0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
-, {"uuid": "messagingmenu@lauinger-clan.de", "name": "Messaging Menu", "pname": "messaging-menu", "description": "A Messaging Menu for the Gnome Shell. All Email and Chat Applications in one Place.", "link": "https://extensions.gnome.org/extension/2896/messaging-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1xa0hyvs2aw1z7kg5gcsgh2pjn7b13zhps98j4xpwfiv6zm0sa73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}}}
-, {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "17", "sha256": "0m4krvi97m3g3ianm5y2vggjpszh96h66vgcji5dmy755f1rmrlr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "messagingmenu@lauinger-clan.de", "name": "Messaging Menu", "pname": "messaging-menu", "description": "A Messaging Menu for the Gnome Shell. All Email and Chat Applications in one Place.", "link": "https://extensions.gnome.org/extension/2896/messaging-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1xa0hyvs2aw1z7kg5gcsgh2pjn7b13zhps98j4xpwfiv6zm0sa73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "auto-mute-toggle@garotosopa.github.io", "name": "Auto-mute toggle", "pname": "auto-mute-toggle", "description": "Toggle whether to auto-mute speakers when headphones are plugged in.", "link": "https://extensions.gnome.org/extension/2905/auto-mute-toggle/", "shell_version_map": {"40": {"version": "6", "sha256": "1lyh51gvsh9ydip77vjj8rigjiah97lh8gp91jcpqblwx69fs3dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3aGV0aGVyIHRvIGF1dG8tbXV0ZSBzcGVha2VycyB3aGVuIGhlYWRwaG9uZXMgYXJlIHBsdWdnZWQgaW4uIiwKICAibmFtZSI6ICJBdXRvLW11dGUgdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dhcm90b3NvcGEvZ3NlLWF1dG8tbXV0ZS10b2dnbGUiLAogICJ1dWlkIjogImF1dG8tbXV0ZS10b2dnbGVAZ2Fyb3Rvc29wYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "optimus-manager-indicator@andr3slelouch.github.com", "name": "Optimus Manager Indicator", "pname": "optimus-manager-indicator", "description": "Intel/Hybrid/NVIDIA GPU Switch Note: The GPU mode activated doesn't show up in the options, by example: When you turn on the PC you are gonna be in Intel mode so Intel option is not gonna be shown. Note: Optimus Manager Indicator is made(for the moment) for Arch based distributions with optimus-manager.", "link": "https://extensions.gnome.org/extension/2908/optimus-manager-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "22", "sha256": "0iigq5qb4jh8rjc7m8abz4fsqrihppax4czgwhphkc3fyk2r8iym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQnJpbmctT3V0LVN1Ym1lbnUtb2YtUG93ZXItT2ZmLUxvZ291dCIsCiAgInV1aWQiOiAiQnJpbmdPdXRTdWJtZW51T2ZQb3dlck9mZkxvZ291dEJ1dHRvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "23", "sha256": "1p3g1a68a02cy646lfh5zshn0d1xra4y3w9l1i7n3g26rzxgdsbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0JyaW5nLU91dC1TdWJtZW51LW9mLVBvd2VyLU9mZi1Mb2dvdXQiLAogICJ1dWlkIjogIkJyaW5nT3V0U3VibWVudU9mUG93ZXJPZmZMb2dvdXRCdXR0b25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
-, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "3", "sha256": "07wrch3rabbfx79w3ivp3q81r2kvf2x4hd469jrvb83qmmfaypgh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5yYyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "07wrch3rabbfx79w3ivp3q81r2kvf2x4hd469jrvb83qmmfaypgh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5yYyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "22", "sha256": "0iigq5qb4jh8rjc7m8abz4fsqrihppax4czgwhphkc3fyk2r8iym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQnJpbmctT3V0LVN1Ym1lbnUtb2YtUG93ZXItT2ZmLUxvZ291dCIsCiAgInV1aWQiOiAiQnJpbmdPdXRTdWJtZW51T2ZQb3dlck9mZkxvZ291dEJ1dHRvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "24", "sha256": "0mj3w7bn597barirp60isxbhrvwmms4xbpvk7j592yk5dbyidq65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0mj3w7bn597barirp60isxbhrvwmms4xbpvk7j592yk5dbyidq65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyNAp9"}}}
+, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "4", "sha256": "1jv5k6ir968rh8pfrk1bcnddrdmrmx3kfc30zfsdlcpvmc8p03lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1jv5k6ir968rh8pfrk1bcnddrdmrmx3kfc30zfsdlcpvmc8p03lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "16", "sha256": "07fa3dqydyhm6rc6iqq1qqikp00ax7swg01c4mbzh2j0awi12fig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmF1am9uYXMvZXhlY3V0b3IiLAogICJ1dWlkIjogImV4ZWN1dG9yQHJhdWpvbmFzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "07fa3dqydyhm6rc6iqq1qqikp00ax7swg01c4mbzh2j0awi12fig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmF1am9uYXMvZXhlY3V0b3IiLAogICJ1dWlkIjogImV4ZWN1dG9yQHJhdWpvbmFzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
-, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "15", "sha256": "1a8fslcwcv19inzca8snc76k0yacam8qyfws8gk52yy5apa2fwjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQ29udHJvbF9CbHVyX0VmZmVjdF9Pbl9Mb2NrX1NjcmVlbiIsCiAgInV1aWQiOiAiQ29udHJvbEJsdXJFZmZlY3RPbkxvY2tTY3JlZW5AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
-, {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "20", "sha256": "0lj9lzs0vngm6lr7dz1p6k6gnaz2a4hwp7g6y6i2r4c6kcwicqkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "20", "sha256": "0lj9lzs0vngm6lr7dz1p6k6gnaz2a4hwp7g6y6i2r4c6kcwicqkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
-, {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for instant action to primary selection, especially optimized for Dictionary lookup\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "0afn26f234zsk4w1766yf5pr2rrb9d375f9qgqmxibaq34qbn4rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3IgaW5zdGFudCBhY3Rpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb24sIGVzcGVjaWFsbHkgb3B0aW1pemVkIGZvciBEaWN0aW9uYXJ5IGxvb2t1cFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "56", "sha256": "1r8lw1fr8xw1dq8kgjjg2znzbj1665saj14jr1igpmkg9czxy3c6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3IgaW5zdGFudCBhY3Rpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb24sIGVzcGVjaWFsbHkgb3B0aW1pemVkIGZvciBEaWN0aW9uYXJ5IGxvb2t1cFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Ngp9"}}}
+, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "16", "sha256": "11nz4ik3qwp1mb4v309wvmxx8ih4d72f5j3wcnz3xwjav9z2c1m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "11nz4ik3qwp1mb4v309wvmxx8ih4d72f5j3wcnz3xwjav9z2c1m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for on-the-fly manipulation to primary selections, especially optimized for Dictionary lookups.\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "1l36l9qmcz7c6i81w5fv083bg01qsgz681c2lan8f87hqdipl4r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "58", "sha256": "0x3rk3p2vlyd2n23jlmwqfc1akbbjfhyn9w1v44byw1nfc3b0n8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1OAp9"}, "41": {"version": "65", "sha256": "1hjaw62pxrpgismg6dhxqp04qhk1d4xkwlgzymmra7d428qjnxf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2NQp9"}}}
, {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for gnome shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {"38": {"version": "6", "sha256": "0qjqf5wdwvav5333k44qbgzkgwbhhm42370862ba8p3anih5d72w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbFNoYWtpYi9JbnRlcm5ldFNwZWVkTWV0ZXIiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNZXRlckBhbHNoYWtpYi5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0qjqf5wdwvav5333k44qbgzkgwbhhm42370862ba8p3anih5d72w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbFNoYWtpYi9JbnRlcm5ldFNwZWVkTWV0ZXIiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNZXRlckBhbHNoYWtpYi5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as a map tile of your Geolocation and country flag, this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\n=====================\nIP Finder can monitor in real time\n=====================\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n\n====================\nIP Finder has added security\n====================\nNewly developed revised code base using open technologies and using API's for Public IP and Map Tile image locations using GET requests over HTTPS for a added layer of encrypted Security, Please see source code for more details.\n\n====================\nCompatible GNOME shell - 3.36 and newer.", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {"38": {"version": "7", "sha256": "0qnmmg8q6xdv0rg90rzimqzsnggnsq2x8nmz998x59q2ik67kqgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
-, {"uuid": "runcat@kolesnikov.se", "name": "RunCat", "pname": "runcat", "description": "The cat tells you the CPU usage by running speed", "link": "https://extensions.gnome.org/extension/2986/runcat/", "shell_version_map": {"38": {"version": "13", "sha256": "1y11vsqgvy6yvy8b6w4b4xa5spags86hq1ma6pp448ljdgwh40xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dpbjBlcnIvZ25vbWUtcnVuY2F0IiwKICAidXVpZCI6ICJydW5jYXRAa29sZXNuaWtvdi5zZSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1y11vsqgvy6yvy8b6w4b4xa5spags86hq1ma6pp448ljdgwh40xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dpbjBlcnIvZ25vbWUtcnVuY2F0IiwKICAidXVpZCI6ICJydW5jYXRAa29sZXNuaWtvdi5zZSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "runcat@kolesnikov.se", "name": "RunCat", "pname": "runcat", "description": "The cat tells you the CPU usage by running speed", "link": "https://extensions.gnome.org/extension/2986/runcat/", "shell_version_map": {"38": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
, {"uuid": "bowser-gnome@kronosoul.xyz", "name": "Bowser Gnome Extension", "pname": "bowser-gnome-extension", "description": "Create rules to open specific websites in specific web browsers for links clicked in any application on your computer. (emails, chat etc)", "link": "https://extensions.gnome.org/extension/2989/bowser-gnome-extension/", "shell_version_map": {"38": {"version": "10", "sha256": "0y41xz4j24lc50ai8dcvl1l773ral59ixcpvkjq1l82x7baq60pk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL2Jvd3Nlci1nbm9tZSIsCiAgInV1aWQiOiAiYm93c2VyLWdub21lQGtyb25vc291bC54eXoiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"uuid": "ideapad@laurento.frittella", "name": "IdeaPad", "pname": "ideapad", "description": "Lenovo IdeaPad goodies for Gnome Shell", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {"38": {"version": "4", "sha256": "0pnk7avnkp847vhdsgdyyp780aikly1bh56lvp6497q5ym14jfna", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhdXJlbnRvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1pZGVhcGFkIiwKICAidXVpZCI6ICJpZGVhcGFkQGxhdXJlbnRvLmZyaXR0ZWxsYSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0pnk7avnkp847vhdsgdyyp780aikly1bh56lvp6497q5ym14jfna", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhdXJlbnRvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1pZGVhcGFkIiwKICAidXVpZCI6ICJpZGVhcGFkQGxhdXJlbnRvLmZyaXR0ZWxsYSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "system-monitor-next@paradoxxx.zero.gmail.com", "name": "system-monitor-next", "pname": "system-monitor-next", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…\n\nThis fork of paradoxxxzero/gnome-shell-system-monitor-applet is for packaging purposes only. This extension is built and updated continuously with the upstream master branch.\n\nThis is preferable for users on bleeding edge distributions that prefer not to wait for a stable release from the main repo. Of course, since we're releasing directly from master some instability is inevitable.", "link": "https://extensions.gnome.org/extension/3010/system-monitor-next/", "shell_version_map": {"40": {"version": "33", "sha256": "0zyrs51m7sh80sjpx57gg2fpw1xzddmccpp0im3cgjls3vm3ynvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMwp9"}}}
-, {"uuid": "user-theme-x@tuberry.github.io", "name": "User Themes X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and night theme auto-switch support\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {"38": {"version": "21", "sha256": "11q5f3rj2c27cb4gz8ga8kshc55gxqg7v841mrr2vw80p8792nr1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBuaWdodCB0aGVtZSBhdXRvLXN3aXRjaCBzdXBwb3J0XG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VyLXRoZW1lLXgiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "24", "sha256": "0mcz80dys1h17k3ffrlai4180asbxc3dc2f92ib64p4gjy5qzalw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBuaWdodCB0aGVtZSBhdXRvLXN3aXRjaCBzdXBwb3J0XG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VyLXRoZW1lLXgiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS91c2VyLXRoZW1lLXgiLAogICJ1dWlkIjogInVzZXItdGhlbWUteEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
+, {"uuid": "system-monitor-next@paradoxxx.zero.gmail.com", "name": "system-monitor-next", "pname": "system-monitor-next", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…\n\nThis fork of paradoxxxzero/gnome-shell-system-monitor-applet is for packaging purposes only. This extension is built and updated continuously with the upstream master branch.\n\nThis is preferable for users on bleeding edge distributions that prefer not to wait for a stable release from the main repo. Of course, since we're releasing directly from master some instability is inevitable.\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r'.", "link": "https://extensions.gnome.org/extension/3010/system-monitor-next/", "shell_version_map": {"40": {"version": "36", "sha256": "144aasy5fr4la36jyzp2m7qd3wwh5pzfyyjjp5lgsm8lza5026q4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
+, {"uuid": "user-theme-x@tuberry.github.io", "name": "User Themes X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch support\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {"38": {"version": "21", "sha256": "08992jny17mbw3gvlfwzgis1ld3wfkkd5fwdyq2c4s6l412fr0mz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogInVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMgWCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "40": {"version": "24", "sha256": "12scyi48nfbrl2bvhq4rwdcj7vyvpdc86sa8iw1fg3y0cw6vlvq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogInVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMgWCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "25", "sha256": "101y4msarf1dglh0g4wybz4dx8zsz2yg8ny2q5rz3xy1cjj8ac5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS91c2VyLXRoZW1lLXgiLAogICJ1dWlkIjogInVzZXItdGhlbWUteEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyNQp9"}}}
, {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {"38": {"version": "6", "sha256": "0bigmnvybrflmc7dq9g00c8h9sfwd2c8iqm8j4zg7mzj1gjaazkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBfdmlld190ZXh0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0bigmnvybrflmc7dq9g00c8h9sfwd2c8iqm8j4zg7mzj1gjaazkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBfdmlld190ZXh0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "vpn-snx-indicator@als.kz", "name": "VPN and SNX Indicator", "pname": "vpn-and-snx-indicator", "description": "A status indicator for a VPN and SNX(Check Point) connection.", "link": "https://extensions.gnome.org/extension/3049/vpn-and-snx-indicator/", "shell_version_map": {"38": {"version": "8", "sha256": "1mns39frrabpfdvmc7jcqxrlxs1mnjimdwa69hv5lawf0r498h9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgYSBWUE4gYW5kIFNOWChDaGVjayBQb2ludCkgY29ubmVjdGlvbi4iLAogICJuYW1lIjogIlZQTiBhbmQgU05YIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L3Zwbi1pbmRpY2F0b3Itc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ2cG4tc254LWluZGljYXRvckBhbHMua3oiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1mns39frrabpfdvmc7jcqxrlxs1mnjimdwa69hv5lawf0r498h9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgYSBWUE4gYW5kIFNOWChDaGVjayBQb2ludCkgY29ubmVjdGlvbi4iLAogICJuYW1lIjogIlZQTiBhbmQgU05YIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L3Zwbi1pbmRpY2F0b3Itc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ2cG4tc254LWluZGljYXRvckBhbHMua3oiLAogICJ2ZXJzaW9uIjogOAp9"}}}
, {"uuid": "vlan-switcher@darcato.github.io", "name": "VLAN Switcher", "pname": "vlan-switcher", "description": "Activate and deactivate VLAN connections from the system panel.", "link": "https://extensions.gnome.org/extension/3061/vlan-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "10qly2cldlrca96akywhw0cg5rmihh5b2mqs6sfrrincmnf0vnfw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2YXRlIGFuZCBkZWFjdGl2YXRlIFZMQU4gY29ubmVjdGlvbnMgZnJvbSB0aGUgc3lzdGVtIHBhbmVsLiIsCiAgIm5hbWUiOiAiVkxBTiBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYXJjYXRvL2dub21lLXZsYW4tc3dpdGNoZXIiLAogICJ1dWlkIjogInZsYW4tc3dpdGNoZXJAZGFyY2F0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "10qly2cldlrca96akywhw0cg5rmihh5b2mqs6sfrrincmnf0vnfw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2YXRlIGFuZCBkZWFjdGl2YXRlIFZMQU4gY29ubmVjdGlvbnMgZnJvbSB0aGUgc3lzdGVtIHBhbmVsLiIsCiAgIm5hbWUiOiAiVkxBTiBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYXJjYXRvL2dub21lLXZsYW4tc3dpdGNoZXIiLAogICJ1dWlkIjogInZsYW4tc3dpdGNoZXJAZGFyY2F0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "ssss@tu.berry", "name": "Simple Subscriber", "pname": "ss-subscriber", "description": "Simple shadowsocks subscriber (SSD only), yet another proxy switcher for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3073/ss-subscriber/", "shell_version_map": {"38": {"version": "18", "sha256": "0cvgcwk7liaaws9gf366xls7cn4slzzmh4l33qq91mgnm5wajr6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zcy1zdWJzY3JpYmVyIiwKICAidXVpZCI6ICJzc3NzQHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "0c9104f2a9b98732jwg0sgfjzbp5qsm2lgh1z1n5hp2524s1f0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc3Mtc3Vic2NyaWJlciIsCiAgInV1aWQiOiAic3Nzc0B0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "extension-list@tu.berry", "name": "Extension List", "pname": "extension-list", "description": "Simple gnome shell extension manager in the top panel\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3088/extension-list/", "shell_version_map": {"38": {"version": "25", "sha256": "0ckv4i23bqga97pv4hsfkc2zx7hhyj2ngz0l4jw5bbfs25adg2jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZXh0ZW5zaW9uLWxpc3QiLAogICJ1dWlkIjogImV4dGVuc2lvbi1saXN0QHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "27", "sha256": "00n5v7a0qahkpan77np3jmiwzb399p1p8kbhcyd60l7r3910hbf7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2V4dGVuc2lvbi1saXN0IiwKICAidXVpZCI6ICJleHRlbnNpb24tbGlzdEB0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
-, {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {"38": {"version": "7", "sha256": "0ncqpr2rw8nbjyvwpq3x5ddiw1l1nmz0kw8698p0l7jmgycmi785", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0ncqpr2rw8nbjyvwpq3x5ddiw1l1nmz0kw8698p0l7jmgycmi785", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "ssss@tu.berry", "name": "Simple Subscriber", "pname": "ss-subscriber", "description": "Simple shadowsocks subscriber (SSD only), yet another proxy switcher for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3073/ss-subscriber/", "shell_version_map": {"38": {"version": "18", "sha256": "0cvgcwk7liaaws9gf366xls7cn4slzzmh4l33qq91mgnm5wajr6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zcy1zdWJzY3JpYmVyIiwKICAidXVpZCI6ICJzc3NzQHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "0c9104f2a9b98732jwg0sgfjzbp5qsm2lgh1z1n5hp2524s1f0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc3Mtc3Vic2NyaWJlciIsCiAgInV1aWQiOiAic3Nzc0B0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "21", "sha256": "0hi4n35z8mgd337px9xywshfg76bcki7sgl5a3zc58nqb9zj0x3p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tc3Mtc3Vic2NyaWJlciIsCiAgIm5hbWUiOiAiU2ltcGxlIFN1YnNjcmliZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3Mtc3Vic2NyaWJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NzLXN1YnNjcmliZXIiLAogICJ1dWlkIjogInNzc3NAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
+, {"uuid": "extension-list@tu.berry", "name": "Extension List", "pname": "extension-list", "description": "Simple gnome shell extension manager in the top panel\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3088/extension-list/", "shell_version_map": {"38": {"version": "25", "sha256": "0ckv4i23bqga97pv4hsfkc2zx7hhyj2ngz0l4jw5bbfs25adg2jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZXh0ZW5zaW9uLWxpc3QiLAogICJ1dWlkIjogImV4dGVuc2lvbi1saXN0QHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "27", "sha256": "00n5v7a0qahkpan77np3jmiwzb399p1p8kbhcyd60l7r3910hbf7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2V4dGVuc2lvbi1saXN0IiwKICAidXVpZCI6ICJleHRlbnNpb24tbGlzdEB0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "28", "sha256": "11lr0h0jl9npvwggk646mdaq57sq8v39xdx0pp32yfjviwbrnnaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
+, {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {"38": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "8", "sha256": "0am93vkz74l70vavf8mlv8diga32xawvd5g79k8k7vwy15jg4zcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJleWUtZXh0ZW5kZWRAYWxzLmt6IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0am93vkz74l70vavf8mlv8diga32xawvd5g79k8k7vwy15jg4zcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJleWUtZXh0ZW5kZWRAYWxzLmt6IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "wireguard-indicator@gregos.me", "name": "Wireguard Indicator", "pname": "wireguard-indicator", "description": "Enable, disable, and view details of Wireguard.\nDeveloped by Gregos-Winus.", "link": "https://extensions.gnome.org/extension/3160/wireguard-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nContains some bugs due to the implementation of the blur effect on gnome shell, see https: //gitlab.gnome.org/GNOME/gnome-shell/-/issues/2857 for more informations.\n\nYou can now select which part you want to blur, wether or not you want overview animation and there is an option that reduces a lot the artifacts :)\n\nYou can sponsor my work at https://github.com/sponsors/aunetx or https://ko-fi.com/aunetx", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "22", "sha256": "123i53gj7zv8h0gfx5d3ymb8ba5cjxrcj4k5xdz10l4mfil9hwh5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Db250YWlucyBzb21lIGJ1Z3MgZHVlIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYmx1ciBlZmZlY3Qgb24gZ25vbWUgc2hlbGwsIHNlZSBodHRwczogLy9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLy0vaXNzdWVzLzI4NTcgZm9yIG1vcmUgaW5mb3JtYXRpb25zLlxuXG5Zb3UgY2FuIG5vdyBzZWxlY3Qgd2hpY2ggcGFydCB5b3Ugd2FudCB0byBibHVyLCB3ZXRoZXIgb3Igbm90IHlvdSB3YW50IG92ZXJ2aWV3IGFuaW1hdGlvbiBhbmQgdGhlcmUgaXMgYW4gb3B0aW9uIHRoYXQgcmVkdWNlcyBhIGxvdCB0aGUgYXJ0aWZhY3RzIDopXG5cbllvdSBjYW4gc3BvbnNvciBteSB3b3JrIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHggb3IgaHR0cHM6Ly9rby1maS5jb20vYXVuZXR4IiwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyMgp9"}, "40": {"version": "21", "sha256": "11711nhih56kqdc1jr0r4d6706yc1zdg9pcc6fn17h4a8fjihlfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Db250YWlucyBzb21lIGJ1Z3MgZHVlIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYmx1ciBlZmZlY3Qgb24gZ25vbWUgc2hlbGwsIHNlZSBodHRwczogLy9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLy0vaXNzdWVzLzI4NTcgZm9yIG1vcmUgaW5mb3JtYXRpb25zLlxuXG5Zb3UgY2FuIG5vdyBzZWxlY3Qgd2hpY2ggcGFydCB5b3Ugd2FudCB0byBibHVyLCB3ZXRoZXIgb3Igbm90IHlvdSB3YW50IG92ZXJ2aWV3IGFuaW1hdGlvbiBhbmQgdGhlcmUgaXMgYW4gb3B0aW9uIHRoYXQgcmVkdWNlcyBhIGxvdCB0aGUgYXJ0aWZhY3RzIDopXG5cbllvdSBjYW4gc3BvbnNvciBteSB3b3JrIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHggb3IgaHR0cHM6Ly9rby1maS5jb20vYXVuZXR4IiwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
-, {"uuid": "compiz-windows-effect@hermes83.github.com", "name": "Compiz windows effect", "pname": "compiz-windows-effect", "description": "Compiz wobbly windows effect thanks to libanimation engine.\n\nThe use of the \"js engine\" option NOT requires any external library, orherwise you need to install the LIBANIMATION library patched for Gnome Shell: \nhttps://github.com/hermes83/libanimation\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n Video\n-----------------------------------\nhttps://youtu.be/G8bAVIB9A7A", "link": "https://extensions.gnome.org/extension/3210/compiz-windows-effect/", "shell_version_map": {"38": {"version": "9", "sha256": "1igwqkm2d5230q6yk41bal9yk690vkap5qfh8zqm6wdrsnswbhfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LXdpbmRvd3MtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotd2luZG93cy1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1igwqkm2d5230q6yk41bal9yk690vkap5qfh8zqm6wdrsnswbhfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LXdpbmRvd3MtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotd2luZG93cy1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
-, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Note, only tested on gnome shell version 4.40 on Fedora 34 with Xorg", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "3", "sha256": "0asqd39s35w8axz8rp772fv97fj6fxcxmq08wx7xh5virnzin4fw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBOb3RlLCBvbmx5IHRlc3RlZCBvbiBnbm9tZSBzaGVsbCB2ZXJzaW9uIDQuNDAgb24gRmVkb3JhIDM0IHdpdGggWG9yZyIsCiAgIm5hbWUiOiAiQmxvY2sgQ2FyaWJvdSAzNiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seHlseHkxMjM0NTYvY2FyaWJvdWJsb2NrZXIiLAogICJ1dWlkIjogImJsb2NrLWNhcmlib3UtMzZAbHh5bHh5MTIzNDU2LmVyY2xpLmRldiIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nIMPORTANT:\nAfter updating the extension, PLEASE make sure to logout and re-login so that gnome-shell can reload the extension correctly. This is not a bug from Blur my Shell, but an unfortunate issue from gnome shell.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "22", "sha256": "0nkjqb5fyza2ah0dmcdfh4f998zyv8c955k3dzvybvb4rmmyvm8y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "1i7qlmfrq5hbd9jc4mj05i592fr5kcn0h4qappr2123saqdwnbl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "1i7qlmfrq5hbd9jc4mj05i592fr5kcn0h4qappr2123saqdwnbl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {"38": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "compiz-windows-effect@hermes83.github.com", "name": "Compiz windows effect", "pname": "compiz-windows-effect", "description": "Compiz wobbly windows effect thanks to libanimation engine.\n\nThe use of the \"js engine\" option NOT requires any external library, orherwise you need to install the LIBANIMATION library patched for Gnome Shell: \nhttps://github.com/hermes83/libanimation\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n Video\n-----------------------------------\nhttps://youtu.be/G8bAVIB9A7A", "link": "https://extensions.gnome.org/extension/3210/compiz-windows-effect/", "shell_version_map": {"38": {"version": "10", "sha256": "0s2pprlc0wi2ln45c6bj9gzh6rg3bkc1dxn85dq1c7r4h6ib14x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0s2pprlc0wi2ln45c6bj9gzh6rg3bkc1dxn85dq1c7r4h6ib14x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0s2pprlc0wi2ln45c6bj9gzh6rg3bkc1dxn85dq1c7r4h6ib14x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Note, only tested on gnome shell version 4.40 on Fedora 34 with Xorg", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "4", "sha256": "13szkkrc51b3sa5pgf6zy33kg63ksn77crah4fp4xzsd5rycji6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBOb3RlLCBvbmx5IHRlc3RlZCBvbiBnbm9tZSBzaGVsbCB2ZXJzaW9uIDQuNDAgb24gRmVkb3JhIDM0IHdpdGggWG9yZyIsCiAgIm5hbWUiOiAiQmxvY2sgQ2FyaWJvdSAzNiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyIiwKICAidXVpZCI6ICJibG9jay1jYXJpYm91LTM2QGx4eWx4eTEyMzQ1Ni5lcmNsaS5kZXYiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "13szkkrc51b3sa5pgf6zy33kg63ksn77crah4fp4xzsd5rycji6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBOb3RlLCBvbmx5IHRlc3RlZCBvbiBnbm9tZSBzaGVsbCB2ZXJzaW9uIDQuNDAgb24gRmVkb3JhIDM0IHdpdGggWG9yZyIsCiAgIm5hbWUiOiAiQmxvY2sgQ2FyaWJvdSAzNiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyIiwKICAidXVpZCI6ICJibG9jay1jYXJpYm91LTM2QGx4eWx4eTEyMzQ1Ni5lcmNsaS5kZXYiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "unity-like-appswitcher@gonza.com", "name": "Unity-like App Switcher", "pname": "unity-like-app-switcher", "description": "A bigger and more colourfull AppSwitcher", "link": "https://extensions.gnome.org/extension/3231/unity-like-app-switcher/", "shell_version_map": {"38": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "add-to-desktop@tommimon.github.com", "name": "Add to Desktop", "pname": "add-to-desktop", "description": "An easy way to create desktop app shortcut in gnome", "link": "https://extensions.gnome.org/extension/3240/add-to-desktop/", "shell_version_map": {"38": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "touchpad_window_switcher@gonza.com", "name": "Touchpad Window Switcher", "pname": "tocuhpad-window-switcher", "description": "3 fingers window switcher. To make it work on Xorg check the service on github.\n\nUp - down: toggle between overview and show desktop (Needs Super+D shorcut to be set on Xorg. Set it with `gsettings set org.gnome.desktop.wm.keybindings show-desktop 'd'`).\n\nYou can also change windows by going to the overview (up) and moving to the left and right, and choosing the window with down. The overview is modified so it’s shown in chronological order.\n", "link": "https://extensions.gnome.org/extension/3294/tocuhpad-window-switcher/", "shell_version_map": {"38": {"version": "8", "sha256": "1x016p30z0pci3qlhpmfqrsgy0vwcfxqladny66ppbb32qisbkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgZmluZ2VycyB3aW5kb3cgc3dpdGNoZXIuIFRvIG1ha2UgaXQgd29yayBvbiBYb3JnIGNoZWNrIHRoZSBzZXJ2aWNlIG9uIGdpdGh1Yi5cblxuVXAgLSBkb3duOiB0b2dnbGUgYmV0d2VlbiBvdmVydmlldyBhbmQgc2hvdyBkZXNrdG9wIChOZWVkcyBTdXBlcitEIHNob3JjdXQgdG8gYmUgc2V0IG9uIFhvcmcuIFNldCBpdCB3aXRoIGBnc2V0dGluZ3Mgc2V0IG9yZy5nbm9tZS5kZXNrdG9wLndtLmtleWJpbmRpbmdzIHNob3ctZGVza3RvcCAnPFN1cGVyPmQnYCkuXG5cbllvdSBjYW4gYWxzbyBjaGFuZ2Ugd2luZG93cyBieSBnb2luZyB0byB0aGUgb3ZlcnZpZXcgKHVwKSBhbmQgbW92aW5nIHRvIHRoZSBsZWZ0IGFuZCByaWdodCwgYW5kIGNob29zaW5nIHRoZSB3aW5kb3cgd2l0aCBkb3duLiBUaGUgb3ZlcnZpZXcgaXMgbW9kaWZpZWQgc28gaXRcdTIwMTlzIHNob3duIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuXG4iLAogICJuYW1lIjogIlRvdWNocGFkIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ0b3VjaHBhZF93aW5kb3dfc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "gnome-shell-duckduckgo-search-provider@keithcirkel.co.uk", "name": "DuckDuckGo Search Provider", "pname": "duckduckgo-search-provider", "description": "Add DuckDuckGo search suggestions to Gnome Shell Search", "link": "https://extensions.gnome.org/extension/3306/duckduckgo-search-provider/", "shell_version_map": {"38": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "15", "sha256": "0q8lrp9s31n3bvdzyq5vrl0zibszmrvl3c0hndx17lwzqs5rxwa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ0aGVtZSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnRoZW1lIiwKICAidHdlYWtzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudHdlYWtzIiwKICAidXJsIjogImh0dHBzOi8vbWF0ZXJpYWwtc2hlbGwuY29tIiwKICAidXVpZCI6ICJtYXRlcmlhbC1zaGVsbEBwYXB5ZWxncmluZ28iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
-, {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "25", "sha256": "0lx4bs7yfqkphb5cwmakl6xjf14q89m0yn70a882drakfhzgnagw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
+, {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "17", "sha256": "19zniqwksrfxcdw2byqhi8px0bzb28qljzzl0wl2cb8jnm517g6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "19zniqwksrfxcdw2byqhi8px0bzb28qljzzl0wl2cb8jnm517g6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "galaxy-buds-battery@pemmoura", "name": "Galaxy Buds Battery", "pname": "galaxy-buds-battery", "description": "Galaxy Buds battery indicator.", "link": "https://extensions.gnome.org/extension/3383/galaxy-buds-battery/", "shell_version_map": {"38": {"version": "6", "sha256": "1f25mc5idqaw3v9b2xffiij9y0pcrl8msz85p8cz2x5l2r3sc7wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdhbGF4eSBCdWRzIGJhdHRlcnkgaW5kaWNhdG9yLiIsCiAgIm5hbWUiOiAiR2FsYXh5IEJ1ZHMgQmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlbW1vdXJhL2dhbGF4eWJ1ZHMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnYWxheHktYnVkcy1iYXR0ZXJ5QHBlbW1vdXJhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "25", "sha256": "0lx4bs7yfqkphb5cwmakl6xjf14q89m0yn70a882drakfhzgnagw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "26", "sha256": "0i07lcal3cvxn6w6id5sjsipab6bx5xzw2v612zpc8qlc4jll155", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
, {"uuid": "yaru-remix-theme-toggle@muqtxdir.me", "name": "Yaru remix theme toggle", "pname": "yaru-remix-theme-toggle", "description": "Switches GTK3, Gnome-shell, cursor and icon themes to Yaru-remix variants", "link": "https://extensions.gnome.org/extension/3402/yaru-remix-theme-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "04dh163dshjnq3fa1y5kbkgl94q4cifvffq6i2pr4zd1v7d4zrf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAibXVxdGFkaXI1NTU1QGdtYWlsLmNvbSIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2hlcyBHVEszLCBHbm9tZS1zaGVsbCwgY3Vyc29yIGFuZCBpY29uIHRoZW1lcyB0byBZYXJ1LXJlbWl4IHZhcmlhbnRzIiwKICAibmFtZSI6ICJZYXJ1IHJlbWl4IHRoZW1lIHRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL011cXR4ZGlyL3lhcnUtcmVtaXgtdGhlbWUtdG9nZ2xlIiwKICAidXVpZCI6ICJ5YXJ1LXJlbWl4LXRoZW1lLXRvZ2dsZUBtdXF0eGRpci5tZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "ascii_emoji_buckets@HarshKhandeparkar", "name": "ASCII Emoji Buckets", "pname": "ascii-emoji-buckets", "description": "Buckets of ASCII emojis for your messaging pleasure. A fork of Emoji Buckets.", "link": "https://extensions.gnome.org/extension/3408/ascii-emoji-buckets/", "shell_version_map": {"38": {"version": "9", "sha256": "1srqsjzcywywlhapaca41v4pc99w503m5532g6cc6qwz9f2r4w5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1Y2tldHMgb2YgQVNDSUkgZW1vamlzIGZvciB5b3VyIG1lc3NhZ2luZyBwbGVhc3VyZS4gQSBmb3JrIG9mIEVtb2ppIEJ1Y2tldHMuIiwKICAibmFtZSI6ICJBU0NJSSBFbW9qaSBCdWNrZXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcnNoS2hhbmRlcGFya2FyL2dub21lLWFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJ1dWlkIjogImFzY2lpX2Vtb2ppX2J1Y2tldHNASGFyc2hLaGFuZGVwYXJrYXIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
, {"uuid": "user-stylesheet@tomaszgasior.pl", "name": "User style sheet & font", "pname": "user-stylesheet-font", "description": "Load custom style sheet from ~/.config/gnome-shell/gnome-shell.css. Use GTK font family and font size from GNOME Tweaks in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3414/user-stylesheet-font/", "shell_version_map": {"38": {"version": "3", "sha256": "1gkjf0vx60zi6yj4zcqsrdnsk3m7p6zxcpi6v3hywp43g7ql4dg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tYXN6R2FzaW9yL2dub21lLXNoZWxsLXVzZXItc3R5bGVzaGVldC1hbmQtZm9udCIsCiAgInV1aWQiOiAidXNlci1zdHlsZXNoZWV0QHRvbWFzemdhc2lvci5wbCIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1gkjf0vx60zi6yj4zcqsrdnsk3m7p6zxcpi6v3hywp43g7ql4dg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tYXN6R2FzaW9yL2dub21lLXNoZWxsLXVzZXItc3R5bGVzaGVldC1hbmQtZm9udCIsCiAgInV1aWQiOiAidXNlci1zdHlsZXNoZWV0QHRvbWFzemdhc2lvci5wbCIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "wg-indicator@dpf12110.gmail.com", "name": "WG Indicator", "pname": "wg-indicator", "description": "A status indicator for Wireguard connections.", "link": "https://extensions.gnome.org/extension/3418/wg-indicator/", "shell_version_map": {"40": {"version": "12", "sha256": "14yp1l9n3lvdj8l16zqx8c87nkh5mrbyfjbnqi4ylfchpc5pm8kk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3luYzEyMTEvd2ctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3Zy1pbmRpY2F0b3JAZHBmMTIxMTAuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
-, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "6", "sha256": "1bxi2f6w906p9wxz1hd9wjbd98chzhzg4lsbf1bz6mdfxmplq4b4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "8", "sha256": "1nnfrwh8sxr4n2midbjf11a6ym80znmdd9rbsckmf5z8mr1h684b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "1nnfrwh8sxr4n2midbjf11a6ym80znmdd9rbsckmf5z8mr1h684b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "1nnfrwh8sxr4n2midbjf11a6ym80znmdd9rbsckmf5z8mr1h684b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {"38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "showtime-horizontal@xenlism.github.io", "name": "Showtime Horizontal - Desktop Widget", "pname": "showtime-horizontal", "description": "Horizontal Style Date & Clock Widget base on Budgie Desktop Widget", "link": "https://extensions.gnome.org/extension/3442/showtime-horizontal/", "shell_version_map": {"38": {"version": "5", "sha256": "1rdf1alxfyi29wnz2bzm20j9k5q8sn3a6d4si841cjbhmvqdcqhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS94ZW5saXNtL3Nob3d0aW1lIiwKICAidXVpZCI6ICJzaG93dGltZS1ob3Jpem9udGFsQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "6", "sha256": "1zy7lkkmcjxkc30hys98s0xlmi93cyc6jz6qx7zfv1v7w03iw3ld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "display-switcher@iyadk.com", "name": "Display Switcher 2", "pname": "display-switcher", "description": "This extension allows you to toggle between display modes quickly using Super + I. You can switch between Extended, Primary, Clone, and Secondary Only modes quickly. Selecting Extended mode multiple times will flip your secondary monitor's relative position to the primary (to the left or right of it). This extension was originally developed by Lucas Diedrich - https://extensions.gnome.org/extension/1030/display-switcher/ and has been adapted to support Gnome Shell's v3.36.", "link": "https://extensions.gnome.org/extension/3459/display-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "13vb68xfmcx525yk2vgfny6xvi06nzv103an5zab90hvmj6ggzlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheSBtb2RlcyBxdWlja2x5IHVzaW5nIFN1cGVyICsgSS4gIFlvdSBjYW4gc3dpdGNoIGJldHdlZW4gRXh0ZW5kZWQsIFByaW1hcnksIENsb25lLCBhbmQgU2Vjb25kYXJ5IE9ubHkgbW9kZXMgcXVpY2tseS4gIFNlbGVjdGluZyBFeHRlbmRlZCBtb2RlIG11bHRpcGxlIHRpbWVzIHdpbGwgZmxpcCB5b3VyIHNlY29uZGFyeSBtb25pdG9yJ3MgcmVsYXRpdmUgcG9zaXRpb24gdG8gdGhlIHByaW1hcnkgKHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGl0KS4gIFRoaXMgZXh0ZW5zaW9uIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBieSBMdWNhcyBEaWVkcmljaCAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMzAvZGlzcGxheS1zd2l0Y2hlci8gYW5kIGhhcyBiZWVuIGFkYXB0ZWQgdG8gc3VwcG9ydCBHbm9tZSBTaGVsbCdzIHYzLjM2LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNwbGF5LXN3aXRjaGVyIiwKICAibmFtZSI6ICJEaXNwbGF5IFN3aXRjaGVyIDIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTHVjYXMgRGllZHJpY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGlzcGxheS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l5YWRrYW5kYWxhZnQvZ25vbWUtZGlzcGxheS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzcGxheS1zd2l0Y2hlckBpeWFkay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "panel-date-format@atareao.es", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.", "link": "https://extensions.gnome.org/extension/3465/panel-date-format/", "shell_version_map": {"40": {"version": "5", "sha256": "1x6f55d650mnw57fds70bdy9n2h5v7hmb43fsah33m4h4rk1svnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJleHRlbnNpb24taWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgImdldHRleHQtZG9tYWluIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJpY29uIjogInBhbmVsLWRhdGUtZm9ybWF0IiwKICAibmFtZSI6ICJQYW5lbCBEYXRlIEZvcm1hdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "myHiddenTopBar@lendoK.github.com", "name": "myHiddenTopBar", "pname": "myhiddentopbar", "description": "really hides the toppanel", "link": "https://extensions.gnome.org/extension/3481/myhiddentopbar/", "shell_version_map": {"38": {"version": "2", "sha256": "1vrj1ih0rvds9xng0i4n2cah9akm2j2vhma3a7zjyvljxmw82w5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm15SGlkZGVuVG9wQmFyQGxlbmRvSy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "3", "sha256": "0fl9rcdxn2l2lpc8fhcbvzm9lx0i12674kk15rpgbzfj8xn26qkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm15SGlkZGVuVG9wQmFyQGxlbmRvSy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "big-avatar@gustavoperedo.org", "name": "Big Avatar", "pname": "big-avatar", "description": "Adds your user avatar and name to the menu panel. Big thanks to: db0x and 'I like 'em curvy' extension developer", "link": "https://extensions.gnome.org/extension/3488/big-avatar/", "shell_version_map": {"38": {"version": "6", "sha256": "1p278iaqfl39kimk3041wvzvmgag8dr2q1bmka3n7srkd2n71vlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciB1c2VyIGF2YXRhciBhbmQgbmFtZSB0byB0aGUgbWVudSBwYW5lbC4gQmlnIHRoYW5rcyB0bzogZGIweCBhbmQgJ0kgbGlrZSAnZW0gY3VydnknIGV4dGVuc2lvbiBkZXZlbG9wZXIiLAogICJleHRlbnNpb24taWQiOiAiYmlnLWF2YXRhciIsCiAgIm5hbWUiOiAiQmlnIEF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaWctYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3VzdGF2b1BlcmVkby9CaWctQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlnLWF2YXRhckBndXN0YXZvcGVyZWRvLm9yZyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "11", "sha256": "1ajh11619r8v6mvkmv142ivykd5b20jx64ca8fxhicfn6i6di923", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciB1c2VyIGF2YXRhciBhbmQgbmFtZSB0byB0aGUgbWVudSBwYW5lbC4gQmlnIHRoYW5rcyB0bzogZGIweCBhbmQgJ0kgbGlrZSAnZW0gY3VydnknIGV4dGVuc2lvbiBkZXZlbG9wZXIiLAogICJleHRlbnNpb24taWQiOiAiYmlnLWF2YXRhciIsCiAgIm5hbWUiOiAiQmlnIEF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaWctYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0d1c3Rhdm9QZXJlZG8vQmlnLUF2YXRhci1Hbm9tZS1TaGVsbC1FeHRlbnNpb24iLAogICJ1dWlkIjogImJpZy1hdmF0YXJAZ3VzdGF2b3BlcmVkby5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
-, {"uuid": "volume-mixer@evermiss.net", "name": "Application Volume Mixer", "pname": "application-volume-mixer", "description": "Control volume output per-application", "link": "https://extensions.gnome.org/extension/3499/application-volume-mixer/", "shell_version_map": {"38": {"version": "7", "sha256": "02k60askhgs69ajwhsqkw4977065pvg3fnw70rhc1mnx1yvjbgs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "02k60askhgs69ajwhsqkw4977065pvg3fnw70rhc1mnx1yvjbgs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "volume-mixer@evermiss.net", "name": "Application Volume Mixer", "pname": "application-volume-mixer", "description": "Control volume output per-application", "link": "https://extensions.gnome.org/extension/3499/application-volume-mixer/", "shell_version_map": {"38": {"version": "8", "sha256": "0xwgp3j91nryv7sk68hkrxpfk29hgsy9c3pgv61hhjykas7jsbv5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXltaW5kc3Rvcm0vZ25vbWUtdm9sdW1lLW1peGVyIiwKICAidXVpZCI6ICJ2b2x1bWUtbWl4ZXJAZXZlcm1pc3MubmV0IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0xwgp3j91nryv7sk68hkrxpfk29hgsy9c3pgv61hhjykas7jsbv5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXltaW5kc3Rvcm0vZ25vbWUtdm9sdW1lLW1peGVyIiwKICAidXVpZCI6ICJ2b2x1bWUtbWl4ZXJAZXZlcm1pc3MubmV0IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0xwgp3j91nryv7sk68hkrxpfk29hgsy9c3pgv61hhjykas7jsbv5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXltaW5kc3Rvcm0vZ25vbWUtdm9sdW1lLW1peGVyIiwKICAidXVpZCI6ICJ2b2x1bWUtbWl4ZXJAZXZlcm1pc3MubmV0IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "creative-control@sau.li", "name": "Creative Sound Blaster control", "pname": "creative-sound-blaster-control", "description": "Control Creative Sound Blaster", "link": "https://extensions.gnome.org/extension/3505/creative-sound-blaster-control/", "shell_version_map": {"38": {"version": "2", "sha256": "0pqps21c2p8fqndy9hd77j979h0wjbw0yzbmv6jmwk7rskv6zysg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgQ3JlYXRpdmUgU291bmQgQmxhc3RlciIsCiAgIm5hbWUiOiAiQ3JlYXRpdmUgU291bmQgQmxhc3RlciBjb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNhdWwzMi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY3JlYXRpdmUtY29udHJvbCIsCiAgInV1aWQiOiAiY3JlYXRpdmUtY29udHJvbEBzYXUubGkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "day-night-wallpaper@swapnilmadavi.github.io", "name": "Day Night Wallpaper", "pname": "day-night-wallpaper", "description": "Set separate wallpapers for day and night time.", "link": "https://extensions.gnome.org/extension/3512/day-night-wallpaper/", "shell_version_map": {"38": {"version": "2", "sha256": "082wrffxsa6qnp120ghlvhkb3isnnf9qizxfk6bbgqbzcvsax059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBzZXBhcmF0ZSB3YWxscGFwZXJzIGZvciBkYXkgYW5kIG5pZ2h0IHRpbWUuIiwKICAibmFtZSI6ICJEYXkgTmlnaHQgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRheS1uaWdodC13YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd2FwbmlsbWFkYXZpL2RheS1uaWdodC13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkYXktbmlnaHQtd2FsbHBhcGVyQHN3YXBuaWxtYWRhdmkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "transparent-shell@siroj42.github.io", "name": "Transparent Shell", "pname": "transparent-shell", "description": "Make the main shell components (Top bar, dash, search box) transparent.", "link": "https://extensions.gnome.org/extension/3518/transparent-shell/", "shell_version_map": {"38": {"version": "6", "sha256": "109c5w2p7w9arfy4wrqmyyi7vd5fwdr8n2cz250bpxiij6zq140k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIG1haW4gc2hlbGwgY29tcG9uZW50cyAoVG9wIGJhciwgZGFzaCwgc2VhcmNoIGJveCkgdHJhbnNwYXJlbnQuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1Npcm9qNDIvZ25vbWUtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXNoZWxsIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1zaGVsbEBzaXJvajQyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "7", "sha256": "0nzx401vvzn8n9xnkd13v5jim0l7zd01p1lf0lbgydrr8gh67i95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIG1haW4gc2hlbGwgY29tcG9uZW50cyAoVG9wIGJhciwgZGFzaCwgc2VhcmNoIGJveCkgdHJhbnNwYXJlbnQuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TaXJvajQyL2dub21lLWV4dGVuc2lvbi10cmFuc3BhcmVudC1zaGVsbCIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtc2hlbGxAc2lyb2o0Mi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "true-color-invert@jackkenney", "name": "True Color Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I\n\nI've tested it with both XOrg and Wayland on Gnome 3.38 and 40.\nWayland users will have to log out and log back in for the installation to complete.\n\nVersion 6 has higher contrast than version 4, which I think makes it more readable.\nLet me know what you think in the comments!", "link": "https://extensions.gnome.org/extension/3530/true-color-invert/", "shell_version_map": {"38": {"version": "6", "sha256": "1kiqlafs5zszbim44y93jvilajp3nmcjvwds1pfy5hmnrnz0khga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJXG5cbkkndmUgdGVzdGVkIGl0IHdpdGggYm90aCBYT3JnIGFuZCBXYXlsYW5kIG9uIEdub21lIDMuMzggYW5kIDQwLlxuV2F5bGFuZCB1c2VycyB3aWxsIGhhdmUgdG8gbG9nIG91dCBhbmQgbG9nIGJhY2sgaW4gZm9yIHRoZSBpbnN0YWxsYXRpb24gdG8gY29tcGxldGUuXG5cblZlcnNpb24gNiBoYXMgaGlnaGVyIGNvbnRyYXN0IHRoYW4gdmVyc2lvbiA0LCB3aGljaCBJIHRoaW5rIG1ha2VzIGl0IG1vcmUgcmVhZGFibGUuXG5MZXQgbWUga25vdyB3aGF0IHlvdSB0aGluayBpbiB0aGUgY29tbWVudHMhIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYWNra2VubmV5L2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLWludmVydEBqYWNra2VubmV5IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "1kiqlafs5zszbim44y93jvilajp3nmcjvwds1pfy5hmnrnz0khga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJXG5cbkkndmUgdGVzdGVkIGl0IHdpdGggYm90aCBYT3JnIGFuZCBXYXlsYW5kIG9uIEdub21lIDMuMzggYW5kIDQwLlxuV2F5bGFuZCB1c2VycyB3aWxsIGhhdmUgdG8gbG9nIG91dCBhbmQgbG9nIGJhY2sgaW4gZm9yIHRoZSBpbnN0YWxsYXRpb24gdG8gY29tcGxldGUuXG5cblZlcnNpb24gNiBoYXMgaGlnaGVyIGNvbnRyYXN0IHRoYW4gdmVyc2lvbiA0LCB3aGljaCBJIHRoaW5rIG1ha2VzIGl0IG1vcmUgcmVhZGFibGUuXG5MZXQgbWUga25vdyB3aGF0IHlvdSB0aGluayBpbiB0aGUgY29tbWVudHMhIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYWNra2VubmV5L2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLWludmVydEBqYWNra2VubmV5IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "true-color-invert@jackkenney", "name": "True Color Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I", "link": "https://extensions.gnome.org/extension/3530/true-color-invert/", "shell_version_map": {"38": {"version": "6", "sha256": "04q61b5bcl6493alv1hlablrydf8fzzmxpd04m228zl66lwvd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYWNra2VubmV5L2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLWludmVydEBqYWNra2VubmV5IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "04q61b5bcl6493alv1hlablrydf8fzzmxpd04m228zl66lwvd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYWNra2VubmV5L2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLWludmVydEBqYWNra2VubmV5IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "gitlab-extension@infinicode.de", "name": "GitLab Extension", "pname": "gitlab-extension", "description": "GitLab extension utilizes the official GitLab API to provide a comfortable overview about your projects, commits & pipelines.\n", "link": "https://extensions.gnome.org/extension/3535/gitlab-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "downfall@torculus.github.com", "name": "DownFall", "pname": "downfall", "description": "Moves text of your choice across the screen. Can simulate leaves, snow, fireworks, ufos, and more! Note: currently experiencing high CPU usage. Developers welcome to contribute on github!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "11", "sha256": "0ccpxijh9qmvsncfjvvgrp5n4l2qxbvjhndpg32mjfpwf7d1dqrx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvcmN1bHVzL0Rvd25GYWxsIiwKICAidXVpZCI6ICJkb3duZmFsbEB0b3JjdWx1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "0ccpxijh9qmvsncfjvvgrp5n4l2qxbvjhndpg32mjfpwf7d1dqrx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvcmN1bHVzL0Rvd25GYWxsIiwKICAidXVpZCI6ICJkb3duZmFsbEB0b3JjdWx1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "time-awareness@gnome-extensions.kapranoff.ru", "name": "Time Awareness", "pname": "time-awareness", "description": "Tracks the time you have been actively using your computer", "link": "https://extensions.gnome.org/extension/3556/time-awareness/", "shell_version_map": {"38": {"version": "4", "sha256": "0pybsc0f7nqd4f0y8a26v5yr1k9b0kj77wkvv5mxilbhhh67yv36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zci5odC9+a2FwcGEvZ25vbWUtc2hlbGwtdGltZS1hd2FyZW5lc3MvIiwKICAidXVpZCI6ICJ0aW1lLWF3YXJlbmVzc0Bnbm9tZS1leHRlbnNpb25zLmthcHJhbm9mZi5ydSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0pybsc0f7nqd4f0y8a26v5yr1k9b0kj77wkvv5mxilbhhh67yv36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zci5odC9+a2FwcGEvZ25vbWUtc2hlbGwtdGltZS1hd2FyZW5lc3MvIiwKICAidXVpZCI6ICJ0aW1lLWF3YXJlbmVzc0Bnbm9tZS1leHRlbnNpb25zLmthcHJhbm9mZi5ydSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for installation instructions and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {"38": {"version": "7", "sha256": "1frgby34251xmc9871ydxaa9iska8m2hkm81lc0f7fhk0gbbif2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJkZXBlbmRlbmNpZXMiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMvSW5zdGFsbGF0aW9uIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSB0YXNrcyBuZXh0IHRvIHRoZSBjYWxlbmRhciB3aWRnZXQuXG5cblZpc2l0IG91ciBXaWtpIHBhZ2UgZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgYW5kIHRyb3VibGVzaG9vdGluZy4iLAogICJlcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvdGFzay13aWRnZXQiLAogICJncmVzb3VyY2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQuZ3Jlc291cmNlIiwKICAibG9jYWxlIjogInVzZXItc3BlY2lmaWMiLAogICJuYW1lIjogIlRhc2sgV2lkZ2V0IiwKICAic2NoZW1hcyI6ICJ1c2VyLXNwZWNpZmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA3LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}, "40": {"version": "7", "sha256": "1frgby34251xmc9871ydxaa9iska8m2hkm81lc0f7fhk0gbbif2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJkZXBlbmRlbmNpZXMiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMvSW5zdGFsbGF0aW9uIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSB0YXNrcyBuZXh0IHRvIHRoZSBjYWxlbmRhciB3aWRnZXQuXG5cblZpc2l0IG91ciBXaWtpIHBhZ2UgZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgYW5kIHRyb3VibGVzaG9vdGluZy4iLAogICJlcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvdGFzay13aWRnZXQiLAogICJncmVzb3VyY2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQuZ3Jlc291cmNlIiwKICAibG9jYWxlIjogInVzZXItc3BlY2lmaWMiLAogICJuYW1lIjogIlRhc2sgV2lkZ2V0IiwKICAic2NoZW1hcyI6ICJ1c2VyLXNwZWNpZmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA3LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}}}
+, {"uuid": "downfall@torculus.github.com", "name": "DownFall", "pname": "downfall", "description": "Moves text of your choice across the screen. Can simulate leaves, snow, fireworks, ufos, and more! Note: currently experiencing high CPU usage. Developers welcome to contribute on github!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "12", "sha256": "11bq9ak6qyfaf610qi5fdniwcxryjds4m6r09pgkhydaam9am2lh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "11bq9ak6qyfaf610qi5fdniwcxryjds4m6r09pgkhydaam9am2lh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "11bq9ak6qyfaf610qi5fdniwcxryjds4m6r09pgkhydaam9am2lh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "time-awareness@gnome-extensions.kapranoff.ru", "name": "Time Awareness", "pname": "time-awareness", "description": "Tracks the time you have been actively using your computer", "link": "https://extensions.gnome.org/extension/3556/time-awareness/", "shell_version_map": {"38": {"version": "6", "sha256": "0kfw4s2y0r51plmchzga7fkd69ynksccz881xh683k4as6af4mcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0kfw4s2y0r51plmchzga7fkd69ynksccz881xh683k4as6af4mcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0kfw4s2y0r51plmchzga7fkd69ynksccz881xh683k4as6af4mcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "mullvadindicator@pobega.github.com", "name": "Mullvad Indicator", "pname": "mullvad-indicator", "description": "Mullvad connection status indicator", "link": "https://extensions.gnome.org/extension/3560/mullvad-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.\n\nRemember to restart the Shell after updating the extension.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {"38": {"version": "8", "sha256": "1g6p243jmfsqls6zbpsr8y7psnskz6ha05dxx5zrqd6x781371pi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuXG5cblJlbWVtYmVyIHRvIHJlc3RhcnQgdGhlIFNoZWxsIGFmdGVyIHVwZGF0aW5nIHRoZSBleHRlbnNpb24uIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA4LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}, "40": {"version": "8", "sha256": "1g6p243jmfsqls6zbpsr8y7psnskz6ha05dxx5zrqd6x781371pi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuXG5cblJlbWVtYmVyIHRvIHJlc3RhcnQgdGhlIFNoZWxsIGFmdGVyIHVwZGF0aW5nIHRoZSBleHRlbnNpb24uIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA4LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}, "41": {"version": "8", "sha256": "1g6p243jmfsqls6zbpsr8y7psnskz6ha05dxx5zrqd6x781371pi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuXG5cblJlbWVtYmVyIHRvIHJlc3RhcnQgdGhlIFNoZWxsIGFmdGVyIHVwZGF0aW5nIHRoZSBleHRlbnNpb24uIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA4LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}}}
, {"uuid": "air-quality@mcardillo55", "name": "Air Quality", "pname": "air-quality", "description": "View local air quality from PurpleAir in the top bar", "link": "https://extensions.gnome.org/extension/3574/air-quality/", "shell_version_map": {"40": {"version": "2", "sha256": "037hbbb6z3gj818hqxqq96yszd1hka57pn4gj9f5kps7ak5hca4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbG9jYWwgYWlyIHF1YWxpdHkgZnJvbSBQdXJwbGVBaXIgaW4gdGhlIHRvcCBiYXIiLAogICJuYW1lIjogIkFpciBRdWFsaXR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21jYXJkaWxsbzU1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1haXItcXVhbGl0eSIsCiAgInV1aWQiOiAiYWlyLXF1YWxpdHlAbWNhcmRpbGxvNTUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "azan@hatem.masmoudi.org", "name": "Azan Islamic Prayer Times", "pname": "azan-islamic-prayer-times", "description": "Azan is an Islamic prayer times extension for Gnome Shell based on the extension by Fahrinh.\n\nFeatures\n- List compulsory prayer times\n Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Moon status icon", "link": "https://extensions.gnome.org/extension/3602/azan-islamic-prayer-times/", "shell_version_map": {"38": {"version": "2", "sha256": "1z58m1w04mdddq9p3102jv852zks41f2l7xbx7j8jcljy4ahiqll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIGJ5IEZhaHJpbmguXG5cbkZlYXR1cmVzXG4tIExpc3QgY29tcHVsc29yeSBwcmF5ZXIgdGltZXNcbiBPcHRpb25hbGx5IGRpc3BsYXkgSW1zYWssIFN1bnJpc2UsIFN1bnNldCBhbmQgTWlkbmlnaHRcbi0gU2hvdyByZW1haW5pbmcgdGltZSBmb3IgdGhlIHVwY29taW5nIHByYXllci5cbi0gU2hvdyBjdXJyZW50IGRhdGUgaW4gSGlqcmkgY2FsZW5kYXIuXG4tIERpc3BsYXkgYSBub3RpZmljYXRpb24gd2hlbiBpdCdzIHRpbWUgZm9yIHByYXllci5cbi0gQXV0b21hdGljIEdlb2NsdWUyIGxvY2F0aW9uIGRldGVjdGlvblxuLSBTaG93IHRpbWVzIGluIDI0IGhvdXIgYW5kIDEyIGhvdXIgZm9ybWF0c1xuLSBIaWpyaSBkYXRlIGFkanVzbWVudFxuLSBNb29uIHN0YXR1cyBpY29uIiwKICAibmFtZSI6ICJBemFuIElzbGFtaWMgUHJheWVyIFRpbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF6YW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vaG1hc21vdWRpL2F6YW4tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhemFuQGhhdGVtLm1hc21vdWRpLm9yZyIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "blur-provider@corvettecole.github.com", "name": "blur-provider", "pname": "blur-provider", "description": "Provides an easy way for applications to request blur, and allows users to set blur on applications", "link": "https://extensions.gnome.org/extension/3607/blur-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "1p0cyq1bfi18ysk1fvydjvk6qdl87qi9p3kpc165q5i0d4b41ffp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGFuIGVhc3kgd2F5IGZvciBhcHBsaWNhdGlvbnMgdG8gcmVxdWVzdCBibHVyLCBhbmQgYWxsb3dzIHVzZXJzIHRvIHNldCBibHVyIG9uIGFwcGxpY2F0aW9ucyIsCiAgImV4dGVuc2lvbi1pZCI6ICJibHVyLXByb3ZpZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiYmx1ci1wcm92aWRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29ydmV0dGVjb2xlL2JsdXItcHJvdmlkZXIiLAogICJ1dWlkIjogImJsdXItcHJvdmlkZXJAY29ydmV0dGVjb2xlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "wireguard-indicator@atareao.es", "name": "WireGuard Indicator", "pname": "wireguard-indicator", "description": "Manage WireGuard VPN from Desktop", "link": "https://extensions.gnome.org/extension/3612/wireguard-indicator/", "shell_version_map": {"40": {"version": "6", "sha256": "0qddl83x30y6jqm4nyjk6faklmv7cii2czmgmagcyllgkh0simav", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdGFyZWFvL3dpcmVndWFyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIndpcmVndWFyZC1pbmRpY2F0b3JAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "shamsi-calendar@gnome.scr.ir", "name": "Iranian Persian Calendar", "pname": "shamsi-calendar", "description": "تقویم هجری شمسی،قمری و میلادی در میزکار گنوم لینوکس\nقابلیت نمایش اوقات شرعی و پخش اذان\nدرج تعطیلیها و مناسبتهای رسمی تقویم\nزبان کاملاً فارسی\nتاریخ قمری هلالی ایران\nسازگار با اکثر نسخههای گنوم\nدر حال توسعه...\n\nShows Persian + Islamic + Gregorian date in the panel of gnome.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri(Islamic)\n5- Show calendar Events.\n6- Show PrayTimes and play sound (Azan).\n\nPlease \"rate\" here and \"star\" project in GitHub.\nPlease open an issue in GitHub if you found something or have an idea!\nگزارش مشکلات:\nhttps://github.com/SCR-IR/gnome-shamsi-calendar/issues", "link": "https://extensions.gnome.org/extension/3618/shamsi-calendar/", "shell_version_map": {"38": {"version": "14", "sha256": "16jz1vrl992nlgnlxdnqp7w89bl7ryi5l77vvydi1jn3n042jr2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NyLWlyL2dub21lLXNoYW1zaS1jYWxlbmRhciIsCiAgInV1aWQiOiAic2hhbXNpLWNhbGVuZGFyQGdub21lLnNjci5pciIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "16jz1vrl992nlgnlxdnqp7w89bl7ryi5l77vvydi1jn3n042jr2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NyLWlyL2dub21lLXNoYW1zaS1jYWxlbmRhciIsCiAgInV1aWQiOiAic2hhbXNpLWNhbGVuZGFyQGdub21lLnNjci5pciIsCiAgInZlcnNpb24iOiAxNAp9"}}}
-, {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application Menu for GNOME, with various layouts to choose from!\n\nSupports GNOME shell 3.36, 3.38, and 40.\n\nFor GNOME shell versions 3.14-3.34 visit https://extensions.gnome.org/extension/1228/arc-menu/\n\nCommon solutions for ERROR message:\n-Restart your GNOME session after updating ArcMenu.\n-Make sure package 'gir1.2-gmenu-3.0' is installed.\n\nGeneral Help:\n-Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home\n\nPlease report issues at https://gitlab.com/arcmenu/ArcMenu", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "13", "sha256": "023frirwnjn7daa2kwgfywf782mwhrzajd908sigr0gphpwpx286", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgYW5kIDQwLlxuXG5Gb3IgR05PTUUgc2hlbGwgdmVyc2lvbnMgMy4xNC0zLjM0IHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1NYWtlIHN1cmUgcGFja2FnZSAnZ2lyMS4yLWdtZW51LTMuMCcgaXMgaW5zdGFsbGVkLlxuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "14", "sha256": "1aji561klhhcslwwhq0021y947i6c6h9lsly3lp3ljd7h5znl0r6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgYW5kIDQwLlxuXG5Gb3IgR05PTUUgc2hlbGwgdmVyc2lvbnMgMy4xNC0zLjM0IHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1NYWtlIHN1cmUgcGFja2FnZSAnZ2lyMS4yLWdtZW51LTMuMCcgaXMgaW5zdGFsbGVkLlxuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "tunnel-indicator@atareao.es", "name": "Tunnel Indicator", "pname": "tunnel-indicator", "description": "Manage SSH Tunnels from Desktop", "link": "https://extensions.gnome.org/extension/3622/tunnel-indicator/", "shell_version_map": {"40": {"version": "2", "sha256": "0ma4a711mgjxyhy4d21p2m7wvbnmmwlfdsf6xk9i36ranjcqs9as", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBTU0ggVHVubmVscyBmcm9tIERlc2t0b3AiLAogICJleHRlbnNpb24taWQiOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJ0dW5uZWwtaWNvbiIsCiAgIm5hbWUiOiAiVHVubmVsIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnR1bm5lbC1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby90dW5uZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0dW5uZWwtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application Menu for GNOME, with various layouts to choose from!\n\nSupports GNOME shell 3.36, 3.38, 40, and 41.\n\nFor older GNOME shell versions visit https://extensions.gnome.org/extension/1228/arc-menu/\n\nCommon solutions for ERROR message:\n-Restart your GNOME session after updating ArcMenu.\n-Install one of the following packages: 'gir1.2-gmenu-3.0' or 'gnome-menus'\n\nGeneral Help:\n-Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home\n\nPlease report all bugs or issues at https://gitlab.com/arcmenu/ArcMenu", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "17", "sha256": "0llq0zkvgxarr30s304n1ilidbwc0kx4l2impby5y2sdsvr7zafv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "40": {"version": "18", "sha256": "1vapj6lywga48j58764hpc2j3qapiz7k905bmla89im55vcip0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "1vapj6lywga48j58764hpc2j3qapiz7k905bmla89im55vcip0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
, {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Make the IME list in fixed sequence instead of MRU.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {"38": {"version": "6", "sha256": "0v99flnb23cjv32wr7r077q29jvgs7j5fjx6dc6qm2n04f1qiibz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0v99flnb23cjv32wr7r077q29jvgs7j5fjx6dc6qm2n04f1qiibz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "topindicatorapp@quiro9.com", "name": "Top Indicator App", "pname": "top-indicator-app", "description": "This extension is 'appindicators' from ubuntu, renamed 'top indicator app' under the terms of the GPL v2 +. it is the extension itself that Ubuntu offers as a native experience on your system, but so you can install it in other distros since the current one in gnome-extensions is empty.I will offer stable updates when possible.", "link": "https://extensions.gnome.org/extension/3681/top-indicator-app/", "shell_version_map": {"38": {"version": "2", "sha256": "12r4fxgsgd7jn001vlzqrsd86ci62zxk0b9p3bkdqh6g5hj3la35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGlzICdhcHBpbmRpY2F0b3JzJyBmcm9tIHVidW50dSwgcmVuYW1lZCAndG9wIGluZGljYXRvciBhcHAnIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BMIHYyICsuIGl0IGlzIHRoZSBleHRlbnNpb24gaXRzZWxmIHRoYXQgVWJ1bnR1IG9mZmVycyBhcyBhIG5hdGl2ZSBleHBlcmllbmNlIG9uIHlvdXIgc3lzdGVtLCBidXQgc28geW91IGNhbiBpbnN0YWxsIGl0IGluIG90aGVyIGRpc3Ryb3Mgc2luY2UgdGhlIGN1cnJlbnQgb25lIGluIGdub21lLWV4dGVuc2lvbnMgaXMgZW1wdHkuSSB3aWxsIG9mZmVyIHN0YWJsZSB1cGRhdGVzIHdoZW4gcG9zc2libGUuIiwKICAibmFtZSI6ICJUb3AgSW5kaWNhdG9yIEFwcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VidW50dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0b3BpbmRpY2F0b3JhcHBAcXVpcm85LmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "reorder-workspaces@jer.dev", "name": "Reorder Workspaces", "pname": "reorder-workspaces", "description": "Move workspaces up or down in the overview with Alt+Up/Alt+Down", "link": "https://extensions.gnome.org/extension/3685/reorder-workspaces/", "shell_version_map": {"38": {"version": "6", "sha256": "1f0hl2dzl75dwcv8jzx3rk1laqd9y9m32g219nvbhsmk8rjxfc31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plcmVtaWFobWVnZWwvZ25vbWUtcmVvcmRlci13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJyZW9yZGVyLXdvcmtzcGFjZXNAamVyLmRldiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "eos-hack@endlessos.org", "name": "Hack", "pname": "hack", "description": "Add the Flip to Hack experience to the desktop", "link": "https://extensions.gnome.org/extension/3690/hack/", "shell_version_map": {"38": {"version": "7", "sha256": "1dm9471qpyghzh0vvwdcliqrshv3844wizkgcv4fiwccr346i6ga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"uuid": "desktop-scroller@calango", "name": "Desktop Scroller (GNOME 3.38)", "pname": "desktop-scroller-gnome-338", "description": "Switch between desktops scrolling at the upper edge of the screen, including in overview. Change your delay between scroll events in extension.js. If you want to scroll on more lines from the top of the screen just remember that other extensions or indicators will not be able to catch their scroll events.", "link": "https://extensions.gnome.org/extension/3709/desktop-scroller-gnome-338/", "shell_version_map": {"38": {"version": "1", "sha256": "11g4w7bbzb8p9w78w83jpslgbs74rc26np0b1v35dg7nc7x33q4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIGRlc2t0b3BzIHNjcm9sbGluZyBhdCB0aGUgdXBwZXIgZWRnZSBvZiB0aGUgc2NyZWVuLCBpbmNsdWRpbmcgaW4gb3ZlcnZpZXcuIENoYW5nZSB5b3VyIGRlbGF5IGJldHdlZW4gc2Nyb2xsIGV2ZW50cyBpbiBleHRlbnNpb24uanMuIElmIHlvdSB3YW50IHRvIHNjcm9sbCBvbiBtb3JlIGxpbmVzIGZyb20gdGhlIHRvcCBvZiB0aGUgc2NyZWVuIGp1c3QgcmVtZW1iZXIgdGhhdCBvdGhlciBleHRlbnNpb25zIG9yIGluZGljYXRvcnMgd2lsbCBub3QgYmUgYWJsZSB0byBjYXRjaCB0aGVpciBzY3JvbGwgZXZlbnRzLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBTY3JvbGxlciAoR05PTUUgMy4zOCkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJkZXNrdG9wLXNjcm9sbGVyQGNhbGFuZ28iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "appmenu-color-icon@yanbab.gitlab.com", "name": "Colored AppMenu Icon", "pname": "color-app-menu-icon", "description": "Replace the symbolic application menu icon with the colored one", "link": "https://extensions.gnome.org/extension/3712/color-app-menu-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "17bsnqimkanf6c3d3qjvhggi5r3xjp6pha05fyh6b1ak9m9lvg53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgdGhlIHN5bWJvbGljIGFwcGxpY2F0aW9uIG1lbnUgaWNvbiB3aXRoIHRoZSBjb2xvcmVkIG9uZSIsCiAgIm5hbWUiOiAiQ29sb3JlZCBBcHBNZW51IEljb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS95YW5iYWIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJlZ3VsYXItYXBwbWVudS1pY29uIiwKICAidXVpZCI6ICJhcHBtZW51LWNvbG9yLWljb25AeWFuYmFiLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "snap-manager@fthx", "name": "Snap Manager", "pname": "snap-manager", "description": "Popup menu in the top bar to easily manage snap tasks (list, changes, refresh, remove, install...). Update notification at session start-up.\n\n All the results of actions are displayed in GNOME Terminal, so you can exactly know what you are doing and what is processing. Very light extension, no background process, no periodic background task. You can turn off refresh check and associated notifications (just a variable to toggle in /extension.js). You can disable auto updates for a limited time (up to one month, renewable), consequently be notified of snap updates and manually install them. \n\n This is not an official Ubuntu/Canonical extension.", "link": "https://extensions.gnome.org/extension/3715/snap-manager/", "shell_version_map": {"38": {"version": "33", "sha256": "1fvjjhh4q45qvyjma4azn4i63c79a9500jncqbwz5jnv39j9h3d7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc25hcC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzbmFwLW1hbmFnZXJAZnRoeCIsCiAgInZlcnNpb24iOiAzMwp9"}, "40": {"version": "33", "sha256": "1fvjjhh4q45qvyjma4azn4i63c79a9500jncqbwz5jnv39j9h3d7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc25hcC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzbmFwLW1hbmFnZXJAZnRoeCIsCiAgInZlcnNpb24iOiAzMwp9"}}}
+, {"uuid": "snap-manager@fthx", "name": "Snap Manager", "pname": "snap-manager", "description": "Popup menu in the top bar to easily manage snap tasks (list, changes, refresh, remove, install...). Update notification at session start-up.\n\n All the results of actions are displayed in GNOME Terminal, so you can exactly know what you are doing and what is processing. Very light extension, no background process, no periodic background task. You can turn off refresh check and associated notifications (just a variable to toggle in /extension.js). You can disable auto updates for a limited time (up to one month, renewable), consequently be notified of snap updates and manually install them. \n\n This is not an official Ubuntu/Canonical extension.", "link": "https://extensions.gnome.org/extension/3715/snap-manager/", "shell_version_map": {"38": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "41": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
, {"uuid": "hide-dash-forked@farnasirim.com", "name": "Hide Dash Forked", "pname": "hide-dash-forked", "description": "Hide dash menu from gnome overview", "link": "https://extensions.gnome.org/extension/3718/hide-dash-forked/", "shell_version_map": {"38": {"version": "3", "sha256": "1j0ca2nwj8bhnn2vv3fgjhglg8af9iqa992i7d2mvxx4zisj8rdq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZGFzaCBtZW51IGZyb20gZ25vbWUgb3ZlcnZpZXciLAogICJuYW1lIjogIkhpZGUgRGFzaCBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXJuYXNpcmltL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWRlLWRhc2gtZm9ya2VkIiwKICAidXVpZCI6ICJoaWRlLWRhc2gtZm9ya2VkQGZhcm5hc2lyaW0uY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Use System Color Scheme option \n☞ Update Preferences logic \n☞ Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "32", "sha256": "0b9g0p93pp6pnrvmz6r2hga3w8i2p6ld26f377baabzw4xsc4ad5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "32", "sha256": "0b9g0p93pp6pnrvmz6r2hga3w8i2p6ld26f377baabzw4xsc4ad5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
+, {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Use System Color Scheme option \n☞ Update Preferences logic \n☞ Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
, {"uuid": "cpupower-governors@icar.github.com", "name": "CPU Power Governor", "pname": "cpu-power-governor", "description": "Enables the ability to swap between kernel governors for the CPU useful for laptops.\n\nRequires: polkit, cpupower\nGithub: https://github.com/juxuanu/cpupower-governors", "link": "https://extensions.gnome.org/extension/3727/cpu-power-governor/", "shell_version_map": {"38": {"version": "2", "sha256": "1hb239w4cpz6yzs3pzd3hhrwswh6w5c5xw6dqn57m26cazh843qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgdGhlIGFiaWxpdHkgdG8gc3dhcCBiZXR3ZWVuIGtlcm5lbCBnb3Zlcm5vcnMgZm9yIHRoZSBDUFUgdXNlZnVsIGZvciBsYXB0b3BzLlxuXG5SZXF1aXJlczogcG9sa2l0LCBjcHVwb3dlclxuR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vanV4dWFudS9jcHVwb3dlci1nb3Zlcm5vcnMiLAogICJuYW1lIjogIkNQVSBQb3dlciBHb3Zlcm5vciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjcHVwb3dlci1nb3Zlcm5vcnNAaWNhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom dash to dock fork, now you can change the margin and border radius of the dock.", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "1fsbj9v1j483x1dl40bbrfl88d2m00mryrl05s67cjd4mak5dm8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIGRhc2ggdG8gZG9jayBmb3JrLCBub3cgeW91IGNhbiBjaGFuZ2UgdGhlIG1hcmdpbiBhbmQgYm9yZGVyIHJhZGl1cyBvZiB0aGUgZG9jay4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmbG9hdGluZ2RvY2siLAogICJuYW1lIjogIkZsb2F0aW5nIERvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAibmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVyLW1vcmVpcmEvZmxvYXRpbmctZG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmctZG9ja0BuYW5kb2ZlcnJlaXJhX3Byb2ZAaG90bWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "An extension which adds a Windows-like snap assist to GNOME. It also expands GNOME's 2 column tiling design and adds more features. Check out the settings on how use this extension or on how to get help.", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "04w9qgmldnlimf2975fkxlz8y23gw0l59ja7ymmbiqd57p7ncy1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBhZGRzIGEgV2luZG93cy1saWtlIHNuYXAgYXNzaXN0IHRvIEdOT01FLiBJdCBhbHNvIGV4cGFuZHMgR05PTUUncyAyIGNvbHVtbiB0aWxpbmcgZGVzaWduIGFuZCBhZGRzIG1vcmUgZmVhdHVyZXMuIENoZWNrIG91dCB0aGUgc2V0dGluZ3Mgb24gaG93IHVzZSB0aGlzIGV4dGVuc2lvbiBvciBvbiBob3cgdG8gZ2V0IGhlbHAuIiwKICAibmFtZSI6ICJUaWxpbmcgQXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "04w9qgmldnlimf2975fkxlz8y23gw0l59ja7ymmbiqd57p7ncy1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBhZGRzIGEgV2luZG93cy1saWtlIHNuYXAgYXNzaXN0IHRvIEdOT01FLiBJdCBhbHNvIGV4cGFuZHMgR05PTUUncyAyIGNvbHVtbiB0aWxpbmcgZGVzaWduIGFuZCBhZGRzIG1vcmUgZmVhdHVyZXMuIENoZWNrIG91dCB0aGUgc2V0dGluZ3Mgb24gaG93IHVzZSB0aGlzIGV4dGVuc2lvbiBvciBvbiBob3cgdG8gZ2V0IGhlbHAuIiwKICAibmFtZSI6ICJUaWxpbmcgQXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom dash to dock fork, now you can change the margin and border radius of the dock. Now fully working in GNOME 40", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "14qb8avkdlllwq2hk827a91j94qrr2q0mf0m09hqds3na81ay2k2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIGRhc2ggdG8gZG9jayBmb3JrLCBub3cgeW91IGNhbiBjaGFuZ2UgdGhlIG1hcmdpbiBhbmQgYm9yZGVyIHJhZGl1cyBvZiB0aGUgZG9jay4gTm93IGZ1bGx5IHdvcmtpbmcgaW4gR05PTUUgNDAiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmbG9hdGluZ2RvY2siLAogICJuYW1lIjogIkZsb2F0aW5nIERvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAibmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVyLW1vcmVpcmEvZmxvYXRpbmctZG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmctZG9ja0BuYW5kb2ZlcnJlaXJhX3Byb2ZAaG90bWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "2", "sha256": "05i6l52y7svprkjpg84w8f15xhcys8g1bhyiz0f28x846bvp1kss", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIGRhc2ggdG8gZG9jayBmb3JrLCBub3cgeW91IGNhbiBjaGFuZ2UgdGhlIG1hcmdpbiBhbmQgYm9yZGVyIHJhZGl1cyBvZiB0aGUgZG9jay4gTm93IGZ1bGx5IHdvcmtpbmcgaW4gR05PTUUgNDAiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmbG9hdGluZ2RvY2siLAogICJuYW1lIjogIkZsb2F0aW5nIERvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAibWljeGd4QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVyLW1vcmVpcmEvZmxvYXRpbmctZG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmctZG9ja0BuYW5kb2ZlcnJlaXJhX3Byb2ZAaG90bWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "05i6l52y7svprkjpg84w8f15xhcys8g1bhyiz0f28x846bvp1kss", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIGRhc2ggdG8gZG9jayBmb3JrLCBub3cgeW91IGNhbiBjaGFuZ2UgdGhlIG1hcmdpbiBhbmQgYm9yZGVyIHJhZGl1cyBvZiB0aGUgZG9jay4gTm93IGZ1bGx5IHdvcmtpbmcgaW4gR05PTUUgNDAiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmbG9hdGluZ2RvY2siLAogICJuYW1lIjogIkZsb2F0aW5nIERvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAibWljeGd4QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVyLW1vcmVpcmEvZmxvYXRpbmctZG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmctZG9ja0BuYW5kb2ZlcnJlaXJhX3Byb2ZAaG90bWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "Expand GNOME's 2 column tiling and add a Windows-snap-assist-inspired popup...", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "1b9hpll26ggwhw4f52wgflzjfqksmyfy5wyg1rpz41lr1dmva8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L1RpbGluZy1Bc3Npc3RhbnQiLAogICJ1dWlkIjogInRpbGluZy1hc3Npc3RhbnRAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "26", "sha256": "1a7blmsljvqnabig1bzb00w04bpmszk9jynx97477df1fv65y850", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "1a7blmsljvqnabig1bzb00w04bpmszk9jynx97477df1fv65y850", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
, {"uuid": "airpods-battery-status@ju.wtf", "name": "Airpods Battery status", "pname": "airpods-battery-status", "description": "Show Airpods battery level in top bar\n\n/!\\ See requirements on repository page", "link": "https://extensions.gnome.org/extension/3736/airpods-battery-status/", "shell_version_map": {"38": {"version": "5", "sha256": "0m68va2yh1cs91wb9c1yzdxj9pr3abj5jsx9q05cyiibd2zmbl92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXJcblxuLyFcXCBTZWUgcmVxdWlyZW1lbnRzIG9uIHJlcG9zaXRvcnkgcGFnZSIsCiAgIm5hbWUiOiAiQWlycG9kcyBCYXR0ZXJ5IHN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0m68va2yh1cs91wb9c1yzdxj9pr3abj5jsx9q05cyiibd2zmbl92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXJcblxuLyFcXCBTZWUgcmVxdWlyZW1lbnRzIG9uIHJlcG9zaXRvcnkgcGFnZSIsCiAgIm5hbWUiOiAiQWlycG9kcyBCYXR0ZXJ5IHN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "hue-lights@chlumskyvaclav.gmail.com", "name": "Hue Lights", "pname": "hue-lights", "description": "This extension controls Philips Hue compatible lights using Philips Hue Bridge on your local network. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/3737/hue-lights/", "shell_version_map": {"38": {"version": "13", "sha256": "0iwg3nbgnd7zzaa464l01bi40gqh4s725c882ica76qp0gj3ki8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmsuIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGFuIGVycm9yIG9uIHRoZSB1cGdyYWRlLCBwbGVhc2UgbG9nIG91dCBhbmQgbG9nIGluIGFnYWluLiIsCiAgImdldHRleHQtZG9tYWluIjogImh1ZS1saWdodHMiLAogICJuYW1lIjogIkh1ZSBMaWdodHMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiY2hsdW1za3l2YWNsYXZAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS9odWUtbGlnaHRzIiwKICAidXVpZCI6ICJodWUtbGlnaHRzQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "0iwg3nbgnd7zzaa464l01bi40gqh4s725c882ica76qp0gj3ki8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmsuIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGFuIGVycm9yIG9uIHRoZSB1cGdyYWRlLCBwbGVhc2UgbG9nIG91dCBhbmQgbG9nIGluIGFnYWluLiIsCiAgImdldHRleHQtZG9tYWluIjogImh1ZS1saWdodHMiLAogICJuYW1lIjogIkh1ZSBMaWdodHMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiY2hsdW1za3l2YWNsYXZAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS9odWUtbGlnaHRzIiwKICAidXVpZCI6ICJodWUtbGlnaHRzQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {"38": {"version": "9", "sha256": "1nw527afjrw8bqjrgbj99klcq9x6755iz2frkzsc5mn8pmcd3y73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "1nw527afjrw8bqjrgbj99klcq9x6755iz2frkzsc5mn8pmcd3y73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "hue-lights@chlumskyvaclav.gmail.com", "name": "Hue Lights", "pname": "hue-lights", "description": "This extension controls Philips Hue compatible lights using Philips Hue Bridge on your local network, it also allows controlling Philips Hue Sync Box. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/3737/hue-lights/", "shell_version_map": {"38": {"version": "18", "sha256": "0p1cna0i3pbqlv9jw4bfx25ac4frqjc0k9a2rslxxi71fnq1plar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "0p1cna0i3pbqlv9jw4bfx25ac4frqjc0k9a2rslxxi71fnq1plar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "0p1cna0i3pbqlv9jw4bfx25ac4frqjc0k9a2rslxxi71fnq1plar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {"38": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
, {"uuid": "latency-monitor@gitlab.labsatho.me", "name": "Latency Monitor", "pname": "latency-monitor", "description": "A simple extension for displaying latency information using pings in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3746/latency-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "0k2y1qrq7irkn2c72pk4c5x4fwzaxkfp3jj7qvhzih6zmkifdzcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZGlzcGxheWluZyBsYXRlbmN5IGluZm9ybWF0aW9uIHVzaW5nIHBpbmdzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiTGF0ZW5jeSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdGVuY3ktbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3dhbGthZndhbGthL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sYXRlbmN5LW1vbml0b3IiLAogICJ1dWlkIjogImxhdGVuY3ktbW9uaXRvckBnaXRsYWIubGFic2F0aG8ubWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "the-circles-widget@xenlism.github.io", "name": "The Circles - Desktop Widget", "pname": "the-circles-desktop-widget", "description": "Show System Infomations on Desktop as Circles Desktop Widget\n\nmore info \nhttps://www.linuxuprising.com/2020/11/display-clock-ram-and-cpu-usage-as.html", "link": "https://extensions.gnome.org/extension/3748/the-circles-desktop-widget/", "shell_version_map": {"38": {"version": "6", "sha256": "0kxync9gdjgcfq3vfhf5z0065n30jw5y5jl00hdgarsh4pkbji04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAidGhlLWNpcmNsZXMtd2lkZ2V0QHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "12", "sha256": "0ngn00y97dqv667z47xahfv53dlb2asm0jbk9harlv4516jdrg0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInRoZS1jaXJjbGVzLXdpZGdldEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
, {"uuid": "overview_cleaner@gonza.com", "name": "Cleaner Overview", "pname": "cleaner-overview", "description": "Makes all the windows in the overview the same height and orders them by last recent used.", "link": "https://extensions.gnome.org/extension/3759/cleaner-overview/", "shell_version_map": {"38": {"version": "2", "sha256": "0k1q3b0x83ygjlysp39pv2i076zrhsxdlzf7yg3dq76nk98q3l2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdG91Y2hwYWQtd2luZG93LXN3aXRjaGVyLWdub21lLWV4dC9ibG9iL21hc3Rlci90b3VjaHBhZF93aW5kb3dfc3dpdGNoZXIlNDBnb256YS5jb20vb3ZlcnZpZXdDbGVhbmVyLmpzIiwKICAidXVpZCI6ICJvdmVydmlld19jbGVhbmVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0k1q3b0x83ygjlysp39pv2i076zrhsxdlzf7yg3dq76nk98q3l2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdG91Y2hwYWQtd2luZG93LXN3aXRjaGVyLWdub21lLWV4dC9ibG9iL21hc3Rlci90b3VjaHBhZF93aW5kb3dfc3dpdGNoZXIlNDBnb256YS5jb20vb3ZlcnZpZXdDbGVhbmVyLmpzIiwKICAidXVpZCI6ICJvdmVydmlld19jbGVhbmVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "battery-status@atareao.es", "name": "Battery Status", "pname": "battery-status", "description": "Get information about your battery status", "link": "https://extensions.gnome.org/extension/3763/battery-status/", "shell_version_map": {"40": {"version": "5", "sha256": "0mg30q1cgzmf70ikbm623fflhz392xkan0d8cpslnmkgx0z6nczv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGJhdHRlcnkgc3RhdHVzIiwKICAiZXh0ZW5zaW9uLWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5LXN0YXR1c0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJiYXR0ZXJ5LXN0YXR1cy1pY29uIiwKICAibmFtZSI6ICJCYXR0ZXJ5IFN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLmJhdHRlcnktc3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "distinct@sireliah.com", "name": "Distinct Windows", "pname": "distinct-windows", "description": "Visually differentiate windows with colors and symbols", "link": "https://extensions.gnome.org/extension/3769/distinct-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "1iqga92l9mk3ykf8bdy9igvqfx9k78jasdmqsrrz9zcz33d7k4h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGx5IGRpZmZlcmVudGlhdGUgd2luZG93cyB3aXRoIGNvbG9ycyBhbmQgc3ltYm9scyIsCiAgIm5hbWUiOiAiRGlzdGluY3QgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpcmVsaWFoL2Rpc3RpbmN0LXdpbmRvd3MiLAogICJ1dWlkIjogImRpc3RpbmN0QHNpcmVsaWFoLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "miniCal2@breiq", "name": "Minimalist Calendar 2", "pname": "minimalist-calendar-2", "description": "Remove event list and clock/calendar app buttons from the calendar window.", "link": "https://extensions.gnome.org/extension/3775/minimalist-calendar-2/", "shell_version_map": {"38": {"version": "1", "sha256": "1nh10ik3zk3r4jr31mr8nw8nnamgj3mk1f3im06657wv18x9wvam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIiwKICAibmFtZSI6ICJNaW5pbWFsaXN0IENhbGVuZGFyIDIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWluaUNhbDJAYnJlaXEiLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "20", "sha256": "0n12069m1aza96i0k4i0n6k7pwqsz794wl8f9f0xxgs8v1r5yh6v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}, "40": {"version": "20", "sha256": "0n12069m1aza96i0k4i0n6k7pwqsz794wl8f9f0xxgs8v1r5yh6v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
+, {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively\n\nUpdates sometimes require restarting your GNOME session (i. e. logging out).", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
, {"uuid": "favorites-only-dash@nahuelwexd.github.io", "name": "Favorites-only Dash", "pname": "favorites-only-dash", "description": "Show only favorite apps on Dash", "link": "https://extensions.gnome.org/extension/3789/favorites-only-dash/", "shell_version_map": {"38": {"version": "1", "sha256": "110h019563j33gksaq5fs0z71sz1mslq1sbsmhk9mj3qggd9vs65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgb25seSBmYXZvcml0ZSBhcHBzIG9uIERhc2giLAogICJuYW1lIjogIkZhdm9yaXRlcy1vbmx5IERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZmF2b3JpdGVzLW9ubHktZGFzaEBuYWh1ZWx3ZXhkLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
, {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "3", "sha256": "16cpl12jk90pw8nyvzara6fhb3jfiivf2qnvnsnrd237sjz344yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "16cpl12jk90pw8nyvzara6fhb3jfiivf2qnvnsnrd237sjz344yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "podman-as-docker@alberto.yomerengues.xyz", "name": "Podman and Docker", "pname": "podman-as-docker", "description": "podman extension as docker\nIn order to get it work on podman, you just need to create an alias\nSimply put: alias docker=podman\nand install podman-docker", "link": "https://extensions.gnome.org/extension/3799/podman-as-docker/", "shell_version_map": {"38": {"version": "1", "sha256": "18bkd6z5hm6zidh7xv8v3jvj36lmxzx4dar7nwa7nq3p51km6crz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInBvZG1hbiBleHRlbnNpb24gYXMgZG9ja2VyXG5JbiBvcmRlciB0byBnZXQgaXQgd29yayBvbiBwb2RtYW4sIHlvdSBqdXN0IG5lZWQgdG8gY3JlYXRlIGFuIGFsaWFzXG5TaW1wbHkgcHV0OiBhbGlhcyBkb2NrZXI9cG9kbWFuXG5hbmQgaW5zdGFsbCBwb2RtYW4tZG9ja2VyIiwKICAibmFtZSI6ICJQb2RtYW4gYW5kIERvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJwb2RtYW4tYXMtZG9ja2VyQGFsYmVydG8ueW9tZXJlbmd1ZXMueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "wacom-indicator@fthx", "name": "Wacom Indicator", "pname": "wacom-indicator", "description": "Wacom tablet indicator in the top bar: connection state and power level.\n\n On click: open GNOME Settings Wacom section. On hover or every minute: update connection state and power level.\n\n Settings (in extension.js file headers): show/hide model label, refresh delay, update/do nothing on indicator hover, show/hide if disconnected.", "link": "https://extensions.gnome.org/extension/3809/wacom-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "hibernate@dafne.rocks", "name": "System Action - Hibernate", "pname": "system-action-hibernate", "description": "A GNOME extension that adds the option to hibernate amongst other system actions", "link": "https://extensions.gnome.org/extension/3814/system-action-hibernate/", "shell_version_map": {"38": {"version": "7", "sha256": "0z5mwqnlm77jl2r8p0884bm9w57m7ynzvr7w1vwv6rs2gn70wgyj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "0z5mwqnlm77jl2r8p0884bm9w57m7ynzvr7w1vwv6rs2gn70wgyj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "hibernate@dafne.rocks", "name": "System Action - Hibernate", "pname": "system-action-hibernate", "description": "A GNOME extension that adds the option to hibernate amongst other system actions", "link": "https://extensions.gnome.org/extension/3814/system-action-hibernate/", "shell_version_map": {"38": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}}}
, {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Allow to close the overview by clicking empty space.\n\nIf you have any problem, please open an issue on the extension web page.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "0y9xq7frbydjabw8y49nrj0r04z9rkd11xmsvj143sn82vq6vgcv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS5cblxuSWYgeW91IGhhdmUgYW55IHByb2JsZW0sIHBsZWFzZSBvcGVuIGFuIGlzc3VlIG9uIHRoZSBleHRlbnNpb24gd2ViIHBhZ2UuIiwKICAibmFtZSI6ICJDbGljayB0byBjbG9zZSBvdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2wzbm40cnQvY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXciLAogICJ1dWlkIjogImNsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3QGwzbm40cnQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Disable and Customize GNOME shell UI Elements\n\nThis extension allows you to do the following:\n\n## Visibility\n\n- OSD\n- Search\n- Dash\n- Workspace Switcher\n- Workspace Popup\n- Panel\n- Background Menu\n- Activities button\n- App Menu\n- Clock Menu\n- Keyboard Layout\n- Accessibility Menu\n- System Menu (Aggregate Menu)\n- Applications Button\n- Workspaces in app grid (Only GNOME Shell 40)\n- Window Picker Caption\n\n## Icons Visibility\n\n- App Menu Icon\n- Power Icon\n- Panel Notification icon\n- Window Picker Icon (Only GNOME Shell 40)\n- Panel Arrow (Only GNOME Shell 3.36 and 3.38)\n- Activities Button Icon\n\n## Behavior\n\n- Disable Type to Search\n- Hot Corner\n- App Gesture (Only GNOME Shell 3.36 and 3.38)\n- Window Demands Attention Focus\n- Always Show Workspace Switcher on Dynamic Workspaces (Only GNOME Shell 40)\n- Startup status (Only GNOME Shell 40)\n- Workspace Wraparound\n\n## Customize\n\n- Panel Height\n- Panel Position\n- Panel Button Padding Size\n- Panel Round Corner Size\n- Workspace Background Corner Size in Overview (Only GNOME Shell 40)\n- Clock Menu Position\n- Workspace Switcher Size (Only GNOME Shell 40)\n- Animation Speed or Disable it\n- Dash Icon Size\n- Notification Banner Position\n\n## Override\n\n- GNOME shell theme (You don't need to have user-theme-extension)", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "13", "sha256": "0j6d537gpg6dvq10lr97559xxaj7sgfzd8g72a680h7bvgld6hcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYW5kIEN1c3RvbWl6ZSBHTk9NRSBzaGVsbCBVSSBFbGVtZW50c1xuXG5UaGlzIGV4dGVuc2lvbiBhbGxvd3MgeW91IHRvIGRvIHRoZSBmb2xsb3dpbmc6XG5cbiMjIFZpc2liaWxpdHlcblxuLSBPU0Rcbi0gU2VhcmNoXG4tIERhc2hcbi0gV29ya3NwYWNlIFN3aXRjaGVyXG4tIFdvcmtzcGFjZSBQb3B1cFxuLSBQYW5lbFxuLSBCYWNrZ3JvdW5kIE1lbnVcbi0gQWN0aXZpdGllcyBidXR0b25cbi0gQXBwIE1lbnVcbi0gQ2xvY2sgTWVudVxuLSBLZXlib2FyZCBMYXlvdXRcbi0gQWNjZXNzaWJpbGl0eSBNZW51XG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSlcbi0gQXBwbGljYXRpb25zIEJ1dHRvblxuLSBXb3Jrc3BhY2VzIGluIGFwcCBncmlkIChPbmx5IEdOT01FIFNoZWxsIDQwKVxuLSBXaW5kb3cgUGlja2VyIENhcHRpb25cblxuIyMgSWNvbnMgVmlzaWJpbGl0eVxuXG4tIEFwcCBNZW51IEljb25cbi0gUG93ZXIgSWNvblxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvblxuLSBXaW5kb3cgUGlja2VyIEljb24gKE9ubHkgR05PTUUgU2hlbGwgNDApXG4tIFBhbmVsIEFycm93IChPbmx5IEdOT01FIFNoZWxsIDMuMzYgYW5kIDMuMzgpXG4tIEFjdGl2aXRpZXMgQnV0dG9uIEljb25cblxuIyMgQmVoYXZpb3JcblxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEhvdCBDb3JuZXJcbi0gQXBwIEdlc3R1cmUgKE9ubHkgR05PTUUgU2hlbGwgMy4zNiBhbmQgMy4zOClcbi0gV2luZG93IERlbWFuZHMgQXR0ZW50aW9uIEZvY3VzXG4tIEFsd2F5cyBTaG93IFdvcmtzcGFjZSBTd2l0Y2hlciBvbiBEeW5hbWljIFdvcmtzcGFjZXMgKE9ubHkgR05PTUUgU2hlbGwgNDApXG4tIFN0YXJ0dXAgc3RhdHVzIChPbmx5IEdOT01FIFNoZWxsIDQwKVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZFxuXG4jIyBDdXN0b21pemVcblxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyAoT25seSBHTk9NRSBTaGVsbCA0MClcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoT25seSBHTk9NRSBTaGVsbCA0MClcbi0gQW5pbWF0aW9uIFNwZWVkIG9yIERpc2FibGUgaXRcbi0gRGFzaCBJY29uIFNpemVcbi0gTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvblxuXG4jIyBPdmVycmlkZVxuXG4tIEdOT01FIHNoZWxsIHRoZW1lIChZb3UgZG9uJ3QgbmVlZCB0byBoYXZlIHVzZXItdGhlbWUtZXh0ZW5zaW9uKSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qcmFobWF0emFkZWgvanVzdC1wZXJmZWN0aW9uIiwKICAidXVpZCI6ICJqdXN0LXBlcmZlY3Rpb24tZGVza3RvcEBqdXN0LXBlcmZlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "0j6d537gpg6dvq10lr97559xxaj7sgfzd8g72a680h7bvgld6hcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYW5kIEN1c3RvbWl6ZSBHTk9NRSBzaGVsbCBVSSBFbGVtZW50c1xuXG5UaGlzIGV4dGVuc2lvbiBhbGxvd3MgeW91IHRvIGRvIHRoZSBmb2xsb3dpbmc6XG5cbiMjIFZpc2liaWxpdHlcblxuLSBPU0Rcbi0gU2VhcmNoXG4tIERhc2hcbi0gV29ya3NwYWNlIFN3aXRjaGVyXG4tIFdvcmtzcGFjZSBQb3B1cFxuLSBQYW5lbFxuLSBCYWNrZ3JvdW5kIE1lbnVcbi0gQWN0aXZpdGllcyBidXR0b25cbi0gQXBwIE1lbnVcbi0gQ2xvY2sgTWVudVxuLSBLZXlib2FyZCBMYXlvdXRcbi0gQWNjZXNzaWJpbGl0eSBNZW51XG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSlcbi0gQXBwbGljYXRpb25zIEJ1dHRvblxuLSBXb3Jrc3BhY2VzIGluIGFwcCBncmlkIChPbmx5IEdOT01FIFNoZWxsIDQwKVxuLSBXaW5kb3cgUGlja2VyIENhcHRpb25cblxuIyMgSWNvbnMgVmlzaWJpbGl0eVxuXG4tIEFwcCBNZW51IEljb25cbi0gUG93ZXIgSWNvblxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvblxuLSBXaW5kb3cgUGlja2VyIEljb24gKE9ubHkgR05PTUUgU2hlbGwgNDApXG4tIFBhbmVsIEFycm93IChPbmx5IEdOT01FIFNoZWxsIDMuMzYgYW5kIDMuMzgpXG4tIEFjdGl2aXRpZXMgQnV0dG9uIEljb25cblxuIyMgQmVoYXZpb3JcblxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEhvdCBDb3JuZXJcbi0gQXBwIEdlc3R1cmUgKE9ubHkgR05PTUUgU2hlbGwgMy4zNiBhbmQgMy4zOClcbi0gV2luZG93IERlbWFuZHMgQXR0ZW50aW9uIEZvY3VzXG4tIEFsd2F5cyBTaG93IFdvcmtzcGFjZSBTd2l0Y2hlciBvbiBEeW5hbWljIFdvcmtzcGFjZXMgKE9ubHkgR05PTUUgU2hlbGwgNDApXG4tIFN0YXJ0dXAgc3RhdHVzIChPbmx5IEdOT01FIFNoZWxsIDQwKVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZFxuXG4jIyBDdXN0b21pemVcblxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyAoT25seSBHTk9NRSBTaGVsbCA0MClcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoT25seSBHTk9NRSBTaGVsbCA0MClcbi0gQW5pbWF0aW9uIFNwZWVkIG9yIERpc2FibGUgaXRcbi0gRGFzaCBJY29uIFNpemVcbi0gTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvblxuXG4jIyBPdmVycmlkZVxuXG4tIEdOT01FIHNoZWxsIHRoZW1lIChZb3UgZG9uJ3QgbmVlZCB0byBoYXZlIHVzZXItdGhlbWUtZXh0ZW5zaW9uKSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qcmFobWF0emFkZWgvanVzdC1wZXJmZWN0aW9uIiwKICAidXVpZCI6ICJqdXN0LXBlcmZlY3Rpb24tZGVza3RvcEBqdXN0LXBlcmZlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
+, {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Tweak Tool to Customize GNOME Shell and Disable UI Elements\n\n- Accessibility Menu Visibility\n- Activities Button Icon Visibility\n- Activities button Visibility\n- Always Show Workspace Switcher on Dynamic Workspaces (40, 41)\n- Animation Speed or Disable it\n- App Gesture (3.36, 3.38)\n- Applications Button Visibility\n- App Menu Icon Visibility\n- App Menu Visibility\n- Background Menu Visibility\n- Clock Menu Position\n- Clock Menu Visibility\n- Dash Icon Size\n- Dash Visibility\n- Disable Type to Search\n- GNOME Shell Theme Override\n- Hot Corner\n- Keyboard Layout Visibility\n- Notification Banner Position\n- OSD Visibility\n- Panel Arrow Visibility(3.36, 3.38)\n- Panel Button Padding Size\n- Panel Height\n- Panel Indicator Padding Size\n- Panel Notification icon Visibility\n- Panel Position\n- Panel Round Corner Size\n- Panel Visibility\n- Power Icon Visibility\n- Search Visibility\n- Startup Status(40, 41)\n- System Menu (Aggregate Menu) Visibility\n- Window Demands Attention Focus\n- Window Picker Caption Visibility\n- Window Picker Close Button Visibility\n- Window Picker Icon(40, 41)\n- Workspace Background Corner Size in Overview(40, 41)\n- Workspace Popup Visibility\n- Workspaces in app grid Visibility (40, 41)\n- Workspace Switcher Size (40, 41)\n- Workspace Switcher Visibility\n- Workspace Wraparound", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "15", "sha256": "0g049gwmnnppiqqjfsc6snyw4ybg50bc0zk827n8w79ncmhigypd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXJcbi0gS2V5Ym9hcmQgTGF5b3V0IFZpc2liaWxpdHlcbi0gTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvblxuLSBPU0QgVmlzaWJpbGl0eVxuLSBQYW5lbCBBcnJvdyBWaXNpYmlsaXR5KDMuMzYsIDMuMzgpXG4tIFBhbmVsIEJ1dHRvbiBQYWRkaW5nIFNpemVcbi0gUGFuZWwgSGVpZ2h0XG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "15", "sha256": "0g049gwmnnppiqqjfsc6snyw4ybg50bc0zk827n8w79ncmhigypd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXJcbi0gS2V5Ym9hcmQgTGF5b3V0IFZpc2liaWxpdHlcbi0gTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvblxuLSBPU0QgVmlzaWJpbGl0eVxuLSBQYW5lbCBBcnJvdyBWaXNpYmlsaXR5KDMuMzYsIDMuMzgpXG4tIFBhbmVsIEJ1dHRvbiBQYWRkaW5nIFNpemVcbi0gUGFuZWwgSGVpZ2h0XG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "0g049gwmnnppiqqjfsc6snyw4ybg50bc0zk827n8w79ncmhigypd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXJcbi0gS2V5Ym9hcmQgTGF5b3V0IFZpc2liaWxpdHlcbi0gTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvblxuLSBPU0QgVmlzaWJpbGl0eVxuLSBQYW5lbCBBcnJvdyBWaXNpYmlsaXR5KDMuMzYsIDMuMzgpXG4tIFBhbmVsIEJ1dHRvbiBQYWRkaW5nIFNpemVcbi0gUGFuZWwgSGVpZ2h0XG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "04lp3d2xfl024nrvnqwb4vv2qd7fbwhfq3gbaz1j0ds7dhq7bhir", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "04lp3d2xfl024nrvnqwb4vv2qd7fbwhfq3gbaz1j0ds7dhq7bhir", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "scanlines-effect@muratcileli.com", "name": "Scanlines Effect", "pname": "scanlines-effect", "description": "Retro monitor / CRT TV effect.", "link": "https://extensions.gnome.org/extension/3860/scanlines-effect/", "shell_version_map": {"38": {"version": "1", "sha256": "1xcsd700s9hkqmrqlv56ldiya2jk0d46j8k4a4i3m9c6k40c5z7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJldHJvIG1vbml0b3IgLyBDUlQgVFYgZWZmZWN0LiIsCiAgIm5hbWUiOiAiU2NhbmxpbmVzIEVmZmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20ubXVyYXRjaWxlbGkuc2NhbmxpbmVzLWVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211cmF0LWNpbGVsaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NhbmxpbmVzLWVmZmVjdCIsCiAgInV1aWQiOiAic2NhbmxpbmVzLWVmZmVjdEBtdXJhdGNpbGVsaS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "workspaces-thumbnails-applet@blogdron", "name": "Workspaces Thumbnails Applet", "pname": "workspaces-thumbnails-applet", "description": "Notice!\n\nThis is a fork of the extension https://extensions.gnome.org/extension/2557/workspaces-thumbnails/ It hasn't been updated in a long time, but it only needs a small fix to work. Until the author fixes the problem, I will keep this fork. Please, if you have the opportunity to contact the author of the original extension, let him fix the problem for himself.\n\n\nPut an indicator on the panel showing all the workspaces thumbnails, allowing to switch between them or moving windows to another workspace.\n\n This is a very tiny fork of the original (GNOME official extension) Workspace Indicator, allowing to use it like when the Horizontal Workspaces extension is activated. The vertical workspaces layout is not modified; the workspaces layout is horizontal only in the top panel and the workspaces switcher in the overview is still showed. Please note that any global bug should be reported against the Workspace Indicator extension. https://extensions.gnome.org/extension/21/workspace-indicator", "link": "https://extensions.gnome.org/extension/3872/workspaces-thumbnails-applet/", "shell_version_map": {"38": {"version": "1", "sha256": "02823b6rfnibb0mhnx848pdxc3birw2aqp8607wjf93mvy5388hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGljZSFcblxuVGhpcyBpcyBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8yNTU3L3dvcmtzcGFjZXMtdGh1bWJuYWlscy8gSXQgaGFzbid0IGJlZW4gdXBkYXRlZCBpbiBhIGxvbmcgdGltZSwgYnV0IGl0IG9ubHkgbmVlZHMgYSBzbWFsbCBmaXggdG8gd29yay4gVW50aWwgdGhlIGF1dGhvciBmaXhlcyB0aGUgcHJvYmxlbSwgSSB3aWxsIGtlZXAgdGhpcyBmb3JrLiBQbGVhc2UsIGlmIHlvdSBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGV4dGVuc2lvbiwgbGV0IGhpbSBmaXggdGhlIHByb2JsZW0gZm9yIGhpbXNlbGYuXG5cblxuUHV0IGFuIGluZGljYXRvciBvbiB0aGUgcGFuZWwgc2hvd2luZyBhbGwgdGhlIHdvcmtzcGFjZXMgdGh1bWJuYWlscywgYWxsb3dpbmcgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBtb3Zpbmcgd2luZG93cyB0byBhbm90aGVyIHdvcmtzcGFjZS5cblxuIFRoaXMgaXMgYSB2ZXJ5IHRpbnkgZm9yayBvZiB0aGUgb3JpZ2luYWwgKEdOT01FIG9mZmljaWFsIGV4dGVuc2lvbikgV29ya3NwYWNlIEluZGljYXRvciwgYWxsb3dpbmcgdG8gdXNlIGl0IGxpa2Ugd2hlbiB0aGUgSG9yaXpvbnRhbCBXb3Jrc3BhY2VzIGV4dGVuc2lvbiBpcyBhY3RpdmF0ZWQuIFRoZSB2ZXJ0aWNhbCB3b3Jrc3BhY2VzIGxheW91dCBpcyBub3QgbW9kaWZpZWQ7IHRoZSB3b3Jrc3BhY2VzIGxheW91dCBpcyBob3Jpem9udGFsIG9ubHkgaW4gdGhlIHRvcCBwYW5lbCBhbmQgdGhlIHdvcmtzcGFjZXMgc3dpdGNoZXIgaW4gdGhlIG92ZXJ2aWV3IGlzIHN0aWxsIHNob3dlZC4gUGxlYXNlIG5vdGUgdGhhdCBhbnkgZ2xvYmFsIGJ1ZyBzaG91bGQgYmUgcmVwb3J0ZWQgYWdhaW5zdCB0aGUgV29ya3NwYWNlIEluZGljYXRvciBleHRlbnNpb24uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzIxL3dvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJleHRlbnNpb24taWQiOiAid29ya3NwYWNlcy10aHVtYm5haWxzLWFwcGxldCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldvcmtzcGFjZXMgVGh1bWJuYWlscyBBcHBsZXQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiLAogICAgImJsb2dkcm9uIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtdGh1bWJuYWlscy1hcHBsZXRAYmxvZ2Ryb24iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "simple-monitor@fcaballerop.github.io", "name": "Simple monitor", "pname": "simple-monitor", "description": "A simple panel button that shows CPU and RAM memory usage. Clicking shows the top 10 processes using CPU and memory.", "link": "https://extensions.gnome.org/extension/3891/simple-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "0qhicn9is6b5g8xc8n4dvxxmzmlhzb9w9wrn6rf1jv8q5igyacs3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHBhbmVsIGJ1dHRvbiB0aGF0IHNob3dzIENQVSBhbmQgUkFNIG1lbW9yeSB1c2FnZS4gQ2xpY2tpbmcgc2hvd3MgdGhlIHRvcCAxMCBwcm9jZXNzZXMgdXNpbmcgQ1BVIGFuZCBtZW1vcnkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXhhbXBsZSIsCiAgIm5hbWUiOiAiU2ltcGxlIG1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2ltcGxlLW1vbml0b3JAZmNhYmFsbGVyb3AuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"uuid": "NetworkSpeed@m0hithreddy", "name": "Network Speed", "pname": "network-speed", "description": "Highly customizable Network Speed Monitor.\n\nQuick install: \n\n/bin/bash -c \"$(curl -sL https://git.io/JkFoh)\"\n\nWhat's in this extension:\n\n* Preference Menu to customize the extension.\n* Five configurable network speed modes.\n 1. Total net speed in [g, m, k]b/s.\n 2. Total net speed in [G, M, K]B/s.\n 3. Up and down the speed in [g, m, k]b/s.\n 4. Up and down the speed in [G, M, K]B/s.\n 5. Total Downloaded in [G, M, K]B.\n* Extension color can be customizable.\n* Option to show upload speed first in modes 3 and 4.\n* Align the extension horizontally or vertically.\n* Different font sizes.\n* Option to autohide the extension, when idle.\n\nMouse click events on the extension:\n\n* Left click: Cycle through the modes.\n* Right-click in the first four modes: Toggle the visibility of total downloaded.\n* Right-click in the fifth mode: Reset total downloaded.\n* Four consecutive right-clicks: Toggle the horizontal/vertical alignment.\n* Middle click: Cycle through the font sizes.\n\nThanks to bijignome of creating the extension. Special thanks to prateekmedia for giving rebirth to the extension.\n\nWhat I added:\n\n* Revamping the whole codebase to create a roadmap for many feature additions.\n* Color customizations, Upload speed first, AutoHide.\n* Adopted Make build system to manage the extension (for developers).\n* Quick install method.", "link": "https://extensions.gnome.org/extension/3896/network-speed/", "shell_version_map": {"38": {"version": "1", "sha256": "0029mjirbg2hdk1ms95p29hmf8ahvfjyrsw9079nbds9p7za9f9n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgTmV0d29yayBTcGVlZCBNb25pdG9yLlxuXG5RdWljayBpbnN0YWxsOiBcblxuL2Jpbi9iYXNoIC1jIFwiJChjdXJsIC1zTCBodHRwczovL2dpdC5pby9Ka0ZvaClcIlxuXG5XaGF0J3MgaW4gdGhpcyBleHRlbnNpb246XG5cbiogUHJlZmVyZW5jZSBNZW51IHRvIGN1c3RvbWl6ZSB0aGUgZXh0ZW5zaW9uLlxuKiBGaXZlIGNvbmZpZ3VyYWJsZSBuZXR3b3JrIHNwZWVkIG1vZGVzLlxuICAgMS4gVG90YWwgbmV0IHNwZWVkIGluIFtnLCBtLCBrXWIvcy5cbiAgIDIuIFRvdGFsIG5ldCBzcGVlZCBpbiBbRywgTSwgS11CL3MuXG4gICAzLiBVcCBhbmQgZG93biB0aGUgc3BlZWQgaW4gW2csIG0sIGtdYi9zLlxuICAgNC4gVXAgYW5kIGRvd24gdGhlIHNwZWVkIGluIFtHLCBNLCBLXUIvcy5cbiAgIDUuIFRvdGFsIERvd25sb2FkZWQgaW4gW0csIE0sIEtdQi5cbiogRXh0ZW5zaW9uIGNvbG9yIGNhbiBiZSBjdXN0b21pemFibGUuXG4qIE9wdGlvbiB0byBzaG93IHVwbG9hZCBzcGVlZCBmaXJzdCBpbiBtb2RlcyAzIGFuZCA0LlxuKiBBbGlnbiB0aGUgZXh0ZW5zaW9uIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuKiBEaWZmZXJlbnQgZm9udCBzaXplcy5cbiogT3B0aW9uIHRvIGF1dG9oaWRlIHRoZSBleHRlbnNpb24sIHdoZW4gaWRsZS5cblxuTW91c2UgY2xpY2sgZXZlbnRzIG9uIHRoZSBleHRlbnNpb246XG5cbiogTGVmdCBjbGljazogQ3ljbGUgdGhyb3VnaCB0aGUgbW9kZXMuXG4qIFJpZ2h0LWNsaWNrIGluIHRoZSBmaXJzdCBmb3VyIG1vZGVzOiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgdG90YWwgZG93bmxvYWRlZC5cbiogUmlnaHQtY2xpY2sgaW4gdGhlIGZpZnRoIG1vZGU6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuXG4qIEZvdXIgY29uc2VjdXRpdmUgcmlnaHQtY2xpY2tzOiBUb2dnbGUgdGhlIGhvcml6b250YWwvdmVydGljYWwgYWxpZ25tZW50LlxuKiBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuXG5cblRoYW5rcyB0byBiaWppZ25vbWUgb2YgY3JlYXRpbmcgdGhlIGV4dGVuc2lvbi4gU3BlY2lhbCB0aGFua3MgdG8gcHJhdGVla21lZGlhIGZvciBnaXZpbmcgcmViaXJ0aCB0byB0aGUgZXh0ZW5zaW9uLlxuXG5XaGF0IEkgYWRkZWQ6XG5cbiogUmV2YW1waW5nIHRoZSB3aG9sZSBjb2RlYmFzZSB0byBjcmVhdGUgYSByb2FkbWFwIGZvciBtYW55IGZlYXR1cmUgYWRkaXRpb25zLlxuKiBDb2xvciBjdXN0b21pemF0aW9ucywgVXBsb2FkIHNwZWVkIGZpcnN0LCBBdXRvSGlkZS5cbiogQWRvcHRlZCBNYWtlIGJ1aWxkIHN5c3RlbSB0byBtYW5hZ2UgdGhlIGV4dGVuc2lvbiAoZm9yIGRldmVsb3BlcnMpLlxuKiBRdWljayBpbnN0YWxsIG1ldGhvZC4iLAogICJuYW1lIjogIk5ldHdvcmsgU3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tMGhpdGhyZWRkeS9OZXR3b3JrU3BlZWQiLAogICJ1dWlkIjogIk5ldHdvcmtTcGVlZEBtMGhpdGhyZWRkeSIsCiAgInZlcnNpb24iOiAxCn0="}}}
, {"uuid": "eye-extended-fix@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-and-mouse-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype. Import fix of original extension https://github.com/alexeylovchikov/eye-extended-shell-extension", "link": "https://extensions.gnome.org/extension/3902/eye-and-mouse-extended/", "shell_version_map": {"38": {"version": "1", "sha256": "1yxs70vlxyf4ns0nd37fl85lp188j84662lsl2l16rdm39w2c2wf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZS4gSW1wb3J0IGZpeCBvZiBvcmlnaW5hbCBleHRlbnNpb24gaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRXllRXh0ZW5kZWQiLAogICJuYW1lIjogIkV5ZSBhbmQgTW91c2UgRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAia3ouYWxzLmV5ZS1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXBlYWNvY2tzL2V5ZS1leHRlbmRlZC1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImV5ZS1leHRlbmRlZC1maXhAYWxzLmt6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "RemoveAppMenu@Dragon8oy.com", "name": "Remove App Menu", "pname": "remove-app-menu", "description": "Remove the application menu from the top bar", "link": "https://extensions.gnome.org/extension/3906/remove-app-menu/", "shell_version_map": {"38": {"version": "7", "sha256": "0zg6znwpz57pv5nz4iw5s8w6l7rc3c11cmga71fgbfx0w83rnmf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcmVtb3ZlLWFwcC1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUmVtb3ZlQXBwTWVudUBEcmFnb244b3kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0zg6znwpz57pv5nz4iw5s8w6l7rc3c11cmga71fgbfx0w83rnmf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcmVtb3ZlLWFwcC1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUmVtb3ZlQXBwTWVudUBEcmFnb244b3kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "RemoveAppMenu@Dragon8oy.com", "name": "Remove App Menu", "pname": "remove-app-menu", "description": "Remove the application menu from the top bar", "link": "https://extensions.gnome.org/extension/3906/remove-app-menu/", "shell_version_map": {"38": {"version": "8", "sha256": "0sjiiyr56b4vj75kn4mi8zj3vx0i1gsxk50n9h0bbxxmhjagz6cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3JlbW92ZS1hcHAtbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlJlbW92ZUFwcE1lbnVARHJhZ29uOG95LmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0sjiiyr56b4vj75kn4mi8zj3vx0i1gsxk50n9h0bbxxmhjagz6cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3JlbW92ZS1hcHAtbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlJlbW92ZUFwcE1lbnVARHJhZ29uOG95LmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0sjiiyr56b4vj75kn4mi8zj3vx0i1gsxk50n9h0bbxxmhjagz6cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3JlbW92ZS1hcHAtbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlJlbW92ZUFwcE1lbnVARHJhZ29uOG95LmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"uuid": "snow@endlessos.org", "name": "Snow", "pname": "snow", "description": "Let it snow", "link": "https://extensions.gnome.org/extension/3912/snow/", "shell_version_map": {"38": {"version": "3", "sha256": "1a6qkxm0s9cd8brha1zdpmrilv32h8bfkx0gnyx1zzxprmw04nmp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBpdCBzbm93IiwKICAibmFtZSI6ICJTbm93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNub3dAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "sticky-terminal@fthx", "name": "Sticky Terminal", "pname": "sticky-terminal", "description": "Toggle a sticky GNOME terminal window. Your terminal window will always be in foreground while you use another app.\n\nA button in panel allows to toggle the visibility of the terminal. Window is resizeable.\n\nYou can easily change it to default another terminal app or another app. Some other settings. See comments in extension.js file.", "link": "https://extensions.gnome.org/extension/3915/sticky-terminal/", "shell_version_map": {"38": {"version": "2", "sha256": "0j65ihfhama6scp2b8qbqr1h4gamy4v0w1ygxrfglhvl3jhjm5zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhIHN0aWNreSBHTk9NRSB0ZXJtaW5hbCB3aW5kb3cuIFlvdXIgdGVybWluYWwgd2luZG93IHdpbGwgYWx3YXlzIGJlIGluIGZvcmVncm91bmQgd2hpbGUgeW91IHVzZSBhbm90aGVyIGFwcC5cblxuQSBidXR0b24gaW4gcGFuZWwgYWxsb3dzIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgdGVybWluYWwuIFdpbmRvdyBpcyByZXNpemVhYmxlLlxuXG5Zb3UgY2FuIGVhc2lseSBjaGFuZ2UgaXQgdG8gZGVmYXVsdCBhbm90aGVyIHRlcm1pbmFsIGFwcCBvciBhbm90aGVyIGFwcC4gU29tZSBvdGhlciBzZXR0aW5ncy4gU2VlIGNvbW1lbnRzIGluIGV4dGVuc2lvbi5qcyBmaWxlLiIsCiAgIm5hbWUiOiAiU3RpY2t5IFRlcm1pbmFsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9zdGlja3ktdGVybWluYWwiLAogICJ1dWlkIjogInN0aWNreS10ZXJtaW5hbEBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "sticky-r-terminal@fthx", "name": "Sticky R Terminal", "pname": "sticky-r-terminal", "description": "Toggle a sticky R terminal window. Your R window will always be in foreground while you use another app.\n\nYou can easily change it to default another terminal app or another app. Some other settings. See comments in extension.js file. Same extension only running a terminal: https://extensions.gnome.org/extension/3915/sticky-terminal . You can use it with R if this extension does not work for your R installation setup.\n\nKeywords: stat, stats, statistics, statistical, r-cran.", "link": "https://extensions.gnome.org/extension/3916/sticky-r-terminal/", "shell_version_map": {"38": {"version": "1", "sha256": "17x84g6fb785jmcl5jz41nw4rgzaad48mc5zllh5b3a485731f0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhIHN0aWNreSBSIHRlcm1pbmFsIHdpbmRvdy4gWW91ciBSIHdpbmRvdyB3aWxsIGFsd2F5cyBiZSBpbiBmb3JlZ3JvdW5kIHdoaWxlIHlvdSB1c2UgYW5vdGhlciBhcHAuXG5cbllvdSBjYW4gZWFzaWx5IGNoYW5nZSBpdCB0byBkZWZhdWx0IGFub3RoZXIgdGVybWluYWwgYXBwIG9yIGFub3RoZXIgYXBwLiBTb21lIG90aGVyIHNldHRpbmdzLiBTZWUgY29tbWVudHMgaW4gZXh0ZW5zaW9uLmpzIGZpbGUuIFNhbWUgZXh0ZW5zaW9uIG9ubHkgcnVubmluZyBhIHRlcm1pbmFsOiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zOTE1L3N0aWNreS10ZXJtaW5hbCAuIFlvdSBjYW4gdXNlIGl0IHdpdGggUiBpZiB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCB3b3JrIGZvciB5b3VyIFIgaW5zdGFsbGF0aW9uIHNldHVwLlxuXG5LZXl3b3Jkczogc3RhdCwgc3RhdHMsIHN0YXRpc3RpY3MsIHN0YXRpc3RpY2FsLCByLWNyYW4uIiwKICAibmFtZSI6ICJTdGlja3kgUiBUZXJtaW5hbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3RpY2t5LXItdGVybWluYWwiLAogICJ1dWlkIjogInN0aWNreS1yLXRlcm1pbmFsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "onedrive@diegobazzanella.com", "name": "One Drive", "pname": "one-drive", "description": "One Drive extension", "link": "https://extensions.gnome.org/extension/3919/one-drive/", "shell_version_map": {"38": {"version": "4", "sha256": "0h37rr9hw6azrlf465ngl7w7miii9bm4sh33wkr0x8q51rz62ydd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZSBEcml2ZSBleHRlbnNpb24iLAogICJuYW1lIjogIk9uZSBEcml2ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RiYXp6YS9vbmVEcml2ZSIsCiAgInV1aWQiOiAib25lZHJpdmVAZGllZ29iYXp6YW5lbGxhLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "snowy@exposedcat", "name": "Snowy", "pname": "snowy", "description": "Make you festive mood with falling snow on your GNOME DE system", "link": "https://extensions.gnome.org/extension/3921/snowy/", "shell_version_map": {"38": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "focus@scaryrawr.github.io", "name": "Focus", "pname": "focus", "description": "Transparent inactive windows", "link": "https://extensions.gnome.org/extension/3924/focus/", "shell_version_map": {"38": {"version": "5", "sha256": "006ybc872bxskq30dh0hmqlcs861hmghjkq8ks6wmfdw8562v4sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "kaskadeur@dev-ninjas-org", "name": "Kaskadeur", "pname": "kaskadeur", "description": "Move and resize windows into a cascade", "link": "https://extensions.gnome.org/extension/3925/kaskadeur/", "shell_version_map": {"38": {"version": "1", "sha256": "0bf8sssgv0k3gki6j3wmgdpb9sf1kblagbbm130n8y12f837l3pl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYW5kIHJlc2l6ZSB3aW5kb3dzIGludG8gYSBjYXNjYWRlIiwKICAibmFtZSI6ICJLYXNrYWRldXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2Fza2FkZXVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGV2LW5pbmphcy1vcmcvZ25vbWUtc2hlbGwta2Fza2FkZXVyIiwKICAidXVpZCI6ICJrYXNrYWRldXJAZGV2LW5pbmphcy1vcmciLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "focus@scaryrawr.github.io", "name": "Focus", "pname": "focus", "description": "Transparent inactive windows", "link": "https://extensions.gnome.org/extension/3924/focus/", "shell_version_map": {"38": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {"38": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {"38": {"version": "3", "sha256": "1shlfdmwnz6cxivhcd8gijhrnlcdyk1l9ypj8xx14lpzwzx50c5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NhbnNvemJpci9nbm9tZS1zaGVsbC10b2dnbGUtbmlnaHQtbGlnaHQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2dnbGUtbmlnaHQtbGlnaHRAY2Fuc296YmlyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1shlfdmwnz6cxivhcd8gijhrnlcdyk1l9ypj8xx14lpzwzx50c5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NhbnNvemJpci9nbm9tZS1zaGVsbC10b2dnbGUtbmlnaHQtbGlnaHQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2dnbGUtbmlnaHQtbGlnaHRAY2Fuc296YmlyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {"38": {"version": "3", "sha256": "09a0i4zdf98j5cr7c8x79sk8yf2n35skkkz3chi6cc7q3va9ylg8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "09a0i4zdf98j5cr7c8x79sk8yf2n35skkkz3chi6cc7q3va9ylg8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:\nhttps://github.com/axxapy/gnome-alacritty-toggle", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {"38": {"version": "2", "sha256": "1y3f5cypx78f29pb1acq9ql42j8r20ikd4cl5bbxsmmvzzdrf3ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtYWxhY3JpdHR5LXRvZ2dsZSIsCiAgIm5hbWUiOiAiVG9nZ2xlIEFsYWNyaXR0eSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b2dnbGUtYWxhY3JpdHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b2dnbGUtYWxhY3JpdHR5QGl0c3RpbWUudGVjaCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1y3f5cypx78f29pb1acq9ql42j8r20ikd4cl5bbxsmmvzzdrf3ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtYWxhY3JpdHR5LXRvZ2dsZSIsCiAgIm5hbWUiOiAiVG9nZ2xlIEFsYWNyaXR0eSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b2dnbGUtYWxhY3JpdHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b2dnbGUtYWxhY3JpdHR5QGl0c3RpbWUudGVjaCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {"38": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "hide-panel@fthx", "name": "Hide Panel", "pname": "hide-panel", "description": "Hide top panel except in overview. Switch button in panel.\n\nVery very light extension. There is a 1 pixel wide line at the top of the screen that allows to blindly use the panel menus. This is needed to keep the native hot corner active without having to recreate it.", "link": "https://extensions.gnome.org/extension/3948/hide-panel/", "shell_version_map": {"38": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "persistent-email-notifications@fthx", "name": "Persistent Email Notifications", "pname": "persistent-email-notifications", "description": "Never hide a new mail notification, except if you close it.\n\nVery very light extension. Email clients supported: Thunderbird, Evolution, Geary, Mailspring, TypeApp, BlueMail. Please ask for another email client if needed.", "link": "https://extensions.gnome.org/extension/3951/persistent-email-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right.\n\nPay attention:\n1) there could be an error with the extension after install or update. The solution is to logout and login again.\n2) there could be an error if you have another extension with the same name \"workspace indicator\" already installed. The solution is to remove the old one.", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1hkpa86vfzdcy9plvggaa1vd4mkjsi6i71bfj5p2bblqh5h1dqrp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1hkpa86vfzdcy9plvggaa1vd4mkjsi6i71bfj5p2bblqh5h1dqrp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right.\n\nPay attention:\n1) there could be an error with the extension after install or update. The solution is to logout and login again.\n2) there could be an error if you have another extension with the same name \"workspace indicator\" already installed. The solution is to remove the old one.", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "8", "sha256": "15j1w86s9j796bf5mil8sn6hnq4js3by3gygkskzxwp02gy224n3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "15j1w86s9j796bf5mil8sn6hnq4js3by3gygkskzxwp02gy224n3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "15j1w86s9j796bf5mil8sn6hnq4js3by3gygkskzxwp02gy224n3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "kitchentimer@blackjackshellac.ca", "name": "Kitchen Timer", "pname": "kitchen-timer", "description": "General purpose timer extension for Gnome Shell\n\nPlease report issues on github\n\nIf updating the extension reports an ERROR, it should work after the next reboot or if you logout and login again.", "link": "https://extensions.gnome.org/extension/3955/kitchen-timer/", "shell_version_map": {"38": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}}}
-, {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "# GNOME Shell Extension: E Ink Mode\nMake desktop suitable for E Ink monitors.\n\n## Features\n* Switch Shell, GTK and icon theme to light high contrast one\n* Disable animations\n* Change background to white color\n\n## Dependencies\n* `High Constrast` theme for GTK and icon", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {"40": {"version": "3", "sha256": "1bzcv10c9wd2qga4z3swlyf0v0bv1s0j90vjxlmvylfr1nnbsjc9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMgR05PTUUgU2hlbGwgRXh0ZW5zaW9uOiBFIEluayBNb2RlXG5NYWtlIGRlc2t0b3Agc3VpdGFibGUgZm9yIEUgSW5rIG1vbml0b3JzLlxuXG4jIyBGZWF0dXJlc1xuKiBTd2l0Y2ggU2hlbGwsIEdUSyBhbmQgaWNvbiB0aGVtZSB0byBsaWdodCBoaWdoIGNvbnRyYXN0IG9uZVxuKiBEaXNhYmxlIGFuaW1hdGlvbnNcbiogQ2hhbmdlIGJhY2tncm91bmQgdG8gd2hpdGUgY29sb3JcblxuIyMgRGVwZW5kZW5jaWVzXG4qIGBIaWdoIENvbnN0cmFzdGAgdGhlbWUgZm9yIEdUSyBhbmQgaWNvbiIsCiAgIm5hbWUiOiAiRSBJbmsgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdWppbW8tdC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZS1pbmstbW9kZSIsCiAgInV1aWQiOiAiZS1pbmstbW9kZUBmdWppbW8tdC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "transparent-top-bar@ftpix.com", "name": "Transparent Top Bar (Adjustable transparency)", "pname": "transparent-top-bar-adjustable-transparency", "description": "Fork of: https://github.com/zhanghai/gnome-shell-extension-transparent-top-bar\n\nBring back the transparent top bar in GNOME Shell with adjustable transparency.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/3960/transparent-top-bar-adjustable-transparency/", "shell_version_map": {"38": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "0ina2cslibhixaz9dw8gp53c8s0dkphdn0sa7yzig3624zbsy13k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0ina2cslibhixaz9dw8gp53c8s0dkphdn0sa7yzig3624zbsy13k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"uuid": "guillotine@fopdoodle.net", "name": "Guillotine", "pname": "guillotine", "description": "Guillotine is a gnome extension designed for efficiently carrying out executions of commands from a customizable menu. Simply speaking: it is a highly customizable menu that enables you to launch commands and toggle services.", "link": "https://extensions.gnome.org/extension/3981/guillotine/", "shell_version_map": {"38": {"version": "3", "sha256": "0jpm8q47naxv5ld9yx6jjsnlm5snlqybilkmr8kvxq1an6pj36yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "6", "sha256": "06f3k0g96a29s5nrh5h1qk6inai65sf44i12bfsgdh33hrdfpayj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9ndWlsbG90aW5lLyIsCiAgInV1aWQiOiAiZ3VpbGxvdGluZUBmb3Bkb29kbGUubmV0IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "extensions-in-system-menu@leleat-on-github", "name": "Extensions & Tweaks in system menu", "pname": "extensions-in-system-menu", "description": "No longer maintained. Starting with GNOME 40 'Tweaks-in-system-menu' also supports the extensions app. Please use that https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/\n\n--------------------\n\nPut the Extensions and/or the Tweaks app into the system menu.", "link": "https://extensions.gnome.org/extension/3984/extensions-in-system-menu/", "shell_version_map": {"38": {"version": "6", "sha256": "0hdjgf4ancpj6lsqd6gf2lp7jf3zan16yrfap5g4hnbb72ihbpvc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIGxvbmdlciBtYWludGFpbmVkLiBTdGFydGluZyB3aXRoIEdOT01FIDQwICdUd2Vha3MtaW4tc3lzdGVtLW1lbnUnIGFsc28gc3VwcG9ydHMgdGhlIGV4dGVuc2lvbnMgYXBwLiBQbGVhc2UgdXNlIHRoYXQgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTY1My90d2Vha3MtaW4tc3lzdGVtLW1lbnUvXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblB1dCB0aGUgRXh0ZW5zaW9ucyBhbmQvb3IgdGhlIFR3ZWFrcyBhcHAgaW50byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJFeHRlbnNpb25zICYgVHdlYWtzIGluIHN5c3RlbSBtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L2V4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnVAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0hdjgf4ancpj6lsqd6gf2lp7jf3zan16yrfap5g4hnbb72ihbpvc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIGxvbmdlciBtYWludGFpbmVkLiBTdGFydGluZyB3aXRoIEdOT01FIDQwICdUd2Vha3MtaW4tc3lzdGVtLW1lbnUnIGFsc28gc3VwcG9ydHMgdGhlIGV4dGVuc2lvbnMgYXBwLiBQbGVhc2UgdXNlIHRoYXQgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTY1My90d2Vha3MtaW4tc3lzdGVtLW1lbnUvXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblB1dCB0aGUgRXh0ZW5zaW9ucyBhbmQvb3IgdGhlIFR3ZWFrcyBhcHAgaW50byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJFeHRlbnNpb25zICYgVHdlYWtzIGluIHN5c3RlbSBtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L2V4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnVAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "A wallpaper generation extension for gnome shell, inspired by Jizhi\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3985/shu-zhi/", "shell_version_map": {"38": {"version": "7", "sha256": "0fwncbkg7xpijydpwp3p8qx6czgvrxh7krasgjcsj4g35nh65i7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2h1emhpIiwKICAibmFtZSI6ICJTaHUgWmhpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXpoaSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "14", "sha256": "0p8r5mln85sjc4vjsfmf7cbi3l4q70747wfqa5yn451idwajxvk3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2h1emhpIiwKICAibmFtZSI6ICJTaHUgWmhpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXpoaSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NodXpoaSIsCiAgInV1aWQiOiAic2h1emhpQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "A wallpaper generation extension for gnome shell, inspired by Jizhi\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3985/shu-zhi/", "shell_version_map": {"38": {"version": "7", "sha256": "0fwncbkg7xpijydpwp3p8qx6czgvrxh7krasgjcsj4g35nh65i7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2h1emhpIiwKICAibmFtZSI6ICJTaHUgWmhpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXpoaSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "17", "sha256": "13b1lsig8rbaydv0d799w9as6r53j29zxx7hgpshyw7svjshwrrb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zaHV6aGkiLAogICJ1dWlkIjogInNodXpoaUB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "19", "sha256": "0vyxvb68mip302mnwm64wbjyi2q9q2184rzzl7iw05pgvr7wsyqg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zaHV6aGkiLAogICJ1dWlkIjogInNodXpoaUB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
, {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {"38": {"version": "1", "sha256": "09j017cpiimqi97rk2zp1bidrvf026dv469w80wiikbq67r22c9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIzNzBiODIzYmQ5NTM4MDY4MThmMmYwNzhiNGNmZWYyODIzMmVjOTMwIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXBhbmtvd3NraS96aWxlbmNlIiwKICAidXVpZCI6ICJ6aWxlbmNlQGFwYW5rb3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "14", "sha256": "1wwinhlg9yi9sr3kh0cpv10ck3cdjd9z4gwch9npfj79rmd7z1kl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhbFcvZ25vbWUtYmx1ZXRvb3RoLWJhdHRlcnktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJibHVldG9vdGgtYmF0dGVyeUBtaWNoYWx3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "1wwinhlg9yi9sr3kh0cpv10ck3cdjd9z4gwch9npfj79rmd7z1kl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhbFcvZ25vbWUtYmx1ZXRvb3RoLWJhdHRlcnktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJibHVldG9vdGgtYmF0dGVyeUBtaWNoYWx3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "16", "sha256": "1galmr8r1417rx42rdp6qhhswqn540rggf8hrkh02vg79h9iclv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NaWNoYWxXL2dub21lLWJsdWV0b290aC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLWJhdHRlcnlAbWljaGFsdy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1galmr8r1417rx42rdp6qhhswqn540rggf8hrkh02vg79h9iclv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NaWNoYWxXL2dub21lLWJsdWV0b290aC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLWJhdHRlcnlAbWljaGFsdy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
, {"uuid": "gnome-extension-all-ip-addresses@havekes.eu", "name": "All IP Addresses", "pname": "all-ip-addresses", "description": "Show IP addresses for LAN, WAN IPv6 and VPN in the GNOME panel. Click on the address to cycle trough different interfaces.", "link": "https://extensions.gnome.org/extension/3994/all-ip-addresses/", "shell_version_map": {"38": {"version": "2", "sha256": "1vas3mvgmi28dc3lzghbwgp66p0daa1kc4m8ayr6dmc618ry2nj0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGhhdmVrZXMvZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXMiLAogICJ1dWlkIjogImdub21lLWV4dGVuc2lvbi1hbGwtaXAtYWRkcmVzc2VzQGhhdmVrZXMuZXUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes\n\nIn case of any errors due to update, Please try resetting the extension. Reset button is present in Extension Preferences window in Top Right Application Menu > Preferences > Reset App Grid Tweaks Extension. ", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "3", "sha256": "1zszxj4d4vdahc369jsk1544f6zrjnilpxa4ihdfx6ci3rgc16p6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXNcblxuSW4gY2FzZSBvZiBhbnkgZXJyb3JzIGR1ZSB0byB1cGRhdGUsIFBsZWFzZSB0cnkgcmVzZXR0aW5nIHRoZSBleHRlbnNpb24uICBSZXNldCBidXR0b24gaXMgcHJlc2VudCBpbiBFeHRlbnNpb24gUHJlZmVyZW5jZXMgd2luZG93IGluIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBNZW51ID4gUHJlZmVyZW5jZXMgPiBSZXNldCBBcHAgR3JpZCBUd2Vha3MgRXh0ZW5zaW9uLiAgIiwKICAibmFtZSI6ICJBcHAgR3JpZCBUd2Vha3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwLWdyaWQtdHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1zszxj4d4vdahc369jsk1544f6zrjnilpxa4ihdfx6ci3rgc16p6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXNcblxuSW4gY2FzZSBvZiBhbnkgZXJyb3JzIGR1ZSB0byB1cGRhdGUsIFBsZWFzZSB0cnkgcmVzZXR0aW5nIHRoZSBleHRlbnNpb24uICBSZXNldCBidXR0b24gaXMgcHJlc2VudCBpbiBFeHRlbnNpb24gUHJlZmVyZW5jZXMgd2luZG93IGluIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBNZW51ID4gUHJlZmVyZW5jZXMgPiBSZXNldCBBcHAgR3JpZCBUd2Vha3MgRXh0ZW5zaW9uLiAgIiwKICAibmFtZSI6ICJBcHAgR3JpZCBUd2Vha3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwLWdyaWQtdHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "55", "sha256": "069zl8sx9fma5na49hpn2904lrmcykiavk4dnm519n73bzz597mh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyIiwKICAidXVpZCI6ICJiYWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDU1Cn0="}, "40": {"version": "55", "sha256": "069zl8sx9fma5na49hpn2904lrmcykiavk4dnm519n73bzz597mh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyIiwKICAidXVpZCI6ICJiYWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDU1Cn0="}}}
+, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "41": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}}}
, {"uuid": "kitsch@fopdoodle.net", "name": "Kitsch", "pname": "kitsch", "description": "Kitsch is a collection of cheap, popular, and marketable improvements to Gnome. One could consider it applying a cosmetic surgery to Gnome.\n\nKitsch can easily be configured and offers the following features:\n- remove application menu from the top bar\n- remove the activity button from the top bar\n- periodically change the background picture\n\nThis extension does not come with any button on the panel. Visit the website for a documentation.", "link": "https://extensions.gnome.org/extension/4001/kitsch/", "shell_version_map": {"38": {"version": "2", "sha256": "16zwz0p4f8zizr14k4jmdixgnjd0a67d0i3w6clrqgfl49cpdcdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "5", "sha256": "1bbbdhf73sv240bid4s604g6r8axd40ph2yyf23z5fpj3679g2xr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYva2l0c2NoLyIsCiAgInV1aWQiOiAia2l0c2NoQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "gnome-visuals-top-bar@evendanan.net", "name": "Top Bar Visuals - transparent and blur", "pname": "top-bar-visuals-transparent-and-blur", "description": "Fork of: https://github.com/lamarios/gnome-shell-extension-transparent-top-bar\n\nBring back the adjustable transparency top bar (panel) in GNOME Shell and add blur while at it.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/4003/top-bar-visuals-transparent-and-blur/", "shell_version_map": {"38": {"version": "2", "sha256": "0h1qx7bh4gb3xkc8g8byynfa3imxkx332kh88pm4g9zaa20fxzwr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSBhZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSB0b3AgYmFyIChwYW5lbCkgaW4gR05PTUUgU2hlbGwgYW5kIGFkZCBibHVyIHdoaWxlIGF0IGl0LlxuXG5Eb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBjdXN0b20gc2hlbGwgdGhlbWVzLiIsCiAgIm5hbWUiOiAiVG9wIEJhciBWaXN1YWxzIC0gdHJhbnNwYXJlbnQgYW5kIGJsdXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZW5ueS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtdmlzdWFscy10b3AtYmFyQGV2ZW5kYW5hbi5uZXQiLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "desktop-lyric@tuberry", "name": "Desktop Lyric", "pname": "desktop-lyric", "description": "Show lyric of the playing song on the desktop\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/4006/desktop-lyric/", "shell_version_map": {"38": {"version": "3", "sha256": "015w7abqa8zqh7vc2hln61i859mfac7lcjp8lvccm9jbakdxqpvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbHlyaWMgb2YgdGhlIHBsYXlpbmcgc29uZyBvbiB0aGUgZGVza3RvcFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkZXNrdG9wLWx5cmljIiwKICAibmFtZSI6ICJEZXNrdG9wIEx5cmljIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtbHlyaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "7", "sha256": "13vhzga43d4byrp98nj2v6vf8lll1c6gzkrrna32g8amp0vhkly8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbHlyaWMgb2YgdGhlIHBsYXlpbmcgc29uZyBvbiB0aGUgZGVza3RvcFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkZXNrdG9wLWx5cmljIiwKICAibmFtZSI6ICJEZXNrdG9wIEx5cmljIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtbHlyaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9kZXNrdG9wLWx5cmljIiwKICAidXVpZCI6ICJkZXNrdG9wLWx5cmljQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Alt/Super+Tab can also be navigated with WASD and hjkl. Q just closes the selected item and only the first window will be raised on app activation. Optionally, only show windows from the current workspace or monitor and remove the slight popup delay.", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {"38": {"version": "5", "sha256": "13fg9v0pxxrnxgwd7xhy8wi6lxd7h3y88v2g0zpr1p9lprgh4cl6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "13fg9v0pxxrnxgwd7xhy8wi6lxd7h3y88v2g0zpr1p9lprgh4cl6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "desktop-lyric@tuberry", "name": "Desktop Lyric", "pname": "desktop-lyric", "description": "Show the lyric of playing songs on the desktop\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/4006/desktop-lyric/", "shell_version_map": {"38": {"version": "3", "sha256": "1fxlszj21ppdl5k2x2samggxlnay5bqly604szv1sjsnfriqzz3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9kZXNrdG9wLWx5cmljIiwKICAidXVpZCI6ICJkZXNrdG9wLWx5cmljQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "7", "sha256": "1dd8i7845fshc2d04fgzjr1chrnwsfr7qyjjki1svw36mx1qsjm2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZGVza3RvcC1seXJpYyIsCiAgInV1aWQiOiAiZGVza3RvcC1seXJpY0B0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "11", "sha256": "1v59zqqnfkmb29z7avcdakyhrsfqkvwvy3lbg8ny89vci5fypbi3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Alt/Super+Tab can also be navigated with WASD and hjkl. Q just closes the selected item and only the first window will be raised on app activation. Optionally, only show windows from the current workspace or monitor and remove the slight popup delay.", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {"38": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "personalize@Selenium-H", "name": "Personalize", "pname": "personalize", "description": "Personalize the looks of GNOME Desktop.\n\nSet the theme variant, window corner curvature and select accent color.\nThe Colors section contains colors generated from the selected accent color.\nThe color generation is not accurate. However, individual colors can be customised.\n\nNot all settings are applied automatically.\nPress Refresh button on the left of the headerbar to reload the extension \n\nCurrently, only Adwaita theme is supported. Also, Adwaita and Adwaita-dark gtk-2 themes\nmust be installed for the extension to work properly. Not all widgets are themed perfectly.", "link": "https://extensions.gnome.org/extension/4010/personalize/", "shell_version_map": {"38": {"version": "1", "sha256": "1rgh2zq7086ymf0222pbrx5n8q11v3f45095w4x3ikw7k12j9s0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiUGVyc29uYWxpemUgR05PTUUgdGhlbWUgYW5kIGN1c3RvbWl6ZSB0aGVtLiIsCiAgImRlc2NyaXB0aW9uIjogIlBlcnNvbmFsaXplIHRoZSBsb29rcyBvZiBHTk9NRSBEZXNrdG9wLlxuXG5TZXQgdGhlIHRoZW1lIHZhcmlhbnQsIHdpbmRvdyBjb3JuZXIgY3VydmF0dXJlIGFuZCBzZWxlY3QgYWNjZW50IGNvbG9yLlxuVGhlIENvbG9ycyBzZWN0aW9uIGNvbnRhaW5zIGNvbG9ycyBnZW5lcmF0ZWQgZnJvbSB0aGUgc2VsZWN0ZWQgYWNjZW50IGNvbG9yLlxuVGhlIGNvbG9yIGdlbmVyYXRpb24gaXMgbm90IGFjY3VyYXRlLiBIb3dldmVyLCBpbmRpdmlkdWFsIGNvbG9ycyBjYW4gYmUgY3VzdG9taXNlZC5cblxuTm90IGFsbCBzZXR0aW5ncyBhcmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5LlxuUHJlc3MgUmVmcmVzaCBidXR0b24gb24gdGhlIGxlZnQgb2YgdGhlIGhlYWRlcmJhciB0byByZWxvYWQgdGhlIGV4dGVuc2lvbiBcblxuQ3VycmVudGx5LCBvbmx5IEFkd2FpdGEgdGhlbWUgaXMgc3VwcG9ydGVkLiBBbHNvLCBBZHdhaXRhIGFuZCBBZHdhaXRhLWRhcmsgZ3RrLTIgdGhlbWVzXG5tdXN0IGJlIGluc3RhbGxlZCBmb3IgdGhlIGV4dGVuc2lvbiB0byB3b3JrIHByb3Blcmx5LiBOb3QgYWxsIHdpZGdldHMgYXJlIHRoZW1lZCBwZXJmZWN0bHkuIiwKICAibmFtZSI6ICJQZXJzb25hbGl6ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzb25hbGl6ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJzdGF0dXMiOiAiICIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW0tSC9QZXJzb25hbGl6ZSIsCiAgInV1aWQiOiAicGVyc29uYWxpemVAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "gnomebedtime@ionutbortis.gmail.com", "name": "Gnome Bedtime", "pname": "gnome-bedtime", "description": "Hey Gnome, it's bedtime! Converts to grayscale the entire Gnome workspace by using a smooth transition. Best to use during evening/night.\n\nThis behaviour is similar to Android's bedtime mode which converts the phone screen to grayscale. It should somewhat make your device less appealing and limit the usage of it before bedtime. On my side, at least, it still requires a fair amount of self control in order to make that happen.\n\nThe extension has a nice Settings UI where you can customize it to your liking:\n- Set an automatic schedule for turning on/off the Bedtime Mode\n- Add an On Demand button to Top Bar or System Menu\n- Control the On Demand button visibility and position in Top Bar\n\nIf you want to use a keyboard shortcut in order to toggle the Bedtime Mode then you can use this command for the shortcut (applies to version 3.0 and beyond):\n\nbash -c 'schema_id=org.gnome.shell.extensions.gnomebedtime; schema_dir=~/.local/share/gnome-shell/extensions/gnomebedtime@ionutbortis.gmail.com/schemas/; if [[ $(gsettings --schemadir $schema_dir get $schema_id bedtime-mode-active) == \"true\" ]]; then turn_on=false; else turn_on=true; fi; gsettings --schemadir $schema_dir set $schema_id bedtime-mode-active $turn_on;'", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "4", "sha256": "18g92v2q8idmj077rmfzxpx4zcbc36f2ywrc4713r0z86yipwly7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51XG4tIENvbnRyb2wgdGhlIE9uIERlbWFuZCBidXR0b24gdmlzaWJpbGl0eSBhbmQgcG9zaXRpb24gaW4gVG9wIEJhclxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0IChhcHBsaWVzIHRvIHZlcnNpb24gMy4wIGFuZCBiZXlvbmQpOlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ25vbWViZWR0aW1lOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAibmFtZSI6ICJHbm9tZSBCZWR0aW1lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lYmVkdGltZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lIiwKICAidXVpZCI6ICJnbm9tZWJlZHRpbWVAaW9udXRib3J0aXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "18g92v2q8idmj077rmfzxpx4zcbc36f2ywrc4713r0z86yipwly7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51XG4tIENvbnRyb2wgdGhlIE9uIERlbWFuZCBidXR0b24gdmlzaWJpbGl0eSBhbmQgcG9zaXRpb24gaW4gVG9wIEJhclxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0IChhcHBsaWVzIHRvIHZlcnNpb24gMy4wIGFuZCBiZXlvbmQpOlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ25vbWViZWR0aW1lOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAibmFtZSI6ICJHbm9tZSBCZWR0aW1lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lYmVkdGltZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lIiwKICAidXVpZCI6ICJnbm9tZWJlZHRpbWVAaW9udXRib3J0aXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "gnomebedtime@ionutbortis.gmail.com", "name": "Bedtime Mode", "pname": "gnome-bedtime", "description": "Hey Gnome, it's bedtime! Converts to grayscale the entire Gnome workspace by using a smooth transition. Best to use during evening/night.\n\nThis behaviour is similar to Android's bedtime mode which converts the phone screen to grayscale. It should somewhat make your device less appealing and limit the usage of it before bedtime. On my side, at least, it still requires a fair amount of self control in order to make that happen.\n\nThe extension has a nice Settings UI where you can customize it to your liking:\n- Set an automatic schedule for turning on/off the Bedtime Mode\n- Add an On Demand button to Top Bar or System Menu to manually toggle the mode\n- Control the On Demand button visibility, appearance and position in Top Bar\n- Choose another color preset and intensity, if you prefer a different color scheme\n- Change color intensity on the fly by scrolling over the On Demand button in Top Bar\n\nMulti language support is also available, please check the GitHub page if you want to help with the translations. So far, the extension is fully translated to Spanish, Dutch, German, Romanian and English.\n\nIf you want to use a keyboard shortcut in order to toggle the Bedtime Mode then you can use this command for the shortcut:\n\nbash -c 'schema_id=org.gnome.shell.extensions.bedtime-mode; schema_dir=~/.local/share/gnome-shell/extensions/gnomebedtime@ionutbortis.gmail.com/schemas/; if [[ $(gsettings --schemadir $schema_dir get $schema_id bedtime-mode-active) == \"true\" ]]; then turn_on=false; else turn_on=true; fi; gsettings --schemadir $schema_dir set $schema_id bedtime-mode-active $turn_on;'", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "7", "sha256": "1ibar09d05ggc3v4c1gndpznarnq5xx2pqx7cglg0mbhc0lbpr3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmVkdGltZS1tb2RlIiwKICAibmFtZSI6ICJCZWR0aW1lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1ibar09d05ggc3v4c1gndpznarnq5xx2pqx7cglg0mbhc0lbpr3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmVkdGltZS1tb2RlIiwKICAibmFtZSI6ICJCZWR0aW1lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1ibar09d05ggc3v4c1gndpznarnq5xx2pqx7cglg0mbhc0lbpr3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmVkdGltZS1tb2RlIiwKICAibmFtZSI6ICJCZWR0aW1lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
, {"uuid": "transparentwindows.mdirshad07", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/4016/transparent-window/", "shell_version_map": {"38": {"version": "2", "sha256": "12d8ad0s3b2cd8gczsa2l2x5wf3rag9xfr12ljw2jlrzf99vnr70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BieHFkb3duL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC13aW5kb3ciLAogICJ1dWlkIjogInRyYW5zcGFyZW50d2luZG93cy5tZGlyc2hhZDA3IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "wandering-pixel@justinrdonnelly.github.com", "name": "Wandering Pixel", "pname": "wandering-pixel", "description": "Slide 1 pixel back and forth in the top bar as a workaround for various bugs in GNOME Shell and/or Mutter.", "link": "https://extensions.gnome.org/extension/4028/wandering-pixel/", "shell_version_map": {"38": {"version": "3", "sha256": "1n4ycw6yrf0aqczyvc5vdgxszcpa51xh2mzrs8sqs78wxdggzs89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p1c3RpbnJkb25uZWxseS93YW5kZXJpbmctcGl4ZWwiLAogICJ1dWlkIjogIndhbmRlcmluZy1waXhlbEBqdXN0aW5yZG9ubmVsbHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1n4ycw6yrf0aqczyvc5vdgxszcpa51xh2mzrs8sqs78wxdggzs89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p1c3RpbnJkb25uZWxseS93YW5kZXJpbmctcGl4ZWwiLAogICJ1dWlkIjogIndhbmRlcmluZy1waXhlbEBqdXN0aW5yZG9ubmVsbHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "wandering-pixel@justinrdonnelly.github.com", "name": "Wandering Pixel", "pname": "wandering-pixel", "description": "Slide 1 pixel back and forth in the top bar as a workaround for various bugs in GNOME Shell and/or Mutter.", "link": "https://extensions.gnome.org/extension/4028/wandering-pixel/", "shell_version_map": {"38": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "screenshot-directory@fawtytoo", "name": "Screenshot Directory", "pname": "screenshot-directory", "description": "The default screenshot directory is ~/Pictures. This extension changes that to use whatever is set if you used the Gnome Screenshot app. This can be found in the dconf setting: /org/gnome/gnome-screenshot/auto-save-directory. If that directory doesn't exist, the extension will use the Home directory instead.\n\nNote: If the dconf setting doesn't exist, you need to install the Gnome Screenshot app.\n\nThe idea was taken from the extension: Screenshot Locations.", "link": "https://extensions.gnome.org/extension/4031/screenshot-directory/", "shell_version_map": {"38": {"version": "6", "sha256": "15m291jjqfrfcg79nlsqq8zcqp218qrakp3044ik9xjl00yhjf1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9hdXRvLXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "15m291jjqfrfcg79nlsqq8zcqp218qrakp3044ik9xjl00yhjf1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9hdXRvLXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "10", "sha256": "1mccw6lpilrlrprp3vv21gf1vfabn6liszv27mwfbh55f5d58qg2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSm9zZUV4cG9zaXRvL2dub21lLXNoZWxsLWV4dGVuc2lvbi14MTFnZXN0dXJlcyIsCiAgInV1aWQiOiAieDExZ2VzdHVyZXNAam9zZWV4cG9zaXRvLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "1mccw6lpilrlrprp3vv21gf1vfabn6liszv27mwfbh55f5d58qg2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSm9zZUV4cG9zaXRvL2dub21lLXNoZWxsLWV4dGVuc2lvbi14MTFnZXN0dXJlcyIsCiAgInV1aWQiOiAieDExZ2VzdHVyZXNAam9zZWV4cG9zaXRvLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
, {"uuid": "get-out-of-the-way@michaelmob.com", "name": "Get Out Of The Way!", "pname": "get-out-of-the-way", "description": "Push 'Always-on-Top' windows out of the way of the focused window.", "link": "https://extensions.gnome.org/extension/4034/get-out-of-the-way/", "shell_version_map": {"38": {"version": "1", "sha256": "1jpjqi2l6wjn9zbgpck04gm9vbspi066chby1j6k9km6dwljfbk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1c2ggJ0Fsd2F5cy1vbi1Ub3AnIHdpbmRvd3Mgb3V0IG9mIHRoZSB3YXkgb2YgdGhlIGZvY3VzZWQgd2luZG93LiIsCiAgIm5hbWUiOiAiR2V0IE91dCBPZiBUaGUgV2F5ISIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZXQtb3V0LW9mLXRoZS13YXlAbWljaGFlbG1vYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "VPNStatus@jesusalc@intuivo.com", "name": "VPNStatus Indicator", "pname": "vpnstatus-indicator", "description": "displays the current state of VPNStatus VPN\n\nchecks, if /proc/net/route contains entries for device nmcli?, this is the VPNStatus network device.\n", "link": "https://extensions.gnome.org/extension/4039/vpnstatus-indicator/", "shell_version_map": {"38": {"version": "1", "sha256": "1y4ym6lpwfi03rc6186yjc7mns01q5nrwiqizghls7hiyfg3kqrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImRpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIFZQTlN0YXR1cyBWUE5cblxuY2hlY2tzLCBpZiAvcHJvYy9uZXQvcm91dGUgY29udGFpbnMgZW50cmllcyBmb3IgZGV2aWNlIG5tY2xpPywgdGhpcyBpcyB0aGUgVlBOU3RhdHVzIG5ldHdvcmsgZGV2aWNlLlxuIiwKICAibmFtZSI6ICJWUE5TdGF0dXMgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIlZQTlN0YXR1c0BqZXN1c2FsY0BpbnR1aXZvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "2", "sha256": "16cz9fx4sgjp58x4agxpbskzqp8a1s6w9w5kaxpm6fjiakw896vz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzd2l0Y2h0d29sYXlvdXRzQHF0bWF4LmRldiIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "16cz9fx4sgjp58x4agxpbskzqp8a1s6w9w5kaxpm6fjiakw896vz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzd2l0Y2h0d29sYXlvdXRzQHF0bWF4LmRldiIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "notification-dismiss@kronosoul.xyz", "name": "Dismiss Notifications on Right Click", "pname": "dismiss-notifications-on-right-click", "description": "Simple extension that removes notification popups when they are right clicked.", "link": "https://extensions.gnome.org/extension/4048/dismiss-notifications-on-right-click/", "shell_version_map": {"38": {"version": "1", "sha256": "19pdz3lg1ybmgvpahfwzzhwk8fyhm1sr3wawddz5z66i22spcgjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwubm90aWZpY2F0aW9uLWRpc21pc3MiLAogICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyBub3RpZmljYXRpb24gcG9wdXBzIHdoZW4gdGhleSBhcmUgcmlnaHQgY2xpY2tlZC4iLAogICJleHRlbnNpb24taWQiOiAiZ2R0b29scyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJEaXNtaXNzIE5vdGlmaWNhdGlvbnMgb24gUmlnaHQgQ2xpY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4wIiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZGlzbWlzc0Brcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "disable-gestures-2021@verycrazydog.gmail.com", "name": "Disable Gestures 2021", "pname": "disable-gestures-2021", "description": "Disable all GNOME built-in gestures. Useful for kiosks and touch screen apps.", "link": "https://extensions.gnome.org/extension/4049/disable-gestures-2021/", "shell_version_map": {"40": {"version": "2", "sha256": "006xbxws1cvflsis129hl9sca22nig5prwaxfysxi7m13786rp0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {"38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork missing in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "5", "sha256": "1rjs6r61dpvrw9yz5ig594jqqbg6wb89zasv29a2jvm8pyax7zbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9nbm9tZS1zaGVsbC1zcG90aWZ5LWFydHdvcmstZml4ZXIiLAogICJ1dWlkIjogInNwb3RpZnktYXJ0d29yay1maXhlckB3anQubWUudWsiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1rjs6r61dpvrw9yz5ig594jqqbg6wb89zasv29a2jvm8pyax7zbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9nbm9tZS1zaGVsbC1zcG90aWZ5LWFydHdvcmstZml4ZXIiLAogICJ1dWlkIjogInNwb3RpZnktYXJ0d29yay1maXhlckB3anQubWUudWsiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork missing in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "custom-vpn-toggler@giteduberger.fr", "name": "Custom VPN Toggler (and indicator)", "pname": "custom-vpn-toggler", "description": "Custom VPN Toggler (and indicator) allows to see the status of a VPN (with its icon), see IP address associated and permit to start and stop VPN (from a menu).\n\nThis plugin required an additional script to interact with VPN. \nAn example for netExtender and GlobalProtect are available on extension repository. \nFollow the link to Extension Web Site and see README.", "link": "https://extensions.gnome.org/extension/4061/custom-vpn-toggler/", "shell_version_map": {"38": {"version": "5", "sha256": "09axc2jx7s2bak956yyv6c5826yl54ghriiwdgsajly5lncmypxw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbSBWUE4gVG9nZ2xlciAoYW5kIGluZGljYXRvcikgYWxsb3dzIHRvIHNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSwgc2VlIElQIGFkZHJlc3MgYXNzb2NpYXRlZCBhbmQgcGVybWl0IHRvIHN0YXJ0IGFuZCBzdG9wIFZQTiAoZnJvbSBhIG1lbnUpLlxuXG5UaGlzIHBsdWdpbiByZXF1aXJlZCBhbiBhZGRpdGlvbmFsIHNjcmlwdCB0byBpbnRlcmFjdCB3aXRoIFZQTi4gXG5BbiBleGFtcGxlIGZvciBuZXRFeHRlbmRlciBhbmQgR2xvYmFsUHJvdGVjdCBhcmUgYXZhaWxhYmxlIG9uIGV4dGVuc2lvbiByZXBvc2l0b3J5LiBcbkZvbGxvdyB0aGUgbGluayB0byBFeHRlbnNpb24gV2ViIFNpdGUgYW5kIHNlZSBSRUFETUUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLXZwbi10b2dnbGVyQGdpdGVkdWJlcmdlci5mciIsCiAgIm5hbWUiOiAiQ3VzdG9tIFZQTiBUb2dnbGVyIChhbmQgaW5kaWNhdG9yKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJmci5naXRlZHViZXJnZXIuY3VzdG9tLXZwbi10b2dnbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vWGF2aWVyQmVyZ2VyL2N1c3RvbS12cG4tdG9nZ2xlciIsCiAgInV1aWQiOiAiY3VzdG9tLXZwbi10b2dnbGVyQGdpdGVkdWJlcmdlci5mciIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Show a tray icon for Geary\n\nhttps://github.com/TaylanTatli/geary-tray-icon", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "11kv47pz5p69j10r23zf8ls3fmanldx7diwsy34fhyxqfxjcd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSB0cmF5IGljb24gZm9yIEdlYXJ5XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9nZWFyeS10cmF5LWljb24iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZWFyeS10cmF5LWljb25AdGF5bGFudGF0bGkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "8", "sha256": "15w1cgvqc20lijffzvpbbr960hasrzs6qq48mjji5kryvy4rw9bi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd290bXNodWFpc2kvaXFhaXJHbm9tZUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaXFhaXJAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "1h6gm4mc2snwza4r1k9zz1a9wkfmgiqlcvn72hqqasvqrf5sz7cz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhL3RyZWUvNDAucmMiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0lxh557z3xrf81prky5fbzmbhpmv3dvgj0wnxhsqv81k507mfx5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLnJjIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQwLnJjIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "9", "sha256": "0mhbn1zlv8914y0fy4l3g4613js09mn6i93g87k8wr4l10qsp4nf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd290bXNodWFpc2kvaXFhaXJHbm9tZUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaXFhaXJAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0syp7ka1rakzw4rlhhl1klszg56pbhyz787hvkg738j9ycl1spyq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhL3RyZWUvNDEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0yb0r44h7qv9agncwr2aw6dj1qm82xxvr3811b77nyapcha9cagh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLnJjIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "27", "sha256": "17dxs5hgk1iq2d21rvjjswnlgjvlcb8jn30xi752gz94l0y66kcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
, {"uuid": "disable-touch-osk@pardus.org.tr", "name": "disable-touch-osk", "pname": "disable-touch-osk", "description": "Disable on screen keyboard for touchscreens", "link": "https://extensions.gnome.org/extension/4087/disable-touch-osk/", "shell_version_map": {"38": {"version": "3", "sha256": "10ljbjbswzn9y30n2h39iiz673hhmazr2h14lhhws05m71xvbbfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgb24gc2NyZWVuIGtleWJvYXJkIGZvciB0b3VjaHNjcmVlbnMiLAogICJuYW1lIjogImRpc2FibGUtdG91Y2gtb3NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5wYXJkdXMub3JnLnRyLyIsCiAgInV1aWQiOiAiZGlzYWJsZS10b3VjaC1vc2tAcGFyZHVzLm9yZy50ciIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "right_click_for_apps@briansayre", "name": "Right Click for Apps", "pname": "right-click-for-apps", "description": "Allows you to right-click the Activities button to reveal the application menu.", "link": "https://extensions.gnome.org/extension/4090/right-click-for-apps/", "shell_version_map": {"38": {"version": "1", "sha256": "1rzx8ksl48badrwyqxwbgvfgf48z642mdwl57aq280ng61nrndaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcmlnaHQtY2xpY2sgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIHRvIHJldmVhbCB0aGUgYXBwbGljYXRpb24gbWVudS4iLAogICJuYW1lIjogIlJpZ2h0IENsaWNrIGZvciBBcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJpYW5zYXlyZS9SaWdodC1DbGljay1Gb3ItQXBwcyIsCiAgInV1aWQiOiAicmlnaHRfY2xpY2tfZm9yX2FwcHNAYnJpYW5zYXlyZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "devbar@ludvigbostrom", "name": "DevBar", "pname": "devbar", "description": "This extension helps you keep track of your development workflow.", "link": "https://extensions.gnome.org/extension/4091/devbar/", "shell_version_map": {"38": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "notifications_to_file@fawtytoo", "name": "Notifications To File", "pname": "notifications-to-file", "description": "Notifications are appended to a file in $HOME/.notifications/ with one file created per day.\nEntries show the following information:\nTimestamp\nWhether the banner was shown\nThe urgency\nThe title\nBanner text", "link": "https://extensions.gnome.org/extension/4093/notifications-to-file/", "shell_version_map": {"38": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Background When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "4", "sha256": "04fbcdgpw3gpvgzdrji0w7qla021qb4jc3ad5whi8w0zpci7g4jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNoYW5nZV9kZXNrdG9wX2JhY2tncm91bmRfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "04fbcdgpw3gpvgzdrji0w7qla021qb4jc3ad5whi8w0zpci7g4jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNoYW5nZV9kZXNrdG9wX2JhY2tncm91bmRfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "091aywnrmaz5j2nzjv1n968a25k8hm6a7ykifrl1b1nswybx5ark", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "7", "sha256": "1z1m15cn7jpxhhb8kfn4vlsip780pph93yhc3sr3n2is31bki3f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sc25vdy90cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkQGxzbm93LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. For GNOME Shell 40+.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {"40": {"version": "8", "sha256": "15y0qyknm2c3p94n8lvq3x13vk8j90mfwzl8g2vpraiavgid52fm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbm8tb3ZlcnZpZXciLAogICJ1dWlkIjogIm5vLW92ZXJ2aWV3QGZ0aHgiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Wallpaper When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in. Just set the wallpaper as normal, and the other files in its parent folder will be used.\n\nNOTE: Make sure the entire folder has ONLY image files as it cannot distinguish between image files and non image files.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "7", "sha256": "0p231pbs7jpvh15pgjg52a6n5jbir4y19d0rnxpsb3rscnmsqmx8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4gSnVzdCBzZXQgdGhlIHdhbGxwYXBlciBhcyBub3JtYWwsIGFuZCB0aGUgb3RoZXIgZmlsZXMgaW4gaXRzIHBhcmVudCBmb2xkZXIgd2lsbCBiZSB1c2VkLlxuXG5OT1RFOiBNYWtlIHN1cmUgdGhlIGVudGlyZSBmb2xkZXIgaGFzIE9OTFkgaW1hZ2UgZmlsZXMgYXMgaXQgY2Fubm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gaW1hZ2UgZmlsZXMgYW5kIG5vbiBpbWFnZSBmaWxlcy4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0p231pbs7jpvh15pgjg52a6n5jbir4y19d0rnxpsb3rscnmsqmx8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4gSnVzdCBzZXQgdGhlIHdhbGxwYXBlciBhcyBub3JtYWwsIGFuZCB0aGUgb3RoZXIgZmlsZXMgaW4gaXRzIHBhcmVudCBmb2xkZXIgd2lsbCBiZSB1c2VkLlxuXG5OT1RFOiBNYWtlIHN1cmUgdGhlIGVudGlyZSBmb2xkZXIgaGFzIE9OTFkgaW1hZ2UgZmlsZXMgYXMgaXQgY2Fubm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gaW1hZ2UgZmlsZXMgYW5kIG5vbiBpbWFnZSBmaWxlcy4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "091aywnrmaz5j2nzjv1n968a25k8hm6a7ykifrl1b1nswybx5ark", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "9", "sha256": "16ma35wlrmhxrhgv4vgd7j383fnf3azwasm1s88w0sb1jmmph96w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "16ma35wlrmhxrhgv4vgd7j383fnf3azwasm1s88w0sb1jmmph96w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. For GNOME Shell 40+.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {"40": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
, {"uuid": "notification-position@drugo.dev", "name": "Notification Banner Position", "pname": "notification-banner-position", "description": "Changes position of the notification banner from the default to the right side of the screen.", "link": "https://extensions.gnome.org/extension/4105/notification-banner-position/", "shell_version_map": {"38": {"version": "2", "sha256": "10c3z6b9gwnjybyshrgg4mh9gcj7pv7mwhci32bprsai9nbdid4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icnVub2RydWdvd2ljay9ub3RpZmljYXRpb24tcG9zaXRpb24tZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tcG9zaXRpb25AZHJ1Z28uZGV2IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "10c3z6b9gwnjybyshrgg4mh9gcj7pv7mwhci32bprsai9nbdid4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icnVub2RydWdvd2ljay9ub3RpZmljYXRpb24tcG9zaXRpb24tZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tcG9zaXRpb25AZHJ1Z28uZGV2IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "2", "sha256": "0wd7k5ryjq4w949qi73k5g1pi5nl5wvjxsw155ihyg3yinr8qjxs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJmbHlubjg5L2dub21lLXNoZWxsLXZvbHVtZS1zY3JvbGxlciIsCiAgInV1aWQiOiAidm9sdW1lX3Njcm9sbGVyQHRyZmx5bm44OS5wbS5tZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://github.com/openSUSE/Customize-IBus/blob/main/GUIDE.md\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "70", "sha256": "00kpjzkgycskkyhzkgkavdnk9qmx6174007hj3p8w5kkl8mq8qjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzL2Jsb2IvbWFpbi9HVUlERS5tZFxuXG5cdTZkZjFcdTVlYTZcdTViOWFcdTUyMzYgSUJ1cyBcdTc2ODRcdTU5MTZcdTg5YzJcdTMwMDFcdTg4NGNcdTRlM2FcdTMwMDFcdTdjZmJcdTdlZGZcdTYyNThcdTc2ZDhcdTRlZTVcdTUzY2FcdThmOTNcdTUxNjVcdTYzMDdcdTc5M2FcblxuXHU2NTJmXHU2MzAxXHU4MWVhXHU1YjlhXHU0ZTQ5XHVmZjFhXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NjViOVx1NTQxMVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTUyYThcdTc1M2JcbiogXHU1M2YzXHU5NTJlXHU1MzU1XHU1MWZiXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZWU1XHU1MjA3XHU2MzYyXHU4ZjkzXHU1MTY1XHU2ZTkwXHU2MjE2XHU2MjUzXHU1ZjAwXHU0ZWZiXHU1MmExXHU2ODBmXHU4M2RjXHU1MzU1XG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NGUwYVx1NmVkYVx1NTJhOFx1NGVlNVx1NTIwN1x1NjM2Mlx1OTg3NVx1OTc2Mlx1NjIxNlx1NTAxOVx1OTAwOVx1OGJjZFxuKiBcdTU2ZmFcdTViOWFcdTUwMTlcdTkwMDlcdTY4NDZcdTRmN2ZcdTUxNzZcdTRlMGRcdThkZGZcdTk2OGZcdTUxNDlcdTY4MDdcdTRlZTVcdTUzY2FcdThiYmVcdTViOWFcdTU2ZmFcdTViOWFcdTRmNGRcdTdmNmVcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1YjU3XHU0ZjUzXG4qIFx1OGY5M1x1NTE2NVx1NmEyMVx1NWYwZlx1NjgzOVx1NjM2ZVx1NWU5NFx1NzUyOFx1OGJiMFx1NWZjNlx1NWU3Nlx1ODFlYVx1NTJhOFx1NTIwN1x1NjM2MlxuKiBcdTY2ZjRcdTY1MzlcdTUwMTlcdTkwMDlcdTY4NDZcdTkwMGZcdTY2MGVcdTVlYTZcbiogXHU1NmZhXHU1YjlhXHU4ZjkzXHU1MTY1XHU2Y2Q1XHU1MjE3XHU4ODY4XHU5ODdhXHU1ZThmXG4qIFx1NjJkNlx1NjJmZFx1NzlmYlx1NTJhOFx1NTAxOVx1OTAwOVx1Njg0NlxuKiBcdTY2M2VcdTc5M2FcdTYyMTZcdTk2OTBcdTg1Y2ZcdTUwMTlcdTkwMDlcdTY4NDZcdThjMDNcdTk4NzVcdTYzMDlcdTk0YWVcbiogXHU3Y2ZiXHU3ZWRmXHU0ZWZiXHU1MmExXHU2ODBmXHU2MjU4XHU3NmQ4XHU2NjNlXHU3OTNhXHU1NDhjXHU0ZWE0XHU0ZTkyXHU4YmJlXHU3ZjZlXG4qICogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU2MjU4XHU3NmQ4XHU1NmZlXHU2ODA3XG4qICogXHU3NmY0XHU2M2E1XHU3MGI5XHU1MWZiXHU2MjU4XHU3NmQ4XHU1NmZlXHU2ODA3XHU1MjA3XHU2MzYyXHU4ZjkzXHU1MTY1XHU2ZTkwXG4qICogXHU2ZGZiXHU1MmEwXHU5ODlkXHU1OTE2XHU4M2RjXHU1MzU1XG4qIFx1OGY5M1x1NTE2NVx1NmU5MFx1NjMwN1x1NzkzYVx1NTY2OFx1NTNjYVx1NTE3Nlx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NTQyZlx1NzUyOFx1NjMwN1x1NzkzYVx1NTY2OFxuKiAqIFx1NGVjNVx1NTcyOFx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmNkNVx1NjVmNlx1NjMwN1x1NzkzYVxuKiAqIFx1NGVjNVx1NTcyOFx1ODJmMVx1NjU4N1x1OGY5M1x1NTE2NVx1NjVmNlx1NjMwN1x1NzkzYVxuKiAqIFx1NTNmM1x1NTFmYlx1NjMwN1x1NzkzYVx1NTY2OFx1Njc2NVx1NWMwNlx1NTE3Nlx1OTY5MFx1ODVjZlxuKiAqIFx1NjMwN1x1NzkzYVx1NTY2OFx1NGUwYVx1NmVkYVx1NTJhOFx1Njc2NVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NjMwN1x1NzkzYVx1NTY2OFx1NjYzZVx1NzkzYVx1NTJhOFx1NzUzYlxuKiAqIFx1ODFlYVx1NWI5YVx1NGU0OVx1NWI1N1x1NGY1M1xuKiAqIFx1NWRlNlx1NTFmYlx1NjMwN1x1NzkzYVx1NTY2OFx1NGVlNVx1NjJkNlx1NjJmZFx1NzlmYlx1NTJhOFx1NjIxNlx1ODAwNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NjZmNFx1NjUzOVx1OTAwZlx1NjYwZVx1NWVhNlxuKiAqIFx1NTQyZlx1NzUyOFx1ODFlYVx1NTJhOFx1OTY5MFx1ODVjZlx1NGVlNVx1NTNjYVx1OTE0ZFx1N2Y2ZVx1ODFlYVx1NTJhOFx1OTY5MFx1ODVjZlx1NjVmNlx1NWVmNlxuKiBcdTc2YWVcdTgwYTRcdTY4MzdcdTVmMGZcdTRlM2JcdTk4OThcdWZmMDhcdTYzZDBcdTRmOWJcdTc2ODRcdTYyMTZcdTgwMDVcdTRlY2VHTk9NRSBTaGVsbFx1NGUzYlx1OTg5OFx1NGUyZFx1NjNkMFx1NTNkNlx1NzY4NFx1NjgzN1x1NWYwZlx1ODg2OFx1ZmYwY1x1NTNjMlx1ODljMVx1NjI2OVx1NWM1NVx1NzY4NFx1NWUyZVx1NTJhOVx1OTBlOFx1NTIwNlx1Njc2NVx1ODNiN1x1NTNkNlx1NjZmNFx1NTkxYVx1NjMwN1x1NWJmY1x1ZmYwOVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTgwY2NcdTY2NmZcdTU2ZmVcdTcyNDdcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTY4MzdcdTVmMGZcbiogXHU0ZTNiXHU5ODk4XHU1NDhjXHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU4ZGRmXHU5NjhmR05PTUVcdTU5MWNcdTcwNmZcblxuXHU0ZjdmXHU3NTI4XHU2MzA3XHU1MzU3XHVmZjFhaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NTcyMDIzL2FydGljbGUvZGV0YWlscy8xMTYzMzE2MDEiLAogICJleHRlbnNpb24taWQiOiAiY3VzdG9taXplLWlidXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b21pemUtaWJ1cyIsCiAgIm5hbWUiOiAiQ3VzdG9taXplIElCdXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImhvbGxvd21hbkBob2xsb3dtYW4ubWwiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbWl6ZS1pYnVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzIiwKICAidXVpZCI6ICJjdXN0b21pemUtaWJ1c0Bob2xsb3dtYW4ubWwiLAogICJ2ZXJzaW9uIjogNzAKfQ=="}, "40": {"version": "70", "sha256": "00kpjzkgycskkyhzkgkavdnk9qmx6174007hj3p8w5kkl8mq8qjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzL2Jsb2IvbWFpbi9HVUlERS5tZFxuXG5cdTZkZjFcdTVlYTZcdTViOWFcdTUyMzYgSUJ1cyBcdTc2ODRcdTU5MTZcdTg5YzJcdTMwMDFcdTg4NGNcdTRlM2FcdTMwMDFcdTdjZmJcdTdlZGZcdTYyNThcdTc2ZDhcdTRlZTVcdTUzY2FcdThmOTNcdTUxNjVcdTYzMDdcdTc5M2FcblxuXHU2NTJmXHU2MzAxXHU4MWVhXHU1YjlhXHU0ZTQ5XHVmZjFhXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NjViOVx1NTQxMVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTUyYThcdTc1M2JcbiogXHU1M2YzXHU5NTJlXHU1MzU1XHU1MWZiXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZWU1XHU1MjA3XHU2MzYyXHU4ZjkzXHU1MTY1XHU2ZTkwXHU2MjE2XHU2MjUzXHU1ZjAwXHU0ZWZiXHU1MmExXHU2ODBmXHU4M2RjXHU1MzU1XG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NGUwYVx1NmVkYVx1NTJhOFx1NGVlNVx1NTIwN1x1NjM2Mlx1OTg3NVx1OTc2Mlx1NjIxNlx1NTAxOVx1OTAwOVx1OGJjZFxuKiBcdTU2ZmFcdTViOWFcdTUwMTlcdTkwMDlcdTY4NDZcdTRmN2ZcdTUxNzZcdTRlMGRcdThkZGZcdTk2OGZcdTUxNDlcdTY4MDdcdTRlZTVcdTUzY2FcdThiYmVcdTViOWFcdTU2ZmFcdTViOWFcdTRmNGRcdTdmNmVcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1YjU3XHU0ZjUzXG4qIFx1OGY5M1x1NTE2NVx1NmEyMVx1NWYwZlx1NjgzOVx1NjM2ZVx1NWU5NFx1NzUyOFx1OGJiMFx1NWZjNlx1NWU3Nlx1ODFlYVx1NTJhOFx1NTIwN1x1NjM2MlxuKiBcdTY2ZjRcdTY1MzlcdTUwMTlcdTkwMDlcdTY4NDZcdTkwMGZcdTY2MGVcdTVlYTZcbiogXHU1NmZhXHU1YjlhXHU4ZjkzXHU1MTY1XHU2Y2Q1XHU1MjE3XHU4ODY4XHU5ODdhXHU1ZThmXG4qIFx1NjJkNlx1NjJmZFx1NzlmYlx1NTJhOFx1NTAxOVx1OTAwOVx1Njg0NlxuKiBcdTY2M2VcdTc5M2FcdTYyMTZcdTk2OTBcdTg1Y2ZcdTUwMTlcdTkwMDlcdTY4NDZcdThjMDNcdTk4NzVcdTYzMDlcdTk0YWVcbiogXHU3Y2ZiXHU3ZWRmXHU0ZWZiXHU1MmExXHU2ODBmXHU2MjU4XHU3NmQ4XHU2NjNlXHU3OTNhXHU1NDhjXHU0ZWE0XHU0ZTkyXHU4YmJlXHU3ZjZlXG4qICogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU2MjU4XHU3NmQ4XHU1NmZlXHU2ODA3XG4qICogXHU3NmY0XHU2M2E1XHU3MGI5XHU1MWZiXHU2MjU4XHU3NmQ4XHU1NmZlXHU2ODA3XHU1MjA3XHU2MzYyXHU4ZjkzXHU1MTY1XHU2ZTkwXG4qICogXHU2ZGZiXHU1MmEwXHU5ODlkXHU1OTE2XHU4M2RjXHU1MzU1XG4qIFx1OGY5M1x1NTE2NVx1NmU5MFx1NjMwN1x1NzkzYVx1NTY2OFx1NTNjYVx1NTE3Nlx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NTQyZlx1NzUyOFx1NjMwN1x1NzkzYVx1NTY2OFxuKiAqIFx1NGVjNVx1NTcyOFx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmNkNVx1NjVmNlx1NjMwN1x1NzkzYVxuKiAqIFx1NGVjNVx1NTcyOFx1ODJmMVx1NjU4N1x1OGY5M1x1NTE2NVx1NjVmNlx1NjMwN1x1NzkzYVxuKiAqIFx1NTNmM1x1NTFmYlx1NjMwN1x1NzkzYVx1NTY2OFx1Njc2NVx1NWMwNlx1NTE3Nlx1OTY5MFx1ODVjZlxuKiAqIFx1NjMwN1x1NzkzYVx1NTY2OFx1NGUwYVx1NmVkYVx1NTJhOFx1Njc2NVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NjMwN1x1NzkzYVx1NTY2OFx1NjYzZVx1NzkzYVx1NTJhOFx1NzUzYlxuKiAqIFx1ODFlYVx1NWI5YVx1NGU0OVx1NWI1N1x1NGY1M1xuKiAqIFx1NWRlNlx1NTFmYlx1NjMwN1x1NzkzYVx1NTY2OFx1NGVlNVx1NjJkNlx1NjJmZFx1NzlmYlx1NTJhOFx1NjIxNlx1ODAwNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NjZmNFx1NjUzOVx1OTAwZlx1NjYwZVx1NWVhNlxuKiAqIFx1NTQyZlx1NzUyOFx1ODFlYVx1NTJhOFx1OTY5MFx1ODVjZlx1NGVlNVx1NTNjYVx1OTE0ZFx1N2Y2ZVx1ODFlYVx1NTJhOFx1OTY5MFx1ODVjZlx1NjVmNlx1NWVmNlxuKiBcdTc2YWVcdTgwYTRcdTY4MzdcdTVmMGZcdTRlM2JcdTk4OThcdWZmMDhcdTYzZDBcdTRmOWJcdTc2ODRcdTYyMTZcdTgwMDVcdTRlY2VHTk9NRSBTaGVsbFx1NGUzYlx1OTg5OFx1NGUyZFx1NjNkMFx1NTNkNlx1NzY4NFx1NjgzN1x1NWYwZlx1ODg2OFx1ZmYwY1x1NTNjMlx1ODljMVx1NjI2OVx1NWM1NVx1NzY4NFx1NWUyZVx1NTJhOVx1OTBlOFx1NTIwNlx1Njc2NVx1ODNiN1x1NTNkNlx1NjZmNFx1NTkxYVx1NjMwN1x1NWJmY1x1ZmYwOVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTgwY2NcdTY2NmZcdTU2ZmVcdTcyNDdcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTY4MzdcdTVmMGZcbiogXHU0ZTNiXHU5ODk4XHU1NDhjXHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU4ZGRmXHU5NjhmR05PTUVcdTU5MWNcdTcwNmZcblxuXHU0ZjdmXHU3NTI4XHU2MzA3XHU1MzU3XHVmZjFhaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NTcyMDIzL2FydGljbGUvZGV0YWlscy8xMTYzMzE2MDEiLAogICJleHRlbnNpb24taWQiOiAiY3VzdG9taXplLWlidXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b21pemUtaWJ1cyIsCiAgIm5hbWUiOiAiQ3VzdG9taXplIElCdXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImhvbGxvd21hbkBob2xsb3dtYW4ubWwiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbWl6ZS1pYnVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzIiwKICAidXVpZCI6ICJjdXN0b21pemUtaWJ1c0Bob2xsb3dtYW4ubWwiLAogICJ2ZXJzaW9uIjogNzAKfQ=="}}}
+, {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "75", "sha256": "1hagdzn3k27aal1kcsjsfzbas1xbnzv8z3hdmriypxvy531adz2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3NQp9"}, "40": {"version": "75", "sha256": "1hagdzn3k27aal1kcsjsfzbas1xbnzv8z3hdmriypxvy531adz2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3NQp9"}, "41": {"version": "75", "sha256": "1hagdzn3k27aal1kcsjsfzbas1xbnzv8z3hdmriypxvy531adz2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3NQp9"}}}
, {"uuid": "fildemGMenu@gonza.com", "name": "Fildem global menu", "pname": "fildem-global-menu", "description": "Global menu and HUD for Gnome\n\nThis extension requires the installation of an external program. Please, check the instructions on Github.\n\nThis extension works on gnome 40 but the preferences doesn’t work, if you want you can install it manually modifing the version supported on metadata.", "link": "https://extensions.gnome.org/extension/4114/fildem-global-menu/", "shell_version_map": {"38": {"version": "1", "sha256": "0zgkf4cb4hl0r6r1kzwlvnr4f2svlpwayrw7xqs39fa19cc1zasv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBtZW51IGFuZCBIVUQgZm9yIEdub21lXG5cblRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIHRoZSBpbnN0YWxsYXRpb24gb2YgYW4gZXh0ZXJuYWwgcHJvZ3JhbS4gUGxlYXNlLCBjaGVjayB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEdpdGh1Yi5cblxuVGhpcyBleHRlbnNpb24gd29ya3Mgb24gZ25vbWUgNDAgYnV0IHRoZSBwcmVmZXJlbmNlcyBkb2Vzblx1MjAxOXQgd29yaywgaWYgeW91IHdhbnQgeW91IGNhbiBpbnN0YWxsIGl0IG1hbnVhbGx5IG1vZGlmaW5nIHRoZSB2ZXJzaW9uIHN1cHBvcnRlZCBvbiBtZXRhZGF0YS4iLAogICJuYW1lIjogIkZpbGRlbSBnbG9iYWwgbWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5maWxkZW0tZ2xvYmFsLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvRmlsZGVtIiwKICAidXVpZCI6ICJmaWxkZW1HTWVudUBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "remove-panel@sulincix", "name": "RemovePanel", "pname": "removepanel", "description": "remove top panel from gnome-shell", "link": "https://extensions.gnome.org/extension/4118/removepanel/", "shell_version_map": {"38": {"version": "4", "sha256": "0f6p5cd68qlb082favqf2h7q4vn8c6rh0y48g3s2d9fxgccvc1di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicmVtb3ZlLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "bottom-triggers-activities@papjul", "name": "Bottom triggers Activities overview", "pname": "bottom-triggers-activities-overview", "description": "DEPRECATION NOTICE: No longer maintained. Please migrate to another extension such as Hot Edge https://extensions.gnome.org/extension/4222/hot-edge/\n\nAllows to toggle Activities overview when the mouse reaches the bottom edge of the screen.\nPLEASE report your bugs to the extension homepage link below. I cannot reply to you if you write a review here.\n\nThis is a fork of Dash to Dock focusing only on doing this, it adds support for Gnome Shell 40 and is mainly aimed at Gnome Shell 40 users to reduce mouse travel.\n\nI may backport fixes from upstream, but I don't intend to add any new feature and may not fix any bug if I'm not affected/cannot reproduce. However, I will accept pull requests that keep the extension in the KISS principle. It could be adding a prefs UI for toggle delay and edge(s) triggered, or supporting multiple monitors.\n\nYou can customize the following parameters from the constructor of extension.js:\n this._position = St.Side.BOTTOM;\n this._toggleDelay = 0.25;", "link": "https://extensions.gnome.org/extension/4120/bottom-triggers-activities-overview/", "shell_version_map": {"38": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "gnome-shell-Google-search-provider@MrNinso", "name": "Google Search Provider", "pname": "google-search-provider", "description": "Add Google search to Gnome Shell Search \n TODO: \n - Add google suggestions (For now using duckduckGo suggestions)", "link": "https://extensions.gnome.org/extension/4132/google-search-provider/", "shell_version_map": {"38": {"version": "5", "sha256": "056d2x5v2kzlkdab0bf88r7hs93iwdm6nhlf5q5fhjmqgc88ap1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nck5pbnNvL2dub21lLXNoZWxsLWdvb2dsZS1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLXNoZWxsLUdvb2dsZS1zZWFyY2gtcHJvdmlkZXJATXJOaW5zbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "056d2x5v2kzlkdab0bf88r7hs93iwdm6nhlf5q5fhjmqgc88ap1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nck5pbnNvL2dub21lLXNoZWxsLWdvb2dsZS1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLXNoZWxsLUdvb2dsZS1zZWFyY2gtcHJvdmlkZXJATXJOaW5zbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "disable-menu-switching@selfmade.pl", "name": "Disable Menu Switching", "pname": "disable-menu-switching", "description": "Disable changing menu on hover another panel button.", "link": "https://extensions.gnome.org/extension/4133/disable-menu-switching/", "shell_version_map": {"40": {"version": "3", "sha256": "12879vn6knafdcphg3wwbpbram5hrw79v68z9c9d5z4f9k781ksq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "espresso@coadmunkee.github.com", "name": "Espresso", "pname": "espresso", "description": "Espresso provides a topbar icon that allows you to disable or enable the screensaver and auto suspend. You can also define other conditions that will disable the screensaver and auto suspend such as when any application is running in full screen mode and/or when any one of a defined list of applications is running.\nEspresso is a fork of Caffeine and provides the same functionality.\n\nPlease file bug reports on the extension home page: https://github.com/coadmunkee/gnome-shell-extension-espresso/issues", "link": "https://extensions.gnome.org/extension/4135/espresso/", "shell_version_map": {"40": {"version": "1", "sha256": "1419gfipqai04ymcj9v2ljdp89jg5h9bsbhl0pw94s6pagy05s3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIHByb3ZpZGVzIGEgdG9wYmFyIGljb24gdGhhdCBhbGxvd3MgeW91IHRvIGRpc2FibGUgb3IgZW5hYmxlIHRoZSBzY3JlZW5zYXZlciBhbmQgYXV0byBzdXNwZW5kLiBZb3UgY2FuIGFsc28gZGVmaW5lIG90aGVyIGNvbmRpdGlvbnMgdGhhdCB3aWxsIGRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQgc3VjaCBhcyB3aGVuIGFueSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIGZ1bGwgc2NyZWVuIG1vZGUgYW5kL29yIHdoZW4gYW55IG9uZSBvZiBhIGRlZmluZWQgbGlzdCBvZiBhcHBsaWNhdGlvbnMgaXMgcnVubmluZy5cbkVzcHJlc3NvIGlzIGEgZm9yayBvZiBDYWZmZWluZSBhbmQgcHJvdmlkZXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eS5cblxuUGxlYXNlIGZpbGUgYnVnIHJlcG9ydHMgb24gdGhlIGV4dGVuc2lvbiBob21lIHBhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzby9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJuYW1lIjogIkVzcHJlc3NvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVzcHJlc3NvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "espresso@coadmunkee.github.com", "name": "Espresso", "pname": "espresso", "description": "Set conditions to disable the screensaver and auto suspend. Espresso is a fork of the Caffeine extension, and Espresso only supports Gnome 40 and Gnome 41. Please leave feedback or report issues through the Extension Homepage", "link": "https://extensions.gnome.org/extension/4135/espresso/", "shell_version_map": {"40": {"version": "4", "sha256": "1cvbi9yb4iz9178sjf3fppr1c4n8pm345b66njf1ij81qbllm9aw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBjb25kaXRpb25zIHRvIGRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQuIEVzcHJlc3NvIGlzIGEgZm9yayBvZiB0aGUgQ2FmZmVpbmUgZXh0ZW5zaW9uLCBhbmQgRXNwcmVzc28gb25seSBzdXBwb3J0cyBHbm9tZSA0MCBhbmQgR25vbWUgNDEuIFBsZWFzZSBsZWF2ZSBmZWVkYmFjayBvciByZXBvcnQgaXNzdWVzIHRocm91Z2ggdGhlIEV4dGVuc2lvbiBIb21lcGFnZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgIm5hbWUiOiAiRXNwcmVzc28iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXNwcmVzc28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1cvbi9yb4iz9178sjf3fppr1c4n8pm345b66njf1ij81qbllm9aw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBjb25kaXRpb25zIHRvIGRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQuIEVzcHJlc3NvIGlzIGEgZm9yayBvZiB0aGUgQ2FmZmVpbmUgZXh0ZW5zaW9uLCBhbmQgRXNwcmVzc28gb25seSBzdXBwb3J0cyBHbm9tZSA0MCBhbmQgR25vbWUgNDEuIFBsZWFzZSBsZWF2ZSBmZWVkYmFjayBvciByZXBvcnQgaXNzdWVzIHRocm91Z2ggdGhlIEV4dGVuc2lvbiBIb21lcGFnZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgIm5hbWUiOiAiRXNwcmVzc28iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXNwcmVzc28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {"38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, in the center to the right of the clock.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "07112y510hmhsb8jy03apjnk5nww29xl4mhx9ag5z557xpfsckja", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIGluIHRoZSBjZW50ZXIgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjbG9jay5cblxuTm90aGluZyBmYW5jeSwgbm8gc3VwcG9ydCAtLSBmb3JrIGF0IHdpbGwsIHRoZSB0aGluZyBpcyB2ZXJ5IHNpbXBsZS4iLAogICJuYW1lIjogIkFkZCB1c2VyQGhvc3QgdG8gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImRhbmRhbWFuOTYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "07112y510hmhsb8jy03apjnk5nww29xl4mhx9ag5z557xpfsckja", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIGluIHRoZSBjZW50ZXIgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjbG9jay5cblxuTm90aGluZyBmYW5jeSwgbm8gc3VwcG9ydCAtLSBmb3JrIGF0IHdpbGwsIHRoZSB0aGluZyBpcyB2ZXJ5IHNpbXBsZS4iLAogICJuYW1lIjogIkFkZCB1c2VyQGhvc3QgdG8gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImRhbmRhbWFuOTYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "vertical-overview@RensAlthuis.github.com", "name": "Vertical overview", "pname": "vertical-overview", "description": "Bringing back vertically stacked workspaces", "link": "https://extensions.gnome.org/extension/4144/vertical-overview/", "shell_version_map": {"40": {"version": "6", "sha256": "03a8k6fgqrd1ip3vn8xwfy2af721f8ricxyp2vx3l9lvvnvq58xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInZlcnRpY2FsLW92ZXJ2aWV3QFJlbnNBbHRodWlzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, on the left.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "0prq93aqyy7zsvbkpnb20xws5yf8jvicihn113y0b2nkjhd1n7s5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbW0vZ25vbWUtdXNlci1hdC1ob3N0IiwKICAidXVpZCI6ICJ1c2VyLWF0LWhvc3RAY21tLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0prq93aqyy7zsvbkpnb20xws5yf8jvicihn113y0b2nkjhd1n7s5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbW0vZ25vbWUtdXNlci1hdC1ob3N0IiwKICAidXVpZCI6ICJ1c2VyLWF0LWhvc3RAY21tLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "vertical-overview@RensAlthuis.github.com", "name": "Vertical overview", "pname": "vertical-overview", "description": "Bringing back vertically stacked workspaces", "link": "https://extensions.gnome.org/extension/4144/vertical-overview/", "shell_version_map": {"40": {"version": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "workspace-isolated_app-switcher@lestibournes", "name": "Workspace-Isolated App-Switcher", "pname": "workspace-isolated-app-switcher", "description": "App-Switcher modification that shows only the apps that are running on the current workspace. Fork of App-Switcher Current Workspace First by fawtytoo.", "link": "https://extensions.gnome.org/extension/4145/workspace-isolated-app-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "0bcf8l1sb73f0ggvavkfjk10s67k7w4f3yr0s9inil6z8pbk7bsr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzaG93cyBvbmx5IHRoZSBhcHBzIHRoYXQgYXJlIHJ1bm5pbmcgb24gdGhlIGN1cnJlbnQgd29ya3NwYWNlLiBGb3JrIG9mIEFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCBieSBmYXd0eXRvby4iLAogICJuYW1lIjogIldvcmtzcGFjZS1Jc29sYXRlZCBBcHAtU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkX2FwcC1zd2l0Y2hlckBsZXN0aWJvdXJuZXMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "kubectl@infinicode.de", "name": "Kubectl Extension", "pname": "kubectl-extension", "description": "Quick panel access to kubernetes resources utilizing kubectl CLI", "link": "https://extensions.gnome.org/extension/4147/kubectl-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "alwaysshowworkspacethumbnails@alynx.one", "name": "Always Show Workspace Thumbnails", "pname": "always-show-workspace-thumbnails", "description": "Always show workspace thumbnails even there is only one workspace.", "link": "https://extensions.gnome.org/extension/4156/always-show-workspace-thumbnails/", "shell_version_map": {"40": {"version": "2", "sha256": "1rnbvdq0p2kl17qz5j3k18i9s7mbi1n1k6hwbiwh2jr42xh3kd0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHdvcmtzcGFjZSB0aHVtYm5haWxzIGV2ZW4gdGhlcmUgaXMgb25seSBvbmUgd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHdheXMtc2hvdy13b3Jrc3BhY2UtdGh1bWJuYWlscy8iLAogICJ1dWlkIjogImFsd2F5c3Nob3d3b3Jrc3BhY2V0aHVtYm5haWxzQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "gnome-ui-tune@itstime.tech", "name": "Gnome 40 UI Improvements", "pname": "gnome-40-ui-improvements", "description": "Tunes gnome 40's Overview UI to make it more usable.\n\nChanges:\n- Search textbox is hidden by default and shown only when user begins to type-to-search\n- Scale of workspaces' thumbnails increased 2x\n- Restores wallpaper on workspaces' thumbnails. No more gray background\n- Show workspaces' thumbnails even when there is only one workspace\n- Firefox's PIP (picture in picture) window is now displayed on the overview screen\n\nAll modifications can be disabled in the extension's settings.", "link": "https://extensions.gnome.org/extension/4158/gnome-40-ui-improvements/", "shell_version_map": {"40": {"version": "6", "sha256": "0gqs6yg9g6brq659l3wvypv4mq2h9a1wf8vvlad3nfmax8krqdma", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1bmVzIGdub21lIDQwJ3MgT3ZlcnZpZXcgVUkgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZS5cblxuQ2hhbmdlczpcbi0gU2VhcmNoIHRleHRib3ggaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIHNob3duIG9ubHkgd2hlbiB1c2VyIGJlZ2lucyB0byB0eXBlLXRvLXNlYXJjaFxuLSBTY2FsZSBvZiB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGluY3JlYXNlZCAyeFxuLSBSZXN0b3JlcyB3YWxscGFwZXIgb24gd29ya3NwYWNlcycgdGh1bWJuYWlscy4gTm8gbW9yZSBncmF5IGJhY2tncm91bmRcbi0gU2hvdyB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSB3b3Jrc3BhY2Vcbi0gRmlyZWZveCdzIFBJUCAocGljdHVyZSBpbiBwaWN0dXJlKSB3aW5kb3cgaXMgbm93IGRpc3BsYXllZCBvbiB0aGUgb3ZlcnZpZXcgc2NyZWVuXG5cbkFsbCBtb2RpZmljYXRpb25zIGNhbiBiZSBkaXNhYmxlZCBpbiB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MuIiwKICAibmFtZSI6ICJHbm9tZSA0MCBVSSBJbXByb3ZlbWVudHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ25vbWUtdWktdHVuZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtdWktdHVuZSIsCiAgInV1aWQiOiAiZ25vbWUtdWktdHVuZUBpdHN0aW1lLnRlY2giLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "gnome-ui-tune@itstime.tech", "name": "Gnome 4x UI Improvements", "pname": "gnome-40-ui-improvements", "description": "Tunes gnome 40/41's Overview UI to make it more usable.\n\nChanges:\n- Search textbox is hidden by default and shown only when user begins to type-to-search\n- Scale of workspaces' thumbnails increased 2x\n- Restores wallpaper on workspaces' thumbnails. No more gray background\n- Show workspaces' thumbnails even when there is only one workspace\n- Firefox's PIP (picture in picture) window is now displayed on the overview screen\n\nAll modifications can be disabled in the extension's settings.\n\nATTENTION!\nAfter extension update, gnome-shell restart is required:\nX11: Alt+F2 => r\nWayland: logout => login", "link": "https://extensions.gnome.org/extension/4158/gnome-40-ui-improvements/", "shell_version_map": {"40": {"version": "7", "sha256": "1da7vqkjjqix29x7j3zv6plkzs45jcfz89i5d9pfk1jsmfcph2k4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1bmVzIGdub21lIDQwLzQxJ3MgT3ZlcnZpZXcgVUkgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZS5cblxuQ2hhbmdlczpcbi0gU2VhcmNoIHRleHRib3ggaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIHNob3duIG9ubHkgd2hlbiB1c2VyIGJlZ2lucyB0byB0eXBlLXRvLXNlYXJjaFxuLSBTY2FsZSBvZiB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGluY3JlYXNlZCAyeFxuLSBSZXN0b3JlcyB3YWxscGFwZXIgb24gd29ya3NwYWNlcycgdGh1bWJuYWlscy4gTm8gbW9yZSBncmF5IGJhY2tncm91bmRcbi0gU2hvdyB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSB3b3Jrc3BhY2Vcbi0gRmlyZWZveCdzIFBJUCAocGljdHVyZSBpbiBwaWN0dXJlKSB3aW5kb3cgaXMgbm93IGRpc3BsYXllZCBvbiB0aGUgb3ZlcnZpZXcgc2NyZWVuXG5cbkFsbCBtb2RpZmljYXRpb25zIGNhbiBiZSBkaXNhYmxlZCBpbiB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MuXG5cbkFUVEVOVElPTiFcbkFmdGVyIGV4dGVuc2lvbiB1cGRhdGUsIGdub21lLXNoZWxsIHJlc3RhcnQgaXMgcmVxdWlyZWQ6XG5YMTE6IEFsdCtGMiA9PiByXG5XYXlsYW5kOiBsb2dvdXQgPT4gbG9naW4iLAogICJuYW1lIjogIkdub21lIDR4IFVJIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS11aS10dW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtdWktdHVuZSIsCiAgInV1aWQiOiAiZ25vbWUtdWktdHVuZUBpdHN0aW1lLnRlY2giLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1da7vqkjjqix29x7j3zv6plkzs45jcfz89i5d9pfk1jsmfcph2k4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1bmVzIGdub21lIDQwLzQxJ3MgT3ZlcnZpZXcgVUkgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZS5cblxuQ2hhbmdlczpcbi0gU2VhcmNoIHRleHRib3ggaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIHNob3duIG9ubHkgd2hlbiB1c2VyIGJlZ2lucyB0byB0eXBlLXRvLXNlYXJjaFxuLSBTY2FsZSBvZiB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGluY3JlYXNlZCAyeFxuLSBSZXN0b3JlcyB3YWxscGFwZXIgb24gd29ya3NwYWNlcycgdGh1bWJuYWlscy4gTm8gbW9yZSBncmF5IGJhY2tncm91bmRcbi0gU2hvdyB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSB3b3Jrc3BhY2Vcbi0gRmlyZWZveCdzIFBJUCAocGljdHVyZSBpbiBwaWN0dXJlKSB3aW5kb3cgaXMgbm93IGRpc3BsYXllZCBvbiB0aGUgb3ZlcnZpZXcgc2NyZWVuXG5cbkFsbCBtb2RpZmljYXRpb25zIGNhbiBiZSBkaXNhYmxlZCBpbiB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MuXG5cbkFUVEVOVElPTiFcbkFmdGVyIGV4dGVuc2lvbiB1cGRhdGUsIGdub21lLXNoZWxsIHJlc3RhcnQgaXMgcmVxdWlyZWQ6XG5YMTE6IEFsdCtGMiA9PiByXG5XYXlsYW5kOiBsb2dvdXQgPT4gbG9naW4iLAogICJuYW1lIjogIkdub21lIDR4IFVJIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS11aS10dW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtdWktdHVuZSIsCiAgInV1aWQiOiAiZ25vbWUtdWktdHVuZUBpdHN0aW1lLnRlY2giLAogICJ2ZXJzaW9uIjogNwp9"}}}
, {"uuid": "monitor-window-switcher@thefungusrocket.com", "name": "Monitor window switcher", "pname": "monitor-window-switcher", "description": "Improves the window switcher on dual (or more) monitor setups", "link": "https://extensions.gnome.org/extension/4164/monitor-window-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0dj87kqxh5dg97i0185dkzh9sp97bwazzf3crx4fk4ajs7q6pv34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlZHplcHBlbGluL21vbml0b3Itd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJtb25pdG9yLXdpbmRvdy1zd2l0Y2hlckB0aGVmdW5ndXNyb2NrZXQuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "0dj87kqxh5dg97i0185dkzh9sp97bwazzf3crx4fk4ajs7q6pv34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlZHplcHBlbGluL21vbml0b3Itd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJtb25pdG9yLXdpbmRvdy1zd2l0Y2hlckB0aGVmdW5ndXNyb2NrZXQuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors. Mouse pointer pressure, clicks and scrolls over the corners/edges and also keyboard shortcuts can trigger any of dozens of built-in actions.\nThis extension is a big collection of actions that lets you navigate and control the Gnome Shell environment and opened windows and launch applications and scripts not only through the corners and edges of your monitors, but also by the custom keyboard shortcuts.\n\nRestart your Gnome Shell after each update of the extension to load new code, and reload this site to get rid of the error message, before you post a bug report.\nPlease report bugs/issues on GitHub linked below and add output from these two commands:\njournalctl /usr/bin/gnome-shell --since \"2 days ago\" | grep corners-extended\njournalctl /usr/bin/gjs --since \"2 days ago\" | grep corners-extended\n\nkeywords: overview, app grid, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail / preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {"38": {"version": "9", "sha256": "10yscxvanv6jsk9ld6cr1rc78my3cgd2vfmqjn300xyaw16p7lw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgYW5kIGFsc28ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgb2YgYnVpbHQtaW4gYWN0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgYmlnIGNvbGxlY3Rpb24gb2YgYWN0aW9ucyB0aGF0IGxldHMgeW91IG5hdmlnYXRlIGFuZCBjb250cm9sIHRoZSBHbm9tZSBTaGVsbCBlbnZpcm9ubWVudCBhbmQgb3BlbmVkIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gYnkgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5cblJlc3RhcnQgeW91ciBHbm9tZSBTaGVsbCBhZnRlciBlYWNoIHVwZGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIGxvYWQgbmV3IGNvZGUsIGFuZCByZWxvYWQgdGhpcyBzaXRlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yIG1lc3NhZ2UsIGJlZm9yZSB5b3UgcG9zdCBhIGJ1ZyByZXBvcnQuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIEdpdEh1YiBsaW5rZWQgYmVsb3cgYW5kIGFkZCBvdXRwdXQgZnJvbSB0aGVzZSB0d28gY29tbWFuZHM6XG5qb3VybmFsY3RsIC91c3IvYmluL2dub21lLXNoZWxsIC0tc2luY2UgXCIyIGRheXMgYWdvXCIgfCBncmVwIGNvcm5lcnMtZXh0ZW5kZWRcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ2pzIC0tc2luY2UgXCIyIGRheXMgYWdvXCIgfCBncmVwIGNvcm5lcnMtZXh0ZW5kZWRcblxua2V5d29yZHM6IG92ZXJ2aWV3LCBhcHAgZ3JpZCwgYnJpZ2h0bmVzcywgY29udHJhc3QsIHRyYW5zcGFyZW50LCBvcGFjaXR5LCBjb2xvciBlZmZlY3QsIGludmVydCBsaWdodG5lc3MsIGNvbG9yIHRpbnQsIGNvbG9yIGJsaW5kIHNpbXVsYXRpb24sIGRlc2F0dXJhdGUsIG5pZ2h0IGxpZ2h0cywgZGFyayB0aGVtZSwgdm9sdW1lLCBtdXRlLCBtYWduaWZpZXIsIHpvb20sIHNjcmVlbiBrZXlib2FyZCwgcmVhZGVyLCBsYXJnZSB0ZXh0LCBmb3JjZSBjbG9zZSwga2lsbCAtOSwgc2hvdyBkZXNrdG9wLCByZW9yZGVyIHdvcmtzcGFjZSwgd2luZG93IHRodW1ibmFpbCAvIHByZXZpZXcsIGxvb2tpbmcgZ2xhc3MsIGN1c3RvbSBtZW51LCB3aW5kb3csIHdvcmtzcGFjZSwgc3dpdGNoZXIsIGhpZGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJuYW1lIjogIkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "10yscxvanv6jsk9ld6cr1rc78my3cgd2vfmqjn300xyaw16p7lw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgYW5kIGFsc28ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgb2YgYnVpbHQtaW4gYWN0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgYmlnIGNvbGxlY3Rpb24gb2YgYWN0aW9ucyB0aGF0IGxldHMgeW91IG5hdmlnYXRlIGFuZCBjb250cm9sIHRoZSBHbm9tZSBTaGVsbCBlbnZpcm9ubWVudCBhbmQgb3BlbmVkIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gYnkgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5cblJlc3RhcnQgeW91ciBHbm9tZSBTaGVsbCBhZnRlciBlYWNoIHVwZGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIGxvYWQgbmV3IGNvZGUsIGFuZCByZWxvYWQgdGhpcyBzaXRlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yIG1lc3NhZ2UsIGJlZm9yZSB5b3UgcG9zdCBhIGJ1ZyByZXBvcnQuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIEdpdEh1YiBsaW5rZWQgYmVsb3cgYW5kIGFkZCBvdXRwdXQgZnJvbSB0aGVzZSB0d28gY29tbWFuZHM6XG5qb3VybmFsY3RsIC91c3IvYmluL2dub21lLXNoZWxsIC0tc2luY2UgXCIyIGRheXMgYWdvXCIgfCBncmVwIGNvcm5lcnMtZXh0ZW5kZWRcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ2pzIC0tc2luY2UgXCIyIGRheXMgYWdvXCIgfCBncmVwIGNvcm5lcnMtZXh0ZW5kZWRcblxua2V5d29yZHM6IG92ZXJ2aWV3LCBhcHAgZ3JpZCwgYnJpZ2h0bmVzcywgY29udHJhc3QsIHRyYW5zcGFyZW50LCBvcGFjaXR5LCBjb2xvciBlZmZlY3QsIGludmVydCBsaWdodG5lc3MsIGNvbG9yIHRpbnQsIGNvbG9yIGJsaW5kIHNpbXVsYXRpb24sIGRlc2F0dXJhdGUsIG5pZ2h0IGxpZ2h0cywgZGFyayB0aGVtZSwgdm9sdW1lLCBtdXRlLCBtYWduaWZpZXIsIHpvb20sIHNjcmVlbiBrZXlib2FyZCwgcmVhZGVyLCBsYXJnZSB0ZXh0LCBmb3JjZSBjbG9zZSwga2lsbCAtOSwgc2hvdyBkZXNrdG9wLCByZW9yZGVyIHdvcmtzcGFjZSwgd2luZG93IHRodW1ibmFpbCAvIHByZXZpZXcsIGxvb2tpbmcgZ2xhc3MsIGN1c3RvbSBtZW51LCB3aW5kb3csIHdvcmtzcGFjZSwgc3dpdGNoZXIsIGhpZGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJuYW1lIjogIkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors. Mouse pointer pressure, clicks and scrolls over the corners/edges can trigger any of dozens of built-in actions or your own shell commands.\nThis extension is a big collection of actions that lets you navigate and control the Gnome Shell environment and opened windows and launch applications and scripts not only through the corners and edges of your monitors, but also by the custom keyboard shortcuts.\n\nRestart your Gnome Shell after each update of the extension to load new code, and reload this site to get rid of the error message, before you post a bug report.\nPlease report bugs/issues on GitHub linked below and add output from these two commands:\njournalctl /usr/bin/gnome-shell --since \"2 days ago\" | grep corners-extended\njournalctl /usr/bin/gjs --since \"2 days ago\" | grep corners-extended\n\nkeywords: overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail / preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {"38": {"version": "10", "sha256": "0qji91s5d681vvf3iwzf59ckxyzn3yhn1ak0fkys0ivk7cid8lay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgY2FuIHRyaWdnZXIgYW55IG9mIGRvemVucyBvZiBidWlsdC1pbiBhY3Rpb25zIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuVGhpcyBleHRlbnNpb24gaXMgYSBiaWcgY29sbGVjdGlvbiBvZiBhY3Rpb25zIHRoYXQgbGV0cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCBvcGVuZWQgd2luZG93cyBhbmQgbGF1bmNoIGFwcGxpY2F0aW9ucyBhbmQgc2NyaXB0cyBub3Qgb25seSB0aHJvdWdoIHRoZSBjb3JuZXJzIGFuZCBlZGdlcyBvZiB5b3VyIG1vbml0b3JzLCBidXQgYWxzbyBieSB0aGUgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgc2ltdWxhdGlvbiwgZGVzYXR1cmF0ZSwgbmlnaHQgbGlnaHRzLCBkYXJrIHRoZW1lLCB2b2x1bWUsIG11dGUsIG1hZ25pZmllciwgem9vbSwgc2NyZWVuIGtleWJvYXJkLCByZWFkZXIsIGxhcmdlIHRleHQsIGZvcmNlIGNsb3NlLCBraWxsIC05LCBzaG93IGRlc2t0b3AsIHJlb3JkZXIgd29ya3NwYWNlLCB3aW5kb3cgdGh1bWJuYWlsIC8gcHJldmlldywgbG9va2luZyBnbGFzcywgY3VzdG9tIG1lbnUsIHdpbmRvdywgd29ya3NwYWNlLCBzd2l0Y2hlciwgaGlkZSBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgIm5hbWUiOiAiQ3VzdG9tIEhvdCBDb3JuZXJzIC0gRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "0qji91s5d681vvf3iwzf59ckxyzn3yhn1ak0fkys0ivk7cid8lay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgY2FuIHRyaWdnZXIgYW55IG9mIGRvemVucyBvZiBidWlsdC1pbiBhY3Rpb25zIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuVGhpcyBleHRlbnNpb24gaXMgYSBiaWcgY29sbGVjdGlvbiBvZiBhY3Rpb25zIHRoYXQgbGV0cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCBvcGVuZWQgd2luZG93cyBhbmQgbGF1bmNoIGFwcGxpY2F0aW9ucyBhbmQgc2NyaXB0cyBub3Qgb25seSB0aHJvdWdoIHRoZSBjb3JuZXJzIGFuZCBlZGdlcyBvZiB5b3VyIG1vbml0b3JzLCBidXQgYWxzbyBieSB0aGUgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgc2ltdWxhdGlvbiwgZGVzYXR1cmF0ZSwgbmlnaHQgbGlnaHRzLCBkYXJrIHRoZW1lLCB2b2x1bWUsIG11dGUsIG1hZ25pZmllciwgem9vbSwgc2NyZWVuIGtleWJvYXJkLCByZWFkZXIsIGxhcmdlIHRleHQsIGZvcmNlIGNsb3NlLCBraWxsIC05LCBzaG93IGRlc2t0b3AsIHJlb3JkZXIgd29ya3NwYWNlLCB3aW5kb3cgdGh1bWJuYWlsIC8gcHJldmlldywgbG9va2luZyBnbGFzcywgY3VzdG9tIG1lbnUsIHdpbmRvdywgd29ya3NwYWNlLCBzd2l0Y2hlciwgaGlkZSBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgIm5hbWUiOiAiQ3VzdG9tIEhvdCBDb3JuZXJzIC0gRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0qji91s5d681vvf3iwzf59ckxyzn3yhn1ak0fkys0ivk7cid8lay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgY2FuIHRyaWdnZXIgYW55IG9mIGRvemVucyBvZiBidWlsdC1pbiBhY3Rpb25zIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuVGhpcyBleHRlbnNpb24gaXMgYSBiaWcgY29sbGVjdGlvbiBvZiBhY3Rpb25zIHRoYXQgbGV0cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCBvcGVuZWQgd2luZG93cyBhbmQgbGF1bmNoIGFwcGxpY2F0aW9ucyBhbmQgc2NyaXB0cyBub3Qgb25seSB0aHJvdWdoIHRoZSBjb3JuZXJzIGFuZCBlZGdlcyBvZiB5b3VyIG1vbml0b3JzLCBidXQgYWxzbyBieSB0aGUgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgc2ltdWxhdGlvbiwgZGVzYXR1cmF0ZSwgbmlnaHQgbGlnaHRzLCBkYXJrIHRoZW1lLCB2b2x1bWUsIG11dGUsIG1hZ25pZmllciwgem9vbSwgc2NyZWVuIGtleWJvYXJkLCByZWFkZXIsIGxhcmdlIHRleHQsIGZvcmNlIGNsb3NlLCBraWxsIC05LCBzaG93IGRlc2t0b3AsIHJlb3JkZXIgd29ya3NwYWNlLCB3aW5kb3cgdGh1bWJuYWlsIC8gcHJldmlldywgbG9va2luZyBnbGFzcywgY3VzdG9tIG1lbnUsIHdpbmRvdywgd29ya3NwYWNlLCBzd2l0Y2hlciwgaGlkZSBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgIm5hbWUiOiAiQ3VzdG9tIEhvdCBDb3JuZXJzIC0gRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
, {"uuid": "hass-gshell@geoph9-on-github", "name": "Home Assistant Extension", "pname": "home-assistant-extension", "description": "A simple gnome shell extension for Home Assistant. Check the README on github for additional help!\n\nMain points:\n- You need to provide the url of your hass, a long live access token obtained from your profile page (on your hass web instance) and the entity ids of the entities you want to have as togglable.\n- In order to add some local temperature/humidity sensor, you may also provide a temperature and/or a humidity entity id (which should match the corresponding ids of your hass instance).", "link": "https://extensions.gnome.org/extension/4170/home-assistant-extension/", "shell_version_map": {"38": {"version": "3", "sha256": "04p2hvxyyc1zv441sv0l1dcxbdvzqp46mii3zvw0nhq8jg5pz8rr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlb3BoOS9oYXNzLWdzaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImhhc3MtZ3NoZWxsQGdlb3BoOS1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "01y0kdmdg48s26yf8l2kfrfd8zwjg8jj797g196wr5afy9fn55ws", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZW9waDkvaGFzcy1nc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoYXNzLWdzaGVsbEBnZW9waDktb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "clear-top-bar@superterran.net", "name": "Clear Top Bar", "pname": "clear-top-bar", "description": "Fully transparent topbar, pairs with the zhanghai transparent top bar extension to make bar opaque when window is maximized", "link": "https://extensions.gnome.org/extension/4173/clear-top-bar/", "shell_version_map": {"40": {"version": "4", "sha256": "0nh6df4l5f2wkkcngilrwiwyj97zdkrx7g6as4ppk6aj10ybmxcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdXBlcnRlcnJhbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xlYXItdG9wLWJhciIsCiAgInV1aWQiOiAiY2xlYXItdG9wLWJhckBzdXBlcnRlcnJhbi5uZXQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "systemd-manager@hardpixel.eu", "name": "Systemd Manager", "pname": "systemd-manager", "description": "Toggle systemd services on/off from a popup menu in the top gnome panel. Can be used to start services like apache2, mysql, postgres. It uses `pkexec' to run `sytemctl'. If you want to start services without entering a password you have to polkit policy file. An example policy file can be found in the github repository.", "link": "https://extensions.gnome.org/extension/4174/systemd-manager/", "shell_version_map": {"38": {"version": "4", "sha256": "1c7q3iqcdfqralclixj1frzcpvpw66fs6rdyvi8g90l454c4033c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvc3lzdGVtZC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzeXN0ZW1kLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1c7q3iqcdfqralclixj1frzcpvpw66fs6rdyvi8g90l454c4033c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvc3lzdGVtZC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzeXN0ZW1kLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "auto-activities@acedron.github.io", "name": "Auto Activities", "pname": "auto-activities", "description": "Show activities overview when there are no windows, or hide it when there are new windows.", "link": "https://extensions.gnome.org/extension/4179/auto-activities/", "shell_version_map": {"40": {"version": "11", "sha256": "1kfwnmqax6dd1mglxw6cdcz7vbzgskhp2js8pyqziaxd4yyxqa38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjZWRyb24vYXV0by1hY3Rpdml0aWVzIiwKICAidXVpZCI6ICJhdXRvLWFjdGl2aXRpZXNAYWNlZHJvbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"uuid": "clear-top-bar@superterran.net", "name": "Clear Top Bar", "pname": "clear-top-bar", "description": "Fully transparent topbar, pairs with the zhanghai transparent top bar extension to make bar opaque when window is maximized", "link": "https://extensions.gnome.org/extension/4173/clear-top-bar/", "shell_version_map": {"40": {"version": "5", "sha256": "12msvdg82rj34v338vsxqimy1p35isvl4db8k1sjq23ln1b6jak2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VwZXJ0ZXJyYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsZWFyLXRvcC1iYXIiLAogICJ1dWlkIjogImNsZWFyLXRvcC1iYXJAc3VwZXJ0ZXJyYW4ubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "12msvdg82rj34v338vsxqimy1p35isvl4db8k1sjq23ln1b6jak2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VwZXJ0ZXJyYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsZWFyLXRvcC1iYXIiLAogICJ1dWlkIjogImNsZWFyLXRvcC1iYXJAc3VwZXJ0ZXJyYW4ubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "systemd-manager@hardpixel.eu", "name": "Systemd Manager", "pname": "systemd-manager", "description": "Toggle systemd services on/off from a popup menu in the top gnome panel. Can be used to start services like apache2, mysql, postgres. It uses `pkexec' to run `sytemctl'. If you want to start services without entering a password you have to polkit policy file. An example policy file can be found in the github repository.", "link": "https://extensions.gnome.org/extension/4174/systemd-manager/", "shell_version_map": {"38": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "auto-activities@acedron.github.io", "name": "Auto Activities", "pname": "auto-activities", "description": "Show activities overview when there are no windows, or hide it when there are new windows.", "link": "https://extensions.gnome.org/extension/4179/auto-activities/", "shell_version_map": {"40": {"version": "13", "sha256": "17w8rwn9y8li20gq3xnxialw17ay5mbpwz80hsrx3mprn1jlzgsg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hY2Vkcm9uL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "17w8rwn9y8li20gq3xnxialw17ay5mbpwz80hsrx3mprn1jlzgsg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hY2Vkcm9uL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
, {"uuid": "clippie@blackjackshellac.ca", "name": "clippie [replaced by eclipse]", "pname": "clippie", "description": "clippie has been rereleased as 'eclipse'\n\nClipboard interface to gpaste-client output\n\nhttps://extensions.gnome.org/extension/4246/eclipse/\n\nClippie now uses dbus to communicate with the gpaste daemon\nAdded encryption of clipboard items with eclipse feature", "link": "https://extensions.gnome.org/extension/4182/clippie/", "shell_version_map": {"38": {"version": "6", "sha256": "05kd2pq605k21yq6wcaqcm2lrpnlc6mbiq1wxgmwdnpvi7ib2h8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNsaXBwaWUgaGFzIGJlZW4gcmVyZWxlYXNlZCBhcyAnZWNsaXBzZSdcblxuQ2xpcGJvYXJkIGludGVyZmFjZSB0byBncGFzdGUtY2xpZW50IG91dHB1dFxuXG5odHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjQ2L2VjbGlwc2UvXG5cbkNsaXBwaWUgbm93IHVzZXMgZGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBncGFzdGUgZGFlbW9uXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcyB3aXRoIGVjbGlwc2UgZmVhdHVyZSIsCiAgImdldHRleHQtZG9tYWluIjogImNsaXBwaWUtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiY2xpcHBpZSBbcmVwbGFjZWQgYnkgZWNsaXBzZV0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2xpcHBpZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiY2xpcHBpZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "05kd2pq605k21yq6wcaqcm2lrpnlc6mbiq1wxgmwdnpvi7ib2h8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNsaXBwaWUgaGFzIGJlZW4gcmVyZWxlYXNlZCBhcyAnZWNsaXBzZSdcblxuQ2xpcGJvYXJkIGludGVyZmFjZSB0byBncGFzdGUtY2xpZW50IG91dHB1dFxuXG5odHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjQ2L2VjbGlwc2UvXG5cbkNsaXBwaWUgbm93IHVzZXMgZGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBncGFzdGUgZGFlbW9uXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcyB3aXRoIGVjbGlwc2UgZmVhdHVyZSIsCiAgImdldHRleHQtZG9tYWluIjogImNsaXBwaWUtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiY2xpcHBpZSBbcmVwbGFjZWQgYnkgZWNsaXBzZV0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2xpcHBpZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiY2xpcHBpZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "screen-autorotate@kosmospredanie.yandex.ru", "name": "Screen Autorotate", "pname": "screen-autorotate", "description": "Enable screen rotation regardless of touch mode", "link": "https://extensions.gnome.org/extension/4191/screen-autorotate/", "shell_version_map": {"40": {"version": "2", "sha256": "0s8jb0d644kprcd2adidgjsbhm6fqwm896bh4p05yyd9zwkm1bq2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBzY3JlZW4gcm90YXRpb24gcmVnYXJkbGVzcyBvZiB0b3VjaCBtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAibmFtZSI6ICJTY3JlZW4gQXV0b3JvdGF0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW4tYXV0b3JvdGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb3Ntb3NwcmVkYW5pZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NyZWVuLWF1dG9yb3RhdGUiLAogICJ1dWlkIjogInNjcmVlbi1hdXRvcm90YXRlQGtvc21vc3ByZWRhbmllLnlhbmRleC5ydSIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "Low_Latency_Loopback@jacebennest87.gmail.com", "name": "Low Latency Loopback", "pname": "low-latency-loopback", "description": "Enables a low latency PulseAudio loopback device", "link": "https://extensions.gnome.org/extension/4194/low-latency-loopback/", "shell_version_map": {"38": {"version": "2", "sha256": "0dqjy59c8dgn81x84hifnzldb54n1l31qrbg2m08i84zxrc40x4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBsb3cgbGF0ZW5jeSBQdWxzZUF1ZGlvIGxvb3BiYWNrIGRldmljZSIsCiAgIm5hbWUiOiAiTG93IExhdGVuY3kgTG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90aGVqYWNlcjg3L2xvdy1sYXRlbmN5LWxvb3BiYWNrIiwKICAidXVpZCI6ICJMb3dfTGF0ZW5jeV9Mb29wYmFja0BqYWNlYmVubmVzdDg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "dash-to-plank@hardpixel.eu", "name": "Dash to Plank", "pname": "dash-to-plank", "description": "GNOME Shell integration for Plank, the simplest dock on the planet. To use this extension, you must have Plank installed on your system.\n\nThis extension depends on Plank. To install it:\n- Debian/Ubuntu: apt install plank\n- Fedora/RHEL: dnf install plank\n- Arch: pacman -S plank\n\n** This extension does NOT WORK on WAYLAND.", "link": "https://extensions.gnome.org/extension/4198/dash-to-plank/", "shell_version_map": {"38": {"version": "9", "sha256": "0hkhqkab8xj84sq6c4i03z51z6g78799lwl6fp8ldyh5fbfif9x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXNoLXRvLXBsYW5rIiwKICAidXVpZCI6ICJkYXNoLXRvLXBsYW5rQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "0hkhqkab8xj84sq6c4i03z51z6g78799lwl6fp8ldyh5fbfif9x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXNoLXRvLXBsYW5rIiwKICAidXVpZCI6ICJkYXNoLXRvLXBsYW5rQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "dash-to-plank@hardpixel.eu", "name": "Dash to Plank", "pname": "dash-to-plank", "description": "GNOME Shell integration for Plank, the simplest dock on the planet. To use this extension, you must have Plank installed on your system.\n\nThis extension depends on Plank. To install it:\n- Debian/Ubuntu: apt install plank\n- Fedora/RHEL: dnf install plank\n- Arch: pacman -S plank\n\n** This extension does NOT WORK on WAYLAND.", "link": "https://extensions.gnome.org/extension/4198/dash-to-plank/", "shell_version_map": {"38": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
, {"uuid": "rrc@ogarcia.me", "name": "Remove Rounded Corners", "pname": "remove-rounded-corners", "description": "Removes rounded corners from main panel or top bar", "link": "https://extensions.gnome.org/extension/4201/remove-rounded-corners/", "shell_version_map": {"40": {"version": "2", "sha256": "1432bvjcknhw57j6ngpppclvkdnpy9dcqv0na4vqcvl2l035bbxv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29nYXJjaWEvcmVtb3ZlLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAicnJjQG9nYXJjaWEubWUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "private-switcher@dziban.com", "name": "Private Switcher", "pname": "private-switcher", "description": "Simple extension that allows you do have independent app switcher (alt-tab) for each workspace.", "link": "https://extensions.gnome.org/extension/4204/private-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {"40": {"version": "5", "sha256": "1c7z3754vxwhaakziy65yjc5z0k91g8sx22h6riswy5fyys3i4ka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbG9zc2V1bSIsCiAgInV1aWQiOiAiY29sb3NzZXVtQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {"40": {"version": "6", "sha256": "1gpv6d4jxsx842wjlj7g9fz870jl9fcwp0fhxbrsgp8jhk6jnpcq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "1gpv6d4jxsx842wjlj7g9fz870jl9fcwp0fhxbrsgp8jhk6jnpcq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "gnome-plat-workspace@stonegate.me", "name": "Gnome 40 Flat Workspace", "pname": "gnome-40-plat-workspace", "description": "Remove shadow for workspace background in gnome 40.\nSource code https://github.com/stonega/gnome-extension-flat-workspace", "link": "https://extensions.gnome.org/extension/4215/gnome-40-plat-workspace/", "shell_version_map": {"40": {"version": "3", "sha256": "0ly2dab9c0l7w1axnqs7xk2szd5jm2ifgniz2snw5mwkr5pw76nb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBzaGFkb3cgZm9yIHdvcmtzcGFjZSBiYWNrZ3JvdW5kIGluIGdub21lIDQwLlxuU291cmNlIGNvZGUgaHR0cHM6Ly9naXRodWIuY29tL3N0b25lZ2EvZ25vbWUtZXh0ZW5zaW9uLWZsYXQtd29ya3NwYWNlIiwKICAibmFtZSI6ICJHbm9tZSA0MCBGbGF0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1wbGF0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUtcGxhdC13b3Jrc3BhY2VAc3RvbmVnYXRlLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "hotedge@jonathan.jdoda.ca", "name": "Hot Edge", "pname": "hot-edge", "description": "Add a hot edge that activates the overview to the bottom of the screen. This minimizes the pointer travel required to access the dash when using the new GNOME Shell 40 overview layout.\n\nYou can find more documentation at https://github.com/jdoda/hotedge/blob/main/README.md and report issues at https://github.com/jdoda/hotedge/issues .", "link": "https://extensions.gnome.org/extension/4222/hot-edge/", "shell_version_map": {"40": {"version": "6", "sha256": "1cga3yimxqkf0lz701a7xcwi9q2iqwisgv4md0f3s484raxpvan4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuWW91IGNhbiBmaW5kIG1vcmUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9ibG9iL21haW4vUkVBRE1FLm1kIGFuZCByZXBvcnQgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlL2lzc3VlcyAuIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "hotedge@jonathan.jdoda.ca", "name": "Hot Edge", "pname": "hot-edge", "description": "Add a hot edge that activates the overview to the bottom of the screen. This minimizes the pointer travel required to access the dash when using the new GNOME Shell 40 overview layout.\n\nYou can find more documentation at https://github.com/jdoda/hotedge/blob/main/README.md and report issues at https://github.com/jdoda/hotedge/issues .", "link": "https://extensions.gnome.org/extension/4222/hot-edge/", "shell_version_map": {"40": {"version": "8", "sha256": "1ybbjm4m6zix1f762jnhaa4jl15qrlc83m9fcmmsvi9rlqnxnlha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuWW91IGNhbiBmaW5kIG1vcmUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9ibG9iL21haW4vUkVBRE1FLm1kIGFuZCByZXBvcnQgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlL2lzc3VlcyAuIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZSIsCiAgInV1aWQiOiAiaG90ZWRnZUBqb25hdGhhbi5qZG9kYS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "1ybbjm4m6zix1f762jnhaa4jl15qrlc83m9fcmmsvi9rlqnxnlha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuWW91IGNhbiBmaW5kIG1vcmUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9ibG9iL21haW4vUkVBRE1FLm1kIGFuZCByZXBvcnQgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlL2lzc3VlcyAuIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZSIsCiAgInV1aWQiOiAiaG90ZWRnZUBqb25hdGhhbi5qZG9kYS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"uuid": "gnome-citeurl-search-provider@raindrum.github.io", "name": "Legal Citation Search", "pname": "gnome-citeurl-search-provider", "description": "This extension lets you look up U.S. state and federal laws and court cases by typing citations (like \"42 USC 1983\" or \"U.S. Constitution Art. I, Sec. 3\") into the search bar.\nBy default, the search supports the U.S. Code and federal constitution, as well as nearly all codified state laws and constitutions, among other sources of law. You can also add more types of citation by following the instructions on the GitHub page.", "link": "https://extensions.gnome.org/extension/4225/gnome-citeurl-search-provider/", "shell_version_map": {"38": {"version": "6", "sha256": "024d98642smciv5n2vc4l2f8rglfrv180paj1g2rrq9k4pvg6yym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5CeSBkZWZhdWx0LCB0aGUgc2VhcmNoIHN1cHBvcnRzIHRoZSBVLlMuIENvZGUgYW5kIGZlZGVyYWwgY29uc3RpdHV0aW9uLCBhcyB3ZWxsIGFzIG5lYXJseSBhbGwgY29kaWZpZWQgc3RhdGUgbGF3cyBhbmQgY29uc3RpdHV0aW9ucywgYW1vbmcgb3RoZXIgc291cmNlcyBvZiBsYXcuIFlvdSBjYW4gYWxzbyBhZGQgbW9yZSB0eXBlcyBvZiBjaXRhdGlvbiBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgR2l0SHViIHBhZ2UuIiwKICAibmFtZSI6ICJMZWdhbCBDaXRhdGlvbiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFpbmRydW0vZ25vbWUtY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyQHJhaW5kcnVtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "024d98642smciv5n2vc4l2f8rglfrv180paj1g2rrq9k4pvg6yym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5CeSBkZWZhdWx0LCB0aGUgc2VhcmNoIHN1cHBvcnRzIHRoZSBVLlMuIENvZGUgYW5kIGZlZGVyYWwgY29uc3RpdHV0aW9uLCBhcyB3ZWxsIGFzIG5lYXJseSBhbGwgY29kaWZpZWQgc3RhdGUgbGF3cyBhbmQgY29uc3RpdHV0aW9ucywgYW1vbmcgb3RoZXIgc291cmNlcyBvZiBsYXcuIFlvdSBjYW4gYWxzbyBhZGQgbW9yZSB0eXBlcyBvZiBjaXRhdGlvbiBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgR2l0SHViIHBhZ2UuIiwKICAibmFtZSI6ICJMZWdhbCBDaXRhdGlvbiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFpbmRydW0vZ25vbWUtY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyQHJhaW5kcnVtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "wireless-hid@chlumskyvaclav.gmail.com", "name": "Wireless HID", "pname": "wireless-hid", "description": "This extension shows the battery of the wireless keyboards, mice, and game controllers in percentages and colors. Multiple devices are supported.", "link": "https://extensions.gnome.org/extension/4228/wireless-hid/", "shell_version_map": {"38": {"version": "2", "sha256": "0w33qnpz8sh1bxhkq1q4xsqrl5ypsiwkr90nxkwwdgn9i4d0g0cf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL3dpcmVsZXNzLWhpZCIsCiAgInV1aWQiOiAid2lyZWxlc3MtaGlkQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0w33qnpz8sh1bxhkq1q4xsqrl5ypsiwkr90nxkwwdgn9i4d0g0cf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL3dpcmVsZXNzLWhpZCIsCiAgInV1aWQiOiAid2lyZWxlc3MtaGlkQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "wireless-hid@chlumskyvaclav.gmail.com", "name": "Wireless HID", "pname": "wireless-hid", "description": "This extension shows the battery of the wireless keyboards, mice, and game controllers in percentages and colors. Multiple devices are supported.", "link": "https://extensions.gnome.org/extension/4228/wireless-hid/", "shell_version_map": {"38": {"version": "3", "sha256": "1i6dd0qrp3127zpg25732zfzg2g4hjnl4n9n51pq95wyhrlp8zz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS93aXJlbGVzcy1oaWQiLAogICJ1dWlkIjogIndpcmVsZXNzLWhpZEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1i6dd0qrp3127zpg25732zfzg2g4hjnl4n9n51pq95wyhrlp8zz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS93aXJlbGVzcy1oaWQiLAogICJ1dWlkIjogIndpcmVsZXNzLWhpZEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1i6dd0qrp3127zpg25732zfzg2g4hjnl4n9n51pq95wyhrlp8zz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS93aXJlbGVzcy1oaWQiLAogICJ1dWlkIjogIndpcmVsZXNzLWhpZEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "better-osd@hllvc", "name": "Better OSD - Gnome 40", "pname": "better-osd-gnome-40", "description": "Customize your OSD popups. Move, resize, set delay and transparency!", "link": "https://extensions.gnome.org/extension/4231/better-osd-gnome-40/", "shell_version_map": {"40": {"version": "4", "sha256": "026c4kh6ri023b635kynmvb5zxxdywf5bbnyq1lb2p7iirb6vn0i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hsbHZjL2JldHRlci1vc2QiLAogICJ1dWlkIjogImJldHRlci1vc2RAaGxsdmMiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "arbttstats@gervasioperez.ar", "name": "Arbtt time tracker stats", "pname": "arbtt-stats", "description": "Show simple arbtt time tracker stats on the panel.\n\nSee extension homepage for a brief tutorial.", "link": "https://extensions.gnome.org/extension/4234/arbtt-stats/", "shell_version_map": {"38": {"version": "7", "sha256": "0p91qyh2r42jbi8s7yzw6s82m91m4acs4y43vav4w4002y2f25cs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHRpbWUgdHJhY2tlciBzdGF0cyBvbiB0aGUgcGFuZWwuXG5cblNlZSBleHRlbnNpb24gaG9tZXBhZ2UgZm9yIGEgYnJpZWYgdHV0b3JpYWwuIiwKICAibmFtZSI6ICJBcmJ0dCB0aW1lIHRyYWNrZXIgc3RhdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hlcndvb2RpbmMvYXJidHQtc3RhdHMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhcmJ0dHN0YXRzQGdlcnZhc2lvcGVyZXouYXIiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "0p91qyh2r42jbi8s7yzw6s82m91m4acs4y43vav4w4002y2f25cs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHRpbWUgdHJhY2tlciBzdGF0cyBvbiB0aGUgcGFuZWwuXG5cblNlZSBleHRlbnNpb24gaG9tZXBhZ2UgZm9yIGEgYnJpZWYgdHV0b3JpYWwuIiwKICAibmFtZSI6ICJBcmJ0dCB0aW1lIHRyYWNrZXIgc3RhdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hlcndvb2RpbmMvYXJidHQtc3RhdHMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhcmJ0dHN0YXRzQGdlcnZhc2lvcGVyZXouYXIiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "arbttstats@gervasioperez.ar", "name": "Arbtt stats", "pname": "arbtt-stats", "description": "Show simple arbtt stats on the panel\n*** This extension requires arbtt running and configured", "link": "https://extensions.gnome.org/extension/4234/arbtt-stats/", "shell_version_map": {"38": {"version": "9", "sha256": "0x3sxg8dv9gfq1f4m9bk4rb3395rdcf0srijxqphpwjmm0nsizql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHN0YXRzIG9uIHRoZSBwYW5lbFxuKioqIFRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIGFyYnR0IHJ1bm5pbmcgYW5kIGNvbmZpZ3VyZWQiLAogICJuYW1lIjogIkFyYnR0IHN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NoZXJ3b29kaW5jL2FyYnR0LXN0YXRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXJidHRzdGF0c0BnZXJ2YXNpb3BlcmV6LmFyIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0x3sxg8dv9gfq1f4m9bk4rb3395rdcf0srijxqphpwjmm0nsizql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHN0YXRzIG9uIHRoZSBwYW5lbFxuKioqIFRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIGFyYnR0IHJ1bm5pbmcgYW5kIGNvbmZpZ3VyZWQiLAogICJuYW1lIjogIkFyYnR0IHN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NoZXJ3b29kaW5jL2FyYnR0LXN0YXRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXJidHRzdGF0c0BnZXJ2YXNpb3BlcmV6LmFyIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"uuid": "blur-me@nunchucks", "name": "Blur Me", "pname": "blur-me", "description": "Blur: Applications | Top Panel | Overview | Dash | More!\n\n\nCredit where it's due: Overview and dash blur are based on blur my shell", "link": "https://extensions.gnome.org/extension/4236/blur-me/", "shell_version_map": {"40": {"version": "11", "sha256": "13r77isf7ih0sklnms7blsk9a7av05d21rmjrnyr8jisr512991k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdXI6IEFwcGxpY2F0aW9ucyB8IFRvcCBQYW5lbCB8IE92ZXJ2aWV3IHwgRGFzaCB8IE1vcmUhXG5cblxuQ3JlZGl0IHdoZXJlIGl0J3MgZHVlOiBPdmVydmlldyBhbmQgZGFzaCBibHVyIGFyZSBiYXNlZCBvbiBibHVyIG15IHNoZWxsIiwKICAibmFtZSI6ICJCbHVyIE1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NraXNzYW5lL2JsdXItbWUiLAogICJ1dWlkIjogImJsdXItbWVAbnVuY2h1Y2tzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "gestureImprovements@gestures", "name": "Gesture Improvements", "pname": "gesture-improvements", "description": "Improve touchpad gestures for Wayland/X11.\n\nThis extension adds following features:\n\n• Switch windows from current workspace using 3-finger horizontal swipe\n• Cyclic gestures between Desktop/Overview/AppGrid using 4 vertical swipe\n• Switch app-pages using 3-finger swipe gesture on AppGrid\n• Maximize/unmaximize/half-tiling using 3-finger vertical &amp; horizontal gesture\n• Override 3-finger gesture with 4-finger for switching workspace\n• Configure speed of gestures\n• Support for X11\n \nOn X11, you need to install https://github.com/harshadgavali/gnome-x11-gesture-daemon\n\nReport any bugs/requests on GitHub (link directly below)", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "15", "sha256": "006c2gh6yffplcp9mw94yr1vgs1v6755slci2p8krbfdkbs45066", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExLlxuXG5UaGlzIGV4dGVuc2lvbiBhZGRzIGZvbGxvd2luZyBmZWF0dXJlczpcblxuXHUyMDIyIFN3aXRjaCB3aW5kb3dzIGZyb20gY3VycmVudCB3b3Jrc3BhY2UgdXNpbmcgMy1maW5nZXIgaG9yaXpvbnRhbCBzd2lwZVxuXHUyMDIyIEN5Y2xpYyBnZXN0dXJlcyBiZXR3ZWVuIERlc2t0b3AvT3ZlcnZpZXcvQXBwR3JpZCB1c2luZyA0IHZlcnRpY2FsIHN3aXBlXG5cdTIwMjIgU3dpdGNoIGFwcC1wYWdlcyB1c2luZyAzLWZpbmdlciBzd2lwZSBnZXN0dXJlIG9uIEFwcEdyaWRcblx1MjAyMiBNYXhpbWl6ZS91bm1heGltaXplL2hhbGYtdGlsaW5nIHVzaW5nIDMtZmluZ2VyIHZlcnRpY2FsICZhbXA7YW1wO2FtcDsgaG9yaXpvbnRhbCBnZXN0dXJlXG5cdTIwMjIgT3ZlcnJpZGUgMy1maW5nZXIgZ2VzdHVyZSB3aXRoIDQtZmluZ2VyIGZvciBzd2l0Y2hpbmcgd29ya3NwYWNlXG5cdTIwMjIgQ29uZmlndXJlIHNwZWVkIG9mIGdlc3R1cmVzXG5cdTIwMjIgU3VwcG9ydCBmb3IgWDExXG4gICBcbk9uIFgxMSwgeW91IG5lZWQgdG8gaW5zdGFsbCBodHRwczovL2dpdGh1Yi5jb20vaGFyc2hhZGdhdmFsaS9nbm9tZS14MTEtZ2VzdHVyZS1kYWVtb25cblxuUmVwb3J0IGFueSBidWdzL3JlcXVlc3RzIG9uIEdpdEh1YiAobGluayBkaXJlY3RseSBiZWxvdykiLAogICJuYW1lIjogIkdlc3R1cmUgSW1wcm92ZW1lbnRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlc3R1cmVJbXByb3ZlbWVudHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyc2hhZGdhdmFsaS9nbm9tZS1nZXN0dXJlLWltcHJvdmVtZW50cyIsCiAgInV1aWQiOiAiZ2VzdHVyZUltcHJvdmVtZW50c0BnZXN0dXJlcyIsCiAgInZlcnNpb24iOiAxNQp9"}}}
+, {"uuid": "gestureImprovements@gestures", "name": "Gesture Improvements", "pname": "gesture-improvements", "description": "Improve touchpad gestures for Wayland/X11\n\nThis extension adds following features:\n\n• Switch windows from current workspace using 3-finger horizontal swipe\n• Cyclic gestures between Desktop/Overview/AppGrid using 4 vertical swipe\n• Switch app-pages using 3-finger swipe gesture on AppGrid\n• Unmaximize/maximize/fullscreen/half-tiling using 3-finger vertical & horizontal gesture\n• Optional minimize a window gesture\n• Override 3-finger gesture with 4-finger for switching workspace\n• Configure speed of gestures\n• Support for X11\n \nOn X11, you need to install https://github.com/harshadgavali/gnome-x11-gesture-daemon\n\nReport any bugs/requests on GitHub (link directly below)\n", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "17", "sha256": "1ir33hm2wl26pqhpdgw3vb7bws16x6wlqy68lbv6w4xq0aq1hmvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "1ir33hm2wl26pqhpdgw3vb7bws16x6wlqy68lbv6w4xq0aq1hmvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
, {"uuid": "eclipse@blackjackshellac.ca", "name": "eclipse", "pname": "eclipse", "description": "eclipse clipboard interface with item encryption\n\nAdded encryption of clipboard items. Encrypted items can be\nsaved to disk in a folder of your choice. These items are persisted\nbetween sessions using openssl to encrypt the content.\n\nEclipse uses dbus to communicate with the gpaste daemon.\n\nThe following utilities are required,\n\n# for example, on fedora (add gpaste-ui for gpaste settings gui)\n$ sudo dnf install gpaste openssl\n# ubuntu\n$ sudo apt install gpaste openssl\n\nNow works with Gpaste 1 and Gpaste 2 on GS 3.36, 3.38 and 40\n\nIf updating the extension reports an ERROR it should work after the next reboot or if you logout and login again. If you're not running on Wayland you should be able to just restart the shell (Alt+F2,r).\n\nPlease report issues on github.\n", "link": "https://extensions.gnome.org/extension/4246/eclipse/", "shell_version_map": {"38": {"version": "8", "sha256": "09j5f8p23m4v2bdad582497r194z05x4izc2wywp9nhv1nldcs3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgY2xpcGJvYXJkIGludGVyZmFjZSB3aXRoIGl0ZW0gZW5jcnlwdGlvblxuXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcy4gRW5jcnlwdGVkIGl0ZW1zIGNhbiBiZVxuc2F2ZWQgdG8gZGlzayBpbiBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gVGhlc2UgaXRlbXMgYXJlIHBlcnNpc3RlZFxuYmV0d2VlbiBzZXNzaW9ucyB1c2luZyBvcGVuc3NsIHRvIGVuY3J5cHQgdGhlIGNvbnRlbnQuXG5cbkVjbGlwc2UgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb24uXG5cblRoZSBmb2xsb3dpbmcgdXRpbGl0aWVzIGFyZSByZXF1aXJlZCxcblxuIyBmb3IgZXhhbXBsZSwgb24gZmVkb3JhIChhZGQgZ3Bhc3RlLXVpIGZvciBncGFzdGUgc2V0dGluZ3MgZ3VpKVxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG4jIHVidW50dVxuJCBzdWRvIGFwdCBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG5cbk5vdyB3b3JrcyB3aXRoIEdwYXN0ZSAxIGFuZCBHcGFzdGUgMiBvbiBHUyAzLjM2LCAzLjM4IGFuZCA0MFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiBJZiB5b3UncmUgbm90IHJ1bm5pbmcgb24gV2F5bGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXN0YXJ0IHRoZSBzaGVsbCAoQWx0K0YyLHIpLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBnaXRodWIuXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogImVjbGlwc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZWNsaXBzZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiZWNsaXBzZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "09j5f8p23m4v2bdad582497r194z05x4izc2wywp9nhv1nldcs3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgY2xpcGJvYXJkIGludGVyZmFjZSB3aXRoIGl0ZW0gZW5jcnlwdGlvblxuXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcy4gRW5jcnlwdGVkIGl0ZW1zIGNhbiBiZVxuc2F2ZWQgdG8gZGlzayBpbiBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gVGhlc2UgaXRlbXMgYXJlIHBlcnNpc3RlZFxuYmV0d2VlbiBzZXNzaW9ucyB1c2luZyBvcGVuc3NsIHRvIGVuY3J5cHQgdGhlIGNvbnRlbnQuXG5cbkVjbGlwc2UgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb24uXG5cblRoZSBmb2xsb3dpbmcgdXRpbGl0aWVzIGFyZSByZXF1aXJlZCxcblxuIyBmb3IgZXhhbXBsZSwgb24gZmVkb3JhIChhZGQgZ3Bhc3RlLXVpIGZvciBncGFzdGUgc2V0dGluZ3MgZ3VpKVxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG4jIHVidW50dVxuJCBzdWRvIGFwdCBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG5cbk5vdyB3b3JrcyB3aXRoIEdwYXN0ZSAxIGFuZCBHcGFzdGUgMiBvbiBHUyAzLjM2LCAzLjM4IGFuZCA0MFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiBJZiB5b3UncmUgbm90IHJ1bm5pbmcgb24gV2F5bGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXN0YXJ0IHRoZSBzaGVsbCAoQWx0K0YyLHIpLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBnaXRodWIuXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogImVjbGlwc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZWNsaXBzZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiZWNsaXBzZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
, {"uuid": "audio-switcher@albertomosconi", "name": "Audio Switcher 40", "pname": "audio-switcher-40", "description": "Adds a switch for choosing audio input/output to the system menu in GNOME 40. (Makes InputSlider always visible)", "link": "https://extensions.gnome.org/extension/4248/audio-switcher-40/", "shell_version_map": {"38": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "shell-configurator@adeswanta", "name": "Shell Configurator", "pname": "shell-configurator", "description": "Configure and customize GNOME Shell with advanced settings.", "link": "https://extensions.gnome.org/extension/4254/shell-configurator/", "shell_version_map": {"38": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "io.github.mreditor.gnome-shell-extensions.scroll-panel", "name": "Scroll Panel", "pname": "scroll-panel", "description": "This extension allows switching between windows or workspaces by scrolling Gnome Shell topbar with mouse (both in overview and workspace modes).", "link": "https://extensions.gnome.org/extension/4257/scroll-panel/", "shell_version_map": {"40": {"version": "5", "sha256": "0qhgazsrbk8sflj19whcqk0wmjrsbyg1cxcys5ynxi37vsh0ispw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIG9yIHdvcmtzcGFjZXMgYnkgc2Nyb2xsaW5nIEdub21lIFNoZWxsIHRvcGJhciB3aXRoIG1vdXNlIChib3RoIGluIG92ZXJ2aWV3IGFuZCB3b3Jrc3BhY2UgbW9kZXMpLiIsCiAgImdldHRleHQtZG9tYWluIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgIm5hbWUiOiAiU2Nyb2xsIFBhbmVsIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICI0LjEuMytnaXQtNTIzZjA4ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJpby5naXRodWIubXJlZGl0b3IuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5zY3JvbGwtcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXJFRGl0b3IvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcm9sbC1wYW5lbCIsCiAgInV1aWQiOiAiaW8uZ2l0aHViLm1yZWRpdG9yLmdub21lLXNoZWxsLWV4dGVuc2lvbnMuc2Nyb2xsLXBhbmVsIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "io.github.mreditor.gnome-shell-extensions.scroll-panel", "name": "Scroll Panel", "pname": "scroll-panel", "description": "This extension allows switching between windows or workspaces by scrolling Gnome Shell topbar with mouse (both in overview and workspace modes).", "link": "https://extensions.gnome.org/extension/4257/scroll-panel/", "shell_version_map": {"40": {"version": "6", "sha256": "0505zv1sbdd00pk1nfsjwqycq4mzih19r128aqpm35q4wj6frpn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIG9yIHdvcmtzcGFjZXMgYnkgc2Nyb2xsaW5nIEdub21lIFNoZWxsIHRvcGJhciB3aXRoIG1vdXNlIChib3RoIGluIG92ZXJ2aWV3IGFuZCB3b3Jrc3BhY2UgbW9kZXMpLiIsCiAgImdldHRleHQtZG9tYWluIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgIm5hbWUiOiAiU2Nyb2xsIFBhbmVsIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICI0LjEuNCtnaXQtMzdmMGM3YyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJpby5naXRodWIubXJlZGl0b3IuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5zY3JvbGwtcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21yRURpdG9yL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JvbGwtcGFuZWwiLAogICJ1dWlkIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0505zv1sbdd00pk1nfsjwqycq4mzih19r128aqpm35q4wj6frpn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIG9yIHdvcmtzcGFjZXMgYnkgc2Nyb2xsaW5nIEdub21lIFNoZWxsIHRvcGJhciB3aXRoIG1vdXNlIChib3RoIGluIG92ZXJ2aWV3IGFuZCB3b3Jrc3BhY2UgbW9kZXMpLiIsCiAgImdldHRleHQtZG9tYWluIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgIm5hbWUiOiAiU2Nyb2xsIFBhbmVsIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICI0LjEuNCtnaXQtMzdmMGM3YyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJpby5naXRodWIubXJlZGl0b3IuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5zY3JvbGwtcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21yRURpdG9yL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JvbGwtcGFuZWwiLAogICJ1dWlkIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "wb@pwall.github.com", "name": "WindowButtons", "pname": "windowbuttons", "description": "This is an extension for Gnome 3.38 which puts minimize and close buttons in the top panel.", "link": "https://extensions.gnome.org/extension/4261/windowbuttons/", "shell_version_map": {"38": {"version": "6", "sha256": "1w9j3rmn8yhppfkxrgyfvws2hsr24ki60vi8d73hdhifpnfps2sy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYW4gZXh0ZW5zaW9uIGZvciBHbm9tZSAzLjM4IHdoaWNoIHB1dHMgbWluaW1pemUgYW5kIGNsb3NlIGJ1dHRvbnMgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIldpbmRvd0J1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QV2FsbDIyMjIvV0IiLAogICJ1dWlkIjogIndiQHB3YWxsLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "rippleremove@slippinggitty", "name": "Ripple Remove", "pname": "ripple-remove", "description": "Removes the ripple effect from the Activities hot corner", "link": "https://extensions.gnome.org/extension/4264/ripple-remove/", "shell_version_map": {"40": {"version": "1", "sha256": "1dnk8nfnv5hp8c11fzhn5vscicij4lk9i1vz25fz6sjc3rn1a9pq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgdGhlIHJpcHBsZSBlZmZlY3QgZnJvbSB0aGUgQWN0aXZpdGllcyBob3QgY29ybmVyIiwKICAibmFtZSI6ICJSaXBwbGUgUmVtb3ZlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5zbGlwcGluZ2l0dHkucmlwcGxlcmVtb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyaXBwbGVyZW1vdmVAc2xpcHBpbmdnaXR0eSIsCiAgInZlcnNpb24iOiAxCn0="}}}
, {"uuid": "quickmenu@slippinggitty", "name": "Quick Menu [DEAD]", "pname": "quick-menu", "description": "This is a fork of fedoramenu (which is a fork of Big Sur Menu by fausto) that scrubs references of Fedora by replacing the icon with the GNOME logo.\n\nQuick Menu is a panel applet similar to the Apple menu found on macOS.\n\nEDIT: This extension's purpose is dead. Check out Tofu Menu, which is fedoramenu, but with the ability to change the icon. https://extensions.gnome.org/extension/4272/tofu-menu/", "link": "https://extensions.gnome.org/extension/4266/quick-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1qla029n79366a7xvg2d9v0wa7272bqj40ggvbjrfsbd8x066aca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBmb3JrIG9mIGZlZG9yYW1lbnUgKHdoaWNoIGlzIGEgZm9yayBvZiBCaWcgU3VyIE1lbnUgYnkgZmF1c3RvKSB0aGF0IHNjcnVicyByZWZlcmVuY2VzIG9mIEZlZG9yYSBieSByZXBsYWNpbmcgdGhlIGljb24gd2l0aCB0aGUgR05PTUUgbG9nby5cblxuUXVpY2sgTWVudSBpcyBhIHBhbmVsIGFwcGxldCBzaW1pbGFyIHRvIHRoZSBBcHBsZSBtZW51IGZvdW5kIG9uIG1hY09TLlxuXG5FRElUOiBUaGlzIGV4dGVuc2lvbidzIHB1cnBvc2UgaXMgZGVhZC4gQ2hlY2sgb3V0IFRvZnUgTWVudSwgd2hpY2ggaXMgZmVkb3JhbWVudSwgYnV0IHdpdGggdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBpY29uLiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjcyL3RvZnUtbWVudS8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWljay1tZW51IiwKICAibmFtZSI6ICJRdWljayBNZW51IFtERUFEXSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuc2xpcHBpbmdpdHR5LnF1aWNrLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2xpcHBpbmdHaXR0eS9xdWlja21lbnUiLAogICJ1dWlkIjogInF1aWNrbWVudUBzbGlwcGluZ2dpdHR5IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "show-desktop-applet@valent-in", "name": "Show Desktop Applet", "pname": "show-desktop-applet", "description": "Minimize/unminimize all open windows with a single click.\n\nForked from https://extensions.gnome.org/extension/1194/show-desktop-button/\n\nFeatures:\n- Windows-like behavior\n- Can be placed at the end of panel\n- Hotkey support (can be activated in settings)", "link": "https://extensions.gnome.org/extension/4267/show-desktop-applet/", "shell_version_map": {"38": {"version": "2", "sha256": "0ybzzr3gmii29lpjqzh7yad9yyvz1fg8gb3ip6lki2l84hs3aa0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZhbGVudC1pbi9TaG93LURlc2t0b3AtQXBwbGV0IiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0QHZhbGVudC1pbiIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0ybzzr3gmii29lpjqzh7yad9yyvz1fg8gb3ip6lki2l84hs3aa0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZhbGVudC1pbi9TaG93LURlc2t0b3AtQXBwbGV0IiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0QHZhbGVudC1pbiIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "11", "sha256": "0xv73xzsr9jsx97mi4gg7bbwi06yk7qziqmxwfiv160dx5fvzkjg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "0xv73xzsr9jsx97mi4gg7bbwi06yk7qziqmxwfiv160dx5fvzkjg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
, {"uuid": "tofumenu@tofu", "name": "Tofu Menu", "pname": "tofu-menu", "description": "Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike.\n\nhttps://github.com/tofutech/tofumenu", "link": "https://extensions.gnome.org/extension/4272/tofu-menu/", "shell_version_map": {"40": {"version": "2", "sha256": "05ndbjvvz0v1y8iq6ngqylz4z1ld6q5ibhkr5dh24wqc4wiky30v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyBtZW51IGZvciB0aGUgR05PTUUgcGFuZWwgd2l0aCBvcHRpb25zIHRoYXQgaGVscCBlYXNlIHRoZSB3b3JrZmxvdyBmb3IgbmV3Y29tZXJzIGFuZCBwb3dlciB1c2VycyBhbGlrZS5cblxuaHR0cHM6Ly9naXRodWIuY29tL3RvZnV0ZWNoL3RvZnVtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmVkb3JhLW1lbnUiLAogICJuYW1lIjogIlRvZnUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcudG9mdS5mZWRvcmEtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9mdW1lbnVAdG9mdSIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "cryptostash@filidorwiese.nl", "name": "CryptoStash", "pname": "cryptostash", "description": "Keep an eye on the real time value of your crypto coins collections.\n\nYou can create multiple \"stashes\" (portfolios) of coins and monitor the accumulated value in USD or EUR. Or if you prefer, you can simply track the current value of your favorite coin.", "link": "https://extensions.gnome.org/extension/4276/cryptostash/", "shell_version_map": {"38": {"version": "4", "sha256": "0n1452ky1dppcxazgqxv5jc91l4piwp64rmc9b41ak3792j1sgbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcl91cmwiOiAiaHR0cHM6Ly9maWxpZG9yd2llc2UubmwiLAogICJkZXNjcmlwdGlvbiI6ICJLZWVwIGFuIGV5ZSBvbiB0aGUgcmVhbCB0aW1lIHZhbHVlIG9mIHlvdXIgY3J5cHRvIGNvaW5zIGNvbGxlY3Rpb25zLlxuXG5Zb3UgY2FuIGNyZWF0ZSBtdWx0aXBsZSBcInN0YXNoZXNcIiAocG9ydGZvbGlvcykgb2YgY29pbnMgYW5kIG1vbml0b3IgdGhlIGFjY3VtdWxhdGVkIHZhbHVlIGluIFVTRCBvciBFVVIuIE9yIGlmIHlvdSBwcmVmZXIsIHlvdSBjYW4gc2ltcGx5IHRyYWNrIHRoZSBjdXJyZW50IHZhbHVlIG9mIHlvdXIgZmF2b3JpdGUgY29pbi4iLAogICJuYW1lIjogIkNyeXB0b1N0YXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNyeXB0by1zdGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ0YWciOiAxLjMsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmlsaWRvcndpZXNlL2dub21lLXNoZWxsLWNyeXB0by1zdGFzaCIsCiAgInV1aWQiOiAiY3J5cHRvc3Rhc2hAZmlsaWRvcndpZXNlLm5sIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "xmlfix@pwall.github.com", "name": "XML-Fix", "pname": "xml-fix", "description": "Fixes the XML-Codes displaying instead of the characters on notifications.", "link": "https://extensions.gnome.org/extension/4279/xml-fix/", "shell_version_map": {"38": {"version": "2", "sha256": "1c9qa3ky873hkckylsbv0s7q9bmsnia7h8mlc36i7xz7h1ml6fpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeGVzIHRoZSBYTUwtQ29kZXMgZGlzcGxheWluZyBpbnN0ZWFkIG9mIHRoZSBjaGFyYWN0ZXJzIG9uIG5vdGlmaWNhdGlvbnMuIiwKICAibmFtZSI6ICJYTUwtRml4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFdhbGwyMjIyL1hNTEZpeCIsCiAgInV1aWQiOiAieG1sZml4QHB3YWxsLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "gnometoggle@foreverxml.github.io", "name": "Gnome Toggle", "pname": "gnome-toggle", "description": "Turn on your GNOME dark mode! (For up-to-date versions, download from GitHub.)", "link": "https://extensions.gnome.org/extension/4287/gnome-toggle/", "shell_version_map": {"38": {"version": "1", "sha256": "1a1qvrdq0xglr0lf4pglaxhn03k9qxhh77n4g0d51r419l4y6n2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm4gb24geW91ciBHTk9NRSBkYXJrIG1vZGUhIChGb3IgdXAtdG8tZGF0ZSB2ZXJzaW9ucywgZG93bmxvYWQgZnJvbSBHaXRIdWIuKSIsCiAgIm5hbWUiOiAiR25vbWUgVG9nZ2xlIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImZvcmV2ZXJ4bWxAdHV0YS5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JldmVyeG1sL2dub21lLXRvZ2dsZSIsCiAgInV1aWQiOiAiZ25vbWV0b2dnbGVAZm9yZXZlcnhtbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1a1qvrdq0xglr0lf4pglaxhn03k9qxhh77n4g0d51r419l4y6n2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm4gb24geW91ciBHTk9NRSBkYXJrIG1vZGUhIChGb3IgdXAtdG8tZGF0ZSB2ZXJzaW9ucywgZG93bmxvYWQgZnJvbSBHaXRIdWIuKSIsCiAgIm5hbWUiOiAiR25vbWUgVG9nZ2xlIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImZvcmV2ZXJ4bWxAdHV0YS5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JldmVyeG1sL2dub21lLXRvZ2dsZSIsCiAgInV1aWQiOiAiZ25vbWV0b2dnbGVAZm9yZXZlcnhtbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "instantworkspaceswitcher@amalantony.net", "name": "Disable Workspace Switch Animation for GNOME 40+", "pname": "disable-workspace-switch-animation-for-gnome-40", "description": "Disables the workspace switch animation while preserving all other animations - instantly switch between workspaces with keyboard shortcuts, akin to a window manager like i3.", "link": "https://extensions.gnome.org/extension/4290/disable-workspace-switch-animation-for-gnome-40/", "shell_version_map": {"40": {"version": "2", "sha256": "11b5cym8x6p0zi9r5lk94c2f4jkbx1x04wzzfbmnpf0hrp60j6ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMsIGFraW4gdG8gYSB3aW5kb3cgbWFuYWdlciBsaWtlIGkzLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSBXb3Jrc3BhY2UgU3dpdGNoIEFuaW1hdGlvbiBmb3IgR05PTUUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYWxhbnRvbnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWluc3RhbnQtd29ya3NwYWNlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpbnN0YW50d29ya3NwYWNlc3dpdGNoZXJAYW1hbGFudG9ueS5uZXQiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "instantworkspaceswitcher@amalantony.net", "name": "Disable Workspace Switch Animation for GNOME 40+", "pname": "disable-workspace-switch-animation-for-gnome-40", "description": "Disables the workspace switch animation while preserving all other animations - instantly switch between workspaces with keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4290/disable-workspace-switch-animation-for-gnome-40/", "shell_version_map": {"40": {"version": "3", "sha256": "13jbmsq3h5d5isp57pyrkds4dr6isvnsglg0ivhkjblnx0cqyk94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYWxhbnRvbnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWluc3RhbnQtd29ya3NwYWNlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpbnN0YW50d29ya3NwYWNlc3dpdGNoZXJAYW1hbGFudG9ueS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "13jbmsq3h5d5isp57pyrkds4dr6isvnsglg0ivhkjblnx0cqyk94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYWxhbnRvbnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWluc3RhbnQtd29ya3NwYWNlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpbnN0YW50d29ya3NwYWNlc3dpdGNoZXJAYW1hbGFudG9ueS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "top-panel-notification-icons@5th0.github.com", "name": "Top Panel Notification Icons", "pname": "top-panel-notification-icons", "description": "Display notification icons in the Top", "link": "https://extensions.gnome.org/extension/4293/top-panel-notification-icons/", "shell_version_map": {"38": {"version": "1", "sha256": "0s84r45nc1kyv6sc6a9jbxv981f1ih8g2nfdzrzd33n3032f30px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbm90aWZpY2F0aW9uIGljb25zIGluIHRoZSBUb3AiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcC1wYW5lbC1ub3RpZmljYXRpb24taWNvbnNANXRoMC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "0s84r45nc1kyv6sc6a9jbxv981f1ih8g2nfdzrzd33n3032f30px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbm90aWZpY2F0aW9uIGljb25zIGluIHRoZSBUb3AiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcC1wYW5lbC1ub3RpZmljYXRpb24taWNvbnNANXRoMC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "custom-menu-panel@AndreaBenini", "name": "custom-menu-panel", "pname": "custom-menu-panel", "description": "Quick custom menu for launching your favorite applications", "link": "https://extensions.gnome.org/extension/4295/custom-menu-panel/", "shell_version_map": {"40": {"version": "2", "sha256": "12d8p8cmsq93pmyd6y07jx7r0ls4h7pfqlhp8bvmsw48gmiv5sq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGN1c3RvbSBtZW51IGZvciBsYXVuY2hpbmcgeW91ciBmYXZvcml0ZSBhcHBsaWNhdGlvbnMiLAogICJuYW1lIjogImN1c3RvbS1tZW51LXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjdXN0b20tbWVudS1wYW5lbEBBbmRyZWFCZW5pbmkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"uuid": "clean-system-menu@astrapi.de", "name": "Clean System Menu", "pname": "clean-system-menu", "description": "Cleanup the System Menu from Power Options", "link": "https://extensions.gnome.org/extension/4298/clean-system-menu/", "shell_version_map": {"40": {"version": "4", "sha256": "1x3fvi8qbbbqa9nc5xqp7ql2djcrch2w5azw0xq1dampdgz1976q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsZWFudXAgdGhlIFN5c3RlbSBNZW51IGZyb20gUG93ZXIgT3B0aW9ucyIsCiAgIm5hbWUiOiAiQ2xlYW4gU3lzdGVtIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvYXN0cmFwaS9jbGVhbi1zeXN0ZW0tbWVudSIsCiAgInV1aWQiOiAiY2xlYW4tc3lzdGVtLW1lbnVAYXN0cmFwaS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
@@ -481,28 +499,28 @@
, {"uuid": "user-pics@comfy", "name": "User Pics", "pname": "user-pics", "description": "lucasalveslm's User Account Image for gnome-shell 3.38", "link": "https://extensions.gnome.org/extension/4301/user-pics/", "shell_version_map": {"38": {"version": "3", "sha256": "1rv6x551dm3hynfkm291b4c552j9d6q89ixmrq0x97xgw75n14fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImx1Y2FzYWx2ZXNsbSdzIFVzZXIgQWNjb3VudCBJbWFnZSBmb3IgZ25vbWUtc2hlbGwgMy4zOCIsCiAgIm5hbWUiOiAiVXNlciBQaWNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInVzZXItcGljc0Bjb21meSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "screendarker@yingshaoxo.github.com", "name": "Screen Darker", "pname": "screen-darker", "description": "Help you do a switch between a darker screen and brighter screen by one click.", "link": "https://extensions.gnome.org/extension/4304/screen-darker/", "shell_version_map": {"38": {"version": "1", "sha256": "1zlncw0y5crq6n0slhq1f9npzvkkcyh0187z88mzycr55nl4rsx8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHAgeW91IGRvIGEgc3dpdGNoIGJldHdlZW4gYSBkYXJrZXIgc2NyZWVuIGFuZCBicmlnaHRlciBzY3JlZW4gYnkgb25lIGNsaWNrLiIsCiAgIm5hbWUiOiAiU2NyZWVuIERhcmtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3lpbmdzaGFveG8vZ25vbWUtc2hlbGwtc2NyZWVuLWRhcmtlciIsCiAgInV1aWQiOiAic2NyZWVuZGFya2VyQHlpbmdzaGFveG8uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
, {"uuid": "umi-coin-rate@exposedcat", "name": "UMI Coin Rate", "pname": "umi-coin-rate", "description": "Add UMI coin rate to the panel", "link": "https://extensions.gnome.org/extension/4307/umi-coin-rate/", "shell_version_map": {"38": {"version": "5", "sha256": "13fh82kwma7qdis6ny0c5bw9fxx103p6mj2434fsgfra3d1k8aqh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBVTUkgY29pbiByYXRlIHRvIHRoZSBwYW5lbCIsCiAgIm5hbWUiOiAiVU1JIENvaW4gUmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3VtaS1jb2luLXJhdGUiLAogICJ1dWlkIjogInVtaS1jb2luLXJhdGVAZXhwb3NlZGNhdCIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "13fh82kwma7qdis6ny0c5bw9fxx103p6mj2434fsgfra3d1k8aqh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBVTUkgY29pbiByYXRlIHRvIHRoZSBwYW5lbCIsCiAgIm5hbWUiOiAiVU1JIENvaW4gUmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3VtaS1jb2luLXJhdGUiLAogICJ1dWlkIjogInVtaS1jb2luLXJhdGVAZXhwb3NlZGNhdCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "network-stats@gnome.noroadsleft.xyz", "name": "Network Stats", "pname": "network-stats", "description": "Displays internet upload speed, download speed, bandwidth, data usage. \n\n visit github page for instructions.", "link": "https://extensions.gnome.org/extension/4308/network-stats/", "shell_version_map": {"38": {"version": "7", "sha256": "038p5z4f6463hc96nhkxx232nwz7jnpcimww7cprfgqr8fl7pncv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLiIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25vcm9hZHNsZWZ0MDAwL2dub21lLW5ldHdvcmstc3RhdHMiLAogICJ1dWlkIjogIm5ldHdvcmstc3RhdHNAZ25vbWUubm9yb2Fkc2xlZnQueHl6IiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "network-stats@gnome.noroadsleft.xyz", "name": "Network Stats", "pname": "network-stats", "description": "Displays internet upload speed, download speed, bandwidth, data usage. \n\n visit github page for instructions, suggestions and feature requests.\n\nERROR while updating extension ? restart your system or reload gnome shell.\nAlt + F2 then r + Enter", "link": "https://extensions.gnome.org/extension/4308/network-stats/", "shell_version_map": {"38": {"version": "9", "sha256": "1k8j46wpqgwch1wa4cdb9jpii93lkax7jsj2fksfm32zxda8b6sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy5cblxuRVJST1Igd2hpbGUgdXBkYXRpbmcgZXh0ZW5zaW9uID8gcmVzdGFydCB5b3VyIHN5c3RlbSBvciByZWxvYWQgZ25vbWUgc2hlbGwuXG5BbHQgKyBGMiAgdGhlbiAgciArIEVudGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmV0d29yay1zdGF0cyIsCiAgIm5hbWUiOiAiTmV0d29yayBTdGF0cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uZXR3b3JrLXN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9yb2Fkc2xlZnQwMDAvZ25vbWUtbmV0d29yay1zdGF0cyIsCiAgInV1aWQiOiAibmV0d29yay1zdGF0c0Bnbm9tZS5ub3JvYWRzbGVmdC54eXoiLAogICJ2ZXJzaW9uIjogOQp9"}}}
, {"uuid": "screen-lock@garciabaameiro.com", "name": "Screen lock", "pname": "extension-list", "description": "Simple gnome shell extension to use xscreensaver in top panel", "link": "https://extensions.gnome.org/extension/4311/extension-list/", "shell_version_map": {"40": {"version": "1", "sha256": "1jas7pcn3a28fnfs3azrbiqf22gx337js6if8v8vsb15994pbak6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gdG8gdXNlIHhzY3JlZW5zYXZlciBpbiB0b3AgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzY3JlZW4tbG9jayIsCiAgIm5hbWUiOiAiU2NyZWVuIGxvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuLWxvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2F3eWVyMTMvc2NyZWVuLWxvY2siLAogICJ1dWlkIjogInNjcmVlbi1sb2NrQGdhcmNpYWJhYW1laXJvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "force-show-osk@bruh.ltd", "name": "Force Show OSK", "pname": "force-show-osk", "description": "Show the on-screen keyboard regardless of whether the touch mode is enabled", "link": "https://extensions.gnome.org/extension/4316/force-show-osk/", "shell_version_map": {"40": {"version": "1", "sha256": "16ww0hcdgl9mdkh38l2p0fsc5166mvid7q9r0fbym5xzfzxvhkw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MS5hbHBoYSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2tpcmJ5a2V2aW5zb24vZm9yY2Utc2hvdy1vc2siLAogICJ1dWlkIjogImZvcmNlLXNob3ctb3NrQGJydWgubHRkIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "force-show-osk@bruh.ltd", "name": "Force Show OSK", "pname": "force-show-osk", "description": "Show the on-screen keyboard regardless of whether the touch mode is enabled", "link": "https://extensions.gnome.org/extension/4316/force-show-osk/", "shell_version_map": {"40": {"version": "3", "sha256": "0p2v36bliaa6i85b4r0g38ih9fidn95dwmyhc3dygvynjzvvv56b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2tpcmJ5a2V2aW5zb24vZm9yY2Utc2hvdy1vc2siLAogICJ1dWlkIjogImZvcmNlLXNob3ctb3NrQGJydWgubHRkIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "0p2v36bliaa6i85b4r0g38ih9fidn95dwmyhc3dygvynjzvvv56b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2tpcmJ5a2V2aW5zb24vZm9yY2Utc2hvdy1vc2siLAogICJ1dWlkIjogImZvcmNlLXNob3ctb3NrQGJydWgubHRkIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "hide-activities-button@nmingori.gnome-shell-extensions.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hide Activities Button on the top panel. For Gnome 40 or 3.6+", "link": "https://extensions.gnome.org/extension/4325/hide-activities-button/", "shell_version_map": {"38": {"version": "1", "sha256": "0644h9cqy07h1fgr9wcjp4agvszrcpk6f0yr725hxfil600k5m9b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24gb24gdGhlIHRvcCBwYW5lbC4gRm9yIEdub21lIDQwIG9yIDMuNisiLAogICJuYW1lIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuNiIsCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25taW5nb3JpL2dub21lLWhpZGUtYWN0aXRpdmllcy1idXR0b24iLAogICJ1dWlkIjogImhpZGUtYWN0aXZpdGllcy1idXR0b25Abm1pbmdvcmkuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5vcmciLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "0644h9cqy07h1fgr9wcjp4agvszrcpk6f0yr725hxfil600k5m9b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24gb24gdGhlIHRvcCBwYW5lbC4gRm9yIEdub21lIDQwIG9yIDMuNisiLAogICJuYW1lIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuNiIsCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25taW5nb3JpL2dub21lLWhpZGUtYWN0aXRpdmllcy1idXR0b24iLAogICJ1dWlkIjogImhpZGUtYWN0aXZpdGllcy1idXR0b25Abm1pbmdvcmkuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5vcmciLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "apt-shortcuts@rx1310", "name": "Shortcuts for APT", "pname": "shortcuts-for-apt", "description": "A small extension that adds buttons to the panel to check for APT updates through the terminal without entering commands.", "link": "https://extensions.gnome.org/extension/4328/shortcuts-for-apt/", "shell_version_map": {"38": {"version": "2", "sha256": "1dagzbryg85hgdksxqb90j6ia1b4rfpm46jihviivc8jz1iqb6f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgQVBUIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgQVBUIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J4MTMxMC9nbm9tZS1leHRlbnNpb25fYXB0dXBkYXRlIiwKICAidXVpZCI6ICJhcHQtc2hvcnRjdXRzQHJ4MTMxMCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1dagzbryg85hgdksxqb90j6ia1b4rfpm46jihviivc8jz1iqb6f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgQVBUIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgQVBUIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J4MTMxMC9nbm9tZS1leHRlbnNpb25fYXB0dXBkYXRlIiwKICAidXVpZCI6ICJhcHQtc2hvcnRjdXRzQHJ4MTMxMCIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "ideapad-mode@annexhack.inceptive.ru", "name": "ideapad mode", "pname": "ideapad-mode", "description": "Chargning mode indicator for laptops. Allows to switch the charging mode from conservative or healthy to normal mode. Indicates also which mode you are using now. Works on Lenovo Slim 7.\n\nPlease Report Problems or issues on Gitlab at:\n\nhttps://gitlab.com/annexhack/conservation-mode-lenovo", "link": "https://extensions.gnome.org/extension/4331/ideapad-mode/", "shell_version_map": {"40": {"version": "2", "sha256": "1n2kl02h66hjy18jf0biqfb6f1w13g90rypcmv3jxp2fnksgyi6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYW5uZXhoYWNrL2NvbnNlcnZhdGlvbi1tb2RlLWxlbm92byIsCiAgInV1aWQiOiAiaWRlYXBhZC1tb2RlQGFubmV4aGFjay5pbmNlcHRpdmUucnUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "ideapad-mode@annexhack.inceptive.ru", "name": "ideapad mode", "pname": "ideapad-mode", "description": "Chargning mode indicator for laptops. Allows to switch the charging mode from conservative or healthy to normal mode. Indicates also which mode you are using now. Works on Lenovo Slim 7.\n\nPlease Report Problems or issues on Gitlab at:\n\nhttps://gitlab.com/annexhack/conservation-mode-lenovo", "link": "https://extensions.gnome.org/extension/4331/ideapad-mode/", "shell_version_map": {"40": {"version": "3", "sha256": "0hd0rqkrly27c2bqg7403ng192blrcidb2hrykx4i170i2x604fv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FubmV4aGFjay9jb25zZXJ2YXRpb24tbW9kZS1sZW5vdm8iLAogICJ1dWlkIjogImlkZWFwYWQtbW9kZUBhbm5leGhhY2suaW5jZXB0aXZlLnJ1IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "0hd0rqkrly27c2bqg7403ng192blrcidb2hrykx4i170i2x604fv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FubmV4aGFjay9jb25zZXJ2YXRpb24tbW9kZS1sZW5vdm8iLAogICJ1dWlkIjogImlkZWFwYWQtbW9kZUBhbm5leGhhY2suaW5jZXB0aXZlLnJ1IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"uuid": "ubuntu-yaru-appearance@itzlightyhd", "name": "Ubuntu Appearance (GNOME 40)", "pname": "ubuntu-appearance-gnome-40", "description": "Adds a toggle between the default Ubuntu themes on GNOME 40. Forked from https://github.com/Muqtxdir/yaru-remix-theme-toggle.\n\nIt requires the `gnome-shell-extension-prefs` package installed on your Linux environment.", "link": "https://extensions.gnome.org/extension/4335/ubuntu-appearance-gnome-40/", "shell_version_map": {"40": {"version": "1", "sha256": "16068sihwydg99w82nw6qr3lrnq1vh8jl8fbr3q27i3zyds4xyja", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAiQXBleGllRGV2ZWxvcG1lbnQiLAogICAgIkl0ekxpZ2h0eUhEIgogIF0sCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2dnbGUgYmV0d2VlbiB0aGUgZGVmYXVsdCBVYnVudHUgdGhlbWVzIG9uIEdOT01FIDQwLiBGb3JrZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vTXVxdHhkaXIveWFydS1yZW1peC10aGVtZS10b2dnbGUuXG5cbkl0IHJlcXVpcmVzIHRoZSBgZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByZWZzYCBwYWNrYWdlIGluc3RhbGxlZCBvbiB5b3VyIExpbnV4IGVudmlyb25tZW50LiIsCiAgIm5hbWUiOiAiVWJ1bnR1IEFwcGVhcmFuY2UgKEdOT01FIDQwKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BcGV4aWVEZXZlbG9wbWVudC91YnVudHUteWFydS1hcHBlYXJhbmNlIiwKICAidXVpZCI6ICJ1YnVudHUteWFydS1hcHBlYXJhbmNlQGl0emxpZ2h0eWhkIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "desktopicons-neo@darkdemon", "name": "Desktop Icons: Neo", "pname": "desktop-icons-neo", "description": "This adds desktop icons to GNOME. A fork of Desktop Icons NG with a massive amount of customizations (like icon shapes and curved corners), features, bug fixes, and overall polish.", "link": "https://extensions.gnome.org/extension/4337/desktop-icons-neo/", "shell_version_map": {"38": {"version": "5", "sha256": "0g1bm8day6jn9zbw661dqgdk96vgl1jd3snzwwfgmlkxgxshbq09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RFTTBOQXNzaXNzYW43L2Rlc2t0b3AtaWNvbnMtbmVvIiwKICAidXVpZCI6ICJkZXNrdG9waWNvbnMtbmVvQGRhcmtkZW1vbiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0g1bm8day6jn9zbw661dqgdk96vgl1jd3snzwwfgmlkxgxshbq09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RFTTBOQXNzaXNzYW43L2Rlc2t0b3AtaWNvbnMtbmVvIiwKICAidXVpZCI6ICJkZXNrdG9waWNvbnMtbmVvQGRhcmtkZW1vbiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "allowlockedremotedesktop@kamens.us", "name": "Allow Locked Remote Desktop", "pname": "allow-locked-remote-desktop", "description": "Allow remote desktop connections when the screen is locked", "link": "https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/", "shell_version_map": {"38": {"version": "1", "sha256": "1ilb4rzvng2ndzs4va2f6v5l5rfs2xk15skiw9cch9vazsfshk0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhbGxvd2xvY2tlZHJlbW90ZWRlc2t0b3BAa2FtZW5zLnVzIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "allowlockedremotedesktop@kamens.us", "name": "Allow Locked Remote Desktop", "pname": "allow-locked-remote-desktop", "description": "Allow remote desktop connections when the screen is locked", "link": "https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/", "shell_version_map": {"38": {"version": "2", "sha256": "16kh8zp97905r3w0jx57r27x6lhkmrxavkj57nvp1zvhyhdc8mh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWxsb3dsb2NrZWRyZW1vdGVkZXNrdG9wQGthbWVucy51cyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "16kh8zp97905r3w0jx57r27x6lhkmrxavkj57nvp1zvhyhdc8mh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWxsb3dsb2NrZWRyZW1vdGVkZXNrdG9wQGthbWVucy51cyIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "mumble-ping@maweil.github.com", "name": "MumblePing", "pname": "mumbleping", "description": "Displays how many users are currently online on a mumble server", "link": "https://extensions.gnome.org/extension/4341/mumbleping/", "shell_version_map": {"38": {"version": "1", "sha256": "1xvz9dshkhgil1ivsj47lil3d5g2k6l7l3phdqb11kpd14873xa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "1xvz9dshkhgil1ivsj47lil3d5g2k6l7l3phdqb11kpd14873xa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "simply.workspaces@andyrichardson.dev", "name": "Simply Workspaces", "pname": "simply-workspaces", "description": "Workspace indication with an i3/polybar style.", "link": "https://extensions.gnome.org/extension/4343/simply-workspaces/", "shell_version_map": {"40": {"version": "5", "sha256": "1gkmzf93xnkv58g6vxzvnr8bsybqlwm5qjipvqx3iv3rhygk8i86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0aW9uIHdpdGggYW4gaTMvcG9seWJhciBzdHlsZS4iLAogICJuYW1lIjogIlNpbXBseSBXb3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHlyaWNoYXJkc29uL3NpbXBseS13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzaW1wbHkud29ya3NwYWNlc0BhbmR5cmljaGFyZHNvbi5kZXYiLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"uuid": "nonblockingswitcher@scottworley.com", "name": "Non-Blocking Switcher", "pname": "non-blocking-switcher", "description": "Application switching oughtn't stop all other keyboard shortcuts", "link": "https://extensions.gnome.org/extension/4347/non-blocking-switcher/", "shell_version_map": {"40": {"version": "2", "sha256": "05a59fi1454kxh2q8p5qp3an7ss243v3d67jm37k6xggwd59v5fn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIHN3aXRjaGluZyBvdWdodG4ndCBzdG9wIGFsbCBvdGhlciBrZXlib2FyZCBzaG9ydGN1dHMiLAogICJuYW1lIjogIk5vbi1CbG9ja2luZyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9jaHVjay9ub24tYmxvY2tpbmctc3dpdGNoZXIiLAogICJ1dWlkIjogIm5vbmJsb2NraW5nc3dpdGNoZXJAc2NvdHR3b3JsZXkuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "fluoroom-gnome-top-bar@fluoroom.github.com", "name": "fluoroom's Top Bar", "pname": "fluorooms-top-bar", "description": "Persistent top bar based on Gnome's default style, with some modifications.\n\nThis extension makes black background and screen corners persistent and makes buttons round, but it will respect your current theme's fonts, margins and icons.", "link": "https://extensions.gnome.org/extension/4350/fluorooms-top-bar/", "shell_version_map": {"40": {"version": "4", "sha256": "1gm6ijr66nrs4r7cp2ksdy4sppf3vrg88lvf1gs993q6r894li89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcnNpc3RlbnQgdG9wIGJhciBiYXNlZCBvbiBHbm9tZSdzIGRlZmF1bHQgc3R5bGUsIHdpdGggc29tZSBtb2RpZmljYXRpb25zLlxuXG5UaGlzIGV4dGVuc2lvbiBtYWtlcyBibGFjayBiYWNrZ3JvdW5kIGFuZCBzY3JlZW4gY29ybmVycyBwZXJzaXN0ZW50IGFuZCBtYWtlcyBidXR0b25zIHJvdW5kLCBidXQgaXQgd2lsbCByZXNwZWN0IHlvdXIgY3VycmVudCB0aGVtZSdzIGZvbnRzLCBtYXJnaW5zIGFuZCBpY29ucy4iLAogICJuYW1lIjogImZsdW9yb29tJ3MgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbHVvcm9vbS9mbHVvcm9vbS1nbm9tZS10b3AtYmFyIiwKICAidXVpZCI6ICJmbHVvcm9vbS1nbm9tZS10b3AtYmFyQGZsdW9yb29tLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "mbpbat@prithvivishak.gmail.com", "name": "MacBook Battery Percentage Corrector", "pname": "macbook-battery-percentage-corrector", "description": "Corrects only the battery percentage shown in the panel aggregate menu.\nDoes not mess with UPower or other subsystems.\nThe battery percentage shown on MacBooks does not account for battery degradation. This extension corrects for this.\nSee https://mysorelug.indriyallc.net/articles/2021/06/writing-gnome-extension/index.html for more details.", "link": "https://extensions.gnome.org/extension/4353/macbook-battery-percentage-corrector/", "shell_version_map": {"38": {"version": "2", "sha256": "1vnq9yz0i75gmh6dqn6q6qz6xcbbyjnz763vhrbmmn6qk4siixhm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuXG5UaGUgYmF0dGVyeSBwZXJjZW50YWdlIHNob3duIG9uIE1hY0Jvb2tzIGRvZXMgbm90IGFjY291bnQgZm9yIGJhdHRlcnkgZGVncmFkYXRpb24uIFRoaXMgZXh0ZW5zaW9uIGNvcnJlY3RzIGZvciB0aGlzLlxuU2VlIGh0dHBzOi8vbXlzb3JlbHVnLmluZHJpeWFsbGMubmV0L2FydGljbGVzLzIwMjEvMDYvd3JpdGluZy1nbm9tZS1leHRlbnNpb24vaW5kZXguaHRtbCBmb3IgbW9yZSBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiTWFjQm9vayBCYXR0ZXJ5IFBlcmNlbnRhZ2UgQ29ycmVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B2cHVibGljL21icGJhdC9zcmMvbWFzdGVyLyIsCiAgInV1aWQiOiAibWJwYmF0QHByaXRodml2aXNoYWsuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1vnq9yz0i75gmh6dqn6q6qz6xcbbyjnz763vhrbmmn6qk4siixhm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuXG5UaGUgYmF0dGVyeSBwZXJjZW50YWdlIHNob3duIG9uIE1hY0Jvb2tzIGRvZXMgbm90IGFjY291bnQgZm9yIGJhdHRlcnkgZGVncmFkYXRpb24uIFRoaXMgZXh0ZW5zaW9uIGNvcnJlY3RzIGZvciB0aGlzLlxuU2VlIGh0dHBzOi8vbXlzb3JlbHVnLmluZHJpeWFsbGMubmV0L2FydGljbGVzLzIwMjEvMDYvd3JpdGluZy1nbm9tZS1leHRlbnNpb24vaW5kZXguaHRtbCBmb3IgbW9yZSBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiTWFjQm9vayBCYXR0ZXJ5IFBlcmNlbnRhZ2UgQ29ycmVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B2cHVibGljL21icGJhdC9zcmMvbWFzdGVyLyIsCiAgInV1aWQiOiAibWJwYmF0QHByaXRodml2aXNoYWsuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "mbpbat@prithvivishak.gmail.com", "name": "MacBook Battery Percentage Corrector", "pname": "macbook-battery-percentage-corrector", "description": "Corrects only the battery percentage shown in the panel aggregate menu.\nDoes not mess with UPower or other subsystems. Special thanks to @andenlol.", "link": "https://extensions.gnome.org/extension/4353/macbook-battery-percentage-corrector/", "shell_version_map": {"38": {"version": "3", "sha256": "1vaklxwql5n92iq47bw5p37libhgf5dr5lf6frvvmzwxwk6pha5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuIFNwZWNpYWwgdGhhbmtzIHRvIEBhbmRlbmxvbC4iLAogICJuYW1lIjogIk1hY0Jvb2sgQmF0dGVyeSBQZXJjZW50YWdlIENvcnJlY3RvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvcHZwdWJsaWMvbWJwYmF0L3NyYy9tYXN0ZXIvIiwKICAidXVpZCI6ICJtYnBiYXRAcHJpdGh2aXZpc2hhay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vaklxwql5n92iq47bw5p37libhgf5dr5lf6frvvmzwxwk6pha5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuIFNwZWNpYWwgdGhhbmtzIHRvIEBhbmRlbmxvbC4iLAogICJuYW1lIjogIk1hY0Jvb2sgQmF0dGVyeSBQZXJjZW50YWdlIENvcnJlY3RvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvcHZwdWJsaWMvbWJwYmF0L3NyYy9tYXN0ZXIvIiwKICAidXVpZCI6ICJtYnBiYXRAcHJpdGh2aXZpc2hhay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1vaklxwql5n92iq47bw5p37libhgf5dr5lf6frvvmzwxwk6pha5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuIFNwZWNpYWwgdGhhbmtzIHRvIEBhbmRlbmxvbC4iLAogICJuYW1lIjogIk1hY0Jvb2sgQmF0dGVyeSBQZXJjZW50YWdlIENvcnJlY3RvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvcHZwdWJsaWMvbWJwYmF0L3NyYy9tYXN0ZXIvIiwKICAidXVpZCI6ICJtYnBiYXRAcHJpdGh2aXZpc2hhay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "top-bar-organizer@julian.gse.jsts.xyz", "name": "Top Bar Organizer", "pname": "top-bar-organizer", "description": "Organize the items of the top (menu)bar.\nThis extension required Gnome Shell version 40.\nOrganize the items by going into the extensions settings.\n\n!!! Please make sure you're fully on Gnome 40 / you're using a distribution, which is fully on Gnome 40, since otherwise this extension might not work correctly. This was the case for Manjaro Stable until recently and is probably the case for Ubuntu 21.04 right now. !!!", "link": "https://extensions.gnome.org/extension/4356/top-bar-organizer/", "shell_version_map": {"40": {"version": "3", "sha256": "121a8r063ifv4lv5s07pglxj4h90n3lp6f0jyw4lnbg38v0nqv28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHRoZSBpdGVtcyBvZiB0aGUgdG9wIChtZW51KWJhci5cblRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVkIEdub21lIFNoZWxsIHZlcnNpb24gNDAuXG5Pcmdhbml6ZSB0aGUgaXRlbXMgYnkgZ29pbmcgaW50byB0aGUgZXh0ZW5zaW9ucyBzZXR0aW5ncy5cblxuISEhIFBsZWFzZSBtYWtlIHN1cmUgeW91J3JlIGZ1bGx5IG9uIEdub21lIDQwIC8geW91J3JlIHVzaW5nIGEgZGlzdHJpYnV0aW9uLCB3aGljaCBpcyBmdWxseSBvbiBHbm9tZSA0MCwgc2luY2Ugb3RoZXJ3aXNlIHRoaXMgZXh0ZW5zaW9uIG1pZ2h0IG5vdCB3b3JrIGNvcnJlY3RseS4gVGhpcyB3YXMgdGhlIGNhc2UgZm9yIE1hbmphcm8gU3RhYmxlIHVudGlsIHJlY2VudGx5IGFuZCBpcyBwcm9iYWJseSB0aGUgY2FzZSBmb3IgVWJ1bnR1IDIxLjA0IHJpZ2h0IG5vdy4gISEhIiwKICAibmFtZSI6ICJUb3AgQmFyIE9yZ2FuaXplciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b3AtYmFyLW9yZ2FuaXplciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qdWxpYW5zY2hhY2hlci90b3AtYmFyLW9yZ2FuaXplciIsCiAgInV1aWQiOiAidG9wLWJhci1vcmdhbml6ZXJAanVsaWFuLmdzZS5qc3RzLnh5eiIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "fullscreen-avoider@noobsai.github.com", "name": "Fullscreen Avoider", "pname": "fullscreen-avoider", "description": "Moves the top panel to the secondary monitor if the primary is in fullscreen", "link": "https://extensions.gnome.org/extension/4362/fullscreen-avoider/", "shell_version_map": {"38": {"version": "4", "sha256": "10vm28p2xpvwhzyjw1yfpgsbhahg1w673n73kq9ndx5vlnf9fji9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWF2b2lkZXJAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "3", "sha256": "1gm56qkk98ymhf3q6kwvsx5a5662fap087wy1nyji90kxn6zx7ss", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL2Z1bGxzY3JlZW4tYXZvaWRlciIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "shell-isw@zamraky.cz", "name": "MSI Fan Control", "pname": "msi-fan-control", "description": "Use isw to change MSI laptop fan settings", "link": "https://extensions.gnome.org/extension/4363/msi-fan-control/", "shell_version_map": {"38": {"version": "1", "sha256": "0pl9dxwkw47r4c0f5sxjhh8bxl82r0sjlwsji7pwypkb6m0hh342", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBpc3cgdG8gY2hhbmdlIE1TSSBsYXB0b3AgZmFuIHNldHRpbmdzIiwKICAibmFtZSI6ICJNU0kgRmFuIENvbnRyb2wiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2hlbGwtaXN3QHphbXJha3kuY3oiLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "vertical-window-list@student.gitlab.com", "name": "Vertical Window List", "pname": "vertical-window-list", "description": "Displays opened windows in vertical panel with productivity perks\n\n- left click to open favorites/activate window\n- right click to close\n- middle click to rename\n- drag-and-drop to re-arrange\n- Alt-Tab to cycle\n- adjust panel width, transparency and icon size in extension settings", "link": "https://extensions.gnome.org/extension/4369/vertical-window-list/", "shell_version_map": {"40": {"version": "5", "sha256": "054y4a1fflmdi7k9dd7ipgkzmprjr6v6fhkxxmnw47yavyvm2p0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG9wZW5lZCB3aW5kb3dzIGluIHZlcnRpY2FsIHBhbmVsIHdpdGggcHJvZHVjdGl2aXR5IHBlcmtzXG5cbi0gbGVmdCBjbGljayB0byBvcGVuIGZhdm9yaXRlcy9hY3RpdmF0ZSB3aW5kb3dcbi0gcmlnaHQgY2xpY2sgdG8gY2xvc2Vcbi0gbWlkZGxlIGNsaWNrIHRvIHJlbmFtZVxuLSBkcmFnLWFuZC1kcm9wIHRvIHJlLWFycmFuZ2Vcbi0gQWx0LVRhYiB0byBjeWNsZVxuLSBhZGp1c3QgcGFuZWwgd2lkdGgsIHRyYW5zcGFyZW5jeSBhbmQgaWNvbiBzaXplIGluIGV4dGVuc2lvbiBzZXR0aW5ncyIsCiAgIm5hbWUiOiAiVmVydGljYWwgV2luZG93IExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3R1ZGVudC92ZXJ0aWNhbC13aW5kb3ctbGlzdCIsCiAgInV1aWQiOiAidmVydGljYWwtd2luZG93LWxpc3RAc3R1ZGVudC5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "ShutdownTimer@deminder", "name": "Shutdown Timer", "pname": "shutdowntimer", "description": "Shutdown/reboot/suspend the device after a specific time or wake with a rtc alarm.\n\nThe screen saver will not interrupt the timer. A privileged control script may be installed to control shutdown and rtcwake as user. Additionally, a check command may be configured before shutdown.", "link": "https://extensions.gnome.org/extension/4372/shutdowntimer/", "shell_version_map": {"38": {"version": "14", "sha256": "15lcxnkqcna0al51nqfz4vdz4h4pyq5da1x7gvgiqk9w72ynf6dq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "15lcxnkqcna0al51nqfz4vdz4h4pyq5da1x7gvgiqk9w72ynf6dq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "ShutdownTimer@deminder", "name": "Shutdown Timer", "pname": "shutdowntimer", "description": "Shutdown/reboot/suspend the device after a specific time or wake with a rtc alarm.\n\nThe screen saver will not interrupt the timer. A privileged control script may be installed to control shutdown and rtcwake as user. Additionally, a check command may be configured before shutdown.", "link": "https://extensions.gnome.org/extension/4372/shutdowntimer/", "shell_version_map": {"38": {"version": "18", "sha256": "009dk4v4qdls17fycgbjl7k72z1myymzl862m379gkwipyd9q00b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "009dk4v4qdls17fycgbjl7k72z1myymzl862m379gkwipyd9q00b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "009dk4v4qdls17fycgbjl7k72z1myymzl862m379gkwipyd9q00b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
, {"uuid": "docker_status2@gpouilloux", "name": "Docker Integration", "pname": "docker-integration", "description": "A status menu for managing docker containers.", "link": "https://extensions.gnome.org/extension/4374/docker-integration/", "shell_version_map": {"40": {"version": "1", "sha256": "1ia763h3wbc3d3p9ddb1b9rg5f486y5x3m2k4pblq9f9ca9cjrdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIG1hbmFnaW5nIGRvY2tlciBjb250YWluZXJzLiIsCiAgIm5hbWUiOiAiRG9ja2VyIEludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3BvdWlsbG91eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJfc3RhdHVzMkBncG91aWxsb3V4IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"uuid": "bifocals@shiznatix", "name": "Bifocals", "pname": "bifocals", "description": "Gnome extension adding more window management keyboard shortcuts.\n\n* Left / right 'view split' anchoring cycles through 3 sizes: 1/3, 1/2, and 2/3 of the current screen width.\n*Adds 'mid screen' of centering the window with 3/4 screen height and width.", "link": "https://extensions.gnome.org/extension/4375/bifocals/", "shell_version_map": {"38": {"version": "1", "sha256": "02j0if3bwaws0svaz98054jznrx9pj8zkhy4avsnnhchv2dwmgdi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBhZGRpbmcgbW9yZSB3aW5kb3cgbWFuYWdlbWVudCBrZXlib2FyZCBzaG9ydGN1dHMuXG5cbiogTGVmdCAvIHJpZ2h0ICd2aWV3IHNwbGl0JyBhbmNob3JpbmcgY3ljbGVzIHRocm91Z2ggMyBzaXplczogMS8zLCAxLzIsIGFuZCAyLzMgb2YgdGhlIGN1cnJlbnQgc2NyZWVuIHdpZHRoLlxuKkFkZHMgJ21pZCBzY3JlZW4nIG9mIGNlbnRlcmluZyB0aGUgd2luZG93IHdpdGggMy80IHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoLiIsCiAgIm5hbWUiOiAiQmlmb2NhbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hpem5hdGl4L2JpZm9jYWxzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlmb2NhbHNAc2hpem5hdGl4IiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "02j0if3bwaws0svaz98054jznrx9pj8zkhy4avsnnhchv2dwmgdi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBhZGRpbmcgbW9yZSB3aW5kb3cgbWFuYWdlbWVudCBrZXlib2FyZCBzaG9ydGN1dHMuXG5cbiogTGVmdCAvIHJpZ2h0ICd2aWV3IHNwbGl0JyBhbmNob3JpbmcgY3ljbGVzIHRocm91Z2ggMyBzaXplczogMS8zLCAxLzIsIGFuZCAyLzMgb2YgdGhlIGN1cnJlbnQgc2NyZWVuIHdpZHRoLlxuKkFkZHMgJ21pZCBzY3JlZW4nIG9mIGNlbnRlcmluZyB0aGUgd2luZG93IHdpdGggMy80IHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoLiIsCiAgIm5hbWUiOiAiQmlmb2NhbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hpem5hdGl4L2JpZm9jYWxzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlmb2NhbHNAc2hpem5hdGl4IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "kubectl-context@bernot.dev", "name": "kubectl context", "pname": "kubectl-context", "description": "Displays kubectl current-context and allows selection of a different context using a GUI menu.\n\nRequires kubectl to be installed.", "link": "https://extensions.gnome.org/extension/4377/kubectl-context/", "shell_version_map": {"38": {"version": "1", "sha256": "0divql89gq1z1fjrgf8brvlvjxsibas9c5j72k2g4rhmhcn4wsq2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGt1YmVjdGwgY3VycmVudC1jb250ZXh0IGFuZCBhbGxvd3Mgc2VsZWN0aW9uIG9mIGEgZGlmZmVyZW50IGNvbnRleHQgdXNpbmcgYSBHVUkgbWVudS5cblxuUmVxdWlyZXMga3ViZWN0bCB0byBiZSBpbnN0YWxsZWQuIiwKICAibmFtZSI6ICJrdWJlY3RsIGNvbnRleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iZXJub3QtZGV2L2t1YmVjdGwtY29udGV4dCIsCiAgInV1aWQiOiAia3ViZWN0bC1jb250ZXh0QGJlcm5vdC5kZXYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "kubectl-context@bernot.dev", "name": "kubectl context", "pname": "kubectl-context", "description": "Displays kubectl current-context", "link": "https://extensions.gnome.org/extension/4377/kubectl-context/", "shell_version_map": {"38": {"version": "1", "sha256": "1040dy3m5bpbqqgc60a3l5ia4g0cddfvd8iwiwxm4f7hbi9kksk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGt1YmVjdGwgY3VycmVudC1jb250ZXh0IiwKICAibmFtZSI6ICJrdWJlY3RsIGNvbnRleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iZXJub3QtZGV2L2t1YmVjdGwtY29udGV4dCIsCiAgInV1aWQiOiAia3ViZWN0bC1jb250ZXh0QGJlcm5vdC5kZXYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "kill-port@empios.github.com", "name": "Kill Port", "pname": "kill-port", "description": "Extension to easly kill all process on port", "link": "https://extensions.gnome.org/extension/4378/kill-port/", "shell_version_map": {"38": {"version": "4", "sha256": "1q471wv519rgxdb88gdf2a1q0zaa1v84syrqn8wmfvmkfxszgxzh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlYXNseSBraWxsIGFsbCBwcm9jZXNzIG9uIHBvcnQiLAogICJuYW1lIjogIktpbGwgUG9ydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC41IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImtpbGwtcG9ydEBlbXBpb3MuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "tuned-profile-switcher@vint21h.pp.ua", "name": "TuneD Profile Switcher", "pname": "tuned-profile-switcher", "description": "Displays a list of the TuneD profiles and allows to switch between them.\nOf course, this is works only when TuneD installed and running.", "link": "https://extensions.gnome.org/extension/4381/tuned-profile-switcher/", "shell_version_map": {"40": {"version": "2", "sha256": "04k0l1wa78k5px2d6hbs205x58026fg6swhn6yhb2rqikk65qjym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgbGlzdCBvZiB0aGUgVHVuZUQgcHJvZmlsZXMgYW5kIGFsbG93cyB0byBzd2l0Y2ggYmV0d2VlbiB0aGVtLlxuT2YgY291cnNlLCB0aGlzIGlzIHdvcmtzIG9ubHkgd2hlbiBUdW5lRCBpbnN0YWxsZWQgYW5kIHJ1bm5pbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVuZWQtcHJvZmlsZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiVHVuZUQgUHJvZmlsZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92aW50MjFoL2dub21lLXNoZWxsLWV4dGVuc2lvbi10dW5lZC1wcm9maWxlLXN3aXRjaGVyLyIsCiAgInV1aWQiOiAidHVuZWQtcHJvZmlsZS1zd2l0Y2hlckB2aW50MjFoLnBwLnVhIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "center-area-horizontal-spacing-fixed@trblwlf.tk", "name": "Center Area Horizontal Spacing Fixed", "pname": "center-area-horizontal-spacing-fixed", "description": "Reduce the horizontal spacing between icons in the top-center icon area.\nFork of the \"Status Area Horizontal Spacing\" extension, but for the CENTER area. \nThank you to the original author: mathematical.coffee", "link": "https://extensions.gnome.org/extension/4384/center-area-horizontal-spacing-fixed/", "shell_version_map": {"38": {"version": "2", "sha256": "1i1mrw0yi5qwlxb31qkf9n14w5y2j097iqwpsd79mpxc4njf70nj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1jZW50ZXIgaWNvbiBhcmVhLlxuRm9yayBvZiB0aGUgXCJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmdcIiBleHRlbnNpb24sIGJ1dCBmb3IgdGhlIENFTlRFUiBhcmVhLiBcblRoYW5rIHlvdSB0byB0aGUgb3JpZ2luYWwgYXV0aG9yOiBtYXRoZW1hdGljYWwuY29mZmVlIiwKICAiZGV2LXZlcnNpb24iOiAiMy4wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiQ2VudGVyIEFyZWEgSG9yaXpvbnRhbCBTcGFjaW5nIEZpeGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNlbnRlci1hcmVhLWhvcml6b250YWwtc3BhY2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RhcmJhbGx3YWxmL0dOT01FLWNlbnRlci1hcmVhLWhvcml6b250YWwtc3BhY2luZy1maXhlZCIsCiAgInV1aWQiOiAiY2VudGVyLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nLWZpeGVkQHRyYmx3bGYudGsiLAogICJ2ZXJzaW9uIjogMgp9"}}}
@@ -510,20 +528,53 @@
, {"uuid": "move-ws-switcher-popup@G-dH.github.com", "name": "Move WS Switcher Popup", "pname": "move-ws-switcher-popup", "description": "Move the workspace switcher popup out of the screen center - down for horizontal layout (Gnome 40), to the right for vertical (Gnome 3)", "link": "https://extensions.gnome.org/extension/4396/move-ws-switcher-popup/", "shell_version_map": {"38": {"version": "1", "sha256": "0nsw8qn30rqavnlvfpzvl3qr3rb3mnsqnxwcagdapx9qs10c3g81", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBvdXQgb2YgdGhlIHNjcmVlbiBjZW50ZXIgLSBkb3duIGZvciBob3Jpem9udGFsIGxheW91dCAoR25vbWUgNDApLCB0byB0aGUgcmlnaHQgZm9yIHZlcnRpY2FsIChHbm9tZSAzKSIsCiAgIm5hbWUiOiAiTW92ZSBXUyBTd2l0Y2hlciBQb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibW92ZS13cy1zd2l0Y2hlci1wb3B1cEBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "0nsw8qn30rqavnlvfpzvl3qr3rb3mnsqnxwcagdapx9qs10c3g81", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBvdXQgb2YgdGhlIHNjcmVlbiBjZW50ZXIgLSBkb3duIGZvciBob3Jpem9udGFsIGxheW91dCAoR25vbWUgNDApLCB0byB0aGUgcmlnaHQgZm9yIHZlcnRpY2FsIChHbm9tZSAzKSIsCiAgIm5hbWUiOiAiTW92ZSBXUyBTd2l0Y2hlciBQb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibW92ZS13cy1zd2l0Y2hlci1wb3B1cEBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "move-workspaceSwitcherPopup@GithubUser699.github.com", "name": "Move Workspace Switcher Popup", "pname": "move-workspace-switcher-popup", "description": "Change the position of the WorkspaceSwitcherPopup", "link": "https://extensions.gnome.org/extension/4401/move-workspace-switcher-popup/", "shell_version_map": {"38": {"version": "3", "sha256": "0i2wd06b8x85jblcd1mhh4vwz5s6isilq1p54bl93nvawqixrf2m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIFdvcmtzcGFjZVN3aXRjaGVyUG9wdXAiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtb3ZlLXdvcmtzcGFjZXN3aXRjaGVycG9wdXAiLAogICJuYW1lIjogIk1vdmUgV29ya3NwYWNlIFN3aXRjaGVyIFBvcHVwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dpdGh1YlVzZXI2OTkvTW92ZS13b3Jrc3BhY2VTd2l0Y2hlclBvcHVwLUdOT01FLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibW92ZS13b3Jrc3BhY2VTd2l0Y2hlclBvcHVwQEdpdGh1YlVzZXI2OTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0i2wd06b8x85jblcd1mhh4vwz5s6isilq1p54bl93nvawqixrf2m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIFdvcmtzcGFjZVN3aXRjaGVyUG9wdXAiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtb3ZlLXdvcmtzcGFjZXN3aXRjaGVycG9wdXAiLAogICJuYW1lIjogIk1vdmUgV29ya3NwYWNlIFN3aXRjaGVyIFBvcHVwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dpdGh1YlVzZXI2OTkvTW92ZS13b3Jrc3BhY2VTd2l0Y2hlclBvcHVwLUdOT01FLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibW92ZS13b3Jrc3BhY2VTd2l0Y2hlclBvcHVwQEdpdGh1YlVzZXI2OTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "print-website@ermeso.com", "name": "Print Website", "pname": "print-website", "description": "A extension for print websites.", "link": "https://extensions.gnome.org/extension/4404/print-website/", "shell_version_map": {"40": {"version": "9", "sha256": "1cg1awvfyhhc7ri7vppsjr28c1zwgw9rasyv1jcclgxr558n3n6w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZXh0ZW5zaW9uIGZvciBwcmludCB3ZWJzaXRlcy4iLAogICJuYW1lIjogIlByaW50IFdlYnNpdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXJtZXNvbnNhbXBhaW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50LXdlYnNpdGUiLAogICJ1dWlkIjogInByaW50LXdlYnNpdGVAZXJtZXNvLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
-, {"uuid": "replaceActivitiesText@pratap.fastmail.fm", "name": "Replace Activities Text", "pname": "replace-activities-text", "description": "A Simple Extension to Change 'Activities' Label with Logo and Text.\nYou can Keep Either\n1. Logo or\n2. Text or\n3. Both or\n4. None at all", "link": "https://extensions.gnome.org/extension/4405/replace-activities-text/", "shell_version_map": {"38": {"version": "4", "sha256": "1diqvyr5dxhp4dn0l3i478b6x5lf863aspylz19fiqnr4dnfq4vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "7", "sha256": "1fs71hzmpw4asm1r5bpvlc5awwalnp61w8zb9i2bsk6sk5jd6c1c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "appMenuIcon@pratap.fastmail.fm", "name": "Colored Application Menu Icon", "pname": "app-menu-icon-remove-symbolic", "description": "Remove Symbolic Icons and Saturation Effect for App Menu Icon", "link": "https://extensions.gnome.org/extension/4408/app-menu-icon-remove-symbolic/", "shell_version_map": {"38": {"version": "1", "sha256": "1a9yadm0b2jyiwg771iwzb84yifbnixs6fnhxqmcsz9ivyaidfrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBNZW51SWNvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1a9yadm0b2jyiwg771iwzb84yifbnixs6fnhxqmcsz9ivyaidfrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBNZW51SWNvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "replaceActivitiesText@pratap.fastmail.fm", "name": "Replace Activities Text", "pname": "replace-activities-text", "description": "A Simple Extension to Change 'Activities' Label with Logo and Text.\nYou can Keep Either\n1. Logo or\n2. Text or\n3. Both or\n4. None at all", "link": "https://extensions.gnome.org/extension/4405/replace-activities-text/", "shell_version_map": {"38": {"version": "8", "sha256": "04adx4043d3ni510h44pi3gr0k15a4n0zwr4k5fxisr4yjl1510w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "10", "sha256": "0fkpphd6ly5n7fybrla1a31sqg10cdll44ilz1vc1achphmbxlk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0fkpphd6ly5n7fybrla1a31sqg10cdll44ilz1vc1achphmbxlk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "appMenuIcon@pratap.fastmail.fm", "name": "Colored Application Menu Icon", "pname": "app-menu-icon-remove-symbolic", "description": "Remove Symbolic Icons and Saturation Effect for App Menu Icon", "link": "https://extensions.gnome.org/extension/4408/app-menu-icon-remove-symbolic/", "shell_version_map": {"38": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "gnome-trash@b00f.github.io", "name": "Gnome Trash", "pname": "gnome-trash", "description": "A gnome shell extension to manage your home trash. You can manage trash items from the panel and open or empty the trash.", "link": "https://extensions.gnome.org/extension/4410/gnome-trash/", "shell_version_map": {"38": {"version": "3", "sha256": "03pyala1i21izg5rl4qqh5bxk36fp8d52bs9ggrik2kav420xhhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "Advanced Alt+Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Replacement of Alt+Tab Window Switcher that offers direct activation, type to search, various filtering and sorting settings (switchable on the fly), workspace switching and hotkeys for window control. You can also adjust size of the window previews and app icons.\n\nNote that it's replacement of the \"window switcher\", not the \"app switcher\" - set your keyboard shortcut in Gnome Settings.\n\nHotkeys (in Type to Search mode with the Shift key):\n\n H/L, Left/Right - window selection\n J/K, Up/Down, PgUp/Down - workspace selection\n Space, KP_0/KP_Ins - Show selected window - switch to window workspace and bring it to the front\n Q - Switch window filter mode - ALL / WS / MONITOR\n ;/~/` (key above Tab) - Sort windows by applications, each subsequent key press jumps to the first window of the next app\n G - Toggle sort by workspaces, when base filter is set to ALL\n 1/+/! - Filter out all windows that don't belong to the application of selected window\n E/Insert - Activates the \"Type to Search\" mode, the `Insert` key can turn it off, `Delete` deletes whole typed pattern\n W - Close selected window\n Shift+Del - Force close - kill -9 to application of selected window\n C - Close all windows from window list that belong to the same application as selected window\n A - Toggle window 'Always on Top'. Also switch to window workspace and rise the window. Indicated by the front icon on top instead of bottom. When you press the 'A' key twice, it's actually equivalent to one press of hotkey for 'Show selected window'\n S - Toggle window 'Always on Visible Workspace', indicated by the 'pin' icon. You can move selected window to the current workspace by pressing this key twice.\n X/click outside switcher- Move selected window to the current workspace and to the monitor with mouse pointer\n N - Create New Window of selected application, if the app soupports it.\n V - Move window to selected workspace and maximize it.\n F - Move window to empty workspace next to its current workspace and switch it to fullscreen mode. Next use of this action on the same window moves the window back to its original workspace and turn off the fullscreen mode.\n O - Show application grid, if you need to launch new application.\n T - Creates an thumbnail preview of selected window and place it to the bottom right of the current monitor. You can move the thumbnail anywhere on the screen and you can make as many thumbnails you want\n P - Open preferences window for this extension\n\nFor more information and bug reports follow the link below.\nRestart your Gnome Shell after every update, before you post a bug report.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "4", "sha256": "1fvbiw8fis6m2dr970pxpvqyx61k2kb54gcnsqx861j2q4931akq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdCtUYWIgV2luZG93IFN3aXRjaGVyIHRoYXQgb2ZmZXJzIGRpcmVjdCBhY3RpdmF0aW9uLCB0eXBlIHRvIHNlYXJjaCwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgc2V0dGluZ3MgKHN3aXRjaGFibGUgb24gdGhlIGZseSksIHdvcmtzcGFjZSBzd2l0Y2hpbmcgYW5kIGhvdGtleXMgZm9yIHdpbmRvdyBjb250cm9sLiBZb3UgY2FuIGFsc28gYWRqdXN0IHNpemUgb2YgdGhlIHdpbmRvdyBwcmV2aWV3cyBhbmQgYXBwIGljb25zLlxuXG5Ob3RlIHRoYXQgaXQncyByZXBsYWNlbWVudCBvZiB0aGUgXCJ3aW5kb3cgc3dpdGNoZXJcIiwgbm90IHRoZSBcImFwcCBzd2l0Y2hlclwiIC0gc2V0IHlvdXIga2V5Ym9hcmQgc2hvcnRjdXQgaW4gR25vbWUgU2V0dGluZ3MuXG5cbkhvdGtleXMgKGluIFR5cGUgdG8gU2VhcmNoIG1vZGUgd2l0aCB0aGUgU2hpZnQga2V5KTpcblxuICAgIEgvTCwgTGVmdC9SaWdodCAgICAgICAgIC0gd2luZG93IHNlbGVjdGlvblxuICAgIEovSywgVXAvRG93biwgUGdVcC9Eb3duIC0gd29ya3NwYWNlIHNlbGVjdGlvblxuICAgIFNwYWNlLCBLUF8wL0tQX0lucyAgICAgIC0gU2hvdyBzZWxlY3RlZCB3aW5kb3cgLSBzd2l0Y2ggdG8gd2luZG93IHdvcmtzcGFjZSBhbmQgYnJpbmcgaXQgdG8gdGhlIGZyb250XG4gICAgUSAgICAgICAgICAgICAgICAgICAgICAgLSBTd2l0Y2ggd2luZG93IGZpbHRlciBtb2RlIC0gQUxMIC8gV1MgLyBNT05JVE9SXG4gICAgOy9+L2AgKGtleSBhYm92ZSBUYWIpICAgLSBTb3J0IHdpbmRvd3MgYnkgYXBwbGljYXRpb25zLCBlYWNoIHN1YnNlcXVlbnQga2V5IHByZXNzIGp1bXBzIHRvIHRoZSBmaXJzdCB3aW5kb3cgb2YgdGhlIG5leHQgYXBwXG4gICAgRyAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgc29ydCBieSB3b3Jrc3BhY2VzLCB3aGVuIGJhc2UgZmlsdGVyIGlzIHNldCB0byBBTExcbiAgICAxLysvISAgICAgICAgICAgICAgICAgICAtIEZpbHRlciBvdXQgYWxsIHdpbmRvd3MgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHNlbGVjdGVkIHdpbmRvd1xuICAgIEUvSW5zZXJ0ICAgICAgICAgICAgICAgIC0gQWN0aXZhdGVzIHRoZSBcIlR5cGUgdG8gU2VhcmNoXCIgbW9kZSwgdGhlIGBJbnNlcnRgIGtleSBjYW4gdHVybiBpdCBvZmYsIGBEZWxldGVgIGRlbGV0ZXMgd2hvbGUgdHlwZWQgcGF0dGVyblxuICAgIFcgICAgICAgICAgICAgICAgICAgICAgIC0gQ2xvc2Ugc2VsZWN0ZWQgd2luZG93XG4gICAgU2hpZnQrRGVsICAgICAgICAgICAgICAgLSBGb3JjZSBjbG9zZSAtIGtpbGwgLTkgdG8gYXBwbGljYXRpb24gb2Ygc2VsZWN0ZWQgd2luZG93XG4gICAgQyAgICAgICAgICAgICAgICAgICAgICAgLSBDbG9zZSBhbGwgd2luZG93cyBmcm9tIHdpbmRvdyBsaXN0IHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGFwcGxpY2F0aW9uIGFzIHNlbGVjdGVkIHdpbmRvd1xuICAgIEEgICAgICAgICAgICAgICAgICAgICAgIC0gVG9nZ2xlIHdpbmRvdyAnQWx3YXlzIG9uIFRvcCcuIEFsc28gc3dpdGNoIHRvIHdpbmRvdyB3b3Jrc3BhY2UgYW5kIHJpc2UgdGhlIHdpbmRvdy4gSW5kaWNhdGVkIGJ5IHRoZSBmcm9udCBpY29uIG9uIHRvcCBpbnN0ZWFkIG9mIGJvdHRvbS4gV2hlbiB5b3UgcHJlc3MgdGhlICdBJyBrZXkgdHdpY2UsIGl0J3MgYWN0dWFsbHkgZXF1aXZhbGVudCB0byBvbmUgcHJlc3Mgb2YgaG90a2V5IGZvciAnU2hvdyBzZWxlY3RlZCB3aW5kb3cnXG4gICAgUyAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgd2luZG93ICdBbHdheXMgb24gVmlzaWJsZSBXb3Jrc3BhY2UnLCBpbmRpY2F0ZWQgYnkgdGhlICdwaW4nIGljb24uIFlvdSBjYW4gbW92ZSBzZWxlY3RlZCB3aW5kb3cgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlIGJ5IHByZXNzaW5nIHRoaXMga2V5IHR3aWNlLlxuICAgIFgvY2xpY2sgb3V0c2lkZSBzd2l0Y2hlci0gTW92ZSBzZWxlY3RlZCB3aW5kb3cgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlIGFuZCB0byB0aGUgbW9uaXRvciB3aXRoIG1vdXNlIHBvaW50ZXJcbiAgICBOICAgICAgICAgICAgICAgICAgICAgICAtIENyZWF0ZSBOZXcgV2luZG93IG9mIHNlbGVjdGVkIGFwcGxpY2F0aW9uLCBpZiB0aGUgYXBwIHNvdXBwb3J0cyBpdC5cbiAgICBWICAgICAgICAgICAgICAgICAgICAgICAtIE1vdmUgd2luZG93IHRvIHNlbGVjdGVkIHdvcmtzcGFjZSBhbmQgbWF4aW1pemUgaXQuXG4gICAgRiAgICAgICAgICAgICAgICAgICAgICAgLSBNb3ZlIHdpbmRvdyB0byBlbXB0eSB3b3Jrc3BhY2UgbmV4dCB0byBpdHMgY3VycmVudCB3b3Jrc3BhY2UgYW5kIHN3aXRjaCBpdCB0byBmdWxsc2NyZWVuIG1vZGUuIE5leHQgdXNlIG9mIHRoaXMgYWN0aW9uIG9uIHRoZSBzYW1lIHdpbmRvdyBtb3ZlcyB0aGUgd2luZG93IGJhY2sgdG8gaXRzIG9yaWdpbmFsIHdvcmtzcGFjZSBhbmQgdHVybiBvZmYgdGhlIGZ1bGxzY3JlZW4gbW9kZS5cbiAgICBPICAgICAgICAgICAgICAgICAgICAgICAtIFNob3cgYXBwbGljYXRpb24gZ3JpZCwgaWYgeW91IG5lZWQgdG8gbGF1bmNoIG5ldyBhcHBsaWNhdGlvbi5cbiAgICBUICAgICAgICAgICAgICAgICAgICAgICAtIENyZWF0ZXMgYW4gdGh1bWJuYWlsIHByZXZpZXcgb2Ygc2VsZWN0ZWQgd2luZG93IGFuZCBwbGFjZSBpdCB0byB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBjdXJyZW50IG1vbml0b3IuIFlvdSBjYW4gbW92ZSB0aGUgdGh1bWJuYWlsIGFueXdoZXJlIG9uIHRoZSBzY3JlZW4gYW5kIHlvdSBjYW4gbWFrZSBhcyBtYW55IHRodW1ibmFpbHMgeW91IHdhbnRcbiAgICBQICAgICAgICAgICAgICAgICAgICAgICAtIE9wZW4gcHJlZmVyZW5jZXMgd2luZG93IGZvciB0aGlzIGV4dGVuc2lvblxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMgZm9sbG93IHRoZSBsaW5rIGJlbG93LlxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGV2ZXJ5IHVwZGF0ZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQWR2YW5jZWQgQWx0K1RhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1fvbiw8fis6m2dr970pxpvqyx61k2kb54gcnsqx861j2q4931akq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdCtUYWIgV2luZG93IFN3aXRjaGVyIHRoYXQgb2ZmZXJzIGRpcmVjdCBhY3RpdmF0aW9uLCB0eXBlIHRvIHNlYXJjaCwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgc2V0dGluZ3MgKHN3aXRjaGFibGUgb24gdGhlIGZseSksIHdvcmtzcGFjZSBzd2l0Y2hpbmcgYW5kIGhvdGtleXMgZm9yIHdpbmRvdyBjb250cm9sLiBZb3UgY2FuIGFsc28gYWRqdXN0IHNpemUgb2YgdGhlIHdpbmRvdyBwcmV2aWV3cyBhbmQgYXBwIGljb25zLlxuXG5Ob3RlIHRoYXQgaXQncyByZXBsYWNlbWVudCBvZiB0aGUgXCJ3aW5kb3cgc3dpdGNoZXJcIiwgbm90IHRoZSBcImFwcCBzd2l0Y2hlclwiIC0gc2V0IHlvdXIga2V5Ym9hcmQgc2hvcnRjdXQgaW4gR25vbWUgU2V0dGluZ3MuXG5cbkhvdGtleXMgKGluIFR5cGUgdG8gU2VhcmNoIG1vZGUgd2l0aCB0aGUgU2hpZnQga2V5KTpcblxuICAgIEgvTCwgTGVmdC9SaWdodCAgICAgICAgIC0gd2luZG93IHNlbGVjdGlvblxuICAgIEovSywgVXAvRG93biwgUGdVcC9Eb3duIC0gd29ya3NwYWNlIHNlbGVjdGlvblxuICAgIFNwYWNlLCBLUF8wL0tQX0lucyAgICAgIC0gU2hvdyBzZWxlY3RlZCB3aW5kb3cgLSBzd2l0Y2ggdG8gd2luZG93IHdvcmtzcGFjZSBhbmQgYnJpbmcgaXQgdG8gdGhlIGZyb250XG4gICAgUSAgICAgICAgICAgICAgICAgICAgICAgLSBTd2l0Y2ggd2luZG93IGZpbHRlciBtb2RlIC0gQUxMIC8gV1MgLyBNT05JVE9SXG4gICAgOy9+L2AgKGtleSBhYm92ZSBUYWIpICAgLSBTb3J0IHdpbmRvd3MgYnkgYXBwbGljYXRpb25zLCBlYWNoIHN1YnNlcXVlbnQga2V5IHByZXNzIGp1bXBzIHRvIHRoZSBmaXJzdCB3aW5kb3cgb2YgdGhlIG5leHQgYXBwXG4gICAgRyAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgc29ydCBieSB3b3Jrc3BhY2VzLCB3aGVuIGJhc2UgZmlsdGVyIGlzIHNldCB0byBBTExcbiAgICAxLysvISAgICAgICAgICAgICAgICAgICAtIEZpbHRlciBvdXQgYWxsIHdpbmRvd3MgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHNlbGVjdGVkIHdpbmRvd1xuICAgIEUvSW5zZXJ0ICAgICAgICAgICAgICAgIC0gQWN0aXZhdGVzIHRoZSBcIlR5cGUgdG8gU2VhcmNoXCIgbW9kZSwgdGhlIGBJbnNlcnRgIGtleSBjYW4gdHVybiBpdCBvZmYsIGBEZWxldGVgIGRlbGV0ZXMgd2hvbGUgdHlwZWQgcGF0dGVyblxuICAgIFcgICAgICAgICAgICAgICAgICAgICAgIC0gQ2xvc2Ugc2VsZWN0ZWQgd2luZG93XG4gICAgU2hpZnQrRGVsICAgICAgICAgICAgICAgLSBGb3JjZSBjbG9zZSAtIGtpbGwgLTkgdG8gYXBwbGljYXRpb24gb2Ygc2VsZWN0ZWQgd2luZG93XG4gICAgQyAgICAgICAgICAgICAgICAgICAgICAgLSBDbG9zZSBhbGwgd2luZG93cyBmcm9tIHdpbmRvdyBsaXN0IHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGFwcGxpY2F0aW9uIGFzIHNlbGVjdGVkIHdpbmRvd1xuICAgIEEgICAgICAgICAgICAgICAgICAgICAgIC0gVG9nZ2xlIHdpbmRvdyAnQWx3YXlzIG9uIFRvcCcuIEFsc28gc3dpdGNoIHRvIHdpbmRvdyB3b3Jrc3BhY2UgYW5kIHJpc2UgdGhlIHdpbmRvdy4gSW5kaWNhdGVkIGJ5IHRoZSBmcm9udCBpY29uIG9uIHRvcCBpbnN0ZWFkIG9mIGJvdHRvbS4gV2hlbiB5b3UgcHJlc3MgdGhlICdBJyBrZXkgdHdpY2UsIGl0J3MgYWN0dWFsbHkgZXF1aXZhbGVudCB0byBvbmUgcHJlc3Mgb2YgaG90a2V5IGZvciAnU2hvdyBzZWxlY3RlZCB3aW5kb3cnXG4gICAgUyAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgd2luZG93ICdBbHdheXMgb24gVmlzaWJsZSBXb3Jrc3BhY2UnLCBpbmRpY2F0ZWQgYnkgdGhlICdwaW4nIGljb24uIFlvdSBjYW4gbW92ZSBzZWxlY3RlZCB3aW5kb3cgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlIGJ5IHByZXNzaW5nIHRoaXMga2V5IHR3aWNlLlxuICAgIFgvY2xpY2sgb3V0c2lkZSBzd2l0Y2hlci0gTW92ZSBzZWxlY3RlZCB3aW5kb3cgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlIGFuZCB0byB0aGUgbW9uaXRvciB3aXRoIG1vdXNlIHBvaW50ZXJcbiAgICBOICAgICAgICAgICAgICAgICAgICAgICAtIENyZWF0ZSBOZXcgV2luZG93IG9mIHNlbGVjdGVkIGFwcGxpY2F0aW9uLCBpZiB0aGUgYXBwIHNvdXBwb3J0cyBpdC5cbiAgICBWICAgICAgICAgICAgICAgICAgICAgICAtIE1vdmUgd2luZG93IHRvIHNlbGVjdGVkIHdvcmtzcGFjZSBhbmQgbWF4aW1pemUgaXQuXG4gICAgRiAgICAgICAgICAgICAgICAgICAgICAgLSBNb3ZlIHdpbmRvdyB0byBlbXB0eSB3b3Jrc3BhY2UgbmV4dCB0byBpdHMgY3VycmVudCB3b3Jrc3BhY2UgYW5kIHN3aXRjaCBpdCB0byBmdWxsc2NyZWVuIG1vZGUuIE5leHQgdXNlIG9mIHRoaXMgYWN0aW9uIG9uIHRoZSBzYW1lIHdpbmRvdyBtb3ZlcyB0aGUgd2luZG93IGJhY2sgdG8gaXRzIG9yaWdpbmFsIHdvcmtzcGFjZSBhbmQgdHVybiBvZmYgdGhlIGZ1bGxzY3JlZW4gbW9kZS5cbiAgICBPICAgICAgICAgICAgICAgICAgICAgICAtIFNob3cgYXBwbGljYXRpb24gZ3JpZCwgaWYgeW91IG5lZWQgdG8gbGF1bmNoIG5ldyBhcHBsaWNhdGlvbi5cbiAgICBUICAgICAgICAgICAgICAgICAgICAgICAtIENyZWF0ZXMgYW4gdGh1bWJuYWlsIHByZXZpZXcgb2Ygc2VsZWN0ZWQgd2luZG93IGFuZCBwbGFjZSBpdCB0byB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBjdXJyZW50IG1vbml0b3IuIFlvdSBjYW4gbW92ZSB0aGUgdGh1bWJuYWlsIGFueXdoZXJlIG9uIHRoZSBzY3JlZW4gYW5kIHlvdSBjYW4gbWFrZSBhcyBtYW55IHRodW1ibmFpbHMgeW91IHdhbnRcbiAgICBQICAgICAgICAgICAgICAgICAgICAgICAtIE9wZW4gcHJlZmVyZW5jZXMgd2luZG93IGZvciB0aGlzIGV4dGVuc2lvblxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMgZm9sbG93IHRoZSBsaW5rIGJlbG93LlxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGV2ZXJ5IHVwZGF0ZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQWR2YW5jZWQgQWx0K1RhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {"38": {"version": "1", "sha256": "08jyn79vb055vcfhg5kgc6yj6xvhyvwghpaw0d1vncy3gvj2mrln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25pY2stc2hteXJldi9pbXByb3ZlZC1vc2stZ25vbWUtZXh0IiwKICAidXVpZCI6ICJpbXByb3ZlZG9za0BuaWNrLXNobXlyZXYuZGV2IiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "08jyn79vb055vcfhg5kgc6yj6xvhyvwghpaw0d1vncy3gvj2mrln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25pY2stc2hteXJldi9pbXByb3ZlZC1vc2stZ25vbWUtZXh0IiwKICAidXVpZCI6ICJpbXByb3ZlZG9za0BuaWNrLXNobXlyZXYuZGV2IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "Advanced Alt+Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Replacement of Alt+Tab Window Switcher that offers direct activation, type to search, various filtering and sorting settings (switchable on the fly), workspace switching and hotkeys for window control. You can also adjust size of the window previews and app icons.\n\nNote that it's replacement of the \"window switcher\", not the \"app switcher\" - set your keyboard shortcut in Gnome Settings.\n\nHotkeys (in Type to Search mode with the Shift key):\n\n H/L, Left/Right - window selection\n J/K, Up/Down, PgUp/Down - workspace selection\n Space, KP_0/KP_Ins - Show selected window - switch to window workspace and bring it to the front\n Q - Switch window filter mode - ALL / WS / MONITOR\n ;/~/` (key above Tab) - Sort windows by applications, each subsequent key press jumps to the first window of the next app\n G - Toggle sort by workspaces, when base filter is set to ALL\n 1/+/! - Filter out all windows that don't belong to the application of selected window\n E/Insert - Activates the \"Type to Search\" mode, the `Insert` key can turn it off, `Delete` deletes whole typed pattern\n W - Close selected window\n Shift+Del - Force close - kill -9 to process of selected window\n C - Close all windows from window list that belong to the same application as selected window\n A - Toggle window 'Always on Top'. Also switch to window workspace and rise the window. Indicated by the front icon on top instead of bottom. When you press the 'A' key twice, it's actually equivalent to one press of hotkey for 'Show selected window'\n S - Toggle window 'Always on Visible Workspace', indicated by the 'pin' icon. You can move selected window to the current workspace by pressing this key twice.\n X/click outside switcher- Move selected window to the current workspace and to the monitor with mouse pointer\n N - Create New Window of selected application, if the app soupports it.\n V - Move window to selected workspace and maximize it.\n F - Move window to empty workspace next to its current workspace and switch it to fullscreen mode. Next use of this action on the same window moves the window back to its original workspace and turn off the fullscreen mode.\n O - Show application grid, if you need to launch new application.\n T - Creates an thumbnail preview of selected window and place it to the bottom right of the current monitor. You can move the thumbnail anywhere on the screen and you can make as many thumbnails you want\n P - Open preferences window for this extension\n\nFor more information and bug reports follow the link below.\nRestart your Gnome Shell after every update, before you post a bug report.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "4", "sha256": "0acla911x2rnz587w9kdll31g11s5z5ijy2f7767gjr69rwcbn32", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdCtUYWIgV2luZG93IFN3aXRjaGVyIHRoYXQgb2ZmZXJzIGRpcmVjdCBhY3RpdmF0aW9uLCB0eXBlIHRvIHNlYXJjaCwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgc2V0dGluZ3MgKHN3aXRjaGFibGUgb24gdGhlIGZseSksIHdvcmtzcGFjZSBzd2l0Y2hpbmcgYW5kIGhvdGtleXMgZm9yIHdpbmRvdyBjb250cm9sLiBZb3UgY2FuIGFsc28gYWRqdXN0IHNpemUgb2YgdGhlIHdpbmRvdyBwcmV2aWV3cyBhbmQgYXBwIGljb25zLlxuXG5Ob3RlIHRoYXQgaXQncyByZXBsYWNlbWVudCBvZiB0aGUgXCJ3aW5kb3cgc3dpdGNoZXJcIiwgbm90IHRoZSBcImFwcCBzd2l0Y2hlclwiIC0gc2V0IHlvdXIga2V5Ym9hcmQgc2hvcnRjdXQgaW4gR25vbWUgU2V0dGluZ3MuXG5cbkhvdGtleXMgKGluIFR5cGUgdG8gU2VhcmNoIG1vZGUgd2l0aCB0aGUgU2hpZnQga2V5KTpcblxuICAgIEgvTCwgTGVmdC9SaWdodCAgICAgICAgIC0gd2luZG93IHNlbGVjdGlvblxuICAgIEovSywgVXAvRG93biwgUGdVcC9Eb3duIC0gd29ya3NwYWNlIHNlbGVjdGlvblxuICAgIFNwYWNlLCBLUF8wL0tQX0lucyAgICAgIC0gU2hvdyBzZWxlY3RlZCB3aW5kb3cgLSBzd2l0Y2ggdG8gd2luZG93IHdvcmtzcGFjZSBhbmQgYnJpbmcgaXQgdG8gdGhlIGZyb250XG4gICAgUSAgICAgICAgICAgICAgICAgICAgICAgLSBTd2l0Y2ggd2luZG93IGZpbHRlciBtb2RlIC0gQUxMIC8gV1MgLyBNT05JVE9SXG4gICAgOy9+L2AgKGtleSBhYm92ZSBUYWIpICAgLSBTb3J0IHdpbmRvd3MgYnkgYXBwbGljYXRpb25zLCBlYWNoIHN1YnNlcXVlbnQga2V5IHByZXNzIGp1bXBzIHRvIHRoZSBmaXJzdCB3aW5kb3cgb2YgdGhlIG5leHQgYXBwXG4gICAgRyAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgc29ydCBieSB3b3Jrc3BhY2VzLCB3aGVuIGJhc2UgZmlsdGVyIGlzIHNldCB0byBBTExcbiAgICAxLysvISAgICAgICAgICAgICAgICAgICAtIEZpbHRlciBvdXQgYWxsIHdpbmRvd3MgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHNlbGVjdGVkIHdpbmRvd1xuICAgIEUvSW5zZXJ0ICAgICAgICAgICAgICAgIC0gQWN0aXZhdGVzIHRoZSBcIlR5cGUgdG8gU2VhcmNoXCIgbW9kZSwgdGhlIGBJbnNlcnRgIGtleSBjYW4gdHVybiBpdCBvZmYsIGBEZWxldGVgIGRlbGV0ZXMgd2hvbGUgdHlwZWQgcGF0dGVyblxuICAgIFcgICAgICAgICAgICAgICAgICAgICAgIC0gQ2xvc2Ugc2VsZWN0ZWQgd2luZG93XG4gICAgU2hpZnQrRGVsICAgICAgICAgICAgICAgLSBGb3JjZSBjbG9zZSAtIGtpbGwgLTkgdG8gcHJvY2VzcyBvZiBzZWxlY3RlZCB3aW5kb3dcbiAgICBDICAgICAgICAgICAgICAgICAgICAgICAtIENsb3NlIGFsbCB3aW5kb3dzIGZyb20gd2luZG93IGxpc3QgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgYXBwbGljYXRpb24gYXMgc2VsZWN0ZWQgd2luZG93XG4gICAgQSAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgd2luZG93ICdBbHdheXMgb24gVG9wJy4gQWxzbyBzd2l0Y2ggdG8gd2luZG93IHdvcmtzcGFjZSBhbmQgcmlzZSB0aGUgd2luZG93LiBJbmRpY2F0ZWQgYnkgdGhlIGZyb250IGljb24gb24gdG9wIGluc3RlYWQgb2YgYm90dG9tLiBXaGVuIHlvdSBwcmVzcyB0aGUgJ0EnIGtleSB0d2ljZSwgaXQncyBhY3R1YWxseSBlcXVpdmFsZW50IHRvIG9uZSBwcmVzcyBvZiBob3RrZXkgZm9yICdTaG93IHNlbGVjdGVkIHdpbmRvdydcbiAgICBTICAgICAgICAgICAgICAgICAgICAgICAtIFRvZ2dsZSB3aW5kb3cgJ0Fsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZScsIGluZGljYXRlZCBieSB0aGUgJ3BpbicgaWNvbi4gWW91IGNhbiBtb3ZlIHNlbGVjdGVkIHdpbmRvdyB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UgYnkgcHJlc3NpbmcgdGhpcyBrZXkgdHdpY2UuXG4gICAgWC9jbGljayBvdXRzaWRlIHN3aXRjaGVyLSBNb3ZlIHNlbGVjdGVkIHdpbmRvdyB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UgYW5kIHRvIHRoZSBtb25pdG9yIHdpdGggbW91c2UgcG9pbnRlclxuICAgIE4gICAgICAgICAgICAgICAgICAgICAgIC0gQ3JlYXRlIE5ldyBXaW5kb3cgb2Ygc2VsZWN0ZWQgYXBwbGljYXRpb24sIGlmIHRoZSBhcHAgc291cHBvcnRzIGl0LlxuICAgIFYgICAgICAgICAgICAgICAgICAgICAgIC0gTW92ZSB3aW5kb3cgdG8gc2VsZWN0ZWQgd29ya3NwYWNlIGFuZCBtYXhpbWl6ZSBpdC5cbiAgICBGICAgICAgICAgICAgICAgICAgICAgICAtIE1vdmUgd2luZG93IHRvIGVtcHR5IHdvcmtzcGFjZSBuZXh0IHRvIGl0cyBjdXJyZW50IHdvcmtzcGFjZSBhbmQgc3dpdGNoIGl0IHRvIGZ1bGxzY3JlZW4gbW9kZS4gTmV4dCB1c2Ugb2YgdGhpcyBhY3Rpb24gb24gdGhlIHNhbWUgd2luZG93IG1vdmVzIHRoZSB3aW5kb3cgYmFjayB0byBpdHMgb3JpZ2luYWwgd29ya3NwYWNlIGFuZCB0dXJuIG9mZiB0aGUgZnVsbHNjcmVlbiBtb2RlLlxuICAgIE8gICAgICAgICAgICAgICAgICAgICAgIC0gU2hvdyBhcHBsaWNhdGlvbiBncmlkLCBpZiB5b3UgbmVlZCB0byBsYXVuY2ggbmV3IGFwcGxpY2F0aW9uLlxuICAgIFQgICAgICAgICAgICAgICAgICAgICAgIC0gQ3JlYXRlcyBhbiB0aHVtYm5haWwgcHJldmlldyBvZiBzZWxlY3RlZCB3aW5kb3cgYW5kIHBsYWNlIGl0IHRvIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIGN1cnJlbnQgbW9uaXRvci4gWW91IGNhbiBtb3ZlIHRoZSB0aHVtYm5haWwgYW55d2hlcmUgb24gdGhlIHNjcmVlbiBhbmQgeW91IGNhbiBtYWtlIGFzIG1hbnkgdGh1bWJuYWlscyB5b3Ugd2FudFxuICAgIFAgICAgICAgICAgICAgICAgICAgICAgIC0gT3BlbiBwcmVmZXJlbmNlcyB3aW5kb3cgZm9yIHRoaXMgZXh0ZW5zaW9uXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cyBmb2xsb3cgdGhlIGxpbmsgYmVsb3cuXG5SZXN0YXJ0IHlvdXIgR25vbWUgU2hlbGwgYWZ0ZXIgZXZlcnkgdXBkYXRlLCBiZWZvcmUgeW91IHBvc3QgYSBidWcgcmVwb3J0LiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBZHZhbmNlZCBBbHQrVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0acla911x2rnz587w9kdll31g11s5z5ijy2f7767gjr69rwcbn32", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdCtUYWIgV2luZG93IFN3aXRjaGVyIHRoYXQgb2ZmZXJzIGRpcmVjdCBhY3RpdmF0aW9uLCB0eXBlIHRvIHNlYXJjaCwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgc2V0dGluZ3MgKHN3aXRjaGFibGUgb24gdGhlIGZseSksIHdvcmtzcGFjZSBzd2l0Y2hpbmcgYW5kIGhvdGtleXMgZm9yIHdpbmRvdyBjb250cm9sLiBZb3UgY2FuIGFsc28gYWRqdXN0IHNpemUgb2YgdGhlIHdpbmRvdyBwcmV2aWV3cyBhbmQgYXBwIGljb25zLlxuXG5Ob3RlIHRoYXQgaXQncyByZXBsYWNlbWVudCBvZiB0aGUgXCJ3aW5kb3cgc3dpdGNoZXJcIiwgbm90IHRoZSBcImFwcCBzd2l0Y2hlclwiIC0gc2V0IHlvdXIga2V5Ym9hcmQgc2hvcnRjdXQgaW4gR25vbWUgU2V0dGluZ3MuXG5cbkhvdGtleXMgKGluIFR5cGUgdG8gU2VhcmNoIG1vZGUgd2l0aCB0aGUgU2hpZnQga2V5KTpcblxuICAgIEgvTCwgTGVmdC9SaWdodCAgICAgICAgIC0gd2luZG93IHNlbGVjdGlvblxuICAgIEovSywgVXAvRG93biwgUGdVcC9Eb3duIC0gd29ya3NwYWNlIHNlbGVjdGlvblxuICAgIFNwYWNlLCBLUF8wL0tQX0lucyAgICAgIC0gU2hvdyBzZWxlY3RlZCB3aW5kb3cgLSBzd2l0Y2ggdG8gd2luZG93IHdvcmtzcGFjZSBhbmQgYnJpbmcgaXQgdG8gdGhlIGZyb250XG4gICAgUSAgICAgICAgICAgICAgICAgICAgICAgLSBTd2l0Y2ggd2luZG93IGZpbHRlciBtb2RlIC0gQUxMIC8gV1MgLyBNT05JVE9SXG4gICAgOy9+L2AgKGtleSBhYm92ZSBUYWIpICAgLSBTb3J0IHdpbmRvd3MgYnkgYXBwbGljYXRpb25zLCBlYWNoIHN1YnNlcXVlbnQga2V5IHByZXNzIGp1bXBzIHRvIHRoZSBmaXJzdCB3aW5kb3cgb2YgdGhlIG5leHQgYXBwXG4gICAgRyAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgc29ydCBieSB3b3Jrc3BhY2VzLCB3aGVuIGJhc2UgZmlsdGVyIGlzIHNldCB0byBBTExcbiAgICAxLysvISAgICAgICAgICAgICAgICAgICAtIEZpbHRlciBvdXQgYWxsIHdpbmRvd3MgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHNlbGVjdGVkIHdpbmRvd1xuICAgIEUvSW5zZXJ0ICAgICAgICAgICAgICAgIC0gQWN0aXZhdGVzIHRoZSBcIlR5cGUgdG8gU2VhcmNoXCIgbW9kZSwgdGhlIGBJbnNlcnRgIGtleSBjYW4gdHVybiBpdCBvZmYsIGBEZWxldGVgIGRlbGV0ZXMgd2hvbGUgdHlwZWQgcGF0dGVyblxuICAgIFcgICAgICAgICAgICAgICAgICAgICAgIC0gQ2xvc2Ugc2VsZWN0ZWQgd2luZG93XG4gICAgU2hpZnQrRGVsICAgICAgICAgICAgICAgLSBGb3JjZSBjbG9zZSAtIGtpbGwgLTkgdG8gcHJvY2VzcyBvZiBzZWxlY3RlZCB3aW5kb3dcbiAgICBDICAgICAgICAgICAgICAgICAgICAgICAtIENsb3NlIGFsbCB3aW5kb3dzIGZyb20gd2luZG93IGxpc3QgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgYXBwbGljYXRpb24gYXMgc2VsZWN0ZWQgd2luZG93XG4gICAgQSAgICAgICAgICAgICAgICAgICAgICAgLSBUb2dnbGUgd2luZG93ICdBbHdheXMgb24gVG9wJy4gQWxzbyBzd2l0Y2ggdG8gd2luZG93IHdvcmtzcGFjZSBhbmQgcmlzZSB0aGUgd2luZG93LiBJbmRpY2F0ZWQgYnkgdGhlIGZyb250IGljb24gb24gdG9wIGluc3RlYWQgb2YgYm90dG9tLiBXaGVuIHlvdSBwcmVzcyB0aGUgJ0EnIGtleSB0d2ljZSwgaXQncyBhY3R1YWxseSBlcXVpdmFsZW50IHRvIG9uZSBwcmVzcyBvZiBob3RrZXkgZm9yICdTaG93IHNlbGVjdGVkIHdpbmRvdydcbiAgICBTICAgICAgICAgICAgICAgICAgICAgICAtIFRvZ2dsZSB3aW5kb3cgJ0Fsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZScsIGluZGljYXRlZCBieSB0aGUgJ3BpbicgaWNvbi4gWW91IGNhbiBtb3ZlIHNlbGVjdGVkIHdpbmRvdyB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UgYnkgcHJlc3NpbmcgdGhpcyBrZXkgdHdpY2UuXG4gICAgWC9jbGljayBvdXRzaWRlIHN3aXRjaGVyLSBNb3ZlIHNlbGVjdGVkIHdpbmRvdyB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UgYW5kIHRvIHRoZSBtb25pdG9yIHdpdGggbW91c2UgcG9pbnRlclxuICAgIE4gICAgICAgICAgICAgICAgICAgICAgIC0gQ3JlYXRlIE5ldyBXaW5kb3cgb2Ygc2VsZWN0ZWQgYXBwbGljYXRpb24sIGlmIHRoZSBhcHAgc291cHBvcnRzIGl0LlxuICAgIFYgICAgICAgICAgICAgICAgICAgICAgIC0gTW92ZSB3aW5kb3cgdG8gc2VsZWN0ZWQgd29ya3NwYWNlIGFuZCBtYXhpbWl6ZSBpdC5cbiAgICBGICAgICAgICAgICAgICAgICAgICAgICAtIE1vdmUgd2luZG93IHRvIGVtcHR5IHdvcmtzcGFjZSBuZXh0IHRvIGl0cyBjdXJyZW50IHdvcmtzcGFjZSBhbmQgc3dpdGNoIGl0IHRvIGZ1bGxzY3JlZW4gbW9kZS4gTmV4dCB1c2Ugb2YgdGhpcyBhY3Rpb24gb24gdGhlIHNhbWUgd2luZG93IG1vdmVzIHRoZSB3aW5kb3cgYmFjayB0byBpdHMgb3JpZ2luYWwgd29ya3NwYWNlIGFuZCB0dXJuIG9mZiB0aGUgZnVsbHNjcmVlbiBtb2RlLlxuICAgIE8gICAgICAgICAgICAgICAgICAgICAgIC0gU2hvdyBhcHBsaWNhdGlvbiBncmlkLCBpZiB5b3UgbmVlZCB0byBsYXVuY2ggbmV3IGFwcGxpY2F0aW9uLlxuICAgIFQgICAgICAgICAgICAgICAgICAgICAgIC0gQ3JlYXRlcyBhbiB0aHVtYm5haWwgcHJldmlldyBvZiBzZWxlY3RlZCB3aW5kb3cgYW5kIHBsYWNlIGl0IHRvIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIGN1cnJlbnQgbW9uaXRvci4gWW91IGNhbiBtb3ZlIHRoZSB0aHVtYm5haWwgYW55d2hlcmUgb24gdGhlIHNjcmVlbiBhbmQgeW91IGNhbiBtYWtlIGFzIG1hbnkgdGh1bWJuYWlscyB5b3Ugd2FudFxuICAgIFAgICAgICAgICAgICAgICAgICAgICAgIC0gT3BlbiBwcmVmZXJlbmNlcyB3aW5kb3cgZm9yIHRoaXMgZXh0ZW5zaW9uXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cyBmb2xsb3cgdGhlIGxpbmsgYmVsb3cuXG5SZXN0YXJ0IHlvdXIgR25vbWUgU2hlbGwgYWZ0ZXIgZXZlcnkgdXBkYXRlLCBiZWZvcmUgeW91IHBvc3QgYSBidWcgcmVwb3J0LiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBZHZhbmNlZCBBbHQrVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {"38": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "fedora-update@pepe386", "name": "Fedora Linux Updates Indicator", "pname": "fedora-linux-updates-indicator", "description": "Update indicator for Fedora Linux and GNOME Shell.", "link": "https://extensions.gnome.org/extension/4415/fedora-linux-updates-indicator/", "shell_version_map": {"40": {"version": "1", "sha256": "0sz69rs6z1fybva20xs8587bs4xaflb4frd14d729lqq5h1m8b2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGVwZTM4Ni9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJmZWRvcmEtdXBkYXRlQHBlcGUzODYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "readingstrip@lupantano.gihthub", "name": "Reading Strip", "pname": "reading-strip", "description": "It is a extension for Gnome-Shell with an equivalent function to a reading guide on the computer, that's really useful for people with dyslexia.", "link": "https://extensions.gnome.org/extension/4419/reading-strip/", "shell_version_map": {"40": {"version": "9", "sha256": "0r6ccgha8gqdqyy9z8sqxgpm1prbxfbh7cc8iyfhba5g40b4lh9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHVwYW50YW5vL3JlYWRpbmdzdHJpcCIsCiAgInV1aWQiOiAicmVhZGluZ3N0cmlwQGx1cGFudGFuby5naWh0aHViIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "gnome-clipboard@b00f.github.io", "name": "Gnome Clipboard", "pname": "gnome-clipboard", "description": "A gnome shell extension to manage your clipboard.", "link": "https://extensions.gnome.org/extension/4422/gnome-clipboard/", "shell_version_map": {"38": {"version": "5", "sha256": "0bnp7bh7vpgn0qw1549297vs3l068s43jj6y8pzm7h366jihvidc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJnbm9tZS1jbGlwYm9hcmRAYjAwZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \n\nGreat source of motivation according to terror management theory!", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "4", "sha256": "19xp2blv1fjha6lcssh4nvzrilrlc5fpyz7gwzy7wfpqg6xyaxlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3lhdHhvbmUvdGhhbmF0b3Bob2JpYSIsCiAgInV1aWQiOiAidGhhbmF0b3Bob2JpYUB5YXR4Lm9uZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "gnome-clipboard@b00f.github.io", "name": "Gnome Clipboard", "pname": "gnome-clipboard", "description": "A gnome shell extension to manage your clipboard.", "link": "https://extensions.gnome.org/extension/4422/gnome-clipboard/", "shell_version_map": {"38": {"version": "8", "sha256": "1zgymry549c6pmj1c0f6gvpyyfj0z93fwbhhxa67fx3nf95gb3kv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJnbm9tZS1jbGlwYm9hcmRAYjAwZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \n\nGreat source of motivation according to terror management theory!\n\nMay induce stress.", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "4", "sha256": "14yijd7d2iad2axsqmx9dszs41cc691zbsqjhpjrfig4zf6blxik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhXG5cbk1heSBpbmR1Y2Ugc3RyZXNzLiIsCiAgIm5hbWUiOiAiVGhhbmF0b3Bob2JpYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGhhbmF0b3Bob2JpYUB5YXR4Lm9uZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "typewriter-kb@zzzheka97.gmail.com", "name": "Typewriter Keyboard", "pname": "typewriter-keyboard", "description": "Add a typewriter effect to your keyboard.\n \nThis extension is based on typewriter-kb application \n(https://github.com/ZhekehZ/linux-typewriter-kb), which \nis required to run the extension, but is not part of it.\n \n-------------------------------------------\nIcons made by Freepik from www.flaticon.com", "link": "https://extensions.gnome.org/extension/4427/typewriter-keyboard/", "shell_version_map": {"38": {"version": "2", "sha256": "1zmlmijkm6sgpp00qbrwnxmd4q5dfh07g9w9nynq3ciwxs9fjnai", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHR5cGV3cml0ZXIgZWZmZWN0IHRvIHlvdXIga2V5Ym9hcmQuXG4gXG5UaGlzIGV4dGVuc2lvbiBpcyBiYXNlZCBvbiB0eXBld3JpdGVyLWtiIGFwcGxpY2F0aW9uIFxuKGh0dHBzOi8vZ2l0aHViLmNvbS9aaGVrZWhaL2xpbnV4LXR5cGV3cml0ZXIta2IpLCB3aGljaCBcbmlzIHJlcXVpcmVkIHRvIHJ1biB0aGUgZXh0ZW5zaW9uLCBidXQgaXMgbm90IHBhcnQgb2YgaXQuXG4gXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5JY29ucyBtYWRlIGJ5IEZyZWVwaWsgZnJvbSB3d3cuZmxhdGljb24uY29tIiwKICAibmFtZSI6ICJUeXBld3JpdGVyIEtleWJvYXJkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInR5cGV3cml0ZXIta2JAenp6aGVrYTk3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"uuid": "dark-side@kamil-galek.pl", "name": "Dark side of Gnome", "pname": "dark-side-of-gnome", "description": "Join the dark side with some of your apps. For now it won't work with every app.", "link": "https://extensions.gnome.org/extension/4430/dark-side-of-gnome/", "shell_version_map": {"40": {"version": "2", "sha256": "08kzwpn22qwgyrps4khwkarn4rakr1rn57wg94wpfgd9pfbgb7ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkpvaW4gdGhlIGRhcmsgc2lkZSB3aXRoIHNvbWUgb2YgeW91ciBhcHBzLiBGb3Igbm93IGl0IHdvbid0IHdvcmsgd2l0aCBldmVyeSBhcHAuIiwKICAibmFtZSI6ICJEYXJrIHNpZGUgb2YgR25vbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhcmstc2lkZUBrYW1pbC1nYWxlay5wbCIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "wizlight@iabhilashjoshi", "name": "Wiz Light", "pname": "wiz-light", "description": "Control Wiz Connected Lights Through Gnome Shell\n\nRequirements:\n #Wiz enabled smart bulb\n #python3 (To install use command \"sudo apt install python3\")\n #pywizlight (To install use command \"pip3 install pywizlight\")\n\nTo Use go to the location where extension is installed (usually stored in \"~/.local/share/gnome-shell/extensions\") and change IP address in extension.js file to your smart bulb's IP address and then extension should work.", "link": "https://extensions.gnome.org/extension/4436/wiz-light/", "shell_version_map": {"38": {"version": "1", "sha256": "11alaa3dnpnlgd4bfzzzr47mpcc8a648b6l90dzv9dlwci9jacx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgV2l6IENvbm5lY3RlZCBMaWdodHMgVGhyb3VnaCBHbm9tZSBTaGVsbFxuXG5SZXF1aXJlbWVudHM6XG4gICAgICAgICNXaXogZW5hYmxlZCBzbWFydCBidWxiXG4gICAgICAgICNweXRob24zICAoVG8gaW5zdGFsbCAgdXNlIGNvbW1hbmQgXCJzdWRvIGFwdCBpbnN0YWxsIHB5dGhvbjNcIilcbiAgICAgICAgI3B5d2l6bGlnaHQgKFRvIGluc3RhbGwgdXNlIGNvbW1hbmQgXCJwaXAzIGluc3RhbGwgcHl3aXpsaWdodFwiKVxuXG5UbyBVc2UgZ28gdG8gdGhlIGxvY2F0aW9uIHdoZXJlIGV4dGVuc2lvbiBpcyBpbnN0YWxsZWQgKHVzdWFsbHkgc3RvcmVkIGluIFwifi8ubG9jYWwvc2hhcmUvZ25vbWUtc2hlbGwvZXh0ZW5zaW9uc1wiKSBhbmQgY2hhbmdlIElQIGFkZHJlc3MgaW4gZXh0ZW5zaW9uLmpzIGZpbGUgdG8geW91ciBzbWFydCBidWxiJ3MgSVAgYWRkcmVzcyBhbmQgdGhlbiBleHRlbnNpb24gc2hvdWxkIHdvcmsuIiwKICAibmFtZSI6ICJXaXogTGlnaHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXNwZWFyL1dpei1MaWdodCIsCiAgInV1aWQiOiAid2l6bGlnaHRAaWFiaGlsYXNoam9zaGkiLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "gSnap@micahosborne", "name": "gSnap", "pname": "gsnap", "description": "Organize windows in customizable snap zones like FancyZones on windows.", "link": "https://extensions.gnome.org/extension/4442/gsnap/", "shell_version_map": {"40": {"version": "5", "sha256": "0gfas7p7mjg0zlwglx6al4yy4g2zfyj0ijgcy3sniwfkvqspw69g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIHdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNhaG9zYm9ybmUvZ1NuYXAiLAogICJ1dWlkIjogImdTbmFwQG1pY2Fob3Nib3JuZSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "wizlight@iabhilashjoshi", "name": "Wiz Light", "pname": "wiz-light", "description": "Control Wiz Connected Lights Through Gnome Shell\n\nRequirements:\n #Wiz enabled smart bulb\n #python3 (To install use command \"sudo apt install python3\")\n #pywizlight (To install use command \"pip3 install pywizlight\")\n\nTo Use go to the location where extension is installed (usually stored in \"~/.local/share/gnome-shell/extensions\") and change IP address in extension.js file to your smart bulb's IP address and then extension should work.", "link": "https://extensions.gnome.org/extension/4436/wiz-light/", "shell_version_map": {"38": {"version": "4", "sha256": "0pby93ivqz2ymdskyjp6ajc2c588dbpq7vjj7b7d8mc03hvkap5z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgV2l6IENvbm5lY3RlZCBMaWdodHMgVGhyb3VnaCBHbm9tZSBTaGVsbFxuXG5SZXF1aXJlbWVudHM6XG4gICAgICAgICNXaXogZW5hYmxlZCBzbWFydCBidWxiXG4gICAgICAgICNweXRob24zICAoVG8gaW5zdGFsbCAgdXNlIGNvbW1hbmQgXCJzdWRvIGFwdCBpbnN0YWxsIHB5dGhvbjNcIilcbiAgICAgICAgI3B5d2l6bGlnaHQgKFRvIGluc3RhbGwgdXNlIGNvbW1hbmQgXCJwaXAzIGluc3RhbGwgcHl3aXpsaWdodFwiKVxuXG5UbyBVc2UgZ28gdG8gdGhlIGxvY2F0aW9uIHdoZXJlIGV4dGVuc2lvbiBpcyBpbnN0YWxsZWQgKHVzdWFsbHkgc3RvcmVkIGluIFwifi8ubG9jYWwvc2hhcmUvZ25vbWUtc2hlbGwvZXh0ZW5zaW9uc1wiKSBhbmQgY2hhbmdlIElQIGFkZHJlc3MgaW4gZXh0ZW5zaW9uLmpzIGZpbGUgdG8geW91ciBzbWFydCBidWxiJ3MgSVAgYWRkcmVzcyBhbmQgdGhlbiBleHRlbnNpb24gc2hvdWxkIHdvcmsuIiwKICAibmFtZSI6ICJXaXogTGlnaHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXNwZWFyL1dpei1MaWdodCIsCiAgInV1aWQiOiAid2l6bGlnaHRAaWFiaGlsYXNoam9zaGkiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "gSnap@micahosborne", "name": "gSnap", "pname": "gsnap", "description": "Organize windows in customizable snap zones like FancyZones on windows.", "link": "https://extensions.gnome.org/extension/4442/gsnap/", "shell_version_map": {"40": {"version": "6", "sha256": "1sm3kmc4i5m9jimly95bf39p5vjl2rnavkkkiiqq0blk725fsa2j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIHdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNhaG9zYm9ybmUvZ1NuYXAiLAogICJ1dWlkIjogImdTbmFwQG1pY2Fob3Nib3JuZSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"uuid": "appswitcheronlyoncurrentworkspace@ermesonsampaio.com", "name": "Alt + Tab only on current workspace", "pname": "alt-tab-only-on-current-workspace", "description": "Force alt + tab to switch only in the current workspace.", "link": "https://extensions.gnome.org/extension/4443/alt-tab-only-on-current-workspace/", "shell_version_map": {"40": {"version": "3", "sha256": "1jl7gi45gz9fliggkwdg44rdqcirh6qxfkvc639vbw2sgmpbmcvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmNlIGFsdCArIHRhYiB0byBzd2l0Y2ggb25seSBpbiB0aGUgY3VycmVudCB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJBbHQgKyBUYWIgb25seSBvbiBjdXJyZW50IHdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lcm1lc29uc2FtcGFpby9hcHAtc3dpdGNoZXItb25seS1vbi1jdXJyZW50LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiYXBwc3dpdGNoZXJvbmx5b25jdXJyZW50d29ya3NwYWNlQGVybWVzb25zYW1wYWlvLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "logomenu@aryan_k", "name": "Logo Menu", "pname": "logo-menu", "description": "Logo Menu - Menu similar to Apple's macOS menu for the GNOME Desktop\n\nThis extension gives a simple menu along with the ability to get the icon of your distro on top left part of the panel for a great look.\nThe Icon can be customized through settings, it has both Linux and BSD logos.\nfor more screenshots, visit GitHub.\n\nThis extension is a fork of - https://github.com/tofutech/tofumenu\nThe original project is no more supported thus I made this.", "link": "https://extensions.gnome.org/extension/4451/logo-menu/", "shell_version_map": {"38": {"version": "2", "sha256": "0rw6s2pg8vcx3y9dz8n62nm449bqb01vlp31fnhphv7pn6wmv2l9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5cblRoaXMgZXh0ZW5zaW9uIGdpdmVzIGEgc2ltcGxlIG1lbnUgYWxvbmcgd2l0aCB0aGUgYWJpbGl0eSB0byBnZXQgdGhlIGljb24gb2YgeW91ciBkaXN0cm8gb24gdG9wIGxlZnQgcGFydCBvZiB0aGUgcGFuZWwgZm9yIGEgZ3JlYXQgbG9vay5cblRoZSBJY29uIGNhbiBiZSBjdXN0b21pemVkIHRocm91Z2ggc2V0dGluZ3MsIGl0IGhhcyBib3RoIExpbnV4IGFuZCBCU0QgbG9nb3MuXG5mb3IgbW9yZSBzY3JlZW5zaG90cywgdmlzaXQgR2l0SHViLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblRoZSBvcmlnaW5hbCBwcm9qZWN0IGlzIG5vIG1vcmUgc3VwcG9ydGVkIHRodXMgSSBtYWRlIHRoaXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibG9nby1tZW51IiwKICAibmFtZSI6ICJMb2dvIE1lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmFyeWFuX2subG9nby1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0rw6s2pg8vcx3y9dz8n62nm449bqb01vlp31fnhphv7pn6wmv2l9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5cblRoaXMgZXh0ZW5zaW9uIGdpdmVzIGEgc2ltcGxlIG1lbnUgYWxvbmcgd2l0aCB0aGUgYWJpbGl0eSB0byBnZXQgdGhlIGljb24gb2YgeW91ciBkaXN0cm8gb24gdG9wIGxlZnQgcGFydCBvZiB0aGUgcGFuZWwgZm9yIGEgZ3JlYXQgbG9vay5cblRoZSBJY29uIGNhbiBiZSBjdXN0b21pemVkIHRocm91Z2ggc2V0dGluZ3MsIGl0IGhhcyBib3RoIExpbnV4IGFuZCBCU0QgbG9nb3MuXG5mb3IgbW9yZSBzY3JlZW5zaG90cywgdmlzaXQgR2l0SHViLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblRoZSBvcmlnaW5hbCBwcm9qZWN0IGlzIG5vIG1vcmUgc3VwcG9ydGVkIHRodXMgSSBtYWRlIHRoaXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibG9nby1tZW51IiwKICAibmFtZSI6ICJMb2dvIE1lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmFyeWFuX2subG9nby1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "rog-manager@rog", "name": "Rog Asus Manager", "pname": "rog-asus-manager", "description": "Asus ROG Manager is useful for controlling many aspects of various ASUS laptops. Need to install asusctl dependency.", "link": "https://extensions.gnome.org/extension/4452/rog-asus-manager/", "shell_version_map": {"38": {"version": "3", "sha256": "0bzr6ba0h6jx4dgf3i54hqd8jr718fdm88szv32jdhsnigy9ix53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdXMgUk9HIE1hbmFnZXIgaXMgdXNlZnVsIGZvciBjb250cm9sbGluZyBtYW55IGFzcGVjdHMgb2YgdmFyaW91cyBBU1VTIGxhcHRvcHMuICBOZWVkIHRvIGluc3RhbGwgYXN1c2N0bCBkZXBlbmRlbmN5LiIsCiAgImdldHRleHQtZG9tYWluIjogInJvZy1tYW5hZ2VyIiwKICAibmFtZSI6ICJSb2cgQXN1cyBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvZ21hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVqYW5kcm8tbW91cmFzL3JvZy1tYW5hZ2VyIiwKICAidXVpZCI6ICJyb2ctbWFuYWdlckByb2ciLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "logomenu@aryan_k", "name": "Logo Menu", "pname": "logo-menu", "description": "Logo Menu - Menu similar to Apple's macOS menu for the GNOME Desktop\nThis extension gives a simple menu along with the ability to get the icon of your distro on top left part of the panel for a great look.\nThe Icon can be customized through settings, it has both Linux and BSD logos.\nfor more screenshots, visit GitHub.\n\nThe default Terminal and Software center can also be changed.\n\nThis extension is a fork of - https://github.com/tofutech/tofumenu\n\nThe original project is no more supported thus I made this.", "link": "https://extensions.gnome.org/extension/4451/logo-menu/", "shell_version_map": {"38": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "rog-manager@rog", "name": "Rog Asus Manager", "pname": "rog-asus-manager", "description": "Asus ROG manager", "link": "https://extensions.gnome.org/extension/4452/rog-asus-manager/", "shell_version_map": {"38": {"version": "4", "sha256": "194k3qzjd05rki20ww0nv8001aiyp4ih9abv82g64058x8rmnff5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdXMgUk9HIG1hbmFnZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyb2ctbWFuYWdlciIsCiAgIm5hbWUiOiAiUm9nIEFzdXMgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yb2dtYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlamFuZHJvLW1vdXJhcy9yb2ctbWFuYWdlciIsCiAgInV1aWQiOiAicm9nLW1hbmFnZXJAcm9nIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "titlebar-screenshot@jmaargh.github.com", "name": "Titlebar Screenshot", "pname": "titlebar-screenshot", "description": "Take screenshots by right-clicking on window titlebars.\n\nVarious configuration options include screenshots can be taken to the clipboard, to a file, or by opening the interactive tool.\n\nAll feedback and bug reports to Issues on the github page.", "link": "https://extensions.gnome.org/extension/4458/titlebar-screenshot/", "shell_version_map": {"38": {"version": "3", "sha256": "1vhphrjq2vyzlknfl3i7f8i3v9f8jcrpwiz26sigklmv3bmzb059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2Ugc2NyZWVuc2hvdHMgYnkgcmlnaHQtY2xpY2tpbmcgb24gd2luZG93IHRpdGxlYmFycy5cblxuVmFyaW91cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkZSBzY3JlZW5zaG90cyBjYW4gYmUgdGFrZW4gdG8gdGhlIGNsaXBib2FyZCwgdG8gYSBmaWxlLCBvciBieSBvcGVuaW5nIHRoZSBpbnRlcmFjdGl2ZSB0b29sLlxuXG5BbGwgZmVlZGJhY2sgYW5kIGJ1ZyByZXBvcnRzIHRvIElzc3VlcyBvbiB0aGUgZ2l0aHViIHBhZ2UuIiwKICAibmFtZSI6ICJUaXRsZWJhciBTY3JlZW5zaG90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpdGxlYmFyLXNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1hYXJnaC90aXRsZWJhci1zY3JlZW5zaG90LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGl0bGViYXItc2NyZWVuc2hvdEBqbWFhcmdoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vhphrjq2vyzlknfl3i7f8i3v9f8jcrpwiz26sigklmv3bmzb059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2Ugc2NyZWVuc2hvdHMgYnkgcmlnaHQtY2xpY2tpbmcgb24gd2luZG93IHRpdGxlYmFycy5cblxuVmFyaW91cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkZSBzY3JlZW5zaG90cyBjYW4gYmUgdGFrZW4gdG8gdGhlIGNsaXBib2FyZCwgdG8gYSBmaWxlLCBvciBieSBvcGVuaW5nIHRoZSBpbnRlcmFjdGl2ZSB0b29sLlxuXG5BbGwgZmVlZGJhY2sgYW5kIGJ1ZyByZXBvcnRzIHRvIElzc3VlcyBvbiB0aGUgZ2l0aHViIHBhZ2UuIiwKICAibmFtZSI6ICJUaXRsZWJhciBTY3JlZW5zaG90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpdGxlYmFyLXNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1hYXJnaC90aXRsZWJhci1zY3JlZW5zaG90LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGl0bGViYXItc2NyZWVuc2hvdEBqbWFhcmdoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. In the settings, the user can define if all notifications should be expanded automatically or not.", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "5", "sha256": "0ml8nac1r4cklsnnyy2982y5vxw8pzwqrpa3zbkfxih0d5k8l6za", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBJbiB0aGUgc2V0dGluZ3MsIHRoZSB1c2VyIGNhbiBkZWZpbmUgaWYgYWxsIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIGV4cGFuZGVkIGF1dG9tYXRpY2FsbHkgb3Igbm90LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9ucyIsCiAgIm5hbWUiOiAiRXhwYW5kYWJsZSBOb3RpZmljYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4cGFuZGFibGUtbm90aWZpY2F0aW9ucy1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9rYWFuZ2luYW0vZXhwYW5kYWJsZS1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnNAa2Fhbi5nLmluYW0ub3JnIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "orange-share@Yannis4444.github.com", "name": "Orange Share", "pname": "orange-share", "description": "A small python server that accepts requests from an apple shortcut to allow sharing all sorts of media from iOS", "link": "https://extensions.gnome.org/extension/4469/orange-share/", "shell_version_map": {"40": {"version": "6", "sha256": "0hv84f6rwmrn1i9dasnrsc3dr4iryxg0mbd39ziq1iamas2j3biz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgcHl0aG9uIHNlcnZlciB0aGF0IGFjY2VwdHMgcmVxdWVzdHMgZnJvbSBhbiBhcHBsZSBzaG9ydGN1dCB0byBhbGxvdyBzaGFyaW5nIGFsbCBzb3J0cyBvZiBtZWRpYSBmcm9tIGlPUyIsCiAgIm5hbWUiOiAiT3JhbmdlIFNoYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1lhbm5pczQ0NDQvT3JhbmdlLVNoYXJlLyIsCiAgInV1aWQiOiAib3JhbmdlLXNoYXJlQFlhbm5pczQ0NDQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "mediacontrols@cliffniff.github.com", "name": "Media Controls", "pname": "media-controls", "description": "Control your media players in the panel.\n\n- Display information of the current track in the panel\n- Can perform different actions with the mouse.\n- Has basic controls such as play/pause, next track, previous track and other controls such as loop and shuffle.\n- Blacklist media players\n- and highly configurable...", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {"38": {"version": "17", "sha256": "1gd5h95vdspnldmngsldnmwvr02gi7yf5xii1jvi2ygb4x1yb0yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgeW91ciBtZWRpYSBwbGF5ZXJzIGluIHRoZSBwYW5lbC5cblxuLSBEaXNwbGF5IGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50IHRyYWNrIGluIHRoZSBwYW5lbFxuLSBDYW4gcGVyZm9ybSBkaWZmZXJlbnQgYWN0aW9ucyB3aXRoIHRoZSBtb3VzZS5cbi0gSGFzIGJhc2ljIGNvbnRyb2xzIHN1Y2ggYXMgcGxheS9wYXVzZSwgbmV4dCB0cmFjaywgcHJldmlvdXMgdHJhY2sgYW5kIG90aGVyIGNvbnRyb2xzIHN1Y2ggYXMgbG9vcCBhbmQgc2h1ZmZsZS5cbi0gQmxhY2tsaXN0IG1lZGlhIHBsYXllcnNcbi0gYW5kIGhpZ2hseSBjb25maWd1cmFibGUuLi4iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2xpZmZuaWZmL21lZGlhLWNvbnRyb2xzIiwKICAidXVpZCI6ICJtZWRpYWNvbnRyb2xzQGNsaWZmbmlmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "40": {"version": "17", "sha256": "1gd5h95vdspnldmngsldnmwvr02gi7yf5xii1jvi2ygb4x1yb0yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgeW91ciBtZWRpYSBwbGF5ZXJzIGluIHRoZSBwYW5lbC5cblxuLSBEaXNwbGF5IGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50IHRyYWNrIGluIHRoZSBwYW5lbFxuLSBDYW4gcGVyZm9ybSBkaWZmZXJlbnQgYWN0aW9ucyB3aXRoIHRoZSBtb3VzZS5cbi0gSGFzIGJhc2ljIGNvbnRyb2xzIHN1Y2ggYXMgcGxheS9wYXVzZSwgbmV4dCB0cmFjaywgcHJldmlvdXMgdHJhY2sgYW5kIG90aGVyIGNvbnRyb2xzIHN1Y2ggYXMgbG9vcCBhbmQgc2h1ZmZsZS5cbi0gQmxhY2tsaXN0IG1lZGlhIHBsYXllcnNcbi0gYW5kIGhpZ2hseSBjb25maWd1cmFibGUuLi4iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2xpZmZuaWZmL21lZGlhLWNvbnRyb2xzIiwKICAidXVpZCI6ICJtZWRpYWNvbnRyb2xzQGNsaWZmbmlmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a button to the panel that shows currently playing song on Spotify", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {"38": {"version": "8", "sha256": "0nrixfprxpgdj8jpfl16xqn9m8wq38yhw66m2d9zm7r3lfh1vq2z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5IiwKICAibmFtZSI6ICJzcG90aWZ5LXRyYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3AtdHJheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0nrixfprxpgdj8jpfl16xqn9m8wq38yhw66m2d9zm7r3lfh1vq2z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5IiwKICAibmFtZSI6ICJzcG90aWZ5LXRyYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3AtdHJheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "aws-default-profile-switcher@kevin-chappell.com", "name": "AWS Default Profile Switcher", "pname": "aws-default-profile-switcher", "description": "Gnome shell extension for quickly setting named profiles as the default", "link": "https://extensions.gnome.org/extension/4473/aws-default-profile-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0mal1290kdvqv60m0ps42hnx801knh5vd4mlwg1z7ydj9sw31cfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgcXVpY2tseSBzZXR0aW5nIG5hbWVkIHByb2ZpbGVzIGFzIHRoZSBkZWZhdWx0IiwKICAibmFtZSI6ICJBV1MgRGVmYXVsdCBQcm9maWxlIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V2aW5jaGFwcGVsbC9hd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJhd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyQGtldmluLWNoYXBwZWxsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "hide-panel-for-fullscreen-windows-only@github.freder", "name": "Hide panel (only when active window is fullscreen)", "pname": "hide-panel-only-when-active-window-is-fullscreen", "description": "hide top panel only when a fullscreen application has focus", "link": "https://extensions.gnome.org/extension/4475/hide-panel-only-when-active-window-is-fullscreen/", "shell_version_map": {"40": {"version": "2", "sha256": "1hd5agdjq73qiqip0m3grmlxk8klp26pd71cz555414mi3f9mww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGUgdG9wIHBhbmVsIG9ubHkgd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaGFzIGZvY3VzIiwKICAibmFtZSI6ICJIaWRlIHBhbmVsIChvbmx5IHdoZW4gYWN0aXZlIHdpbmRvdyBpcyBmdWxsc2NyZWVuKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZXIvaGlkZS1wYW5lbC1mb3ItZnVsbHNjcmVlbi13aW5kb3dzLW9ubHkiLAogICJ1dWlkIjogImhpZGUtcGFuZWwtZm9yLWZ1bGxzY3JlZW4td2luZG93cy1vbmx5QGdpdGh1Yi5mcmVkZXIiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "netspeed@alynx.one", "name": "Net Speed", "pname": "net-speed", "description": "Show current net speed on panel.", "link": "https://extensions.gnome.org/extension/4478/net-speed/", "shell_version_map": {"40": {"version": "2", "sha256": "0j48ai7nqkpr0ymypsicdp7nw59hx9rgya8qws58wx56q9bznl69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBuZXQgc3BlZWQgb24gcGFuZWwuIiwKICAibmFtZSI6ICJOZXQgU3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5ldHNwZWVkQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "22", "sha256": "1fzy4qn7q6hx99mn8kiar7pf1hjaf67i3il4flcz1l2mxwb62drb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1tYXJhbmFuL2ZvcmdlIiwKICAidXVpZCI6ICJmb3JnZUBqbW1hcmFuYW4uY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "23", "sha256": "0rn58k6wyfv2z0x56kklk0d11f4nqp8aqhwvy5dlmjcyn51vdr06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "41": {"version": "23", "sha256": "0rn58k6wyfv2z0x56kklk0d11f4nqp8aqhwvy5dlmjcyn51vdr06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
+, {"uuid": "autonightlight@zefty.github.io", "name": "Auto Night Light", "pname": "auto-night-light", "description": "Automatically adjust night light", "link": "https://extensions.gnome.org/extension/4482/auto-night-light/", "shell_version_map": {"38": {"version": "2", "sha256": "1dfaprvy36vvhiqsqksmkqwb66dm9wj38gjwbv3g9xlvshnaxv6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmVmdHkvQXV0b05pZ2h0TGlnaHQiLAogICJ1dWlkIjogImF1dG9uaWdodGxpZ2h0QHplZnR5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "favourites-in-appgrid@harshadgavali.gitlab.org", "name": "Favourites in AppGrid", "pname": "favourites-in-appgrid", "description": "Keep favourite applications in AppGrid", "link": "https://extensions.gnome.org/extension/4485/favourites-in-appgrid/", "shell_version_map": {"40": {"version": "1", "sha256": "1zcbs36kcmw50wgxkqn22abh8g1nx17p48vbpzk5x2842mn8shaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZmF2b3VyaXRlcy1pbi1hcHBncmlkLyIsCiAgInV1aWQiOiAiZmF2b3VyaXRlcy1pbi1hcHBncmlkQGhhcnNoYWRnYXZhbGkuZ2l0bGFiLm9yZyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "1zcbs36kcmw50wgxkqn22abh8g1nx17p48vbpzk5x2842mn8shaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZmF2b3VyaXRlcy1pbi1hcHBncmlkLyIsCiAgInV1aWQiOiAiZmF2b3VyaXRlcy1pbi1hcHBncmlkQGhhcnNoYWRnYXZhbGkuZ2l0bGFiLm9yZyIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "dark-variant@hardpixel.eu", "name": "Dark Variant", "pname": "dark-variant", "description": "Enable dark window decorations on applications. This extension is not compatible with applications that use Client Side Decorations (CSD).\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable applications.", "link": "https://extensions.gnome.org/extension/4488/dark-variant/", "shell_version_map": {"40": {"version": "2", "sha256": "0i24nb93ihhaw76aaiv62fpwbvhc5dp8n88n7j8jbb557f1cvpwy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0i24nb93ihhaw76aaiv62fpwbvhc5dp8n88n7j8jbb557f1cvpwy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "PrivacyMenu@stuarthayhurst", "name": "Privacy Settings Menu", "pname": "privacy-settings-menu", "description": "Add a privacy menu to the top bar for quick access to privacy settings", "link": "https://extensions.gnome.org/extension/4491/privacy-settings-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel (light version & without hot corner)", "pname": "hide-panel-light-version-without-hot-corner", "description": "Hide top panel except in overview.\n\nFor those who don't need a hot corner (e.g. running GNOME 40+ with three fingers gestures). Very very light extension. No options, no bugs. ;-)", "link": "https://extensions.gnome.org/extension/4496/hide-panel-light-version-without-hot-corner/", "shell_version_map": {"38": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "ssm-gnome@lgiki.net", "name": "Simple System Monitor", "pname": "simple-system-monitor", "description": "Show current CPU usage, memory usage and net speed on panel.\n\nThis is a fork of https://extensions.gnome.org/extension/4478/net-speed/.", "link": "https://extensions.gnome.org/extension/4506/simple-system-monitor/", "shell_version_map": {"40": {"version": "5", "sha256": "1gzj7zryq716nq15im9wfiaxji3b6gaq0yvbc6cqp2fawj7ajj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80NDc4L25ldC1zcGVlZC8uIiwKICAibmFtZSI6ICJTaW1wbGUgU3lzdGVtIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1gzj7zryq716nq15im9wfiaxji3b6gaq0yvbc6cqp2fawj7ajj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80NDc4L25ldC1zcGVlZC8uIiwKICAibmFtZSI6ICJTaW1wbGUgU3lzdGVtIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "unredirect@aunetx", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to prevent artifacts when in fullscreen.\n\nThis version makes sure the unredirect option is not re-enabled automatically by the shell.", "link": "https://extensions.gnome.org/extension/4509/disable-unredirect-fullscreen-windows/", "shell_version_map": {"40": {"version": "2", "sha256": "1d1frg29hhmlc1fdadz7ap9v3zrd2mw46ixs2rd9pm8z969fbw5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpc2FibGUtdW5yZWRpcmVjdCIsCiAgInV1aWQiOiAidW5yZWRpcmVjdEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {"40": {"version": "8", "sha256": "0hkgibrmwz7rk9y53x7klb1cx0v6vpygrx9ndfh173b3sk7dy1a0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0JpcGxhYi1EdXR0YS9OZXBhbGlfRGF0ZSIsCiAgInV1aWQiOiAibmVwYWxpLWRhdGVAYmlwbGFiIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "clock-left@mapuut", "name": "Clock Left", "pname": "clock-left", "description": "Move clock to left", "link": "https://extensions.gnome.org/extension/4526/clock-left/", "shell_version_map": {"38": {"version": "2", "sha256": "027wlahy8pwic90cyx677456miaj1kpmfw85r0y0iwr66i3k00qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsb2NrLWxlZnRAbWFwdXV0IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "027wlahy8pwic90cyx677456miaj1kpmfw85r0y0iwr66i3k00qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsb2NrLWxlZnRAbWFwdXV0IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "027wlahy8pwic90cyx677456miaj1kpmfw85r0y0iwr66i3k00qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsb2NrLWxlZnRAbWFwdXV0IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "cpudots@kdevmen.gmail.com", "name": "CPUdots", "pname": "cpudots", "description": "A basic cpu graph inspired from xfce4 cpu freq monitor plugin. it's incomplete right now... I'll update as soon as I get some time off my job.", "link": "https://extensions.gnome.org/extension/4530/cpudots/", "shell_version_map": {"40": {"version": "1", "sha256": "095dp7i7n6mk3y8fkkh6fiq1zh2lhs0z6cjfygwmr5vv9z23p7dg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjcHVkb3RzQGtkZXZtZW4uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "taildropsendxuwuming2014@outlook.com", "name": "TailDrop Send", "pname": "taildrop-send", "description": "Send files via tailscale", "link": "https://extensions.gnome.org/extension/4533/taildrop-send/", "shell_version_map": {"40": {"version": "3", "sha256": "1gg2ijadazlldysbyag1yrbgg9k9igfwylnjmiw7khjcbhjy1fjg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcjIzMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFpbGRyb3BzZW5kIiwKICAidXVpZCI6ICJ0YWlsZHJvcHNlbmR4dXd1bWluZzIwMTRAb3V0bG9vay5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "toggle-mute-on-middle-click-updated@konradmb", "name": "Toggle Mute on Middle Click", "pname": "toggle-mute-on-middle-click", "description": "Toggle mute by middle-clicking the volume indicator. Updated for Gnome 40 from: https://extensions.gnome.org/extension/1473/toggle-mute-on-middle-click/", "link": "https://extensions.gnome.org/extension/4538/toggle-mute-on-middle-click/", "shell_version_map": {"40": {"version": "1", "sha256": "0ag52arddv2dypfr1bs28c6dnfq0lrccibbl6cdzjx4d26j4cv4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBtdXRlIGJ5IG1pZGRsZS1jbGlja2luZyB0aGUgdm9sdW1lIGluZGljYXRvci4gVXBkYXRlZCBmb3IgR25vbWUgNDAgZnJvbTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTQ3My90b2dnbGUtbXV0ZS1vbi1taWRkbGUtY2xpY2svIiwKICAibmFtZSI6ICJUb2dnbGUgTXV0ZSBvbiBNaWRkbGUgQ2xpY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvZ2dsZS1tdXRlLW9uLW1pZGRsZS1jbGljay11cGRhdGVkQGtvbnJhZG1iIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "autohide-volume@unboiled.info", "name": "Autohide Volume", "pname": "autohide-volume", "description": "Autohide volume indicator when muted\n\nI'm not interested in the fact my output audio device is muted: this is how it's supposed to be. But if it's unmuted, then I want to see the icon.\n\nExcept when the mic is on, then I'm probably in a call, frantically figuring out what's wrong.", "link": "https://extensions.gnome.org/extension/4539/autohide-volume/", "shell_version_map": {"41": {"version": "1", "sha256": "1kiki2gks6jvngx62jz1mdg3xpi4npc4sv9v4mc7fz4s91ibsykr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZFxuXG5JJ20gbm90IGludGVyZXN0ZWQgaW4gdGhlIGZhY3QgbXkgb3V0cHV0IGF1ZGlvIGRldmljZSBpcyBtdXRlZDogdGhpcyBpcyBob3cgaXQncyBzdXBwb3NlZCB0byBiZS4gQnV0IGlmIGl0J3MgdW5tdXRlZCwgdGhlbiBJIHdhbnQgdG8gc2VlIHRoZSBpY29uLlxuXG5FeGNlcHQgd2hlbiB0aGUgbWljIGlzIG9uLCB0aGVuIEknbSBwcm9iYWJseSBpbiBhIGNhbGwsIGZyYW50aWNhbGx5IGZpZ3VyaW5nIG91dCB3aGF0J3Mgd3JvbmcuIiwKICAibmFtZSI6ICJBdXRvaGlkZSBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS90MTg0MjU2L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvaGlkZS12b2x1bWUiLAogICJ1dWlkIjogImF1dG9oaWRlLXZvbHVtZUB1bmJvaWxlZC5pbmZvIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {"38": {"version": "6", "sha256": "1kng66bnbq9fa307zmijarn6s4672h13s8hl55k2yf406rl5bijz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdW9uZ2dpYWtoYW5oYi9DbG91ZGZsYXJlX0dOT01FX0V4dGVuc2lvbiIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZUBhZGFtLmdhZG16IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "dell-command-configure-menu@vsimkus.github.io", "name": "Dell Command Configure menu", "pname": "dell-command-configure-menu", "description": "Adds submenu in gnome shell to access Dell Command Configure options.\n\nCurrently, only battery charge settings are implemented.\n\nThe Dell Command Configure tool must be installed separately from Dell https://www.dell.com/support/kbdoc/en-uk/000178000/dell-command-configure#Downloads.", "link": "https://extensions.gnome.org/extension/4545/dell-command-configure-menu/", "shell_version_map": {"38": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "tactile@lundal.io", "name": "Tactile", "pname": "tactile", "description": "Tile windows on a custom grid using your keyboard. Type Super-T to show the grid, then type two tiles (or the same tile twice) to move the active window.\n\nThe grid can be up to 4x3 (corresponding to one hand on the keyboard) and each row/column can be weighted to take up more or less space.", "link": "https://extensions.gnome.org/extension/4548/tactile/", "shell_version_map": {"38": {"version": "5", "sha256": "0v8xzpbb320vdr1kl95d463lpkxp5qyw9i5c8xl8rpwxx3zxp5is", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbHVuZGFsL3RhY3RpbGUiLAogICJ1dWlkIjogInRhY3RpbGVAbHVuZGFsLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0v8xzpbb320vdr1kl95d463lpkxp5qyw9i5c8xl8rpwxx3zxp5is", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbHVuZGFsL3RhY3RpbGUiLAogICJ1dWlkIjogInRhY3RpbGVAbHVuZGFsLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "killapp@adam.gadmz", "name": "Kill App", "pname": "kill-app", "description": "Force quit or kill application", "link": "https://extensions.gnome.org/extension/4551/kill-app/", "shell_version_map": {"38": {"version": "1", "sha256": "1qd59hn43lia2b7wg89yhxnai4dg1v66rfafisy20sfdq1rhrqax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvS2lsbGFwcF9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImtpbGxhcHBAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "hotkeys-popup@pimsnel.com", "name": "Hotkeys Popup", "pname": "hotkeys-popup", "description": "Pop-up cheatsheet with currently configured keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4553/hotkeys-popup/", "shell_version_map": {"40": {"version": "4", "sha256": "080ch8zg8y1ha9gq6hihjkqzymkwqarxsy3p8da8j6p6621w63y5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtaG90a2V5cy1wb3B1cCIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "080ch8zg8y1ha9gq6hihjkqzymkwqarxsy3p8da8j6p6621w63y5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtaG90a2V5cy1wb3B1cCIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "inotch@alynx.one", "name": "iNotch", "pname": "inotch", "description": "Add a useless notch to your screen.", "link": "https://extensions.gnome.org/extension/4556/inotch/", "shell_version_map": {"40": {"version": "3", "sha256": "0x4zx4ph20maf5gw08j0j6v2whvviqs220vlr903nbcc5cxy7yil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHVzZWxlc3Mgbm90Y2ggdG8geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJpTm90Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5vdGNoLyIsCiAgInV1aWQiOiAiaW5vdGNoQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0x4zx4ph20maf5gw08j0j6v2whvviqs220vlr903nbcc5cxy7yil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHVzZWxlc3Mgbm90Y2ggdG8geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJpTm90Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5vdGNoLyIsCiAgInV1aWQiOiAiaW5vdGNoQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "quick-lang-switch@ankostis.gmail.com", "name": "Quick Lang Switch", "pname": "quick-lang-switch", "description": "Quickly switch keyboard language layout without showing the switcher popup.\n\nThe language switcher popup by default takes ~0.7sec to appear, meaning that roughly 2-4 strokes are lost till the switch completes. This affects heavily users typing languages with non-latin based alphabets (e.g. Greek, Cyrilic, Arabic, Japanese), particularly when writting technical documents.\nThis extension reduces the switching time to 1/10th of a second (on a 2019 PC).", "link": "https://extensions.gnome.org/extension/4559/quick-lang-switch/", "shell_version_map": {"40": {"version": "3", "sha256": "13c0h4lpybfi45lpnmigffnfv9rxxb3m41hj9h9d9mb9796iwzd1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "13c0h4lpybfi45lpnmigffnfv9rxxb3m41hj9h9d9mb9796iwzd1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "ssh-connect-menu@edavidf", "name": "SSH Connect Menu", "pname": "ssh-connect-menu", "description": "This extension puts an icon in the panel with a simple dropdown menu that launches items from your ~.ssh/config. \n\nThis is a fork of original by Josh Martens (https://extensions.gnome.org/extension/3237/ssh-quick-connect/) for Gnome 40 compatible changes that Josh made but did not upload here for quick/easy install/remove. Besides this description, uuid, name, and version number, no changes were made.", "link": "https://extensions.gnome.org/extension/4564/ssh-connect-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1s85qm4gzsywr5wagvkwag2344iandh57gc7cj00wlx34y642kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgd2l0aCBhIHNpbXBsZSBkcm9wZG93biBtZW51IHRoYXQgbGF1bmNoZXMgaXRlbXMgZnJvbSB5b3VyIH4uc3NoL2NvbmZpZy4gXG5cblRoaXMgaXMgYSBmb3JrIG9mIG9yaWdpbmFsIGJ5IEpvc2ggTWFydGVucyAoaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzIzNy9zc2gtcXVpY2stY29ubmVjdC8pIGZvciBHbm9tZSA0MCBjb21wYXRpYmxlIGNoYW5nZXMgdGhhdCBKb3NoIG1hZGUgYnV0IGRpZCBub3QgdXBsb2FkIGhlcmUgZm9yIHF1aWNrL2Vhc3kgaW5zdGFsbC9yZW1vdmUuIEJlc2lkZXMgdGhpcyBkZXNjcmlwdGlvbiwgdXVpZCwgbmFtZSwgYW5kIHZlcnNpb24gbnVtYmVyLCBubyBjaGFuZ2VzIHdlcmUgbWFkZS4iLAogICJuYW1lIjogIlNTSCBDb25uZWN0IE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5naXRodWIuY29tL0VEYXZpZEYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNzaC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJzc2gtY29ubmVjdC1tZW51QGVkYXZpZGYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "pcalc@mgeck64.github.com", "name": "Panel Calculator", "pname": "panel-calculator", "description": "A text-based calculator that lives on the gnome panel, out of the way of your work.", "link": "https://extensions.gnome.org/extension/4567/panel-calculator/", "shell_version_map": {"38": {"version": "5", "sha256": "1gb3x888kks9k184ad44fpkaiv4pbir9d882y1bamkcs9fwc6lxb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1gb3x888kks9k184ad44fpkaiv4pbir9d882y1bamkcs9fwc6lxb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "zfs-status-monitor@chris.hubick.com", "name": "ZFS Status Monitor", "pname": "zfs-status-monitor", "description": "Display status of ZFS filesystem pools currently present on the system, updating every 60 seconds.", "link": "https://extensions.gnome.org/extension/4568/zfs-status-monitor/", "shell_version_map": {"40": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "dollar@dotpyc.com", "name": "Dollar", "pname": "dollar", "description": "Cotações do dólar USD para o real BRL em tempo real.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "2", "sha256": "1grip69s35z2cvsvm2937v9w8qcm994fkvjdvqf0w1dfg6gibxij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1grip69s35z2cvsvm2937v9w8qcm994fkvjdvqf0w1dfg6gibxij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "1grip69s35z2cvsvm2937v9w8qcm994fkvjdvqf0w1dfg6gibxij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
]
diff --git a/pkgs/desktops/gnome/extensions/gsconnect/default.nix b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
index 37824495a188..2d3d2415db24 100644
--- a/pkgs/desktops/gnome/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
@@ -19,7 +19,7 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-gsconnect";
- version = "47";
+ version = "48";
outputs = [ "out" "installedTests" ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
owner = "andyholmes";
repo = "gnome-shell-extension-gsconnect";
rev = "v${version}";
- sha256 = "sha256-cpyB7ufjKTj7YVbPlQFJ4qaL6Rb/aBReKxCYzErT4+Q=";
+ sha256 = "sha256-cKEFTF8DnQIQAXVW9NvE34mUqueQP/OtxTzMUy1dT5U=";
};
patches = [
diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index 3e99f3143d24..1c648e4a047c 100644
--- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -3,7 +3,6 @@
"arcmenu@arcmenu.com" = callPackage ./arcmenu { };
"caffeine@patapon.info" = callPackage ./caffeine { };
"clock-override@gnomeshell.kryogenix.org" = callPackage ./clock-override { };
- "dash-to-dock@micxgx.gmail.com" = callPackage ./dash-to-dock { };
"dash-to-panel@jderose9.github.com" = callPackage ./dash-to-panel { };
"drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
"EasyScreenCast@iacopodeenosee.gmail.com" = callPackage ./EasyScreenCast { };
@@ -21,6 +20,5 @@
"taskwhisperer-extension@infinicode.de" = callPackage ./taskwhisperer { };
"tilingnome@rliang.github.com" = callPackage ./tilingnome { };
"TopIcons@phocean.net" = callPackage ./topicons-plus { };
- "unite@hardpixel.eu" = callPackage ./unite { };
"window-corner-preview@fabiomereu.it" = callPackage ./window-corner-preview { };
}
diff --git a/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix b/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
index d57ccdcff837..8332d0afa4ac 100644
--- a/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
+++ b/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-night-theme-switcher";
- version = "50";
+ version = "53";
src = fetchFromGitLab {
owner = "rmnvgr";
repo = "nightthemeswitcher-gnome-shell-extension";
- rev = "v${version}";
- sha256 = "0rs08kr3wizs1vpkmm6pbcvnn7rz47yrq7vnb1s8d58yda9a850d";
+ rev = version;
+ sha256 = "0dgnh1aj0y89jzfkpj8zs4gdbmyc1v8lbki2q30gld17ljv4l6lh";
};
nativeBuildInputs = [ unzip ];
diff --git a/pkgs/desktops/gnome/extensions/system-monitor/default.nix b/pkgs/desktops/gnome/extensions/system-monitor/default.nix
index 439f02622a64..d770acfec16f 100644
--- a/pkgs/desktops/gnome/extensions/system-monitor/default.nix
+++ b/pkgs/desktops/gnome/extensions/system-monitor/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome }:
+{ lib, stdenv, substituteAll, fetchFromGitHub, fetchpatch, glib, glib-networking, libgtop, gnome }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-system-monitor";
- version = "unstable-2021-06-19";
+ version = "unstable-2021-09-07";
src = fetchFromGitHub {
owner = "paradoxxxzero";
repo = "gnome-shell-system-monitor-applet";
- rev = "bece7be22352b81d3d81e64e18a385812851b8de";
- sha256 = "08nnsg7z3cqk25hfgy4wm02hd2wpz13kig498kn4mf5f1q4hslmx";
+ rev = "133f9f32bca5d159515d709bbdee81bf497ebdc5";
+ sha256 = "1vz1s1x22xmmzaayrzv5jyzlmxslhfaybbnv959szvfp4mdrhch9";
};
buildInputs = [
@@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
gtop_path = "${libgtop}/lib/girepository-1.0";
glib_net_path = "${glib-networking}/lib/girepository-1.0";
})
+ # Support GNOME 41
+ (fetchpatch {
+ url = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/718/commits/f4ebc29afa707326b977230329e634db169f55b1.patch";
+ sha256 = "0ndnla41mvrww6ldf9d55ar1ibyj8ak5pp1dkjg75jii9slgzjqb";
+ })
];
buildPhase = ''
@@ -47,7 +52,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Display system informations in gnome shell status bar";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ tiramiseb ];
+ maintainers = with maintainers; [ andersk ];
homepage = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet";
};
}
diff --git a/pkgs/desktops/gnome/extensions/tilingnome/default.nix b/pkgs/desktops/gnome/extensions/tilingnome/default.nix
index 42c6467dba80..fbf89ffa19c9 100644
--- a/pkgs/desktops/gnome/extensions/tilingnome/default.nix
+++ b/pkgs/desktops/gnome/extensions/tilingnome/default.nix
@@ -1,7 +1,7 @@
{ stdenv, lib, fetchFromGitHub, glib, gnome }:
stdenv.mkDerivation rec {
- pname = "gnome-shell-extension-tilingnome-unstable";
+ pname = "gnome-shell-extension-tilingnome";
version = "unstable-2019-09-19";
src = fetchFromGitHub {
diff --git a/pkgs/desktops/gnome/extensions/unite/default.nix b/pkgs/desktops/gnome/extensions/unite/default.nix
deleted file mode 100644
index e73e43dd392e..000000000000
--- a/pkgs/desktops/gnome/extensions/unite/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv, gnome, fetchFromGitHub, xprop, glib }:
-
-stdenv.mkDerivation rec {
- pname = "gnome-shell-extension-unite";
- version = "55";
-
- src = fetchFromGitHub {
- owner = "hardpixel";
- repo = "unite-shell";
- rev = "v${version}";
- sha256 = "0bav4vzky3p7np2gphxc6bw38c697kalmaibaar9vi0ip3xkkavk";
- };
-
- passthru = {
- extensionUuid = "unite@hardpixel.eu";
- extensionPortalSlug = "unite";
- };
-
- nativeBuildInputs = [ glib ];
-
- buildInputs = [ xprop ];
-
- buildPhase = ''
- runHook preBuild
- glib-compile-schemas --strict --targetdir="unite@hardpixel.eu/schemas/" "unite@hardpixel.eu/schemas"
- runHook postBuild
- '';
-
- installPhase = ''
- runHook preInstall
- mkdir -p $out/share/gnome-shell/extensions
- cp -r "unite@hardpixel.eu" $out/share/gnome-shell/extensions
- runHook postInstall
- '';
-
- meta = with lib; {
- description = "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell";
- license = licenses.gpl3Only;
- maintainers = with maintainers; [ rhoriguchi ];
- homepage = "https://github.com/hardpixel/unite-shell";
- broken = versionOlder gnome.gnome-shell.version "3.32";
- };
-}
diff --git a/pkgs/desktops/gnome/extensions/update-extensions.py b/pkgs/desktops/gnome/extensions/update-extensions.py
index f109e315c94a..0582d3ca942d 100755
--- a/pkgs/desktops/gnome/extensions/update-extensions.py
+++ b/pkgs/desktops/gnome/extensions/update-extensions.py
@@ -17,6 +17,7 @@ import base64
supported_versions = {
"38": "3.38",
"40": "40",
+ "41": "41",
}
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index 18bfea263f94..991bbb786b11 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -19,14 +19,14 @@
stdenv.mkDerivation rec {
pname = "aisleriot";
- version = "3.22.17";
+ version = "3.22.19";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = pname;
rev = version;
- sha256 = "sha256-14z/EdEz1XFDrQZlpoeHW73G187XuZX/uQXp+bAUsmI=";
+ sha256 = "sha256-YY0/HkafcbbW0xuE9RmjYMHN50lM0o0zugOyTefT0bE=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/games/gnome-chess/default.nix b/pkgs/desktops/gnome/games/gnome-chess/default.nix
index c632bce407bc..e47e77d9c0ab 100644
--- a/pkgs/desktops/gnome/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-chess/default.nix
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "gnome-chess";
- version = "40.1";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-chess/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "132nc96z0bryyi9d5gljsbwsa71rl8wm5w57jbhpwiv4fyjhgybk";
+ sha256 = "62GYhlljlrQDOj8oo8LjAEtU6+Gzi0DWQiwXufLMF9A=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/games/hitori/default.nix b/pkgs/desktops/gnome/games/hitori/default.nix
index 9c08aa5cada4..15759c681984 100644
--- a/pkgs/desktops/gnome/games/hitori/default.nix
+++ b/pkgs/desktops/gnome/games/hitori/default.nix
@@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "hitori";
- version = "3.38.2";
+ version = "3.38.3";
src = fetchurl {
url = "mirror://gnome/sources/hitori/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "wmQ1cwN/ansW6SCK7e6GkQJvCBq6qhYJQu21LwkCnKw=";
+ sha256 = "99cQPLBjP7ATcwExqYw646IWK5+5SZ/H8ZUS1YG/ZWk=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/games/swell-foop/default.nix b/pkgs/desktops/gnome/games/swell-foop/default.nix
index 50fab598153a..b36f273f6d2f 100644
--- a/pkgs/desktops/gnome/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome/games/swell-foop/default.nix
@@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "swell-foop";
- version = "40.1";
+ version = "41.0.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "17r4b0g8s7z872wdd7ngk248z7fqx43vm2sym1bdqhzsi250s1y1";
+ sha256 = "YEL/MTxsh9VkgnxwNpazsgkTbD/Dn+Jkpu+k4wWTg9g=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/games/tali/default.nix b/pkgs/desktops/gnome/games/tali/default.nix
index 9399561e6784..a940a6f2cd63 100644
--- a/pkgs/desktops/gnome/games/tali/default.nix
+++ b/pkgs/desktops/gnome/games/tali/default.nix
@@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "tali";
- version = "40.2";
+ version = "40.4";
src = fetchurl {
url = "mirror://gnome/sources/tali/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "9SHsnW1SKA/Pfi1IerbVqIw54yx6n5XrqwKdUsAj4Cs=";
+ sha256 = "AsrMdvTuQjD2eqAK2hlOnFSPidJ6DnLyANi9U67nGhc=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/misc/gnome-applets/default.nix b/pkgs/desktops/gnome/misc/gnome-applets/default.nix
index f581017dd565..2cdafcc23b30 100644
--- a/pkgs/desktops/gnome/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-applets/default.nix
@@ -23,11 +23,11 @@
stdenv.mkDerivation rec {
pname = "gnome-applets";
- version = "3.40.0";
+ version = "3.42.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1k6mdkg16ia29fyg8ikf4dfs51gnrmg0f8xwpvd3192lhfsbsh19";
+ sha256 = "/RaXR7kv7/Rs05/mLyPd+WZ8EAaPRigDOF0TjvxIedQ=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
index 2afb401bef45..526e6776f7f2 100644
--- a/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
@@ -1,5 +1,8 @@
-{ lib, stdenv
+{ stdenv
+, lib
, fetchurl
+, meson
+, ninja
, pkg-config
, gnome
, gtk3
@@ -11,21 +14,19 @@
stdenv.mkDerivation rec {
pname = "gnome-autoar";
- version = "0.3.3";
+ version = "0.4.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "JyQA9zo3Wn6I/fHhJZG/uPPwPt8BeAytzXT3C2E+XAQ=";
- };
-
- passthru = {
- updateScript = gnome.updateScript { packageName = "gnome-autoar"; attrPath = "gnome.gnome-autoar"; };
+ sha256 = "ZGvVDrrZLZHBvokJehU2QVYVdELKwUcd7X7LJ9mpFQ4=";
};
nativeBuildInputs = [
gobject-introspection
+ meson
+ ninja
pkg-config
vala
];
@@ -39,6 +40,17 @@ stdenv.mkDerivation rec {
glib
];
+ mesonFlags = [
+ "-Dvapi=true"
+ ];
+
+ passthru = {
+ updateScript = gnome.updateScript {
+ packageName = "gnome-autoar";
+ attrPath = "gnome.gnome-autoar";
+ };
+ };
+
meta = with lib; {
platforms = platforms.linux;
maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/misc/gnome-panel/default.nix b/pkgs/desktops/gnome/misc/gnome-panel/default.nix
index 2e33be766b86..aa472230e9cd 100644
--- a/pkgs/desktops/gnome/misc/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-panel/default.nix
@@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "gnome-panel";
- version = "3.40.0";
+ version = "3.42.0";
outputs = [ "out" "dev" "man" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- hash = "sha256-nxNQde3GZs8rnKkd41xnA+KxdxwQp3B0FPtlbCilmzs=";
+ hash = "sha256-rqjA78LtuiDpetRpUXnNCiU45kwpBHAsyMWU6OCJhwM=";
};
patches = [
diff --git a/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix b/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
index 460ab47733ca..6a9f4f19385d 100644
--- a/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
@@ -56,7 +56,7 @@ python3Packages.buildPythonApplication rec {
libsoup
];
- propagatedBuildInputs = with python3Packages; [
+ pythonPath = with python3Packages; [
pygobject3
];
@@ -64,6 +64,16 @@ python3Packages.buildPythonApplication rec {
patchShebangs meson-postinstall.py
'';
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ postFixup = ''
+ wrapPythonProgramsIn "$out/libexec" "$out $pythonPath"
+ '';
+
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
diff --git a/pkgs/desktops/gnome/misc/gpaste/default.nix b/pkgs/desktops/gnome/misc/gpaste/default.nix
index 15fcfbfe390a..98670c993111 100644
--- a/pkgs/desktops/gnome/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome/misc/gpaste/default.nix
@@ -17,14 +17,14 @@
}:
stdenv.mkDerivation rec {
- version = "3.40.2";
+ version = "3.42.1";
pname = "gpaste";
src = fetchFromGitHub {
owner = "Keruspe";
repo = "GPaste";
rev = "v${version}";
- sha256 = "sha256-DUikcnkDBRkCwPLrl8lkNr+SeNpc3bPwPTWRn91nOo4=";
+ sha256 = "sha256-yoJ/k9cXXF5ELKF0JXGtxsUjfQ/S1sccLRQOQG7YMXo=";
};
patches = [
diff --git a/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix b/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
index dd65f858b6de..46de584d5b1e 100644
--- a/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
+++ b/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
@@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "libgnome-games-support";
- version = "1.8.1";
+ version = "1.8.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0gs1k88wwafn5cdyb5yq1cxpi9azachb0ysxgwh15sx77g6plyy3";
+ sha256 = "KENGBKewOHMawCMXMTiP8QT1ZbsjMMwk54zaBM/T730=";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/misc/metacity/default.nix b/pkgs/desktops/gnome/misc/metacity/default.nix
index 702b7ffb38bb..8dcef7922659 100644
--- a/pkgs/desktops/gnome/misc/metacity/default.nix
+++ b/pkgs/desktops/gnome/misc/metacity/default.nix
@@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "metacity";
- version = "3.40.0";
+ version = "3.42.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1d8mj2nshijshfiaica8dirfws1p6i9631frq7q23b3y91jiyk12";
+ sha256 = "2J1nnc/tm17vGPBuLcszp6tUPVOzWPqJzmVZPCMe7rw=";
};
patches = [
diff --git a/pkgs/desktops/gnome/misc/nautilus-python/default.nix b/pkgs/desktops/gnome/misc/nautilus-python/default.nix
index 40c1d4c767af..ed1fd365ebc6 100644
--- a/pkgs/desktops/gnome/misc/nautilus-python/default.nix
+++ b/pkgs/desktops/gnome/misc/nautilus-python/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv
+{ stdenv
+, lib
+, substituteAll
, fetchurl
, pkg-config
, which
@@ -23,6 +25,16 @@ stdenv.mkDerivation rec {
sha256 = "161050sx3sdxqcpjkjcpf6wl4kx0jydihga7mcvrj9c2f8ly0g07";
};
+ patches = [
+ # Make PyGObject’s gi library available.
+ (substituteAll {
+ src = ./fix-paths.patch;
+ pythonPaths = lib.concatMapStringsSep ", " (pkg: "'${pkg}/${python3.sitePackages}'") [
+ python3.pkgs.pygobject3
+ ];
+ })
+ ];
+
nativeBuildInputs = [
pkg-config
which
diff --git a/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch b/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
new file mode 100644
index 000000000000..ba82937d6c9c
--- /dev/null
+++ b/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
@@ -0,0 +1,14 @@
+diff --git a/src/nautilus-python.c b/src/nautilus-python.c
+index 843e3c6..466a513 100644
+--- a/src/nautilus-python.c
++++ b/src/nautilus-python.c
+@@ -184,6 +184,9 @@ nautilus_python_init_python (void) {
+ return FALSE;
+ }
+
++ debug("Add PyGObject to path");
++ PyRun_SimpleString("import site;import functools; functools.reduce(lambda k, p: site.addsitedir(p, k), [@pythonPaths@], site._init_pathinfo())");
++
+ /* import gobject */
+ debug("init_pygobject");
+ if (!np_init_pygobject()) {
diff --git a/pkgs/desktops/gnome/misc/pomodoro/default.nix b/pkgs/desktops/gnome/misc/pomodoro/default.nix
index 2881cc7e50fb..245a52293432 100644
--- a/pkgs/desktops/gnome/misc/pomodoro/default.nix
+++ b/pkgs/desktops/gnome/misc/pomodoro/default.nix
@@ -1,9 +1,13 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, autoconf-archive
-, appstream-glib
+, substituteAll
+, fetchpatch
+, meson
+, ninja
, pkg-config
, wrapGAppsHook
+, desktop-file-utils
, libcanberra
, gst_all_1
, vala
@@ -11,43 +15,54 @@
, gom
, sqlite
, libxml2
-, autoreconfHook
, glib
, gobject-introspection
, libpeas
-, gnome-shell
, gsettings-desktop-schemas
-, adwaita-icon-theme
, gettext
}:
stdenv.mkDerivation rec {
pname = "gnome-shell-pomodoro";
- version = "0.19.1";
+ version = "0.20.0";
src = fetchFromGitHub {
- owner = "codito";
+ owner = "gnome-pomodoro";
repo = "gnome-pomodoro";
rev = version;
- sha256 = "sha256-im66QUzz6PcX0vkf4cN57ttRLB4KKPFky1pwUa4V7kQ=";
+ sha256 = "sha256-USzLHoBM0QbBPtbTzJJY02cOSDtmlxPGYhMj7M1FJic=";
};
+ patches = [
+ # Our glib setup hooks moves GSettings schemas to a subdirectory to prevent conflicts.
+ # We need to patch the build script so that the extension can find them.
+ (substituteAll {
+ src = ./fix-schema-path.patch;
+ inherit pname version;
+ })
+
+ # Fix error reporting code.
+ # https://github.com/gnome-pomodoro/gnome-pomodoro/pull/591
+ (fetchpatch {
+ url = "https://github.com/gnome-pomodoro/gnome-pomodoro/commit/133bd62f15653856d9705b66188b42c20d81719e.patch";
+ sha256 = "A20K+57A6/lYH2Buri2+wrCQgz6EGBdYg2xQbHPSkYc=";
+ })
+ ];
+
nativeBuildInputs = [
- appstream-glib
- autoconf-archive
- autoreconfHook
+ meson
+ ninja
gettext
gobject-introspection
libxml2
pkg-config
vala
wrapGAppsHook
+ desktop-file-utils
];
buildInputs = [
- adwaita-icon-theme
glib
- gnome-shell
gom
gsettings-desktop-schemas
gst_all_1.gst-plugins-base
diff --git a/pkgs/desktops/gnome/misc/pomodoro/fix-schema-path.patch b/pkgs/desktops/gnome/misc/pomodoro/fix-schema-path.patch
new file mode 100644
index 000000000000..0750d01f8675
--- /dev/null
+++ b/pkgs/desktops/gnome/misc/pomodoro/fix-schema-path.patch
@@ -0,0 +1,40 @@
+diff --git a/data/meson.build b/data/meson.build
+index 5e4ce69..982b3c9 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -31,7 +31,7 @@ i18n.merge_file(
+
+ install_data(
+ 'org.gnome.pomodoro.gschema.xml',
+- install_dir: get_option('datadir') / 'glib-2.0' / 'schemas',
++ install_dir: gschema_dir,
+ )
+
+ subdir('icons')
+diff --git a/meson-post-install.sh b/meson-post-install.sh
+index bf4013a..c87fba4 100644
+--- a/meson-post-install.sh
++++ b/meson-post-install.sh
+@@ -7,7 +7,7 @@ datadir="${prefix}/$1"
+ # want/need us to do the below
+ if [ -z "${DESTDIR}" ]; then
+ echo "Compiling GSchema..."
+- glib-compile-schemas "${datadir}/glib-2.0/schemas"
++ glib-compile-schemas "${datadir}/gsettings-schemas/@pname@-@version@/glib-2.0/schemas"
+
+ echo "Updating icon cache..."
+ gtk-update-icon-cache -f -t "${datadir}/icons/hicolor"
+diff --git a/meson.build b/meson.build
+index 09857a1..a07d27c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -40,7 +40,8 @@ add_project_arguments(
+ )
+
+ # We are going to use these variables later on for the plugins
+-gschema_dir = get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas'
++nix_package_name = '@pname@' + '-' + '@version@'
++gschema_dir = get_option('prefix') / get_option('datadir') / 'gsettings-schemas' / nix_package_name / 'glib-2.0' / 'schemas'
+ plugin_libdir = get_option('prefix') / get_option('libdir') / meson.project_name() / 'plugins'
+ extension_dir = get_option('prefix') / get_option('datadir') / 'gnome-shell' / 'extensions' / 'pomodoro@arun.codito.in'
+
diff --git a/pkgs/desktops/lumina/lumina/default.nix b/pkgs/desktops/lumina/lumina/default.nix
index d31f16e235ad..b56e9c4bc2f8 100644
--- a/pkgs/desktops/lumina/lumina/default.nix
+++ b/pkgs/desktops/lumina/lumina/default.nix
@@ -3,6 +3,7 @@
, fetchFromGitHub
, fluxbox
, libarchive
+, linux-pam
, numlockx
, qmake
, qtbase
@@ -17,13 +18,13 @@
mkDerivation rec {
pname = "lumina";
- version = "1.6.0";
+ version = "1.6.1";
src = fetchFromGitHub {
owner = "lumina-desktop";
repo = pname;
rev = "v${version}";
- sha256 = "0bvs12c9pkc6fnkfcr7rrxc8jfbzbslch4nlfjrzwi203fcv4avw";
+ sha256 = "0wc8frhw1yv07n05r33c4zilq5lgn5gw07a9n37g6nyn5sgrbp4f";
};
nativeBuildInputs = [
@@ -35,6 +36,7 @@ mkDerivation rec {
buildInputs = [
fluxbox # window manager for Lumina DE
libarchive # make `bsdtar` available for lumina-archiver
+ linux-pam
numlockx # required for changing state of numlock at login
qtbase
qtmultimedia
@@ -49,7 +51,6 @@ mkDerivation rec {
];
patches = [
- ./avoid-absolute-path-on-sessdir.patch
./LuminaOS-NixOS.cpp.patch
];
@@ -60,6 +61,14 @@ mkDerivation rec {
'';
postPatch = ''
+ # Avoid absolute path on sessdir
+ substituteInPlace src-qt5/OS-detect.pri \
+ --replace L_SESSDIR=/usr/share/xsessions '#L_SESSDIR=/usr/share/xsessions'
+
+ # Do not set special permission
+ substituteInPlace src-qt5/core/lumina-checkpass/lumina-checkpass.pro \
+ --replace "chmod 4555" "chmod 555"
+
# Fix plugin dir
substituteInPlace src-qt5/core/lumina-theme-engine/lthemeengine.pri \
--replace "\$\$[QT_INSTALL_PLUGINS]" "$out/$qtPluginPrefix"
diff --git a/pkgs/desktops/lxqt/libfm-qt/default.nix b/pkgs/desktops/lxqt/libfm-qt/default.nix
index c28d069d5f11..fd7c7758f2bc 100644
--- a/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/libfm-qt/default.nix
@@ -16,13 +16,13 @@
mkDerivation rec {
pname = "libfm-qt";
- version = "0.17.1";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = "libfm-qt";
rev = version;
- sha256 = "0jdsqvwp81y4ylabrqdc673x80fp41rpp5w7c1v9zmk9k8z4s5ll";
+ sha256 = "1kk2cv9cp2gdj2pzdgm72c009iyl3mhrvsiz05kdxd4v1kn38ci1";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/liblxqt/default.nix b/pkgs/desktops/lxqt/liblxqt/default.nix
index b7aa5d95eaf1..8e17437b4721 100644
--- a/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/pkgs/desktops/lxqt/liblxqt/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "liblxqt";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0n0pjz5wihchfcji8qal0lw8kzvv3im50v1lbwww4ymrgacz9h4l";
+ sha256 = "08cqvq99pvz8lz13273hlpv8160r6zyz4f7h4kl1g8xdga7m45gr";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libqtxdg/default.nix b/pkgs/desktops/lxqt/libqtxdg/default.nix
index 7abaed7c09ab..b6294e20dcef 100644
--- a/pkgs/desktops/lxqt/libqtxdg/default.nix
+++ b/pkgs/desktops/lxqt/libqtxdg/default.nix
@@ -10,13 +10,13 @@
mkDerivation rec {
pname = "libqtxdg";
- version = "3.7.1";
+ version = "3.8.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1x806hdics3d49ys0a2vkln9znidj82qscjnpcqxclxn26xqzd91";
+ sha256 = "14jrzwdmhgn6bcggmhxx5rdapjzm93cfkjjls3nii1glnkwzncxz";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libsysstat/default.nix b/pkgs/desktops/lxqt/libsysstat/default.nix
index 8da7675d485c..bd5b6679259d 100644
--- a/pkgs/desktops/lxqt/libsysstat/default.nix
+++ b/pkgs/desktops/lxqt/libsysstat/default.nix
@@ -9,13 +9,13 @@
mkDerivation rec {
pname = "libsysstat";
- version = "0.4.5";
+ version = "0.4.6";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "14q55iayygmjh63zgsb9qa4af766gj9b0jsrmfn85fdiqb8p8yfz";
+ sha256 = "0z2r8041vqssm59lkb3ka7qis9br4wvavxzd45m3pnqlp7wwhkbn";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lximage-qt/default.nix b/pkgs/desktops/lxqt/lximage-qt/default.nix
index 10e40f4ed9dc..510339b46f56 100644
--- a/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/pkgs/desktops/lxqt/lximage-qt/default.nix
@@ -16,13 +16,13 @@
mkDerivation rec {
pname = "lximage-qt";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1xajsblk2954crvligvrgwp7q1pj7124xdfnlq9k9q0ya2xc36lx";
+ sha256 = "1bf0smkawyibrabw7zcynwr2afpsv7pnnyxn4nqgh6mxnp7al157";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-about/default.nix b/pkgs/desktops/lxqt/lxqt-about/default.nix
index 08e21736125a..abab373430bf 100644
--- a/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-about/default.nix
@@ -14,13 +14,13 @@
mkDerivation rec {
pname = "lxqt-about";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "011jcab47iif741azfgvf52my118nwkny5m0pa7nsqyv8ad1fsiw";
+ sha256 = "1fr2mx19ks4crh7cjc080vkrzldzgmghxvrzjqq7lspkzd5a0pjb";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-admin/default.nix b/pkgs/desktops/lxqt/lxqt-admin/default.nix
index a3fd034e3365..120014b25f62 100644
--- a/pkgs/desktops/lxqt/lxqt-admin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-admin/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "lxqt-admin";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1xi169gz1sarv7584kg33ymckqlx9ddci7r9m0dlm4a7mw7fm0lf";
+ sha256 = "06l7vs8aqx37bhrxf9xa16g7rdmia8j73q78qfj6syw57f3ssjr9";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 348ee3423de7..a6560198f6b5 100644
--- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -14,13 +14,13 @@
mkDerivation rec {
pname = "lxqt-archiver";
- version = "0.4.0";
+ version = "0.5.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = "lxqt-archiver";
rev = version;
- sha256 = "0wpayzcyqcnvzk95bqql7p07l8p7mwdgdj7zlbcsdn0wis4yhjm6";
+ sha256 = "033lq7n34a5qk2zv8kr1633p5x2cjimv4w4n86w33xmcwya4yiji";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index fb2ed9e37d7b..15bc1941af3f 100644
--- a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -13,13 +13,13 @@
mkDerivation rec {
pname = "lxqt-build-tools";
- version = "0.9.0";
+ version = "0.10.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0zhcv6cbdn9fr5lpglz26gzssbxkpi824sgc0g7w3hh1z6nqqf8l";
+ sha256 = "1hb04zgpalxv6da3myf1dxsbjix15dczzfq8a24g5dg2zfhwpx21";
};
# Nix clang on darwin identifies as 'Clang', not 'AppleClang'
diff --git a/pkgs/desktops/lxqt/lxqt-config/default.nix b/pkgs/desktops/lxqt/lxqt-config/default.nix
index 60e6ca3d4e82..d46e8e05e09b 100644
--- a/pkgs/desktops/lxqt/lxqt-config/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-config/default.nix
@@ -3,6 +3,7 @@
, fetchFromGitHub
, cmake
, pkg-config
+, glib
, lxqt-build-tools
, qtbase
, qtx11extras
@@ -18,13 +19,13 @@
mkDerivation rec {
pname = "lxqt-config";
- version = "0.17.1";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0b9jihmsqgdfdsisz15j3p53fgf1w30s8irj9zjh52fsj58p924p";
+ sha256 = "0yllqjmj4xbqi5681ffjxmlwlf9k9bpy3hgs7li6lnn90yy46qmr";
};
nativeBuildInputs = [
@@ -34,6 +35,7 @@ mkDerivation rec {
];
buildInputs = [
+ glib.bin
qtbase
qtx11extras
qttools
@@ -51,6 +53,12 @@ mkDerivation rec {
xorg.xf86inputlibinput.dev
];
+ postPatch = ''
+ substituteInPlace lxqt-config-appearance/configothertoolkits.cpp \
+ --replace 'QStringLiteral("gsettings' \
+ 'QStringLiteral("${glib.bin}/bin/gsettings'
+ '';
+
passthru.updateScript = lxqtUpdateScript { inherit pname version src; };
meta = with lib; {
diff --git a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
index 6dab1cbf736f..13983bb0881d 100644
--- a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "lxqt-globalkeys";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "135292l8w9sngg437n1zigkap15apifyqd9847ln84bxsmcj8lay";
+ sha256 = "015nrlzlcams4k8svrq7692xbjlai1dmwvjdldncsbrgrmfa702m";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
index 093706fd6eee..baa9784e4ef6 100644
--- a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "lxqt-notificationd";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1r2cmxcjkm9lvb2ilq2winyqndnamsd9x2ynmfiqidby2pcr9i3a";
+ sha256 = "06gb8k1p24gm5axy42npq7n4lmsxb03a9kvzqby44qmgwh8pn069";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
index a6fbfc2f5620..7f5f1e74f359 100644
--- a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "lxqt-openssh-askpass";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "18pn7kw9aw7859jnwvjnjcvr50pqsi8gqcxsbx9rvsjrybw2qcgc";
+ sha256 = "0fp5jq3j34p81y200jbyp7wcz04r7jk07bfwrigjwcyj2xknkrgw";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix
index 34578e6bc5fe..b9b9936893fb 100644
--- a/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -30,13 +30,13 @@
mkDerivation rec {
pname = "lxqt-panel";
- version = "0.17.1";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1wmm4sml7par5z9xcs5qx2y2pdbnnh66zs37jhx9f9ihcmh1sqlw";
+ sha256 = "0i63jyjg31336davjdak7z3as34gazx1lri65fk2f07kka9dx1jl";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index 0a84799d3728..51e46b00ce82 100644
--- a/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
@@ -19,13 +19,13 @@
mkDerivation rec {
pname = "lxqt-policykit";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "15f0hnif8zs38qgckif63dds9zgpp3dmg9pg3ppgh664lkbxx7n7";
+ sha256 = "0hmxzkkggnpci305xax9663cbjqdh6n0j0dawwcpwj4ks8mp7xh7";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
index 3713bcf0bb50..90f03f6b3a1e 100644
--- a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
@@ -18,13 +18,13 @@
mkDerivation rec {
pname = "lxqt-powermanagement";
- version = "0.17.1";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "04prx15l05kw97mwajc8yi2s7p3n6amzs5jnnmh9payxzp6glzmk";
+ sha256 = "0dwz8z3463dz49d5k5bh7splb1zdi617xc4xzlqxxrxbf3n8x4ix";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
index 3095b2399261..05119e9da400 100644
--- a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "lxqt-qtplugin";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "168ii015j57hkccdh27h2fdh8yzs8nzy8nw20wnx6fbcg5401666";
+ sha256 = "1vr2hlv1q9xwkh9bapy29g9fi90d33xw7pr9zc1bfma6j152qs36";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-runner/default.nix b/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 32d9194be670..b1d8ad352720 100644
--- a/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-runner/default.nix
@@ -20,13 +20,13 @@
mkDerivation rec {
pname = "lxqt-runner";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "167gzn6aqk7akzbmrnm7nmcpkl0nphr8axbfgwnw552dnk6v8gn0";
+ sha256 = "06b7l2jkh0h4ikddh82nxkz7qhg5ap7l016klg3jl2x659z59hpj";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-session/default.nix b/pkgs/desktops/lxqt/lxqt-session/default.nix
index b62ca157eeb4..cbda2a7185af 100644
--- a/pkgs/desktops/lxqt/lxqt-session/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-session/default.nix
@@ -19,13 +19,13 @@
mkDerivation rec {
pname = "lxqt-session";
- version = "0.17.1";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1nhw3y3dm4crawc1905l6drn0i79fs1dzs8iak0vmmplbiv3fvgg";
+ sha256 = "0g355dmlyz8iljw953gp5jqlz02abd1ksssah826hxcy4j89mk7s";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-sudo/default.nix b/pkgs/desktops/lxqt/lxqt-sudo/default.nix
index 4daf40197e87..bef00af4febc 100644
--- a/pkgs/desktops/lxqt/lxqt-sudo/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-sudo/default.nix
@@ -16,13 +16,13 @@
mkDerivation rec {
pname = "lxqt-sudo";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "10s8k83mkqiakh18mh1l7idjp95cy49rg8dh14cy159dk8mchcd0";
+ sha256 = "1y2vq3n5sv6cxqpnz79kl3dybfbw65z93cahdz8m6gplzpp24gn4";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-themes/default.nix b/pkgs/desktops/lxqt/lxqt-themes/default.nix
index 985e84d03c25..7f7278528c44 100644
--- a/pkgs/desktops/lxqt/lxqt-themes/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-themes/default.nix
@@ -8,13 +8,13 @@
mkDerivation rec {
pname = "lxqt-themes";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "13zh5yrq0f96cn5m6i7zdvgb9iw656fad5ps0s2zx6x8mj2mv64f";
+ sha256 = "1viaqmcq4axwsq5vrr08j95swapbqnwmv064kaijm1jj9csadsvv";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index 662930e4e37e..314a7554319d 100644
--- a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
@@ -13,13 +13,13 @@
mkDerivation rec {
pname = "pavucontrol-qt";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0syc4bc2k7961la2c77787akhcljspq3s2nyqvb7mq7ddq1xn0wx";
+ sha256 = "1n8h8flcm0na7n295lkjv49brj6razwml21wwrinwllw7s948qp0";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index ba913cd147f6..9f06d9f76d3b 100644
--- a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -15,13 +15,13 @@
mkDerivation rec {
pname = "pcmanfm-qt";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "1awyncpypygsrg7d2nc6xh1l4xaln3ypdliy4xmq8bf94sh9rf0y";
+ sha256 = "1g7pl9ygk4k72rsrcsfjnr7h2yzp3pfmlc5wq6bhyq9rqpr5yv7l";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qps/default.nix b/pkgs/desktops/lxqt/qps/default.nix
index 0a4918190b06..f8f134037755 100644
--- a/pkgs/desktops/lxqt/qps/default.nix
+++ b/pkgs/desktops/lxqt/qps/default.nix
@@ -14,13 +14,13 @@
mkDerivation rec {
pname = "qps";
- version = "2.3.0";
+ version = "2.4.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0fihhnb7vp6x072spg1fnxaip4sq9mbvhrfqdwnzph5dlyvs54nj";
+ sha256 = "11mbzn4syfghb3zvdrw2011njagcw206ng6c8l9z9h3zlhmhcd57";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index d383703199a8..e93e404762a2 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -12,13 +12,13 @@
mkDerivation rec {
pname = "qterminal";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0mdcz45faj9ysw725qzg572968kf5sh6zfw7iiksi26s8kiyhbbp";
+ sha256 = "12p3fnbkpj6z0iplg75304l8kvnn145iq6bpw30n9bwflxrd6yhd";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qtermwidget/default.nix b/pkgs/desktops/lxqt/qtermwidget/default.nix
index 94a9c651cc8c..20602573d282 100644
--- a/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/pkgs/desktops/lxqt/qtermwidget/default.nix
@@ -10,13 +10,13 @@
mkDerivation rec {
pname = "qtermwidget";
- version = "0.17.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "0pmkk2mba8z6cgfsd8sy4vhf5d9fn9hvxszzyycyy1ndygjrc1v8";
+ sha256 = "0i1w5wgac7r4p0jjrrswlvvwivkwrp1b88xh5ijjw6k9irjc7zf6";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/screengrab/default.nix b/pkgs/desktops/lxqt/screengrab/default.nix
index 0ed305403b19..2e1c568a4890 100644
--- a/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/pkgs/desktops/lxqt/screengrab/default.nix
@@ -17,13 +17,13 @@
mkDerivation rec {
pname = "screengrab";
- version = "2.2.0";
+ version = "2.3.0";
src = fetchFromGitHub {
owner = "lxqt";
repo = pname;
rev = version;
- sha256 = "16dycq40lbvk6jvpj7zp85m23cgvh8nj38fz99gxjfzn2nz1gy4a";
+ sha256 = "1ca5yyvcahabyrdjcsznz9j66yrdlvnfa3650iwlz6922c3dkn2k";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix
index 81c5bdcd78ec..c88e3a72ea45 100644
--- a/pkgs/desktops/mate/atril/default.nix
+++ b/pkgs/desktops/mate/atril/default.nix
@@ -75,6 +75,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/caja-dropbox/default.nix b/pkgs/desktops/mate/caja-dropbox/default.nix
index 27bf56cf5160..0d347b39f108 100644
--- a/pkgs/desktops/mate/caja-dropbox/default.nix
+++ b/pkgs/desktops/mate/caja-dropbox/default.nix
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/caja-dropbox";
license = with licenses; [ gpl3Plus cc-by-nd-30 ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/caja-extensions/default.nix b/pkgs/desktops/mate/caja-extensions/default.nix
index 0b21f2721dba..4cec39774892 100644
--- a/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/pkgs/desktops/mate/caja-extensions/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/caja/default.nix b/pkgs/desktops/mate/caja/default.nix
index 65d6e1a21ebc..ce9861f1762e 100644
--- a/pkgs/desktops/mate/caja/default.nix
+++ b/pkgs/desktops/mate/caja/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/engrampa/default.nix b/pkgs/desktops/mate/engrampa/default.nix
index b9627dae02ca..7fde8fb1958d 100644
--- a/pkgs/desktops/mate/engrampa/default.nix
+++ b/pkgs/desktops/mate/engrampa/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/eom/default.nix b/pkgs/desktops/mate/eom/default.nix
index 7947247bf1c6..9862c3059d21 100644
--- a/pkgs/desktops/mate/eom/default.nix
+++ b/pkgs/desktops/mate/eom/default.nix
@@ -34,11 +34,11 @@ stdenv.mkDerivation rec {
passthru.updateScript = mateUpdateScript { inherit pname version; };
- meta = {
+ meta = with lib; {
description = "An image viewing and cataloging program for the MATE desktop";
homepage = "https://mate-desktop.org";
- license = lib.licenses.gpl2Plus;
- platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.romildo ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/libmatekbd/default.nix b/pkgs/desktops/mate/libmatekbd/default.nix
index 967e223f2b0e..d7969f55efce 100644
--- a/pkgs/desktops/mate/libmatekbd/default.nix
+++ b/pkgs/desktops/mate/libmatekbd/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/libmatekbd";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/libmatemixer/default.nix b/pkgs/desktops/mate/libmatemixer/default.nix
index 2824c958de2f..2ef34f2ea67d 100644
--- a/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/pkgs/desktops/mate/libmatemixer/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/libmatemixer";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/libmateweather/default.nix b/pkgs/desktops/mate/libmateweather/default.nix
index b325de3b3c02..3d99b0ccd82e 100644
--- a/pkgs/desktops/mate/libmateweather/default.nix
+++ b/pkgs/desktops/mate/libmateweather/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/libmateweather";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix
index e7e6547284db..597538a9f8a1 100644
--- a/pkgs/desktops/mate/marco/default.nix
+++ b/pkgs/desktops/mate/marco/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/marco";
license = [ licenses.gpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-applets/default.nix b/pkgs/desktops/mate/mate-applets/default.nix
index f06db0adc1be..30b51e9ed5bd 100644
--- a/pkgs/desktops/mate/mate-applets/default.nix
+++ b/pkgs/desktops/mate/mate-applets/default.nix
@@ -49,6 +49,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.linux;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-backgrounds/default.nix b/pkgs/desktops/mate/mate-backgrounds/default.nix
index 3fa6f37b2a1f..9384d49e2a3d 100644
--- a/pkgs/desktops/mate/mate-backgrounds/default.nix
+++ b/pkgs/desktops/mate/mate-backgrounds/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus cc-by-sa-40 ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-calc/default.nix b/pkgs/desktops/mate/mate-calc/default.nix
index 4344e970758c..b26347f73397 100644
--- a/pkgs/desktops/mate/mate-calc/default.nix
+++ b/pkgs/desktops/mate/mate-calc/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = [ licenses.gpl2Plus ];
platforms = platforms.linux;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-common/default.nix b/pkgs/desktops/mate/mate-common/default.nix
index 159fb75426ab..c3d2910e8696 100644
--- a/pkgs/desktops/mate/mate-common/default.nix
+++ b/pkgs/desktops/mate/mate-common/default.nix
@@ -13,11 +13,11 @@ stdenv.mkDerivation rec {
passthru.updateScript = mateUpdateScript { inherit pname version; };
- meta = {
+ meta = with lib; {
description = "Common files for development of MATE packages";
homepage = "https://mate-desktop.org";
- license = lib.licenses.gpl3Plus;
- platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.romildo ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-control-center/default.nix b/pkgs/desktops/mate/mate-control-center/default.nix
index 9c1186a692ea..e95f3696e288 100644
--- a/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/pkgs/desktops/mate/mate-control-center/default.nix
@@ -57,6 +57,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-control-center";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-desktop/default.nix b/pkgs/desktops/mate/mate-desktop/default.nix
index 19ad26656f21..e4928ac748b5 100644
--- a/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/pkgs/desktops/mate/mate-desktop/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.linux;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
index 7dc4423fb6b2..69f780f6083f 100644
--- a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-icon-theme/default.nix b/pkgs/desktops/mate/mate-icon-theme/default.nix
index 0e4fc7f0c30d..001b6e418792 100644
--- a/pkgs/desktops/mate/mate-icon-theme/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme/default.nix
@@ -29,11 +29,11 @@ stdenv.mkDerivation rec {
passthru.updateScript = mateUpdateScript { inherit pname version; };
- meta = {
+ meta = with lib; {
description = "Icon themes from MATE";
homepage = "https://mate-desktop.org";
- license = lib.licenses.lgpl3Plus;
- platforms = lib.platforms.linux;
- maintainers = [ lib.maintainers.romildo ];
+ license = licenses.lgpl3Plus;
+ platforms = platforms.linux;
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-indicator-applet/default.nix b/pkgs/desktops/mate/mate-indicator-applet/default.nix
index 3cf2ac9b4c34..08985608cd61 100644
--- a/pkgs/desktops/mate/mate-indicator-applet/default.nix
+++ b/pkgs/desktops/mate/mate-indicator-applet/default.nix
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
'';
license = with licenses; [ gpl3Plus lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-media/default.nix b/pkgs/desktops/mate/mate-media/default.nix
index c4e9a9d5b0c2..839e1dc20341 100644
--- a/pkgs/desktops/mate/mate-media/default.nix
+++ b/pkgs/desktops/mate/mate-media/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo maintainers.chpatrick ];
+ maintainers = teams.mate.members ++ (with maintainers; [ chpatrick ]);
};
}
diff --git a/pkgs/desktops/mate/mate-menus/default.nix b/pkgs/desktops/mate/mate-menus/default.nix
index 33f437446532..09c251f4083e 100644
--- a/pkgs/desktops/mate/mate-menus/default.nix
+++ b/pkgs/desktops/mate/mate-menus/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-menus";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-netbook/default.nix b/pkgs/desktops/mate/mate-netbook/default.nix
index f4908906ff95..f9c4737bab1c 100644
--- a/pkgs/desktops/mate/mate-netbook/default.nix
+++ b/pkgs/desktops/mate/mate-netbook/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl3Only lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-notification-daemon/default.nix b/pkgs/desktops/mate/mate-notification-daemon/default.nix
index 8bc730032f6e..a66f8de43462 100644
--- a/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-notification-daemon";
license = with licenses; [ gpl2Plus gpl3Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix
index d0e54bab5850..7c1be60b20db 100644
--- a/pkgs/desktops/mate/mate-panel/default.nix
+++ b/pkgs/desktops/mate/mate-panel/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "mate-panel";
- version = "1.26.0";
+ version = "1.26.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0r7a8wy9p2x6r0c4qaa81qhhjc080rxnc6fznz7i6fkv2z91wbh9";
+ sha256 = "038irkjl9ap7kqacf1c0i74h0rwkcpaw685vyml50vj5hg23hc38";
};
nativeBuildInputs = [
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-panel";
license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-polkit/default.nix b/pkgs/desktops/mate/mate-polkit/default.nix
index 8ec813ce833d..9b1d77d78240 100644
--- a/pkgs/desktops/mate/mate-polkit/default.nix
+++ b/pkgs/desktops/mate/mate-polkit/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = [ licenses.gpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-power-manager/default.nix b/pkgs/desktops/mate/mate-power-manager/default.nix
index c7b6690d2e3c..72f9ba93a437 100644
--- a/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus fdl11Plus ];
platforms = platforms.unix;
- maintainers = with maintainers; [ romildo chpatrick ];
+ maintainers = teams.mate.members ++ (with maintainers; [ chpatrick ]);
};
}
diff --git a/pkgs/desktops/mate/mate-screensaver/default.nix b/pkgs/desktops/mate/mate-screensaver/default.nix
index b87ec4b68d08..f33c47cbf0a2 100644
--- a/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
systemd
mate.mate-desktop
mate.mate-menus
+ mate.mate-panel
];
configureFlags = [ "--without-console-kit" ];
@@ -40,6 +41,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-sensors-applet/default.nix b/pkgs/desktops/mate/mate-sensors-applet/default.nix
index 7e77f898051d..6faceee002e9 100644
--- a/pkgs/desktops/mate/mate-sensors-applet/default.nix
+++ b/pkgs/desktops/mate/mate-sensors-applet/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
description = "MATE panel applet for hardware sensors";
license = with licenses; [ gpl2Plus ];
platforms = platforms.linux;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix
index 152ecf572d78..1c51e2f6ae89 100644
--- a/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -55,6 +55,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-session-manager";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-settings-daemon/default.nix b/pkgs/desktops/mate/mate-settings-daemon/default.nix
index 3ece77dc08c4..ff46b339b2fc 100644
--- a/pkgs/desktops/mate/mate-settings-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -45,6 +45,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-settings-daemon";
license = with licenses; [ gpl2Plus gpl3Plus lgpl2Plus mit ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix
index d94695ac80a4..9b4a510b7286 100644
--- a/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = [ licenses.gpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-terminal/default.nix b/pkgs/desktops/mate/mate-terminal/default.nix
index ed7ba49c18fe..19fa5697f969 100644
--- a/pkgs/desktops/mate/mate-terminal/default.nix
+++ b/pkgs/desktops/mate/mate-terminal/default.nix
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = licenses.gpl3Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-themes/default.nix b/pkgs/desktops/mate/mate-themes/default.nix
index 6a1be82c8a6d..274501976235 100644
--- a/pkgs/desktops/mate/mate-themes/default.nix
+++ b/pkgs/desktops/mate/mate-themes/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "mate-themes";
- version = "3.22.22";
+ version = "3.22.23";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/themes/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "18crdwfpfm3br4pv94wy7rpmzzb69im4j8dgq1b7c8gcbbzay05x";
+ sha256 = "1avgzccdmr7y18rnp3xrhwk82alv2dlig3wh7ivgahcqdiiavrb1";
};
nativeBuildInputs = [ pkg-config gettext gtk3 ];
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ lgpl21Plus lgpl3Only gpl3Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-tweak/default.nix b/pkgs/desktops/mate/mate-tweak/default.nix
index 830cf092f80e..e379f5369f5b 100644
--- a/pkgs/desktops/mate/mate-tweak/default.nix
+++ b/pkgs/desktops/mate/mate-tweak/default.nix
@@ -15,13 +15,13 @@
python3Packages.buildPythonApplication rec {
pname = "mate-tweak";
- version = "21.04.3";
+ version = "21.10.0";
src = fetchFromGitHub {
owner = "ubuntu-mate";
repo = pname;
rev = version;
- sha256 = "0vpzy7awhb1xfsdjsrchy5b9dygj4ixdcvgx5v5w8hllmi4yxpc1";
+ sha256 = "0m61p6idajsrrbjps7s1pnl6nfzwpy7j6l9bdhqi9gaaij687shn";
};
nativeBuildInputs = [
@@ -86,6 +86,6 @@ python3Packages.buildPythonApplication rec {
changelog = "https://github.com/ubuntu-mate/mate-tweak/releases/tag/${version}";
license = [ licenses.gpl2Plus ];
platforms = platforms.linux;
- maintainers = with maintainers; [ luc65r ];
+ maintainers = teams.mate.members ++ (with maintainers; [ luc65r ]);
};
}
diff --git a/pkgs/desktops/mate/mate-user-guide/default.nix b/pkgs/desktops/mate/mate-user-guide/default.nix
index 8a5aadb936db..ecbe2e667aad 100644
--- a/pkgs/desktops/mate/mate-user-guide/default.nix
+++ b/pkgs/desktops/mate/mate-user-guide/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus fdl12 ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-user-share/default.nix b/pkgs/desktops/mate/mate-user-share/default.nix
index 9907552f3c07..264389a68836 100644
--- a/pkgs/desktops/mate/mate-user-share/default.nix
+++ b/pkgs/desktops/mate/mate-user-share/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-httpd=${apacheHttpd.out}/bin/httpd"
- "--with-modules-path=${apacheHttpd.dev}/modules"
+ "--with-modules-path=${apacheHttpd}/modules"
"--with-cajadir=$(out)/lib/caja/extensions-2.0"
];
@@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/mate-user-share";
license = with licenses; [ gpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mate-utils/default.nix b/pkgs/desktops/mate/mate-utils/default.nix
index 6801368dc43c..48e662f54f71 100644
--- a/pkgs/desktops/mate/mate-utils/default.nix
+++ b/pkgs/desktops/mate/mate-utils/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/mozo/default.nix b/pkgs/desktops/mate/mozo/default.nix
index 037989083bc3..3a02b03ceb76 100644
--- a/pkgs/desktops/mate/mozo/default.nix
+++ b/pkgs/desktops/mate/mozo/default.nix
@@ -27,6 +27,6 @@ python3.pkgs.buildPythonApplication rec {
homepage = "https://github.com/mate-desktop/mozo";
license = with licenses; [ lgpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/pluma/default.nix b/pkgs/desktops/mate/pluma/default.nix
index 9eb0f9283be7..53b0251229ac 100644
--- a/pkgs/desktops/mate/pluma/default.nix
+++ b/pkgs/desktops/mate/pluma/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
homepage = "https://mate-desktop.org";
license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/mate/python-caja/default.nix b/pkgs/desktops/mate/python-caja/default.nix
index ccee7b046887..452a7943d664 100644
--- a/pkgs/desktops/mate/python-caja/default.nix
+++ b/pkgs/desktops/mate/python-caja/default.nix
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mate-desktop/python-caja";
license = [ licenses.gpl2Plus ];
platforms = platforms.unix;
- maintainers = [ maintainers.romildo ];
+ maintainers = teams.mate.members;
};
}
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 441ef51b8f6f..a7e5af3370c3 100644
--- a/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, nix-update-script
, appstream
, appstream-glib
@@ -30,21 +31,15 @@
stdenv.mkDerivation rec {
pname = "appcenter";
- version = "3.7.1";
+ version = "3.8.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1llkc0p47jcx992lkwics86vv622dmmvm5hxrdsq26j9crcd5dam";
+ sha256 = "sha256-NHKP1vzb8qu+EkUWDvLWLl4U4pW9ZxbE7YFI6Vwesfg=";
};
- patches = [
- # Try to remove other backends to make flatpak backend work.
- # https://github.com/NixOS/nixpkgs/issues/70214
- ./flatpak-only.patch
- ];
-
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
@@ -82,7 +77,6 @@ stdenv.mkDerivation rec {
];
mesonFlags = [
- "-Dhomepage=false"
"-Dpayments=false"
"-Dcurated=false"
];
@@ -98,5 +92,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.appcenter";
};
}
diff --git a/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch b/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
deleted file mode 100644
index 857c13028857..000000000000
--- a/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-From 63594caa1da772de504ab1d93b69aae148f29f64 Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Wed, 1 Sep 2021 12:25:09 +0800
-Subject: [PATCH] Drop PackageKitBackend and UbuntuDriversBackend
-
----
- src/Application.vala | 14 ---------
- src/Core/BackendAggregator.vala | 2 --
- src/Core/UpdateManager.vala | 56 ---------------------------------
- src/MainWindow.vala | 17 ----------
- src/Views/Homepage.vala | 15 ---------
- 5 files changed, 104 deletions(-)
-
-diff --git a/src/Application.vala b/src/Application.vala
-index 65fae5aa..9d42b14f 100644
---- a/src/Application.vala
-+++ b/src/Application.vala
-@@ -167,10 +167,6 @@ public class AppCenter.App : Gtk.Application {
-
- var client = AppCenterCore.Client.get_default ();
-
-- if (fake_update_packages != null) {
-- AppCenterCore.PackageKitBackend.get_default ().fake_packages = fake_update_packages;
-- }
--
- if (silent) {
- NetworkMonitor.get_default ().network_changed.connect ((available) => {
- schedule_cache_update (!available);
-@@ -183,16 +179,6 @@ public class AppCenter.App : Gtk.Application {
- return;
- }
-
-- if (local_path != null) {
-- var file = File.new_for_commandline_arg (local_path);
--
-- try {
-- local_package = AppCenterCore.PackageKitBackend.get_default ().add_local_component_file (file);
-- } catch (Error e) {
-- warning ("Failed to load local AppStream XML file: %s", e.message);
-- }
-- }
--
- if (main_window == null) {
- main_window = new MainWindow (this);
-
-diff --git a/src/Core/BackendAggregator.vala b/src/Core/BackendAggregator.vala
-index 2f8bdedf..b705ca87 100644
---- a/src/Core/BackendAggregator.vala
-+++ b/src/Core/BackendAggregator.vala
-@@ -26,8 +26,6 @@ public class AppCenterCore.BackendAggregator : Backend, Object {
-
- construct {
- backends = new Gee.ArrayList ();
-- backends.add (PackageKitBackend.get_default ());
-- backends.add (UbuntuDriversBackend.get_default ());
- backends.add (FlatpakBackend.get_default ());
-
- unowned Gtk.Application app = (Gtk.Application) GLib.Application.get_default ();
-diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala
-index 29fa397a..ce42dd57 100644
---- a/src/Core/UpdateManager.vala
-+++ b/src/Core/UpdateManager.vala
-@@ -53,42 +53,9 @@ public class AppCenterCore.UpdateManager : Object {
- installed_package.update_state ();
- }
-
-- Pk.Results pk_updates;
-- unowned PackageKitBackend client = PackageKitBackend.get_default ();
-- try {
-- pk_updates = yield client.get_updates (cancellable);
-- } catch (Error e) {
-- warning ("Unable to get updates from PackageKit backend: %s", e.message);
-- return 0;
-- }
--
- uint os_count = 0;
- string os_desc = "";
-
-- var package_array = pk_updates.get_package_array ();
-- debug ("PackageKit backend reports %d updates", package_array.length);
--
-- package_array.foreach ((pk_package) => {
-- var pkg_name = pk_package.get_name ();
-- var appcenter_package = client.lookup_package_by_id (pkg_name);
-- if (appcenter_package != null) {
-- debug ("Added %s to app updates", pkg_name);
-- apps_with_updates.add (appcenter_package);
-- appcenter_package.latest_version = pk_package.get_version ();
-- } else {
-- debug ("Added %s to OS updates", pkg_name);
-- os_count++;
-- unowned string pkg_summary = pk_package.get_summary ();
-- unowned string pkg_version = pk_package.get_version ();
-- os_desc += Markup.printf_escaped (
-- "%s\n\t%s\n\t%s\n",
-- pkg_name,
-- pkg_summary,
-- _("Version: %s").printf (pkg_version)
-- );
-- }
-- });
--
- os_updates.component.set_pkgnames ({});
- os_updates.change_information.clear_update_info ();
-
-@@ -160,29 +127,6 @@ public class AppCenterCore.UpdateManager : Object {
- count += 1;
- }
-
-- pk_updates.get_details_array ().foreach ((pk_detail) => {
-- var pk_package = new Pk.Package ();
-- try {
-- pk_package.set_id (pk_detail.get_package_id ());
-- var pkg_name = pk_package.get_name ();
-- var appcenter_package = client.lookup_package_by_id (pkg_name);
-- if (appcenter_package != null) {
-- appcenter_package.change_information.updatable_packages.@set (client, pk_package.get_id ());
-- appcenter_package.change_information.size += pk_detail.size;
-- appcenter_package.update_state ();
-- } else {
-- var pkgnames = os_updates.component.pkgnames;
-- pkgnames += pkg_name;
-- os_updates.component.pkgnames = pkgnames;
--
-- os_updates.change_information.updatable_packages.@set (client, pk_package.get_id ());
-- os_updates.change_information.size += pk_detail.size;
-- }
-- } catch (Error e) {
-- critical (e.message);
-- }
-- });
--
- os_updates.update_state ();
- return count;
- }
-diff --git a/src/MainWindow.vala b/src/MainWindow.vala
-index a32ce47b..b9f8594a 100644
---- a/src/MainWindow.vala
-+++ b/src/MainWindow.vala
-@@ -292,23 +292,6 @@ public class AppCenter.MainWindow : Hdy.ApplicationWindow {
- }
-
- public override bool delete_event (Gdk.EventAny event) {
-- unowned AppCenterCore.PackageKitBackend client = AppCenterCore.PackageKitBackend.get_default ();
-- if (client.working) {
-- if (task_finished_connection != 0U) {
-- client.disconnect (task_finished_connection);
-- }
--
-- hide ();
-- task_finished_connection = client.notify["working"].connect (() => {
-- if (!visible && !client.working) {
-- destroy ();
-- }
-- });
--
-- AppCenterCore.Client.get_default ().cancel_updates (false); //Timeouts keep running
-- return true;
-- }
--
- return false;
- }
-
-diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
-index 67d1e208..48af8f61 100644
---- a/src/Views/Homepage.vala
-+++ b/src/Views/Homepage.vala
-@@ -212,7 +212,6 @@ public class AppCenter.Homepage : AbstractView {
- recently_updated_revealer.reveal_child = recently_updated_carousel.get_children ().length () > 0;
-
- var houston = AppCenterCore.Houston.get_default ();
-- var pk_client = AppCenterCore.PackageKitBackend.get_default ();
- var packages_for_banner = new Gee.LinkedList ();
-
- var newest_ids = yield houston.get_app_ids ("/newest/project");
-@@ -220,20 +219,6 @@ public class AppCenter.Homepage : AbstractView {
- Utils.shuffle_array (trending_ids);
-
- var packages = new Gee.HashMap ();
-- packages.set_all (pk_client.get_packages_for_component_ids (newest_ids));
-- packages.set_all (pk_client.get_packages_for_component_ids (trending_ids));
--
-- if (!AppCenterCore.PackageKitBackend.supports_parallel_package_queries) {
-- foreach (var package in packages.values) {
-- package.update_state ();
-- }
-- } else {
-- try {
-- yield pk_client.update_multiple_package_state (packages.values);
-- } catch (Error e) {
-- warning ("Error while getting installed state of banner packages: %s", e.message);
-- }
-- }
-
- foreach (var package in newest_ids) {
- if (packages_for_banner.size >= NUM_PACKAGES_IN_BANNER) {
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 7fbaa32dc39f..2e52d39a6da4 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -21,7 +21,7 @@
stdenv.mkDerivation rec {
pname = "elementary-calculator";
- version = "1.7.0";
+ version = "1.7.1";
repoName = "calculator";
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1kl2iximcmbk8inklb2xav7dp08lp5pn9xxa59327zw13gdy8fkf";
+ sha256 = "sha256-GoQFWhEhUBVLYL1vsIIBMT8pKc0dK/ploiGfUtJAJQU=";
};
passthru = {
@@ -69,5 +69,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.calculator";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index 6afd44018314..d46e3c9c8ee9 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -28,7 +28,7 @@
stdenv.mkDerivation rec {
pname = "elementary-calendar";
- version = "6.0.1";
+ version = "6.0.3";
repoName = "calendar";
@@ -36,13 +36,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1caxc42jrys5s4x9qai5wdpcwpkmyvnqx9z75974g7swiz1lrzq6";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-+RQUiJLuCIbmcbtsOCfF9HYFrxtldZMbg2vg/a/IOaY=";
};
nativeBuildInputs = [
@@ -78,11 +72,18 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Desktop calendar app designed for elementary OS";
homepage = "https://github.com/elementary/calendar";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.calendar";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 432e5fdf00e7..708041bd88a8 100644
--- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -25,7 +25,7 @@
stdenv.mkDerivation rec {
pname = "elementary-camera";
- version = "6.0.0";
+ version = "6.0.1";
repoName = "camera";
@@ -33,13 +33,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1z5c6pkc7psglxwzby5idsdxvplpi28ckjxrwdngnr22knfdcgag";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-OdBinryF6XTcvtY4A1wdDVazjf/VritEGF97ts6d4RY=";
};
nativeBuildInputs = [
@@ -75,11 +69,18 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Camera app designed for elementary OS";
homepage = "https://github.com/elementary/camera";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.camera";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 8516133b18d8..018e8cb775c3 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, pkg-config
@@ -31,7 +30,7 @@
stdenv.mkDerivation rec {
pname = "elementary-code";
- version = "6.0.0";
+ version = "6.0.1";
repoName = "code";
@@ -39,18 +38,9 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1w1m52mq3zr9alkxk1c0s4ncscka1km5ppd0r6zm86qan9cjwq0f";
+ sha256 = "120328pprzqj4587yj54yya9v2mv1rfwylpmxyr5l2qf80cjxi9d";
};
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/code/pull/1090
- (fetchpatch {
- url = "https://github.com/elementary/code/commit/88dc40d7bbcc2288ada6673eb8f4fab345d97882.patch";
- sha256 = "16y20bvslcm390irlib759703lvf7w6rz4xzaiazjj1r1njwinvv";
- })
- ];
-
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
@@ -108,5 +98,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.code";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index 4de65108c564..0a534e5e7d04 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members;
+ mainProgram = "plank";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index e65e45809c45..05ac02150d79 100644
--- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.feedback";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index dcdd1bb9acec..bddc9d5acff6 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, pantheon
@@ -32,7 +33,7 @@
stdenv.mkDerivation rec {
pname = "elementary-files";
- version = "6.0.2";
+ version = "6.0.4";
repoName = "files";
@@ -42,7 +43,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1i514r3adypmcwinmv4c1kybims16xi4i3akx0yy04dib92hbk7c";
+ sha256 = "sha256-FH6EYtgKADp8jjBoCwsdRdknlKS9v3iOtPiT3CyEc/8=";
};
passthru = {
@@ -100,5 +101,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.files";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
index 6d0b752c1d1d..dd3e5268f9c2 100644
--- a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, pkg-config
@@ -26,7 +25,7 @@
stdenv.mkDerivation rec {
pname = "elementary-mail";
- version = "6.1.1";
+ version = "6.3.0";
repoName = "mail";
@@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "15ai0x9236pjx76m0756nyc1by78v0lg1dgdiifk868krdvipzzx";
+ sha256 = "sha256-lIVAMTtRrzJI5Qcd6y24ZmtzFWeTSbcKiEhG8hLC+PM=";
};
passthru = {
@@ -43,12 +42,6 @@ stdenv.mkDerivation rec {
};
};
- patches = [
- # The app stuck when loading gravatar, temporarily reverts part
- # of https://github.com/elementary/mail/pull/600 to fix this
- ./revert-fix-warning.patch
- ];
-
nativeBuildInputs = [
appstream
desktop-file-utils
@@ -85,5 +78,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ethancedwards8 ] ++ teams.pantheon.members;
+ mainProgram = "io.elementary.mail";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch b/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch
deleted file mode 100644
index 85534aaf4c60..000000000000
--- a/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 9e61e9493e78b83b9599886561ee596c096030ed Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Thu, 29 Jul 2021 13:57:21 +0800
-Subject: [PATCH] Partly revert "Fix Warnings in Vala Code (#600)"
-
-This partly reverts commit 9477c24201d3c9c3c7bcc650e0290daa0ee1ab21.
----
- src/MessageList/MessageListItem.vala | 27 ++++++++++++++++++++++++++-
- 1 file changed, 26 insertions(+), 1 deletion(-)
-
-diff --git a/src/MessageList/MessageListItem.vala b/src/MessageList/MessageListItem.vala
-index 96b61027..a7ef8f9e 100644
---- a/src/MessageList/MessageListItem.vala
-+++ b/src/MessageList/MessageListItem.vala
-@@ -290,7 +290,7 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
- expanded = false;
- show_all ();
-
-- avatar.set_loadable_icon (new GravatarIcon (parsed_address, get_style_context ().get_scale ()));
-+ download_gravatar.begin (parsed_address, avatar.size);
-
- /* Override default handler to stop event propagation. Otherwise clicking the menu will
- expand or collapse the MessageListItem. */
-@@ -348,6 +348,31 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
- });
- }
-
-+ private async void download_gravatar (string address, int size) {
-+ if (avatars[address] == null) {
-+ var uri = "https://secure.gravatar.com/avatar/%s?d=404&s=%d".printf (
-+ Checksum.compute_for_string (ChecksumType.MD5, address.strip ().down ()),
-+ size * get_style_context ().get_scale ()
-+ );
-+
-+ var server_file = File.new_for_uri (uri);
-+ var path = Path.build_filename (Environment.get_tmp_dir (), server_file.get_basename ());
-+ var local_file = File.new_for_path (path);
-+
-+ try {
-+ yield server_file.copy_async (local_file, FileCopyFlags.OVERWRITE, Priority.DEFAULT, null);
-+ avatars[address] = new Gdk.Pixbuf.from_file_at_scale (path, size, size, true);
-+ } catch (Error e) {
-+ debug ("Unable to fetch gravatar: %s", e.message);
-+ return;
-+ }
-+ }
-+
-+ avatar.set_image_load_func (() => {
-+ return avatars[address];
-+ });
-+ }
-+
- private void add_inline_composer (ComposerWidget.Type composer_type) {
- var message_list_box = (MessageListBox) get_parent ();
- message_list_box.add_inline_composer.begin (composer_type, this);
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 300e7919dced..c2b89e7111d0 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -108,5 +108,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.music";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index d1206c9d0ae0..103d4692521b 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, meson
@@ -35,7 +34,7 @@
stdenv.mkDerivation rec {
pname = "elementary-photos";
- version = "2.7.1";
+ version = "2.7.3";
repoName = "photos";
@@ -43,22 +42,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1dql14k43rv3in451amiwv4z71hz3ailx67hd8gw1ka3yw12128p";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/photos/pull/629
- (fetchpatch {
- url = "https://github.com/elementary/photos/commit/e5230a4305381734e93f1e3d1177da21a8a4121b.patch";
- sha256 = "1igqq51sj1sx6rl8yrw037jsgnaxfwzfs0m6pqzb9q4jvfdimzfi";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-ja4ElW0FNm9oNyn+00SdI2Cxep6LyWTYM8Blc6bnuiY=";
};
nativeBuildInputs = [
@@ -108,11 +92,18 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Photo viewer and organizer designed for elementary OS";
homepage = "https://github.com/elementary/photos";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.photos";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
index 4eb574d69f26..a4d966c6fc85 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
@@ -19,7 +19,7 @@
stdenv.mkDerivation rec {
pname = "elementary-screenshot";
- version = "6.0.0";
+ version = "6.0.1";
repoName = "screenshot";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1fvsl9zdkv7bgx3jpy7pr9lflm4ckr3swdby379mdxn2x6kxji0x";
+ sha256 = "sha256-MDmk+0IUCe6PSV5QOjjDRedv7X3lcBJ04jn9cE9DP3M=";
};
passthru = {
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.screenshot";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix b/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
index bec0556a377d..478fdc1db96c 100644
--- a/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
@@ -26,7 +26,7 @@
stdenv.mkDerivation rec {
pname = "elementary-tasks";
- version = "6.0.3";
+ version = "6.0.4";
repoName = "tasks";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0a6zgf7di4jyl764pn78wbanm0i5vrkk5ks3cfsvi3baprf3j9d5";
+ sha256 = "1gb51gm8qgd8yzhqb7v69p2f1fgm3qf534if4lc85jrjsb8hgmhl";
};
passthru = {
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.tasks";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index cd0e39628023..76c36f9e0704 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -91,5 +91,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.terminal";
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 0c06e7b24439..a87ac48c7f30 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, pkg-config
@@ -12,6 +12,7 @@
, gtk3
, granite
, libgee
+, libhandy
, clutter-gst
, clutter-gtk
, gst_all_1
@@ -21,7 +22,7 @@
stdenv.mkDerivation rec {
pname = "elementary-videos";
- version = "2.7.3";
+ version = "2.8.0";
repoName = "videos";
@@ -29,22 +30,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/videos/pull/233
- (fetchpatch {
- url = "https://github.com/elementary/videos/commit/19ba2a9148be09ea521d2e9ac29dede6b9c6fa07.patch";
- sha256 = "0ffp7ana98846xi7vxrzfg6dbs4yy28x2i4ky85mqs1gj6fjqin5";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-FFCtQ42LygfjowehwZcISWTfv8PBZTH0X8mPrpiG8Ug=";
};
nativeBuildInputs = [
@@ -70,6 +56,7 @@ stdenv.mkDerivation rec {
gstreamer
gtk3
libgee
+ libhandy
];
postPatch = ''
@@ -77,11 +64,18 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Video player and library app designed for elementary OS";
homepage = "https://github.com/elementary/videos";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.videos";
};
}
diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix
index fad1186578cf..98f4d9f3c91d 100644
--- a/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "sideload";
- version = "6.0.1";
+ version = "6.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0mwcaayzcm5pjcwdd61can93y66jiz4wyz9wr8j5fbns5hbk3z5m";
+ sha256 = "0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9";
};
passthru = {
@@ -72,5 +72,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.sideload";
};
}
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index c1144dd4ecd6..f196ba970bd6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -15,6 +15,7 @@
, switchboard
, fwupd
, appstream
+, nixos-artwork
}:
stdenv.mkDerivation rec {
@@ -53,9 +54,11 @@ stdenv.mkDerivation rec {
];
patches = [
- # The NixOS logo is not centered in the circular background and path
- # to the background is hardcoded, we will drop the background.
- ./remove-logo-background.patch
+ # Use NixOS's default wallpaper
+ (substituteAll {
+ src = ./fix-background-path.patch;
+ default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}";
+ })
];
meta = with lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-background-path.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-background-path.patch
new file mode 100644
index 000000000000..6fea88691331
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-background-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
+index fdb92e7e..4161538e 100644
+--- a/src/Views/OperatingSystemView.vala
++++ b/src/Views/OperatingSystemView.vala
+@@ -47,7 +47,7 @@ public class About.OperatingSystemView : Gtk.Grid {
+ };
+ logo.set_image_load_func ((size) => {
+ try {
+- return new Gdk.Pixbuf.from_file_at_scale ("/usr/share/backgrounds/elementaryos-default", -1, size, true);
++ return new Gdk.Pixbuf.from_file_at_scale ("@default_wallpaper@", -1, size, true);
+ } catch (Error e) {
+ critical (e.message);
+ }
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch
deleted file mode 100644
index bc7805a22c47..000000000000
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
-index fdb92e7..87bb3a4 100644
---- a/src/Views/OperatingSystemView.vala
-+++ b/src/Views/OperatingSystemView.vala
-@@ -39,21 +39,6 @@ public class About.OperatingSystemView : Gtk.Grid {
- logo_icon_name = "distributor-logo";
- }
-
-- var logo = new Hdy.Avatar (128, "", false) {
-- // In case the wallpaper can't be loaded, we don't want an icon or text
-- icon_name = "invalid-icon-name",
-- // We need this for the shadow to not get clipped by Gtk.Overlay
-- margin = 6
-- };
-- logo.set_image_load_func ((size) => {
-- try {
-- return new Gdk.Pixbuf.from_file_at_scale ("/usr/share/backgrounds/elementaryos-default", -1, size, true);
-- } catch (Error e) {
-- critical (e.message);
-- }
-- });
-- logo.get_style_context ().add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
- var icon = new Gtk.Image () {
- icon_name = logo_icon_name + "-symbolic",
- // 128 minus 3px padding on each side
-@@ -65,8 +50,7 @@ public class About.OperatingSystemView : Gtk.Grid {
- icon_style_context.add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-
- var logo_overlay = new Gtk.Overlay ();
-- logo_overlay.add (logo);
-- logo_overlay.add_overlay (icon);
-+ logo_overlay.add (icon);
-
- // Intentionally not using GLib.OsInfoKey.PRETTY_NAME here because we
- // want more granular control over text formatting
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 3b3cbf64ef85..22c2f4f64af7 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, meson
@@ -16,24 +15,15 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-applications";
- version = "6.0.0";
+ version = "6.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0hgvmrgg6g2sjb3sda7kzfcd3zgngd5w982drl6ll44k1mh16gsj";
+ sha256 = "18izmzhqp6x5ivha9yl8gyz9adyrsylw7w5p0cwm1bndgqbi7yh5";
};
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/switchboard-plug-applications/pull/163
- (fetchpatch {
- url = "https://github.com/elementary/switchboard-plug-applications/commit/25db490654ab41694be7b7ba19218376f42fbb8d.patch";
- sha256 = "16y8zcwnnjsh72ifpyqcdb9f5ajdj0iy8kb5sj6v77c1cxdhrv29";
- })
- ];
-
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 0fbb1eb81e7c..8e6cbf080631 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -7,6 +7,7 @@
, pkg-config
, vala
, libgee
+, libhandy
, granite
, gtk3
, switchboard
@@ -14,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-display";
- version = "2.3.1";
+ version = "2.3.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1dqd34v124y71nnk0l617a53x652m0sb7b58465imr6ppyhx4vsv";
+ sha256 = "sha256-3sYZCazGnTjIi3Iry5673TMI13sD0GuY+46AK+NJH70=";
};
passthru = {
@@ -40,6 +41,7 @@ stdenv.mkDerivation rec {
granite
gtk3
libgee
+ libhandy
switchboard
];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index d8023a1bf37c..c3860ba22789 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -2,7 +2,6 @@
, fetchFromGitHub
, nix-update-script
, pantheon
-, fetchpatch
, substituteAll
, meson
, ninja
@@ -21,22 +20,16 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-keyboard";
- version = "2.5.0";
+ version = "2.5.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1nsy9fh6qj5kyg22bs1hm6kpsvarwc63q0hl0nbwymvnhfjf6swp";
+ sha256 = "1p1l7dx5v1zzz89hhhkm6n3ls7ig4cf2prh1099f1c054qiy9b0y";
};
patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/switchboard-plug-keyboard/pull/377
- (fetchpatch {
- url = "https://github.com/elementary/switchboard-plug-keyboard/commit/6d8bcadba05b4ee1115b891448b0de31bcba3749.patch";
- sha256 = "1bppxakj71r3cfy8sw19xbyngb7r6nyirc4g6pjf02cdidhw3v8l";
- })
./0001-Remove-Install-Unlisted-Engines-function.patch
(substituteAll {
src = ./fix-paths.patch;
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index ca0319a5498d..0368314e7b4f 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, substituteAll
, pantheon
@@ -21,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-mouse-touchpad";
- version = "6.0.0";
+ version = "6.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "19kiwrdpan8hr5r79y591591qjx7pm3x814xfkg9vi11ndbcrznr";
+ sha256 = "0nqgbpk1knvbj5xa078i0ka6lzqmaaa873gwj3mhjr5q2gzkw7y5";
};
passthru = {
@@ -60,12 +59,6 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
touchegg = touchegg;
})
- # Upstream code not respecting our localedir
- # https://github.com/elementary/switchboard-plug-mouse-touchpad/pull/185
- (fetchpatch {
- url = "https://github.com/elementary/switchboard-plug-mouse-touchpad/commit/a6f84dc08be5dc6f7535082bacfa24e2dff4ef67.patch";
- sha256 = "0fxl894dzw1f84n36mb9y7gshs69xcb0samvs2gsa0pcdlzfp3cy";
- })
];
meta = with lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 9aa9d7e6780a..5e8447f629a3 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -24,13 +24,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-onlineaccounts";
- version = "6.2.0";
+ version = "6.2.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1lp3i31jzp21n43d1mh4d4i8zgim3q3j4inw4hmyimyql2s83cc3";
+ sha256 = "1q3f7zr04p2100mb255zy38il2i47l6vqdc9a9acjbk3n7q5sf92";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index a9c60600f045..6a9848b34a7d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -15,6 +15,7 @@
, dbus
, polkit
, switchboard
+, wingpanel-indicator-power
}:
stdenv.mkDerivation rec {
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
libgee
polkit
switchboard
+ wingpanel-indicator-power # settings schema
];
meta = with lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index bdab9b0d7662..418b0b931967 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.switchboard";
};
}
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index e0299767ef3f..439a8986ea46 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -10,7 +10,7 @@
stdenv.mkDerivation rec {
pname = "elementary-gtk-theme";
- version = "6.0.0";
+ version = "6.1.0";
repoName = "stylesheet";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "08iga854s6w77xr5rhvr74pgn2lc884aigc7gkn0xjlwysd195fr";
+ sha256 = "sha256-YvBjMbC3aQtYc/jPZmGdL4VfBH/VuxQ70PD0BWg9DTg=";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index b3b5409f6a01..61436ba57ae5 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -71,6 +71,10 @@ lib.makeScope pkgs.newScope (self: with self; {
epiphany = pkgs.epiphany.override { withPantheon = true; };
+ evince = pkgs.evince.override { withPantheon = true; };
+
+ file-roller = pkgs.gnome.file-roller.override { withPantheon = true; };
+
sideload = callPackage ./apps/sideload { };
#### DESKTOP
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 1751636da008..7b0ea248ed61 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, pantheon
@@ -15,7 +16,7 @@
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
- version = "6.0.1";
+ version = "6.0.2";
repoName = "default-settings";
@@ -23,13 +24,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0gqnrm968j4v699yhhiyw5fqjy4zbvvrjci2v1jrlycn09c2yrwf";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-qaPj/Qp7RYzHgElFdM8bHV42oiPUbCMTC9Q+MUj4Q6Y=";
};
nativeBuildInputs = [
@@ -55,31 +50,28 @@ stdenv.mkDerivation rec {
'';
preInstall = ''
- # Install our override for plank dockitems as Appcenter and Tasks is not ready to be preinstalled.
- # For Appcenter, see: https://github.com/NixOS/nixpkgs/issues/70214.
- # For Tasks, see: https://github.com/elementary/tasks/issues/243#issuecomment-846259496
+ # Install our override for plank dockitems as Appcenter is not ready to be preinstalled.
+ # See: https://github.com/NixOS/nixpkgs/issues/70214.
schema_dir=$out/share/glib-2.0/schemas
install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
# Our launchers that use paths at /run/current-system/sw/bin
mkdir -p $out/etc/skel/.config/plank/dock1
cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
-
- # Whitelist wingpanel indicators to be used in the greeter
- # https://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
- # wingpanel 2.3.2 renamed this to .allowed to .forbidden
- # https://github.com/elementary/wingpanel/pull/326
- install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
'';
postFixup = ''
# https://github.com/elementary/default-settings/issues/55
- rm -rf $out/share/plymouth
- rm -rf $out/share/cups
-
- rm -rf $out/share/applications
+ rm -r $out/share/cups
+ rm -r $out/share/applications
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Default settings and configuration files for elementary";
homepage = "https://github.com/elementary/default-settings";
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed b/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
deleted file mode 100644
index 0cff31f4f777..000000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
+++ /dev/null
@@ -1,6 +0,0 @@
-liba11y.so
-libbluetooth.so
-libkeyboard.so
-libnetwork.so
-libpower.so
-libsession.so
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem
new file mode 100644
index 000000000000..a98825afcb28
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem
@@ -0,0 +1,2 @@
+[PlankDockItemPreferences]
+Launcher=file:///run/current-system/sw/share/applications/io.elementary.tasks.desktop
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
index b3ca51853b79..426368e8473b 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
@@ -1,2 +1,2 @@
[net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 86b71ab49930..3d698a7807f9 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, linkFarm
, substituteAll
@@ -32,7 +31,7 @@
stdenv.mkDerivation rec {
pname = "elementary-greeter";
- version = "6.0.0";
+ version = "6.0.1";
repoName = "greeter";
@@ -40,7 +39,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1ny1003bbpdscc4kr2d94zc5vxm30y64dpj3fpd5zz2p2g0cq2h9";
+ sha256 = "1f606ds56sp1c58q8dblfpaq9pwwkqw9i4gkwksw45m2xkwlbflq";
};
passthru = {
@@ -89,12 +88,6 @@ stdenv.mkDerivation rec {
];
patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/greeter/pull/545
- (fetchpatch {
- url = "https://github.com/elementary/greeter/commit/d1373a7db827bc753bfcd70d0c8f25460ea9f1de.patch";
- sha256 = "0s8l7ycd2s307d3dh1p4vdk33dbzjzqwxs6msyb9w0ycfyxlwdvp";
- })
./sysconfdir-install.patch
# Needed until https://github.com/elementary/greeter/issues/360 is fixed
(substituteAll {
@@ -135,5 +128,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.greeter";
};
}
diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index e7b0248ad425..3235442e332f 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -77,5 +77,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.onboarding";
};
}
diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index c64cfced0c55..b305c7626cba 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.print";
};
}
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 3a6fbc194772..eb8563bc50d7 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, pkg-config
@@ -20,7 +20,7 @@
stdenv.mkDerivation rec {
pname = "elementary-shortcut-overlay";
- version = "1.2.0";
+ version = "1.2.1";
repoName = "shortcut-overlay";
@@ -28,22 +28,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1zs2fpx4agr00rsfmpi00nhiw92mlypzm4p9x3g851p24m62fn79";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/shortcut-overlay/pull/100
- (fetchpatch {
- url = "https://github.com/elementary/shortcut-overlay/commit/f26e3684568e30cb6e151438e2d86c4d392626bf.patch";
- sha256 = "0zxyqpk9xbxdm8lmgdwbb4yzzwbjlhypsca3xs34a2pl0b9pcdwd";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-qmqzGCM3cVM6y80pzjm5CCyG6BO6XlKZiODAAEnwVrM=";
};
nativeBuildInputs = [
@@ -65,11 +50,18 @@ stdenv.mkDerivation rec {
libhandy
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "A native OS-wide shortcut overlay to be launched by Gala";
homepage = "https://github.com/elementary/shortcut-overlay";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.shortcut-overlay";
};
}
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 280a6a07576d..208ea7cd8bd4 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,7 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, nix-update-script
, fetchpatch
+, nix-update-script
, pantheon
, pkg-config
, meson
@@ -30,20 +31,25 @@
stdenv.mkDerivation rec {
pname = "gala";
- version = "6.0.1";
+ version = "6.2.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0xp9vviamzdwlcnx4836sxaz2pyfkxswgvjm73ppn7fkdm0zjpzx";
+ sha256 = "1phnhj731kvk8ykmm33ypcxk8fkfny9k6kdapl582qh4d47wcy6f";
};
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
- };
+ patches = [
+ ./plugins-dir.patch
+ # Multitasking view: Don't use smooth scroll events to handle mouse wheel
+ # Avoid breaking the multitasking view scroll once xf86-input-libinput 1.2.0 lands
+ # https://github.com/elementary/gala/pull/1266
+ (fetchpatch {
+ url = "https://github.com/elementary/gala/commit/d2dcfdefdf97c1b49654179a7acd01ebfe017308.patch";
+ sha256 = "sha256-2lKrCz3fSjrfKfysuUHzeUjhmMm84K47n882CLpfAyg=";
+ })
+ ];
nativeBuildInputs = [
desktop-file-utils
@@ -74,26 +80,23 @@ stdenv.mkDerivation rec {
mutter
];
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/gala/pull/1205
- (fetchpatch {
- url = "https://github.com/elementary/gala/commit/605aa10ea2a78650e001b2a247c5f7afce478b05.patch";
- sha256 = "0bg67wzrnmx8nlw93i35vhyfx8al0bj0lacgci98vwlp2m1jgbd2";
- })
- ./plugins-dir.patch
- ];
-
postPatch = ''
chmod +x build-aux/meson/post_install.py
patchShebangs build-aux/meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon";
homepage = "https://github.com/elementary/gala";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "gala";
};
}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 29432bf19656..c2a4ad64ce95 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -12,7 +12,6 @@
, libgee
, gettext
, gtk3
-, appstream
, gnome-menus
, json-glib
, elementary-dock
@@ -27,7 +26,7 @@
stdenv.mkDerivation rec {
pname = "wingpanel-applications-menu";
- version = "2.8.2";
+ version = "2.9.1";
repoName = "applications-menu";
@@ -35,17 +34,17 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1pm3dnq35vbvyxqapmfy4frfwhc1l2zh634annlmbjiyfp5mzk0q";
+ sha256 = "sha256-Q0ee8S8wWhK0Y16SWfE79Us6QD/oRE5Pxm3o//eb/po=";
};
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
- };
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ bc = "${bc}/bin/bc";
+ })
+ ];
nativeBuildInputs = [
- appstream
gettext
meson
ninja
@@ -78,18 +77,17 @@ stdenv.mkDerivation rec {
"--sysconfdir=${placeholder "out"}/etc"
];
- patches = [
- (substituteAll {
- src = ./fix-paths.patch;
- bc = "${bc}/bin/bc";
- })
- ];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Lightweight and stylish app launcher for Pantheon";
homepage = "https://github.com/elementary/applications-menu";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index ad030277463c..8226ed5b0b3c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, substituteAll
, pantheon
@@ -24,20 +24,24 @@
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-datetime";
- version = "2.3.0";
+ version = "2.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1mdm0fsnmmyw8c0ik2jmfri3kas9zkz1hskzf8wvbd51vnazfpgw";
+ sha256 = "sha256-/kbwZVzOlC3ATCuXVMdf2RIskoGQKG1evaDYO3yFerg=";
};
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
- };
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ elementary_calendar = elementary-calendar;
+ })
+ # Fix incorrect month shown on re-opening indicator if previously changed month
+ # https://github.com/elementary/wingpanel-indicator-datetime/pull/284
+ ./fix-incorrect-month.patch
+ ];
nativeBuildInputs = [
libxml2
@@ -60,24 +64,17 @@ stdenv.mkDerivation rec {
libgdata # required by some dependency transitively
];
- patches = [
- (substituteAll {
- src = ./fix-paths.patch;
- elementary_calendar = elementary-calendar;
- })
- # Upstream code not respecting our localedir
- # https://github.com/elementary/wingpanel-indicator-datetime/pull/269
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/f7befa68a9fd6215297c334a366919d3431cae65.patch";
- sha256 = "0l997b1pnpjscs886xy28as5yykxamxacvxdv8466zin7zynarfs";
- })
- ];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Date & Time Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
new file mode 100644
index 000000000000..7e0dc09b16c2
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
@@ -0,0 +1,26 @@
+From 401cb05d7181e69ae8edd347644f2518904e9acb Mon Sep 17 00:00:00 2001
+From: Jeremy Paul Wootten
+Date: Sat, 30 Oct 2021 17:44:12 +0100
+Subject: [PATCH] Reset position and relative position after rebuilding
+ carousel
+
+---
+ src/Widgets/calendar/CalendarView.vala | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
+index a41b37a4..f946b91c 100644
+--- a/src/Widgets/calendar/CalendarView.vala
++++ b/src/Widgets/calendar/CalendarView.vala
+@@ -216,7 +216,11 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
+ carousel.add (right_grid);
+ carousel.scroll_to (start_month_grid);
+ label.label = calmodel.month_start.format (_("%OB, %Y"));
++
++ position = 1;
++ rel_postion = 0;
+ }
++
+ carousel.no_show_all = false;
+ }
+
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 92738df7b355..560d16111c50 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, substituteAll
, pantheon
@@ -14,18 +14,17 @@
, libnma
, wingpanel
, libgee
-, elementary-capnet-assist
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-network";
- version = "2.3.0";
+ version = "2.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0q5ad2sj0nmigrh1rykb2kvik3hzibzyafdvkkmjd6y92145lwl1";
+ sha256 = "sha256-xr1ZihWK8fU8M/rXRKk5dOjoQNe3aJO8ouKC/iVZ7Sk=";
};
passthru = {
@@ -50,19 +49,6 @@ stdenv.mkDerivation rec {
wingpanel
];
- patches = [
- (substituteAll {
- src = ./fix-paths.patch;
- elementary_capnet_assist = elementary-capnet-assist;
- })
- # Upstream code not respecting our localedir
- # https://github.com/elementary/wingpanel-indicator-network/pull/228
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-network/commit/eacc7d46a94a980005e87e38e6c943143a09692a.patch";
- sha256 = "1svg07fqmplchp1ass0h8qkr3g24pkw8dcsnd54ddmvnjzwrzz0a";
- })
- ];
-
meta = with lib; {
description = "Network Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-network";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch
deleted file mode 100644
index b98c50b3e49a..000000000000
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index 83ce932a..f95ed142 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -67,7 +67,7 @@ public class Network.Indicator : Wingpanel.Indicator {
-
- if (network_monitor.get_connectivity () == NetworkConnectivity.FULL || network_monitor.get_connectivity () == NetworkConnectivity.PORTAL) {
- try {
-- var appinfo = AppInfo.create_from_commandline ("io.elementary.capnet-assist", null, AppInfoCreateFlags.NONE);
-+ var appinfo = AppInfo.create_from_commandline ("@elementary_capnet_assist@/bin/io.elementary.capnet-assist", null, AppInfoCreateFlags.NONE);
- appinfo.launch (null, null);
- } catch (Error e) {
- warning ("%s\n", e.message);
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 1a101a8a886d..5adf2c7da6f5 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -3,7 +3,6 @@
, nix-update-script
, pantheon
, pkg-config
-, fetchpatch
, meson
, ninja
, vala
@@ -17,28 +16,13 @@
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-notifications";
- version = "6.0.0";
+ version = "6.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1pvcpk1d2zh9pvw0clv3bhf2plcww6nbxs6j7xjbvnaqs7d6i1k2";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/wingpanel-indicator-notifications/pull/218
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-notifications/commit/c7e73f0683561345935a959dafa2083b7e22fe99.patch";
- sha256 = "10xiyq42bqfmih1jgqpq64nha3n0y7ra3j7j0q27rn5hhhgbyjs7";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-ZuOZlfxtRq8ZcrXGe9wlFGwn2isdvMoXQveKKnEPFdo=";
};
nativeBuildInputs = [
@@ -57,6 +41,12 @@ stdenv.mkDerivation rec {
wingpanel
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Notifications Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-notifications";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index fcaf06de0113..3ea90b348ed0 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -36,14 +36,14 @@ stdenv.mkDerivation rec {
url = "https://github.com/elementary/wingpanel-indicator-sound/commit/df816104c15e4322c1077313b1f43114cdaf710e.patch";
sha256 = "029z7l467jz1ymxwrzrf874062r6xmskl7mldpq39jh110fijy5l";
})
+ # Fix build with vala 0.54
+ # https://github.com/elementary/wingpanel-indicator-sound/pull/221
+ (fetchpatch {
+ url = "https://github.com/elementary/wingpanel-indicator-sound/commit/398d181eabe3dd803dc0ba335ac629902ec5b5ab.patch";
+ sha256 = "1r2x3n6ws56jk7xcgk60am8mc5dgf8pz5ipsydxvmlrmipkjxyqi";
+ })
];
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
- };
-
nativeBuildInputs = [
libxml2
meson
@@ -68,6 +68,12 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Sound Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-sound";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 1ae9f9f4aaa5..e22c654e1ef8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -22,13 +22,13 @@
stdenv.mkDerivation rec {
pname = "wingpanel";
- version = "3.0.0";
+ version = "3.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0ycys24y1rrz0ydpvs4mc89p4k986q1ziwbvziinxr1wsli9v1dj";
+ sha256 = "078yi36r452sc33mv2ck8z0icya1lhzhickllrlhc60rdri36sb8";
};
passthru = {
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.wingpanel";
};
}
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 0e6d14d2425a..20b5729ac302 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -18,7 +18,7 @@
stdenv.mkDerivation rec {
pname = "granite";
- version = "6.1.1";
+ version = "6.1.2";
outputs = [ "out" "dev" ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "13c6xk014psvmll9qybdqviskllw4g150m2k4ikjbv59g0rfp7xq";
+ sha256 = "sha256-d48KQH8uwkSZWQEFSq1BD+TVUi9PWVVtMjKYmleRW58=";
};
passthru = {
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "granite-demo";
};
}
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index 666e17362ac2..226344204879 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "contractor";
};
}
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 0b904a112177..c687b281a2a7 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -19,7 +19,7 @@
stdenv.mkDerivation rec {
pname = "elementary-capnet-assist";
- version = "2.3.0";
+ version = "2.4.0";
repoName = "capnet-assist";
@@ -27,13 +27,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1gma8a04ndivx1fd3ha9f45r642qq2li80wrd6dsrp4v3vqix9bn";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-UdkS+w61c8z2TCJyG7YsDb0n0b2LOpFyaHzMbdCJsZI=";
};
nativeBuildInputs = [
@@ -55,21 +49,23 @@ stdenv.mkDerivation rec {
webkitgtk
];
- # Not useful here or in elementary - See: https://github.com/elementary/capnet-assist/issues/3
- patches = [
- ./remove-capnet-test.patch
- ];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "A small WebKit app that assists a user with login when a captive portal is detected";
homepage = "https://github.com/elementary/capnet-assist";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.capnet-assist";
};
}
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch b/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch
deleted file mode 100644
index a59c74f22b3b..000000000000
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 46c594b..ba0ea10 100644
---- a/meson.build
-+++ b/meson.build
-@@ -33,8 +33,3 @@ meson.add_install_script('meson/post_install.py')
-
- subdir('data')
- subdir('po')
--
--install_data(
-- '90captive_portal_test',
-- install_dir: join_paths(get_option('sysconfdir'), 'NetworkManager', 'dispatcher.d')
--)
diff --git a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
index 15ae6840e454..9dd5a8695258 100644
--- a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "io.elementary.notifications";
};
}
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index d1aaad42e2f3..79ced4bfe582 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -15,12 +15,13 @@
, gtk3
, granite
, libgee
+, systemd
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "elementary-settings-daemon";
- version = "1.0.0";
+ version = "1.1.0";
repoName = "settings-daemon";
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1masvy1f9z2cp8w5ajnhy4k9bzvzgfziqlm59bf146pdd2567hiw";
+ sha256 = "sha256-1Xp1uJzDFuGZlhJhKj00cYtb4Q1syMAm+82fTOtk0VI=";
};
nativeBuildInputs = [
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
gtk3
granite
libgee
+ systemd
];
postPatch = ''
@@ -63,5 +65,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "io.elementary.settings-daemon";
};
}
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch
new file mode 100644
index 000000000000..34e06d77bd29
--- /dev/null
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch
@@ -0,0 +1,37 @@
+From c9aaff2461daba31a25ed20c0789ffd7c3561887 Mon Sep 17 00:00:00 2001
+From: Pasquale
+Date: Tue, 9 Nov 2021 23:12:50 +0100
+Subject: [PATCH] Avoid usage of npx
+
+tsc is only used for checking type annotation
+that are stripped by esbuild
+
+---
+ src/kwinscript/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/kwinscript/CMakeLists.txt b/src/kwinscript/CMakeLists.txt
+index 6d85d5d..6f966a4 100644
+--- a/src/kwinscript/CMakeLists.txt
++++ b/src/kwinscript/CMakeLists.txt
+@@ -29,7 +29,7 @@ add_custom_target(
+
+ add_custom_command(
+ OUTPUT "bismuth/contents/code/index.mjs"
+- COMMAND "npx" "esbuild"
++ COMMAND "esbuild"
+ "--bundle" "${CMAKE_CURRENT_SOURCE_DIR}/index.ts"
+ "--outfile=${CMAKE_CURRENT_BINARY_DIR}/bismuth/contents/code/index.mjs"
+ "--format=esm"
+@@ -40,7 +40,7 @@ add_custom_command(
+
+ add_custom_target(
+ LintViaTSC
+- COMMAND "npx" "tsc" "--noEmit" "--incremental"
++ COMMAND "true"
+ COMMENT "👮 Checking sources using TS Compiler..."
+ )
+
+--
+2.33.1
+
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
new file mode 100644
index 000000000000..114eb31e69ce
--- /dev/null
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, kcoreaddons
+, kwindowsystem
+, plasma-framework
+, systemsettings
+, cmake
+, extra-cmake-modules
+, esbuild
+}:
+
+mkDerivation rec {
+ pname = "bismuth";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "Bismuth-Forge";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-ICpGgFvVi7tiYbMCo3JWQmbA36rdWF4NFYTWIejhxr4=";
+ };
+
+ patches = [
+ ./0001-Avoid-usage-of-npx.patch
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ esbuild
+ ];
+
+ buildInputs = [
+ kcoreaddons
+ kwindowsystem
+ plasma-framework
+ systemsettings
+ ];
+
+ meta = with lib; {
+ description = "A dynamic tiling extension for KWin";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pasqui23 ];
+ homepage = "https://bismuth-forge.github.io/bismuth/";
+ inherit (kwindowsystem.meta) platforms;
+ };
+}
diff --git a/pkgs/desktops/plasma-5/breeze-gtk.nix b/pkgs/desktops/plasma-5/breeze-gtk.nix
index 1be3fe1c3098..bff3546aa330 100644
--- a/pkgs/desktops/plasma-5/breeze-gtk.nix
+++ b/pkgs/desktops/plasma-5/breeze-gtk.nix
@@ -6,6 +6,9 @@ mkDerivation {
name = "breeze-gtk";
nativeBuildInputs = [ extra-cmake-modules sassc python3 python3.pkgs.pycairo breeze-qt5 ];
buildInputs = [ qtbase ];
+ patches = [
+ ./patches/0001-fix-add-executable-bit.patch
+ ];
postPatch = ''
sed -i cmake/FindGTKEngine.cmake \
-e "s|\''${KDE_INSTALL_FULL_LIBDIR}|${getLib gtk2}/lib|"
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 7e1bb2b1092b..8abf2b37dbec 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -24,9 +24,8 @@ existing packages here and modify it as necessary.
*/
-{
- libsForQt5, lib, fetchurl,
- gconf, gsettings-desktop-schemas
+{ libsForQt5, lib, config, fetchurl
+, gconf, gsettings-desktop-schemas
}:
let
@@ -123,7 +122,6 @@ let
kscreen = callPackage ./kscreen.nix {};
kscreenlocker = callPackage ./kscreenlocker.nix {};
ksshaskpass = callPackage ./ksshaskpass.nix {};
- ksysguard = throw "ksysguard has been replaced with plasma-systemmonitor";
ksystemstats = callPackage ./ksystemstats.nix {};
kwallet-pam = callPackage ./kwallet-pam.nix {};
kwayland-integration = callPackage ./kwayland-integration.nix {};
@@ -157,6 +155,7 @@ let
thirdParty = let inherit (libsForQt5) callPackage; in {
plasma-applet-caffeine-plus = callPackage ./3rdparty/addons/caffeine-plus.nix { };
plasma-applet-virtual-desktop-bar = callPackage ./3rdparty/addons/virtual-desktop-bar.nix { };
+ bismuth = callPackage ./3rdparty/addons/bismuth { };
kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { };
kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
@@ -164,6 +163,8 @@ let
parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { };
};
+ } // lib.optionalAttrs (config.allowAliases or true) {
+ ksysguard = throw "ksysguard has been replaced with plasma-systemmonitor";
};
in
lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index db200b4cd1ea..91031ac618fb 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.22.4/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.3/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/kwayland-integration.nix b/pkgs/desktops/plasma-5/kwayland-integration.nix
index f886a87feb57..02e963ba9049 100644
--- a/pkgs/desktops/plasma-5/kwayland-integration.nix
+++ b/pkgs/desktops/plasma-5/kwayland-integration.nix
@@ -2,10 +2,11 @@
mkDerivation, lib,
extra-cmake-modules,
kguiaddons, kidletime, kwayland, kwindowsystem, qtbase,
+ wayland-protocols, wayland-scanner, wayland
}:
mkDerivation {
name = "kwayland-integration";
- nativeBuildInputs = [ extra-cmake-modules ];
- buildInputs = [ kguiaddons kidletime kwindowsystem kwayland qtbase ];
+ nativeBuildInputs = [ extra-cmake-modules wayland-scanner ];
+ buildInputs = [ kguiaddons kidletime kwindowsystem kwayland qtbase wayland-protocols wayland ];
}
diff --git a/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch b/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
index d273e262226f..e6ab62caf714 100644
--- a/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
+++ b/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
@@ -8,22 +8,32 @@ Because it's completely bypassing argv0! This looks at the executable
file in-use according to the kernel!
Wrappers cannot affect the `/proc/.../exe` symlink!
----
- src/service_utils.h | 28 +++++++++++++++++++++++++++-
- 1 file changed, 27 insertions(+), 1 deletion(-)
-diff --git a/src/service_utils.h b/src/service_utils.h
-index 8a70c1fad..6674f553b 100644
---- a/src/service_utils.h
-+++ b/src/service_utils.h
-@@ -26,8 +26,34 @@ namespace KWin
- const static QString s_waylandInterfaceName = QStringLiteral("X-KDE-Wayland-Interfaces");
- const static QString s_dbusRestrictedInterfaceName = QStringLiteral("X-KDE-DBUS-Restricted-Interfaces");
-
--static QStringList fetchProcessServiceField(const QString &executablePath, const QString &fieldName)
-+static QStringList fetchProcessServiceField(const QString &in_executablePath, const QString &fieldName)
- {
-+ // !! Start NixOS fix
+Co-authored-by: Yaroslav Bolyukin
+---
+ src/nixos_utils.h | 41 +++++++++++++++++++++++++++++++++++++++++
+ src/service_utils.h | 4 +++-
+ src/waylandclient.cpp | 5 ++++-
+ 3 files changed, 48 insertions(+), 2 deletions(-)
+ create mode 100644 src/nixos_utils.h
+
+diff --git a/src/nixos_utils.h b/src/nixos_utils.h
+new file mode 100644
+index 0000000..726065d
+--- /dev/null
++++ b/src/nixos_utils.h
+@@ -0,0 +1,41 @@
++#ifndef NIXOS_UTILS_H
++#define NIXOS_UTILS_H
++
++// kwin
++#include
++
++namespace KWin
++{
++
++static QString unwrapExecutablePath(const QString &in_executablePath)
++{
+ // NixOS fixes many packaging issues through "wrapper" scripts that manipulates the environment or does
+ // miscellaneous trickeries and mischievous things to make the programs work.
+ // In turn, programs often employs different mischievous schemes and trickeries to do *other things.
@@ -47,11 +57,58 @@ index 8a70c1fad..6674f553b 100644
+ // Approximately equivalent to s;/\.;/;
+ executablePath.remove(executablePath.lastIndexOf("/")+1, 1);
+ }
-+ // !! End NixOS fix
+
++ return executablePath;
++}
++
++}// namespace
++
++#endif // SERVICE_UTILS_H
+diff --git a/src/service_utils.h b/src/service_utils.h
+index 8a70c1f..475b15d 100644
+--- a/src/service_utils.h
++++ b/src/service_utils.h
+@@ -19,6 +19,7 @@
+ #include
+ //KF
+ #include
++#include "nixos_utils.h"
+
+ namespace KWin
+ {
+@@ -26,8 +27,9 @@ namespace KWin
+ const static QString s_waylandInterfaceName = QStringLiteral("X-KDE-Wayland-Interfaces");
+ const static QString s_dbusRestrictedInterfaceName = QStringLiteral("X-KDE-DBUS-Restricted-Interfaces");
+
+-static QStringList fetchProcessServiceField(const QString &executablePath, const QString &fieldName)
++static QStringList fetchProcessServiceField(const QString &in_executablePath, const QString &fieldName)
+ {
++ const QString executablePath = unwrapExecutablePath(in_executablePath);
// needed to be able to use the logging category in a header static function
static QLoggingCategory KWIN_UTILS ("KWIN_UTILS", QtWarningMsg);
const auto servicesFound = KApplicationTrader::query([&executablePath] (const KService::Ptr &service) {
+diff --git a/src/waylandclient.cpp b/src/waylandclient.cpp
+index fd2c0c1..ae8cf96 100644
+--- a/src/waylandclient.cpp
++++ b/src/waylandclient.cpp
+@@ -10,6 +10,7 @@
+ #include "screens.h"
+ #include "wayland_server.h"
+ #include "workspace.h"
++#include "nixos_utils.h"
+
+ #include